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

1、〖第11题〗61)设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf(”****\n”);()。

A
 循环结束的条件不合法
B
 是无限循环
C
 循环体一次也不执行
D
 循环体只执行一次

答案解析

正确答案:B

解析:

这道题考察的是 C 语言中 `for` 循环的执行机制以及赋值表达式与关系表达式的区别。 ### 核心考点分析 1. **赋值运算符 `=` 与相等运算符 `==` 的区别**: * 在 C 语言中,`=` 是赋值运算符,它将右边的值赋给左边的变量,并返回被赋的值。 * `==` 才是判断相等的关系运算符。 * 题目中的循环条件部分是 `k=1`,这是一个**赋值表达式**,而不是判断 `k` 是否等于 1。 2. **`for` 循环的执行流程**: `for(初始化; 条件判断; 更新)` 的执行顺序如下: 1. 执行初始化语句:`j=0, k=-1`。此时 $j=0, k=-1$。 2. **执行条件判断**:计算表达式 `k=1`。 * 这里将整数 `1` 赋值给变量 `k`。 * 赋值表达式 `k=1` 的返回值是 `1`。 * 在 C 语言中,非零值被视为“真”(True),零值被视为“假”(False)。因为结果是 `1`(真),所以循环条件成立,进入循环体。 3. 执行循环体:`printf("****\n");`。 4. 执行更新语句:`j++, k++`。此时 $j$ 变为 1,$k$ 变为 2。 5. **再次执行条件判断**:再次计算表达式 `k=1`。 * 注意:无论之前 $k$ 是多少,这里都会重新将 `1` 赋值给 $k$。 * 表达式 `k=1` 的值依然是 `1`(真)。 * 循环条件依然成立,继续执行循环体。 6. 重复步骤 3-5... ### 选项解析 * **A. 循环结束的条件不合法**:错误。`k=1` 是一个合法的 C 语言表达式,语法上没有错误。虽然逻辑上可能不是程序员的本意(通常本意可能是 `k==1` 或 `k!=1` 等),但在语法上是完全合法的。 * **B. 是无限循环**:**正确**。由于每次判断条件时,`k` 都会被重新赋值为 1,表达式的值永远为 1(真),因此循环永远不会终止。 * **C. 循环体一次也不执行**:错误。第一次判断条件时,`k=1` 结果为真,循环体会至少执行一次。 * **D. 循环体只执行一次**:错误。因为条件永远为真,循环会一直执行下去,不会只执行一次就停止。 ### 结论 该循环的条件部分 `k=1` 始终为真,导致死循环。 故正确答案为 **B**。
题目纠错
c语言选择判断题库

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

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