内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《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错在执行了前两步便停止。这种方法利用加减法保存信息,避免了额外变量。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$