内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练一课一练的第2章的第8练,内容涵盖第2章数据类型、运算符和表达式的2.7.2~2.7.3 自增自减运算符、赋值运算符及赋值表达式。
《C语言程序设计》(电子工业出版社)一课一练 第8练
第2章 数据类型、运算符和表达式
2.7.2~2.7.3 自增自减运算符、赋值运算符及赋值表达式
1、 单项选择题(本题共4小题)
1、执行代码int a=3, b; b=a++;后,变量 b 的值是( )
A. 3
B. 4
C. 2
D. 5
【答案】A
【解析】自减运算符后置时,变量先参与赋值运算,再进行自增操作。因此 b 先取 a 的原值 3,之后 a 自增为 4,所以 b 的值为 3。
2、执行代码int x=5; x+=3;后,变量 x 的值是( )
A. 8
B. 5
C. 3
D. 15
【答案】A
【解析】复合赋值运算符+=等价于x = x + 3,将 x 的原值 5 与 3 相加,结果 8 重新赋值给 x,因此 x 的值为 8。
3、下列表达式中,写法合法的是( )
A. ++5
B. ++(a+1)
C. a++
D. 5++
【答案】C
【解析】自增、自减运算符的操作数只能是变量,不能是常量或表达式。选项 A、D 为常量,选项 B 为表达式,只有选项 C 符合语法规则。
4、执行代码int m=2, n; n=++m + ++m;后,变量 n 的值是( )
A. 6
B. 7
C. 5
D. 8
【答案】B
【解析】自增运算符前置时先改变变量值,再参与运算。第一次++m使 m 变为 3,第二次++m使 m 变为 4,最终计算 3+4=7 赋值给 n,因此 n 的值为 7。
2、 判断题(本题共3题)
1、自增运算符可以直接作用于常量,比如表达式++5是合法的。( )
【答案】×
【解析】自增运算符的作用是修改操作数的值,常量的值不可修改,因此不能将自增运算符用于常量,该表达式编译会报错。
2、复合赋值表达式x*=3+2等价于x=x*(3+2),先计算右侧的加法,再执行乘法赋值。( )
【答案】√
【解析】复合赋值运算符的右侧是一个整体表达式,会先计算表达式的值,再与变量进行对应运算后赋值,因此该等价写法正确。
3、赋值表达式a=b=5中,整个表达式的值为 5,变量 a 和 b 的值也为 5。( )
【答案】√
【解析】赋值运算符结合性为自右向左,先执行b=5(表达式值为 5),再将该值赋给 a,因此变量 a、b 的值均为 5,整个表达式的值也为 5。
3、 填空题(本题共2题)
1、C 语言中的复合赋值运算符是在赋值运算符 “=” 之前加上一个____运算符构成的,例如+=、*=等。
【答案】二目
【解析】复合赋值运算符需要左右两个操作数,因此由赋值符加二目运算符组成,能简化表达式书写并提升编译效率。
2、自增运算符前置时,运算规则是____,再将变化后的值参与其他运算。
【答案】先将变量的值增 1
【解析】前置自增先完成变量的自增操作,再用更新后的值参与后续运算,这是它与后置自增(先运算后自增)的核心区别。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int a=2, b=3;
int c = a++ + --b;
printf("%d %d %d", a, b, c);
return 0;
}
【答案】
程序运行结果:3 2 4
【解析】
代码执行时,先处理--b,变量 b 的值先减 1 变为 2;再处理a++,先取 a 的原值 2 参与加法运算,2+2=4 赋值给 c;最后 a 自增 1 变为 3。因此 printf 依次输出 a、b、c 的值为 3 2 4。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《C语言程序设计》(电子工业出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《C语言程序设计》(电子工业出版社)一课一练一课一练的第2章的第8练,内容涵盖第2章数据类型、运算符和表达式的2.7.2~2.7.3 自增自减运算符、赋值运算符及赋值表达式。
《C语言程序设计》(电子工业出版社)一课一练 第8练
第2章 数据类型、运算符和表达式
2.7.2~2.7.3 自增自减运算符、赋值运算符及赋值表达式
1、 单项选择题(本题共4小题)
1、执行代码int a=3, b; b=a++;后,变量 b 的值是( )
A. 3
B. 4
C. 2
D. 5
2、执行代码int x=5; x+=3;后,变量 x 的值是( )
A. 8
B. 5
C. 3
D. 15
3、下列表达式中,写法合法的是( )
A. ++5
B. ++(a+1)
C. a++
D. 5++
4、执行代码int m=2, n; n=++m + ++m;后,变量 n 的值是( )
A. 6
B. 7
C. 5
D. 8
2、 判断题(本题共3题)
1、自增运算符可以直接作用于常量,比如表达式++5是合法的。( )
2、复合赋值表达式x*=3+2等价于x=x*(3+2),先计算右侧的加法,再执行乘法赋值。( )
3、赋值表达式a=b=5中,整个表达式的值为 5,变量 a 和 b 的值也为 5。( )
3、 填空题(本题共2题)
1、C 语言中的复合赋值运算符是在赋值运算符 “=” 之前加上一个____运算符构成的,例如+=、*=等。
2、自增运算符前置时,运算规则是____,再将变化后的值参与其他运算。
4、 读程序写结果题(本题共1题)
1、阅读下面的 C 语言程序,写出程序运行后的输出结果。
【程序代码】
#include <stdio.h>
int main() {
int a=2, b=3;
int c = a++ + --b;
printf("%d %d %d", a, b, c);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$