C 控制语句测试 4

2025 年 3 月 28 日 | 阅读 3 分钟

C 控制语句测试题 4 包含来自决策语句:if-else 和 switch,循环语句:for 循环,while 循环和 do-while 循环,以及跳转语句:break 和 continue 的问题。


16) 关于下面的 C 程序,以下哪些陈述是正确的?

  1. 程序输出 x=100 y=20
  2. printf() 函数运行 10 次
  3. if(x!=y) 后面的分号 (;) 不会产生任何错误
  4. 程序将不产生任何输出

选项如下

  1. 2
  2. 1,3
  3. 3,4
  4. 4

正确选项是 (b)。

说明

陈述 1 是正确的,因为 x=100 和 y=20 是程序的输出。

陈述 2 是错误的,因为 printf() 函数不在 for 循环内。因此 printf 语句只运行 1 次。

陈述 3 是正确的,因为分号用于终止条件语句。因此 if(x!=y); 在 C 中是允许的。

陈述 4 是错误的,因为程序正在产生输出 x=100 和 y=20。

因此,只有陈述 1 和 3 是正确的陈述。

17) 关于 C 程序中的 for 循环,以下哪些陈述是正确的?

  1. 可以使用 while 循环完成的所有事情都可以使用 for 循环完成。
  2. 如果我们希望循环中的语句至少执行一次,则可以使用 for 循环。
  3. for 循环比 while 循环运行得更快。
  4. for(;;); 实现了一个无限循环。

选项如下

  1. 1
  2. 1, 2, 3
  3. 2, 3, 4
  4. 1, 2, 4

正确选项是 (d)。

说明

for 循环用于如果我们希望循环中的语句至少执行一次。因此 for 循环比 while 循环运行得慢,即陈述 3 是不正确的。

其余 3 个关于 for 循环的陈述是正确的。

因此,陈述 1、2、4 是正确的陈述。

18) 如果 short int 的宽度为 2 字节,则给定程序的输出是什么?

  1. 表达式语法错误
  2. 1 .... 65535
  3. 0, 1, 2, 3, 4, 5
  4. 无输出

正确选项是 (b)。

说明

在 **for** 循环表达式,即 for**(i<=5 && i>=-1; ++i; i>0)** 中,表达式 i<=5 && i>=-1 是循环条件。表达式 ++i 递增该表达式。

在给定的 for 循环条件中,循环从 1 开始,直到达到整数的限制,即 65535。

因此,程序的输出是 **1 ... 65535。**

19) 在 C 中,我们可以使用 switch 语句来 switch 字符串吗?

  1. 是的
  2. 不能

正确选项是 (b)。

说明

在 switch 语句中,case 必须是常量表达式或整数常量。

因此,在 C 编程中不允许使用 switch 语句来 switch 字符串。

20) 给定程序的输出是什么?

  1. -1
  2. 5
  3. 0
  4. 编译错误

正确选项是 (b)。

说明

do-while 允许在测试条件之前执行循环体。因此,一开始,值 a,即 5,会被打印出来,然后控制会到达语句 a=-1。

由于 -1 不大于 0,因此条件失败,循环在 a=5 的值处终止。

因此,程序的输出是 5。