数组选择试题及答案高中

  • 格式:docx
  • 大小:37.08 KB
  • 文档页数:4

数组选择试题及答案高中

一、选择题

1. 在C语言中,定义一个整型数组的语句是:

A. int a[5] = {0, 1, 2, 3, 4};

B. int a[] = {0, 1, 2, 3, 4};

C. int a[5] = {0};

D. int a = {0, 1, 2, 3, 4};

2. 下列关于数组的描述中,正确的是:

A. 数组的大小在定义时必须指定

B. 数组的大小在定义后可以改变

C. 数组的索引从0开始

D. 数组的索引从1开始

3. 以下代码的输出结果是什么?

```c

int main() {

int arr[5] = {1, 2, 3, 4, 5};

int *p = arr;

printf("%d", *(p + 2));

return 0;

}

```

A. 1

B. 2

C. 3

D. 4

4. 假设有一个数组a[10],下列哪个表达式不能正确表示数组元素的值?

A. a[0]

B. a[9]

C. a[10]

D. a[5]

5. 在C语言中,数组元素的默认值是:

A. 0

B. 1

C. -1

D. 未定义

二、填空题

1. 定义一个长度为10的整型数组,数组的最后一个元素的下标是_________。

2. 在C语言中,数组名代表数组的_________。

3. 给定数组int arr[5] = {10, 20, 30, 40, 50}; 要访问数组的第三个元素,应该使用_________。

三、解答题

1. 编写一个C语言程序,实现将一个整型数组中的所有元素乘以2,并输出结果。

```c

#include

int main() {

int arr[] = {1, 2, 3, 4, 5};

int i, n = sizeof(arr) / sizeof(arr[0]);

for (i = 0; i < n; i++) {

arr[i] *= 2;

printf("%d ", arr[i]);

}

return 0;

}

```

2. 说明数组在内存中的存储方式。

数组在内存中是连续存储的。当定义一个数组时,系统会为数组分配一块连续的内存空间,数组中的每个元素都按照顺序存储在这块内存中。数组的索引从0开始,每个元素的内存地址是数组首地址加上索引值乘以元素大小。

四、编程题

1. 编写一个C语言程序,实现以下功能:输入一个整数数组,输出数组中的最大值和最小值。

```c

#include

int main() {

int arr[] = {3, 5, 2, 8, 6};

int max = arr[0], min = arr[0];

int i, n = sizeof(arr) / sizeof(arr[0]);

for (i = 1; i < n; i++) {

if (arr[i] > max) max = arr[i];

if (arr[i] < min) min = arr[i]; }

printf("Max: %d, Min: %d\n", max, min);

return 0;

}

```

参考答案:

一、选择题

1. B

2. A, C

3. C

4. C

5. A

二、填空题

1. 9

2. 首地址

3. arr[2]

三、解答题

1. 程序已给出。

2. 数组在内存中是连续存储的。

四、编程题

1. 程序已给出。