C 数组测试 2

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

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

  1. 100
  2. 200
  3. 101
  4. 201

正确选项是 (c)。

说明

在程序中,*x 指向 100,给 *x 加 1 得到 101。

因此输出为101。

7) 在下面的语句中,"arr" 表示什么?

  1. arr 是一个包含 20 个字符的数组
  2. arr 是一个包含 20 个字符指针的数组
  3. arr 是一个函数数组
  4. arr 是一个指向数组的指针

正确选项是 (b)。

说明

方括号在声明时表示数组,类型是 char*。因此,它是一个字符指针数组。

因此,“arr”是一个包含 20 个字符指针的数组。

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

  1. C++ ++
  2. ++ ++
  3. C++ C++
  4. 编译错误

正确选项是 (d)。

说明

在程序中,'a' 指向一个常量地址,而常量地址变量不允许递增。

因此,程序将在输出中生成编译错误。

9) 关于程序中使用的 5,以下哪些陈述是正确的?

  1. 在第一个语句中,5 指定了数组大小,而在第二个语句中,它指定了数组的一个特定元素。
  2. 在第一个语句中,5 指定了一个特定元素,而在第二个语句中,它指定了一个数组大小。
  3. 在第一个语句中,5 指定了一个特定元素,而在第二个语句中,它指定了一种类型。
  4. 在这两个语句中,5 都指定了数组大小。

正确选项是 (a)。

说明

语句 int num[5]; 指定了数组的大小,而 num[5]=20; 指定了数组的一个特定元素(第 6 个元素)。

因此,在第一个语句中,5 指定了数组大小,而在第二个元素中,它指定了数组的一个特定元素。

10) 在使用数组名时,以下哪个选项不会给出数组的基地址?

  1. 当数组名是 **&** 运算符的操作数时
  2. 当数组名被传递给 **scanf()** 函数时
  3. 当数组名被传递给 **printf()** 函数时
  4. 当数组名与 **sizeof** 运算符一起使用时。
  1. 1, 4
  2. 4
  3. 1
  4. 1, 3

正确选项是 (a)。

说明

语句 1 和 4 不会给出数组的基地址。而 printf() 和 scanf() 会给出数组的基地址。