第7练 2.8 顺序结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)

2026-06-24
| 2份
| 9页
| 99人阅读
| 0人下载

内容正文:

【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第7练,内容是2.8 顺序结构程序设计实例。 《C语言》(第五版)一课一练 第7练 2.8 顺序结构程序设计实例 一、单选题 1. 以下代码片段执行后,a和b的值分别是 int a=3, b=5, t; t=a; a=b; b=t;( ) A. a=3, b=5(值未改变) B. a=5, b=3(成功交换) C. a=5, b=5(b被覆盖) D. a=3, b=3(a被覆盖) 2. 顺序结构程序的执行特点是( ) A. 按照语句的书写顺序依次执行 B. 根据条件选择执行不同的语句 C. 重复执行某些语句直到条件不满足 D. 随机选择语句执行 3. 设有 int n=365; 以下哪个表达式能正确求出n的十位数字( ) A. n%10得到个位数字5 B. n/100得到百位数字3 C. n/10%10先除以10再取余得到6 D. n%100得到后两位数65 4. 以下程序段的输出结果是 int a=1, b=2, c; c=a+b; a=b; b=c; printf("%d %d", a, b);( ) A. 1 2(值未改变) B. 3 2(交换后的结果) C. 2 3(a取b原值,b取c新值) D. 2 1(反向交换的结果) 5. 以下程序段的输出结果是 int x=10; x+=5; x*=2; printf("%d", x);( ) A. 20(10*2的结果) B. 30((10+5)*2的结果) C. 25(10+5*2的结果) D. 15(10+5的结果) 6. 设有 int a=5, b=8; 执行 a=b; b=a; 后,a和b的值分别是( ) A. a=8, b=8(a的原值丢失) B. a=8, b=5(看似交换成功) C. a=5, b=8(值未改变) D. a=5, b=5(b覆盖了a) 7. 以下程序段执行后,c的值是 int a=7, b=3, c; c = a % b;( ) A. 2(7除以3的商) B. 3(b的值) C. 0(整除的余数) D. 1(7除以3的余数) 8. 以下程序段的输出结果是 int a=3, b=4, c; c = a * b + a / b; printf("%d", c);( ) A. 12(3*4+0=12,整数除法3/4=0) B. 13(3*4+1的错误计算) C. 14(3*4+2的错误计算) D. 15(某种加法结果) 9. 设有 int n=582; 以下程序段的输出结果是 printf("%d %d %d", n%100, n/10%10, n%10);( ) A. 82 8 582(第三个值错误) B. 58 8 2(第一个值错误) C. 82 8 2(各表达式均正确) D. 5 8 2(第一个值错误) 10. 以下程序运行后,输出结果是 int x=5, y=3; x=x+y; y=x-y; x=x-y; printf("%d,%d", x, y);( ) A. 5,3(值未改变) B. 8,3(第一步之后的结果) C. 8,5(前两步之后的结果) D. 3,5(成功交换两变量的值) 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。 本卷是《C语言》(第五版)《一课一练》第7练,内容是2.8 顺序结构程序设计实例。 《C语言》(第五版)一课一练 第7练 2.8 顺序结构程序设计实例 一、单选题 1. 以下代码片段执行后,a和b的值分别是 int a=3, b=5, t; t=a; a=b; b=t;( ) A. a=3, b=5(值未改变) B. a=5, b=3(成功交换) C. a=5, b=5(b被覆盖) D. a=3, b=3(a被覆盖) 【答案】B 【解析】三条语句依次执行:t=a即t=3保存a的值;a=b即a=5将b的值赋给a;b=t即b=3将保存的原a值赋给b。最终a=5, b=3,成功实现了交换。A、C、D均未正确跟踪三条赋值语句的执行过程。 2. 顺序结构程序的执行特点是( ) A. 按照语句的书写顺序依次执行 B. 根据条件选择执行不同的语句 C. 重复执行某些语句直到条件不满足 D. 随机选择语句执行 【答案】A 【解析】顺序结构是最基本的程序结构,按照语句的书写顺序自上而下依次执行每条语句。B描述的是选择结构(分支结构);C描述的是循环结构;D不是任何标准程序结构的特点。 3. 设有 int n=365; 以下哪个表达式能正确求出n的十位数字( ) A. n%10得到个位数字5 B. n/100得到百位数字3 C. n/10%10先除以10再取余得到6 D. n%100得到后两位数65 【答案】C 【解析】n/10%10先除以10去掉个位(365/10=36),再对10取余得到十位(36%10=6)。A中n%10=5是个位;B中n/100=3是百位;D中n%100=65是后两位数,不是单个数字。 4. 以下程序段的输出结果是 int a=1, b=2, c; c=a+b; a=b; b=c; printf("%d %d", a, b);( ) A. 1 2(值未改变) B. 3 2(交换后的结果) C. 2 3(a取b原值,b取c新值) D. 2 1(反向交换的结果) 【答案】C 【解析】依次执行:c=a+b=1+2=3;a=b=2;b=c=3。最终a=2, b=3。A错,a和b的值已经改变;B错,a没有变成3;D错,b没有变成1。关键在于跟踪每步执行后各变量的最新值。 5. 以下程序段的输出结果是 int x=10; x+=5; x*=2; printf("%d", x);( ) A. 20(10*2的结果) B. 30((10+5)*2的结果) C. 25(10+5*2的结果) D. 15(10+5的结果) 【答案】B 【解析】依次执行:x+=5即x=10+5=15;x*=2即x=15*2=30。每一步都在上一步结果的基础上运算。A错在跳过了加法步骤;C错在运算顺序不对,不是先乘后加;D错在执行了第一步便停止了。 6. 设有 int a=5, b=8; 执行 a=b; b=a; 后,a和b的值分别是( ) A. a=8, b=8(a的原值丢失) B. a=8, b=5(看似交换成功) C. a=5, b=8(值未改变) D. a=5, b=5(b覆盖了a) 【答案】A 【解析】执行a=b后a变为8,此时a和b都是8,a的原值5已经丢失。再执行b=a时,b取a的当前值8,所以a=8, b=8。这种方式不能实现交换,因为没有用临时变量保存a的原始值。B错在a的原值5已丢失无法恢复。 7. 以下程序段执行后,c的值是 int a=7, b=3, c; c = a % b;( ) A. 2(7除以3的商) B. 3(b的值) C. 0(整除的余数) D. 1(7除以3的余数) 【答案】D 【解析】%是求余运算符,7%3=1(7除以3商2余1)。A中2是7/3的商(整数除法);B中3是b的值,与求余无关;C中0是整除情况下的余数(如6%3=0),7不能被3整除。 8. 以下程序段的输出结果是 int a=3, b=4, c; c = a * b + a / b; printf("%d", c);( ) A. 12(3*4+0=12,整数除法3/4=0) B. 13(3*4+1的错误计算) C. 14(3*4+2的错误计算) D. 15(某种加法结果) 【答案】A 【解析】按运算符优先级先算乘除再算加法:a*b=3*4=12,a/b=3/4=0(整数除法,小数部分截断),c=12+0=12。B错在3/4的整数除法结果为0而非1;C和D的计算方式不正确。 9. 设有 int n=582; 以下程序段的输出结果是 printf("%d %d %d", n%100, n/10%10, n%10);( ) A. 82 8 582(第三个值错误) B. 58 8 2(第一个值错误) C. 82 8 2(各表达式均正确) D. 5 8 2(第一个值错误) 【答案】C 【解析】n%100=582%100=82(取后两位);n/10%10=582/10%10=58%10=8(取十位);n%10=582%10=2(取个位)。A中第三个值应为2不是582;B中第一个值应为82不是58;D中第一个值应为82不是5。 10. 以下程序运行后,输出结果是 int x=5, y=3; x=x+y; y=x-y; x=x-y; printf("%d,%d", x, y);( ) A. 5,3(值未改变) B. 8,3(第一步之后的结果) C. 8,5(前两步之后的结果) D. 3,5(成功交换两变量的值) 【答案】D 【解析】依次执行:x=x+y=5+3=8;y=x-y=8-3=5;x=x-y=8-5=3。最终x=3, y=5,成功实现了不用临时变量的交换。A错在值已改变;B错在执行了第一步便停止;C错在执行了前两步便停止。这种方法利用加减法保存信息,避免了额外变量。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

第7练 2.8 顺序结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)
1
第7练 2.8 顺序结构程序设计实例 《C语言》 (第五版) 一课一练 (山东省)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。