C 控制语句 测试 2

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

C 控制语句测试卷 2 包含的题目有:决策语句:if-else 和 switch,循环语句:for 循环,while 循环 & do-while 循环,以及跳转语句:break 和 continue。


6) 找出下面程序中while 循环的错误,如果有的话。

  1. while 语句应该有一个分号
  2. while 循环应该被 do-while 循环替换
  3. while 循环应该有一个条件
  4. 没有错误

正确选项是 (c)。

说明

在程序中,“表达式语法”错误发生是因为 while() 循环必须有一个条件表达式。

例如:while (j >5) { ... }

因此,要移除“表达式语法”错误,while 循环应该有一个条件。

7) 如果使用 scanf() 语句将一个值存储到 char 变量中,那么除了值之外,还会存储一个回车符 (\r)。

  1. true
  2. False

正确选项是 (b)。

说明

否,如果使用 scanf() 语句,回车符会告诉编译器在用户按下 ENTER 键后从缓冲区读取输入。因此,回车符 (\r) 的值不会存储在内存中。

8) 找出程序中两个循环是否都打印了正确的字符串长度?

  1. 是的,两个循环都打印了正确的字符串长度
  2. 只有 while 循环打印了正确的字符串长度
  3. 只有 for 循环打印了正确的字符串长度
  4. 程序编译错误

正确选项是 (c)。

说明

在 while 循环中,打印的字符串长度不正确,因为 while 循环变量 'i' 在检查 '\0' 之后才递增,因此比字符串长度多 1。

因此,只有 for 循环打印了正确的字符串长度。

9) break 语句用于退出switch 语句,而continue 语句用于将控制转移到switch 的开头?

  1. 是的
  2. 不能

正确选项是 (b)。

说明

否,因为 continue 语句只能在 C 语言的循环中使用,而不能在switch 语句中使用。

10) 为了打印下面给出的 a 和 b 的值,您将使用哪个 printf() 语句?

  1. printf("%Lf %f", a, b);
  2. printf("%Lf %Lf", a, b);
  3. printf("%f %Lf", a, b);
  4. printf("%f %lf", a, b);

正确选项是 (d)。

说明

打印 double 类型的值使用 %lf 作为格式说明符。

打印 float 类型的值使用 %f 作为格式说明符。

因此,打印 a 和 b 的值,printf 语句的语法是printf("%f %lf", a, b);