单选题
1、〖第18题〗21) 以下不符合C语言语法的赋值语句是()。
A
a=1,b=2
B
++j;
C
a=b=5;
D
y=(a=3,6*5);
答案解析
正确答案:A
解析:
这道题考察的是 C 语言中**语句(Statement)**与**表达式(Expression)**的区别,以及赋值语句的语法规范。
### 正确答案分析
**答案:A**
### 详细解析
在 C 语言中,一个合法的**语句**通常以分号 `;` 结尾。我们需要逐一分析各个选项是否符合“赋值语句”或一般“语句”的语法结构。
#### 1. 选项 A:`a=1,b=2`
* **分析**:这是一个**逗号表达式**。虽然 `a=1,b=2` 本身是一个合法的表达式,但在 C 语言中,如果要将其作为一条独立的语句执行,必须在末尾加上分号 `;`。
* **错误原因**:选项中缺少了结束符分号 `;`。因此,`a=1,b=2` 只是一个表达式,而不是一条完整的语句。正确的写法应该是 `a=1,b=2;`。
* **结论**:不符合语句语法(缺分号)。
#### 2. 选项 B:`++j;`
* **分析**:这是一个自增表达式语句。`++j` 是前置自增运算,它是一个合法的表达式,后面加上了分号 `;`,构成了一条完整的表达式语句。
* **结论**:符合语法。
#### 3. 选项 C:`a=b=5;`
* **分析**:这是连续赋值语句。赋值运算符 `=` 具有右结合性,等价于 `a=(b=5);`。先执行 `b=5`,再将结果赋给 `a`。整个表达式后面有分号 `;`,构成了一条完整的赋值语句。
* **结论**:符合语法。
#### 4. 选项 D:`y=(a=3,6*5);`
* **分析**:这是一个包含逗号表达式的赋值语句。
* 括号内 `(a=3, 6*5)` 是一个逗号表达式。逗号表达式会先计算 `a=3`,再计算 `6*5`,整个逗号表达式的值是最后一项的值,即 `30`。
* 然后将 `30` 赋值给变量 `y`。
* 最后有分号 `;` 结尾。
* **结论**:符合语法。
### 总结
题目问的是“不符合 C 语言语法的**赋值语句**”。
* B、C、D 都是带有分号的完整语句。
* **A 选项仅仅是一个表达式,缺少分号,不能独立构成一条语句。**
因此,选项 **A** 是不符合语法的。
题目纠错
c语言选择判断题库
相关题目
单选题
3.以下数据中,不正确的数值或字符常量是()。
单选题
1、第300题 (1.0分) 题号:516 static char str[10]=“China”;数组元素个数为()。
单选题
1、第299题 (1.0分) 题号:664 以下正确的函数定义形式是()。
单选题
1、第298题 (1.0分) 题号:537 在定义构造数据类型时,不能()。
单选题
1、第297题 (1.0分) 题号:525 C语言中不可以嵌套的是()。
单选题
1、第296题 (1.0分) 题号:626 若希望当A的值为奇数时,表达式的值为”真”,A的值为偶数时,表达 式的值为”假”,则以下不能满足要求的表达式是()。
单选题
1、第295题 (1.0分) 题号:96 下列字符序列中,不可用作C语言标识符的是()。
单选题
1、第294题 (1.0分) 题号:165 下列定义数组的语句中正确的是()。
单选题
1、第293题 (1.0分) 题号:685 在位运算中,操作数每左移一位,其结果相当于()。
单选题
1、第292题 (1.0分) 题号:529 在C语言中,调用函数除函数名外,还必须有()。
