题目
若变量已正确定义并赋值,以下符合C语言语法的表达式是A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7=c+b
若变量已正确定义并赋值,以下符合C语言语法的表达式是
A. a:=b+1
B. a=b=c+2
C. int 18.5%3
D. a=a+7=c+b
题目解答
答案
B. a=b=c+2
解析
本题考查C语言的基本语法规范,重点在于识别合法的表达式。解题核心在于掌握以下知识点:
- 赋值运算符的正确形式(
=而非:=); - 赋值表达式的结合性(右结合,允许连续赋值);
- 运算符的合法使用场景(如
%仅用于整数); - 类型转换的正确写法(需使用
cast语法)。
选项A:a:=b+1
- 错误原因:C语言中赋值运算符为
=,:=是非法语法。 - 正确写法:
a = b + 1;
选项B:a=b=c+2
- 正确性分析:
- 赋值表达式是右结合的,因此等价于:
a = (b = c + 2); - 先计算
c + 2赋值给b,再将b的值赋值给a。 - 符合C语言语法。
- 赋值表达式是右结合的,因此等价于:
选项C:int 18.5%3
- 错误原因:
18.5是浮点数,%运算符仅适用于整数;int关键字后直接跟表达式不符合语法,合法类型转换需写为(int)。
选项D:a=a+7=c+b
- 错误原因:
- 赋值表达式右结合,实际解析为:
a = (a + 7) = (c + b); a + 7是表达式,不能作为赋值目标(左侧必须是变量)。
- 赋值表达式右结合,实际解析为: