单选题
1、第291题 (1.0分) 题号:574 若变量已正确定义并赋值,下面符合C语言语法的表达式是()。
A
a:=b+1
B
a=b=c+2
C
int 18.5%3
D
a=a+7=c+b
答案解析
正确答案:B
解析:
**解析:**
本题考查 C 语言中表达式的语法规则,主要涉及赋值运算符、取模运算符以及左值的概念。
1. **分析选项 A:`a:=b+1`**
* C 语言中的赋值运算符是 `=`,而不是 Pascal 等语言中的 `:=`。
* `:=` 在 C 语言中不是合法的运算符组合。
* **结论:** 语法错误。
2. **分析选项 B:`a=b=c+2`**
* C 语言支持连续赋值。赋值运算符 `=` 的结合性是**从右向左**。
* 该表达式等价于 `a = (b = (c + 2))`。
* 首先计算 `c + 2`,然后将结果赋值给变量 `b`,最后将 `b` 的值(即 `c+2` 的结果)赋值给变量 `a`。
* 只要 `a`、`b`、`c` 已正确定义,这就是一个合法且常见的 C 语言表达式。
* **结论:** 符合语法。
3. **分析选项 C:`int 18.5%3`**
* 这里有两个错误:
1. `int` 是类型关键字,不能直接作为表达式的一部分出现在运算中(除非是强制类型转换,格式应为 `(int)18.5`)。
2. 取模运算符 `%` 要求两个操作数必须都是**整数**。`18.5` 是浮点数,不能直接参与 `%` 运算。
* **结论:** 语法错误。
4. **分析选项 D:`a=a+7=c+b`**
* 赋值运算符 `=` 的左边必须是一个**可修改的左值**(lvalue),通常是一个变量。
* 根据从右向左的结合性,先执行 `c+b`,然后试图执行 `a+7 = (c+b)`。
* `a+7` 是一个表达式的结果(右值),不是一个存储位置,不能被赋值。即不能给常量或表达式赋值。
* **结论:** 语法错误。
**综上所述,只有选项 B 是符合 C 语言语法的表达式。**
**正确答案:B**
题目纠错
c语言选择判断题库
相关题目
单选题
1、〖第8题〗591) 设有 int x=11; 则表达式 (x++ * 1/3) 的值是()。
单选题
1、〖第7题〗737) 下列关于C语言数据文件的叙述中正确的是()。
单选题
1、〖第6题〗688) 若a=1,b=2则 a|b的值是()。
单选题
1、〖第5题〗705) 若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是()。
单选题
1、〖第4题〗700) 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下
单选题
1、〖第3题〗90) 以下数据中,不正确的数值或字符常量是()。
单选题
1、〖第2题〗441) 下列语句中,不正确的是()。
单选题
1、〖第1题〗543) 若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
单选题
1、〖第20题〗96) 若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;
单选题
1、〖第19题〗13) 执行下列语句后变量x和y的值是()。y=10;x=y++;
