内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第7练,内容是2.6 运算符和表达式。
《编程语言基础——C语言》(第5版)一课一练 第7练
2.6 运算符和表达式
一、单选题
1. 已知int a=7, b=3; 执行printf("%d", a % b); 后,输出结果是( )
A. 2
B. 1
C. 2.333333
D. 编译错误
2. 已知int k=10; int i=k++; 执行后,变量i和k的值分别为( )
A. i=10, k=10
B. i=11, k=11
C. i=10, k=11
D. i=11, k=10
3. 已知int k=10; int j=++k; 执行后,变量j和k的值分别为( )
A. j=11, k=11
B. j=10, k=11
C. j=10, k=10
D. j=11, k=10
4. 已知int a; 执行a=5+3; 后,关于赋值运算符的说法正确的是( )
A. 赋值运算符的结合方向是从左到右
B. 赋值运算符的优先级高于算术运算符
C. a=5+3等价于a=5; a=a+3;两个语句
D. 赋值运算符的结合方向是从右到左
5. 已知int x; 执行x=(3+5, 4*6); 后,变量x的值为( )
A. 8
B. 24
C. 32
D. 编译错误
6. 已知unsigned char a=6, b=5; 执行printf("%d", a&b); 后,输出结果是( )
A. 6
B. 5
C. 4
D. 1
7. 已知int d=16; 执行printf("%d", d>>2); 后,输出结果是( )
A. 64
B. 32
C. 8
D. 4
8. 已知float x; 执行x=(float)3/2; 后,变量x的值为( )
A. 1.5
B. 1.0
C. 1
D. 编译错误
9. 已知int a=5, b=3; 执行printf("%d", a+b*c); (其中c=2)后,输出结果是( )
A. 16
B. 11
C. 13
D. 编译错误
10. 已知int a=7, b=3; 执行printf("%d", a/b); 后,输出结果是( )
A. 2.333333
B. 2.0
C. 2
D. 3
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第7练,内容是2.6 运算符和表达式。
《编程语言基础——C语言》(第5版)一课一练 第7练
2.6 运算符和表达式
一、单选题
1. 已知int a=7, b=3; 执行printf("%d", a % b); 后,输出结果是( )
A. 2
B. 1
C. 2.333333
D. 编译错误
【答案】B
【解析】%是模除运算符,求两个整数相除后的余数。7%3=1(7÷3=2余1)。模除运算符要求两边均为整型数据。
2. 已知int k=10; int i=k++; 执行后,变量i和k的值分别为( )
A. i=10, k=10
B. i=11, k=11
C. i=10, k=11
D. i=11, k=10
【答案】C
【解析】k++是后缀自增,先使用k的值(10)赋给i,然后将k的值加1(k变为11)。
3. 已知int k=10; int j=++k; 执行后,变量j和k的值分别为( )
A. j=11, k=11
B. j=10, k=11
C. j=10, k=10
D. j=11, k=10
【答案】A
【解析】++k是前缀自增,先将k的值加1(k变为11),然后使用k的新值(11)赋给j。
4. 已知int a; 执行a=5+3; 后,关于赋值运算符的说法正确的是( )
A. 赋值运算符的结合方向是从左到右
B. 赋值运算符的优先级高于算术运算符
C. a=5+3等价于a=5; a=a+3;两个语句
D. 赋值运算符的结合方向是从右到左
【答案】D
【解析】赋值运算符的结合方向(结合性)是从右到左(右结合)。优先级:算术运算符高于赋值运算符,所以a=5+3中先算5+3,再赋值给a。
5. 已知int x; 执行x=(3+5, 4*6); 后,变量x的值为( )
A. 8
B. 24
C. 32
D. 编译错误
【答案】B
【解析】逗号表达式的值为最右边表达式的值。先算3+5=8(无变量接收),再算4*6=24,整个逗号表达式的值为24,赋给x。
6. 已知unsigned char a=6, b=5; 执行printf("%d", a&b); 后,输出结果是( )
A. 6
B. 5
C. 4
D. 1
【答案】C
【解析】位与运算&:对应位均为1时结果为1。6的二进制为00000110,5的二进制为00000101,6&5=00000100=4。
7. 已知int d=16; 执行printf("%d", d>>2); 后,输出结果是( )
A. 64
B. 32
C. 8
D. 4
【答案】D
【解析】右移运算>>:将操作数的二进制位向右移动指定位数,左边补0。16的二进制为00010000,右移2位后为00000100=4。
8. 已知float x; 执行x=(float)3/2; 后,变量x的值为( )
A. 1.5
B. 1.0
C. 1
D. 编译错误
【答案】A
【解析】强制类型转换运算符()的优先级高于算术运算符。先算(float)3将整数3转换为浮点数3.0,然后3.0/2=1.5,赋给x。
9. 已知int a=5, b=3; 执行printf("%d", a+b*c); (其中c=2)后,输出结果是( )
A. 16
B. 11
C. 13
D. 编译错误
【答案】B
【解析】运算符优先级:乘法*高于加法+。先算b*c=3*2=6,再算a+6=5+6=11。
10. 已知int a=7, b=3; 执行printf("%d", a/b); 后,输出结果是( )
A. 2.333333
B. 2.0
C. 2
D. 3
【答案】C
【解析】两个整数相除,结果为整数(截断小数部分)。7/3=2(余1,小数部分0.333333被截断)。若需要得到浮点数结果,需将至少一个操作数转换为浮点型。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$