C 函数测试 3

5 Sept 2024 | 2 分钟阅读

11) 如果整型数据类型 (int) 为 2 字节宽,则以下程序的输出是什么?

  1. gh
  2. ab
  3. ef
  4. cd

正确选项是 (c)。

说明

在 Windows (Turbo C) 中,上述程序的输出将是 ef,而在 Linux (GCC) 中将是 ab。

由于 C 是一种依赖于机器的语言,因此 sizeof(int) 在不同的操作系统中可能返回不同的值。

在 Windows 操作系统中,sizeof(int)=2 字节。

在 Linux 操作系统中,sizeof(int)=4 字节。

给定的 int 大小是 2 字节,因此程序输出基于 Windows (Turbo C) 编译器。因此,程序输出是 ef。

12) 找出以下程序中的错误?

  1. 错误:不打印任何内容
  2. 错误:不允许赋值
  3. 没有错误
  4. 以上都不是

正确选项是 (b)。

说明

在编译器处理 main() 函数时,void f() 函数是不可见的。

因此,我们需要在 main() 函数之前声明此原型 void f(); 这种错误在现代编译器中不会发生。

因此,在编译上述程序时,它会给出 错误:不允许赋值。

13) 关于以下程序,哪个陈述是正确的?

  1. 错误:main() 不能在 printf() 中调用
  2. 它无限地打印垃圾值
  3. 无限运行而不打印任何内容
  4. 无错误,不打印任何内容

正确选项是 (c)。

说明

在 printf 语句中,即 printf("%p\n", main()); 这个语句会调用 main() 函数,然后无限重复,直到堆栈溢出。

因此,程序无限运行而不打印任何内容。

14) 函数只能通过值或引用来调用。

  1. true
  2. False

正确选项是 (a)。

说明

可以使用传引用或传值的方式调用函数。因此,上述陈述是正确的。

例如

传引用是指 c=sub(&x, &y); 这里传递的是 x 和 y 的地址。

传值是指 c= sub(x, y); 这里传递的是 x 和 y 的值。

15) 如果函数中连续使用两个“return”语句,编译器会发出警告。

  1. true
  2. False

正确选项是 (a)。

说明

是的,如果一个函数连续包含两个 return 语句,编译器会在第二个 return 语句处发出“Unreachable code”(不可达代码)的警告。

例如