内容正文:
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第37卷,是知识点训练卷,其编写要求如下:
(1)掌握一维数组的定义及引用;
(2)掌握二维数组的定义及引用;
(3)了解字符数组的定义及引用。
广西《电子与信息类考纲百套卷》 第37卷
《程序设计基础》
5.数组-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.以下初始化语句正确的是( )
A.int arr[];
B.int arr[3]={1,2,3,4};
C.int arr[]={0};
D.int arr[2]={1,,3};
2.以下代码的输出是( )
int a[5]={1,2,3,4,5}, sum=0;
for(int i=0; i<5; i++) sum += a[i];
printf("%d", sum);
A.15
B.10
C.5
D.随机值
3.若int *p = arr;,则p[2]等价于( )
A.*(arr+2)
B.*arr+2
C.arr[3]
D.&arr[2]
4.以下代码的功能是( )
int a[5], max=0;
for(int i=0; i<5; i++) {
if(a[i]>max) max = a[i];
}
A.求数组最小值
B.求数组最大值
C.数组元素求和
D.逆序存储数组
5.以下代码的输出是( )
int a[]={2,4,6,8};
printf("%d", sizeof(a)/sizeof(int));
A.1
B.2
C.4
D.8
6.若有定义int a[3] = {10,20,30};,则*(a+1)的值是( )
A.10
B.20
C.30
D.地址值
7.以下代码的功能是( )
int arr[5] = {5,3,9,1,7};
int max = arr[0];
for(int i=1; i<5; i++) {
if(arr[i] > max) max = arr[i];
}
A.求最小值
B.计算平均值
C.逆序数组
D.求最大值
8.若有定义int a[3][4];,正确的元素引用是( )
A.a[3][0]
B.a[2][4]
C.a[1][3]
D.a[0][4]
9.若有定义int (*p)[4];,p的类型是( )
A.整型指针
B.指向整型的指针数组
C.指向4元素整型数组的指针
D.函数指针
10.以下代码的输出是
int a[][2] = {1,2,3,4};
printf("%d", sizeof(a)/sizeof(int));
A.2
B.4
C.6
D.8
11.以下代码的功能是( )
int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int sum = 0;
for(int i=0; i<3; i++)
sum += a[i][2-i];
A.计算主对角线之和
B.计算副对角线之和
C.计算所有元素和
D.计算第三列之和
12.以下代码的输出是( )
int (*p)[3];
int a[2][3] = {1,2,3,4,5,6};
p = a;
printf("%d", p[1][2]);
A.3
B.5
C.6
D.越界访问
13.以下代码的输出是( )
int a[][3] = {1,2,3,4};
int (*p)[2] = (int(*)[2])a;
printf("%d", p[1][1]);
A.3
B.4
C.越界值
D.编译错误
14.以下代码的输出是( )
char s[] = "C\0PROGRAM";
printf("%d", strlen(s));
A.1
B.2
C.9
D.10
15.若有char *p = "Hello";,以下表达式合法的是( )
A.p[0] = 'h'
B.strcpy(p, "Hi")
C.printf("%s", p+1)
D.scanf("%s", p)
16.若有char str[2][5] = {"OK","TEST"};,则str[1][4]的值是( )
A.'T'
B.'\0'
C.随机值
D.越界访问
17.以下代码的输出是( )
char arr[] = "ABCDE";
char *p = arr;
printf("%c", *(p + 3));
A.A
B.C
C.D
D.E
18.执行char str[10] = {'a','\0','b','c'};后,puts(str)的输出是( )
A.a
B.abc
C.a bc
D.无输出
19.以下代码存在几个错误( )
char s[5];
strcpy(s, "Hello!");
printf("%s", s);
A.0个
B.1个
C.2个
D.3个
20.以下代码的输出是( )
char s[] = "AB\0CD";
printf("%d", strlen(s));
A. 2
B.4
C.5
D.6
二、判断题(本大题共10小题,每小题1分,共10分)
1.可以通过数组名直接对整个一维数组进行赋值操作,例如 int a[3], b[3]; a = b; 。( )
2.若有 int arr[10];,则 arr[10] 表示数组 arr 的最后一个元素。( )
3.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 *(arr + 2) 与 arr[2] 是等价的。( )
4.对于一维数组 int arr[5]; ,可以通过 arr++ 来移动数组指针。( )
5.若定义 int arr[2][3];,则 arr[1][2] 是该二维数组的最后一个元素。( )
6.若有 int arr[2][3];,则 arr 表示数组首元素的地址,即 &arr[0][0]。( )
7.若定义 int arr[][3] = {{1, 2, 3}, {4, 5, 6}};,则第一维的大小由编译器根据初始化列表自动确定为 2。( )
8.可以使用 int arr[2][]; 来定义一个二维数组。( )
9.可以使用 char str[5] = "hello"; 来定义并初始化一个字符数组。( )
10.字符数组和字符串是完全相同的概念。( )
三、填空题(本大题共5小题,每题3分,共15分)
1.若要通过循环将数组 int arr[5] 的元素全部赋值为 1,可以使用以下代码:
for (int i = 0; i < ______; i++) {
arr[i] = 1;
}
2.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 sizeof(arr) / sizeof(arr[0]) 的结果是______。
3.要遍历一个 2 行 3 列的二维数组 arr 并输出每个元素,可使用以下代码:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", ______);
}
printf("
");
}
4.定义一个能存储 10 个字符的字符数组 str,应使用的语句是______。
5.若要获取字符数组 str 中字符串的长度,可使用的函数是______。
四、应用题(本大题共2小题,共15分)
1.补全代码,一维数组找出最大值及其下标
#include <stdio.h>
#define SIZE 6
void findMax(int arr[], int size, int *maxValue, int *maxIndex) {
*maxValue = arr[0];
*maxIndex = 0;
for (int i = 1;______ ; i++) {
if (______) {
*maxValue = arr[i];
*maxIndex = ______;
}
}
}
int main() {
int arr[SIZE] = {3, 7, 2, 9, 5, 1};
int maxValue, maxIndex;
findMax(arr, SIZE, &maxValue, &maxIndex);
printf("最大值是 %d,下标是 %d
", maxValue, maxIndex);
return 0;
}
2.补全代码, 字符数组去除空格
#include <stdio.h>
#define SIZE 20
void removeSpaces(char str[]) {
int j = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
str[j] = ______;
______;
}
}
str[j] = '\0';
}
int main() {
char str[SIZE] = "Hello World";
removeSpaces(str);
printf("去除空格后的字符串是: %s
", str);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第37卷,是知识点训练卷,其编写要求如下:
(1)掌握一维数组的定义及引用;
(2)掌握二维数组的定义及引用;
(3)了解字符数组的定义及引用。
广西《电子与信息类考纲百套卷》 第37卷
《程序设计基础》
5.数组-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.以下初始化语句正确的是( )
A.int arr[];
B.int arr[3]={1,2,3,4};
C.int arr[]={0};
D.int arr[2]={1,,3};
答案:C
2.以下代码的输出是( )
int a[5]={1,2,3,4,5}, sum=0;
for(int i=0; i<5; i++) sum += a[i];
printf("%d", sum);
A.15
B.10
C.5
D.随机值
答案:A
3.若int *p = arr;,则p[2]等价于( )
A.*(arr+2)
B.*arr+2
C.arr[3]
D.&arr[2]
答案:A
4.以下代码的功能是( )
int a[5], max=0;
for(int i=0; i<5; i++) {
if(a[i]>max) max = a[i];
}
A.求数组最小值
B.求数组最大值
C.数组元素求和
D.逆序存储数组
答案:B
5.以下代码的输出是( )
int a[]={2,4,6,8};
printf("%d", sizeof(a)/sizeof(int));
A.1
B.2
C.4
D.8
答案:C
6.若有定义int a[3] = {10,20,30};,则*(a+1)的值是( )
A.10
B.20
C.30
D.地址值
答案:B
7.以下代码的功能是( )
int arr[5] = {5,3,9,1,7};
int max = arr[0];
for(int i=1; i<5; i++) {
if(arr[i] > max) max = arr[i];
}
A.求最小值
B.计算平均值
C.逆序数组
D.求最大值
答案:D
8.若有定义int a[3][4];,正确的元素引用是( )
A.a[3][0]
B.a[2][4]
C.a[1][3]
D.a[0][4]
答案:C
9.若有定义int (*p)[4];,p的类型是( )
A.整型指针
B.指向整型的指针数组
C.指向4元素整型数组的指针
D.函数指针
答案:C
10.以下代码的输出是
int a[][2] = {1,2,3,4};
printf("%d", sizeof(a)/sizeof(int));
A.2
B.4
C.6
D.8
答案:B
11.以下代码的功能是( )
int a[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
int sum = 0;
for(int i=0; i<3; i++)
sum += a[i][2-i];
A.计算主对角线之和
B.计算副对角线之和
C.计算所有元素和
D.计算第三列之和
答案:B
12.以下代码的输出是( )
int (*p)[3];
int a[2][3] = {1,2,3,4,5,6};
p = a;
printf("%d", p[1][2]);
A.3
B.5
C.6
D.越界访问
答案:C
13.以下代码的输出是( )
int a[][3] = {1,2,3,4};
int (*p)[2] = (int(*)[2])a;
printf("%d", p[1][1]);
A.3
B.4
C.越界值
D.编译错误
答案:C
14.以下代码的输出是( )
char s[] = "C\0PROGRAM";
printf("%d", strlen(s));
A.1
B.2
C.9
D.10
答案:A
15.若有char *p = "Hello";,以下表达式合法的是( )
A.p[0] = 'h'
B.strcpy(p, "Hi")
C.printf("%s", p+1)
D.scanf("%s", p)
答案:C
16.若有char str[2][5] = {"OK","TEST"};,则str[1][4]的值是( )
A.'T'
B.'\0'
C.随机值
D.越界访问
答案:B
17.以下代码的输出是( )
char arr[] = "ABCDE";
char *p = arr;
printf("%c", *(p + 3));
A.A
B.C
C.D
D.E
答案:C
18.执行char str[10] = {'a','\0','b','c'};后,puts(str)的输出是( )
A.a
B.abc
C.a bc
D.无输出
答案:A
19.以下代码存在几个错误( )
char s[5];
strcpy(s, "Hello!");
printf("%s", s);
A.0个
B.1个
C.2个
D.3个
答案:C
20.以下代码的输出是( )
char s[] = "AB\0CD";
printf("%d", strlen(s));
A. 2
B.4
C.5
D.6
答案:A
二、判断题(本大题共10小题,每小题1分,共10分)
1.可以通过数组名直接对整个一维数组进行赋值操作,例如 int a[3], b[3]; a = b; 。( )
答案:×
2.若有 int arr[10];,则 arr[10] 表示数组 arr 的最后一个元素。( )
答案:×
3.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 *(arr + 2) 与 arr[2] 是等价的。( )
答案:√
4.对于一维数组 int arr[5]; ,可以通过 arr++ 来移动数组指针。( )
答案:×
5.若定义 int arr[2][3];,则 arr[1][2] 是该二维数组的最后一个元素。( )
答案:√
6.若有 int arr[2][3];,则 arr 表示数组首元素的地址,即 &arr[0][0]。( )
答案:√
7.若定义 int arr[][3] = {{1, 2, 3}, {4, 5, 6}};,则第一维的大小由编译器根据初始化列表自动确定为 2。( )
答案:√
8.可以使用 int arr[2][]; 来定义一个二维数组。( )
答案:×
9.可以使用 char str[5] = "hello"; 来定义并初始化一个字符数组。( )
答案:×
10.字符数组和字符串是完全相同的概念。( )
答案:×
三、填空题(本大题共5小题,每题3分,共15分)
1.若要通过循环将数组 int arr[5] 的元素全部赋值为 1,可以使用以下代码:
for (int i = 0; i < ______; i++) {
arr[i] = 1;
}
答案:5
2.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 sizeof(arr) / sizeof(arr[0]) 的结果是______。
答案:5
3.要遍历一个 2 行 3 列的二维数组 arr 并输出每个元素,可使用以下代码:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", ______);
}
printf("
");
}
答案:arr[i][j]
4.定义一个能存储 10 个字符的字符数组 str,应使用的语句是______。
答案:char str[10];
5.若要获取字符数组 str 中字符串的长度,可使用的函数是______。
答案:strlen
四、应用题(本大题共2小题,共15分)
1.补全代码,一维数组找出最大值及其下标
#include <stdio.h>
#define SIZE 6
void findMax(int arr[], int size, int *maxValue, int *maxIndex) {
*maxValue = arr[0];
*maxIndex = 0;
for (int i = 1;______ ; i++) {
if (______) {
*maxValue = arr[i];
*maxIndex = ______;
}
}
}
int main() {
int arr[SIZE] = {3, 7, 2, 9, 5, 1};
int maxValue, maxIndex;
findMax(arr, SIZE, &maxValue, &maxIndex);
printf("最大值是 %d,下标是 %d
", maxValue, maxIndex);
return 0;
}
答案:i < size,arr[i] > *maxValue,i
2.补全代码, 字符数组去除空格
#include <stdio.h>
#define SIZE 20
void removeSpaces(char str[]) {
int j = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
str[j] = ______;
______;
}
}
str[j] = '\0';
}
int main() {
char str[SIZE] = "Hello World";
removeSpaces(str);
printf("去除空格后的字符串是: %s
", str);
return 0;
}
答案:str[i],j++
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$