AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、〖第12题〗22) 以下不符合C语言语法的赋值语句是()。

A
 j++;
B
 j=j=5;
C
 k=2*4,k*4;
D
 y=float(j);

答案解析

正确答案:D

解析:

这道题考查的是 C 语言中赋值语句的语法规则以及类型转换的正确写法。我们需要逐一分析每个选项,判断其是否符合 C 语言标准。 **选项分析:** * **A. `j++;`** * 这是一个自增表达式语句。在 C 语言中,`j++` 等价于 `j = j + 1`(后置自增),它是一个合法的表达式,加上分号后构成合法的表达式语句。 * **结论:符合语法。** * **B. `j=j=5;`** * 赋值运算符 `=` 具有右结合性。该语句等价于 `j = (j = 5);`。 * 首先执行 `j = 5`,将 5 赋值给 j,该表达式的值为 5;然后将这个值再次赋值给 j。虽然逻辑上有点冗余,但在语法上是完全合法的。 * **结论:符合语法。** * **C. `k=2*4,k*4;`** * 这里涉及逗号运算符 `,`。逗号表达式的形式为 `表达式1, 表达式2`。 * 整个语句是一个逗号表达式语句。先计算 `k=2*4`(即 k 被赋值为 8),再计算 `k*4`(结果为 32,但未被赋值给任何变量,仅作为表达式的值)。 * 虽然 `k*4` 没有产生副作用(没有改变变量的值),但这在 C 语言中是允许的,只是通常编译器可能会给出“语句无效果”的警告,但它**符合语法**。 * **结论:符合语法。** * **D. `y=float(j);`** * 在 C 语言中,**强制类型转换**的正确语法格式是 `(类型名)表达式`,例如 `(float)j`。 * `float(j)` 这种写法类似于函数调用或 C++ 中的功能性 cast(functional cast),但在标准的 C 语言中,`float` 是关键字,不是函数名,不能这样使用。 * 正确的写法应该是:`y = (float)j;` * **结论:不符合 C 语言语法。** **总结:** 选项 A、B、C 均为合法的 C 语言语句,而选项 D 使用了错误的类型转换语法。 因此,不符合 C 语言语法的赋值语句是 **D**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码