C 数组测试(测验)

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

1) 在 C 语言中,当我们把一个数组作为参数传递给一个函数时,实际上传递的是什么?

  1. 数组最后一个元素的地址
  2. 数组的基地址
  3. 数组元素的数值
  4. 数组的第一个元素

正确选项是 (b)。

说明

在 C 语言中,当我们把一个数组作为函数参数传递时,会传递数组的基地址

2) 下面的程序会输出什么?

  1. 字符串相等
  2. 无输出
  3. 运行时错误
  4. 编译错误

正确选项是 (a)。

说明

在程序中,我们比较的是 'x' 和 'y' 的基地址,它们不相同。

因此,程序没有输出。

3) 下面的程序会输出什么?

  1. 5 9
  2. 9 20
  3. 2 9
  4. 2 5

正确选项是 (c)。

说明

strlen(x) 函数用于查找字符串 'x' 的长度。在程序中,字符串长度是计算到 '\0' 的字符数。因此,字符串长度的输出是 2。

sizeof(x) 函数用于查找字符串 'x' 的大小。在程序中,sizeof() 返回整个数组的大小。因此,数组大小的输出是 9。

因此,程序的组合输出是2 9

4) 指向内存块的指针有效地等同于一个数组。

  1. true
  2. False

正确选项是 (a)。

说明

使用标准的库函数 malloc() 并将其视为一个数组。数组的值等同于指向内存块的指针。

因此,可以在运行时为数组分配内存块。

5) 关于 C 语言中的数组,以下哪些陈述是正确的?

  1. 表达式 num[2] 代表数组中的第二个元素
  2. 如果 SIZE 是一个宏,则允许声明 num[SIZE]
  3. 数组 int num[20]; 可以存储 20 个元素
  4. 在声明时有必要初始化数组
  1. 2
  2. 2,3
  3. 1,4
  4. 2,4

正确选项是 (b)。

说明

因此,陈述 '2' 和 '3' 是正确的。

  1. 表达式 num[2] 代表数组中的第二个元素。这个陈述是错误的,因为它代表数组的第三个元素。
  2. 如果 SIZE 是一个宏,则允许声明 num[SIZE]。这个陈述是正确的,因为 MACRO 用于将符号 size 替换为给定的值。
  3. 数组 int num[20]; 可以存储 20 个元素。这个陈述是正确的。
  4. 在声明时有必要初始化数组。这个陈述是错误的。