内容正文:
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第36卷,是知识点训练卷,其编写要求如下:
(1)掌握一维数组的定义及引用;
(2)掌握二维数组的定义及引用;
(3)了解字符数组的定义及引用。
广西《电子与信息类考纲百套卷》 第36卷
《程序设计基础》
5.数组-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.执行int a[5]={1,2};后,a[4]的值是( )
A.0
B.随机值
C.1
D.编译错误
答案:A
2.若有int arr[3]={10,20};,则*(arr+1)的值是( )
A.10
B.20
C.0
D.地址值
答案:B
3.数组名arr表示的是( )
A.第一个元素的地址
B.所有元素的地址
C.最后一个元素的地址
D.数组长度
答案:A
4.执行int a[3]={1};后,a[1]的值是( )
A.0
B.1
C.随机值
D.语法错误
答案:A
5.若有定义char str[] = "Hello";,则str[5]的值是( )
A.'o'
B.'\0'
C.随机值
D.编译错误
答案:B
6.以下字符数组初始化正确的是( )
A.char s[5] = "China";
B.char s; s = "test";
C.char s[3] = "abc";
D.char s[] = {'A','B','C'};
答案:D
7.以下二维数组定义正确的是( )
A.int a[3,4];
B.float b[][3] = {1,2,3};
C.char c[2][] = {"AB","CD"};
D.double d[2][3] = {{1.1}, {2.2}};
答案:D
8.以下初始化语句错误的是( )
A.int arr[][] = {{1,2}, {3,4}};
B.int arr[2][3] = {0};
C.int arr[][4] = {1,2,3,4,5};
D.char str[3][5] = {"A", "BC"};
答案:A
9.若有int a[2][3];,以下表达式等价于a[1][2]的是( )
A.*(a[1] + 2)
B.*(*(a+1)+2)
C.*(a + 1 * 3 + 2)
D.以上全部
答案:D
10.若定义int a[3][4];,则元素a[2][1]的地址计算公式是( )
A.&a[0][0] + 2 * 4 + 1
B.a + 2 * 4 + 1
C.(int*)a + 2 * 4 + 1
D.a[0] + 2 * 4 + 1
答案:C
11.函数参数传递二维数组时,形参应声明为( )
A.int arr[][]
B.int (*arr)[4]
C.int **arr
D.int arr[3][4]
答案:B
12.以下字符数组初始化正确的是( )
A.char s[2][5] = {"Apple", "Banana"};
B.char s[][] = {"A", "BC"};
C.char *s[2] = {"A", "BC"};
D.char s[] = {"A", "BC"};
答案:C
13.若有定义int a[3][4];,以下表达式等价于a[1][2]的是( )
A.*(a[1] + 2)
B.*(*(a+1) + 2)
C.(*(a+1))[2]
D.以上全部
答案:D
14.正确的字符串输入语句是( )
A.scanf("%s", str[10]);
B.gets(str);
C.fgets(str, 10, stdin);
D.scanf("%10s", str);
答案:C
15.以下代码的输出是( )
char s[] = "A\065B";
printf("%d", sizeof(s));
A.4
B.5
C.6
D.7
答案:B
16.以下代码的输出是( )
char s[] = "Hello\0World";
printf("%d", strlen(s));
A.5
B.6
C.11
D.编译错误
答案:A
17.若有定义char *p = "Hello";,以下合法操作是( )
A.p[0] = 'h'
B.scanf("%s", p)
C.printf("%s", p+1)
D.strcat(p, "!")
答案:C
18.以下代码的功能是( )
char s[] = "programming";
int i = 0, j = strlen(s)-1;
while (i < j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
i++; j--;
}
A.字符串逆序
B.删除重复字符
C.统计字符数
D.字母大小写转换
答案:A
19.以下代码存在的主要问题是( )
char s[5];
strcpy(s, "Hello");
A. 数组未初始化
B.越界写入
C.缺少结束符
D.语法错误
答案:B
20.以下初始化正确的是( )
A. char a[5] = "abcde";
B.char a[] = {'a','b','c'};
C.char a[3] = "abc";
D.char a[4] = "abcd";
答案:B
二、判断题(本大题共10小题,每小题1分,共10分)
1.若定义 int arr[5];,则数组 arr 可以存储 5 个整数,数组元素的下标范围是 0 到 5。( )
答案:×
2.对于一维数组 int arr[5] = {1};,数组的其他元素会自动初始化为 0。( )
答案:√
3.可以使用 scanf("%d", arr); 来输入一维数组的所有元素。( )
答案:×
4.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 sizeof(arr) 可以得到数组 arr 所占用的字节数。( )
答案:√
5.定义二维数组时,第一维的大小可以省略,但第二维的大小不能省略。( )
答案:√
6.二维数组在内存中是按列优先存储的。( )
答案:×
7.对于二维数组 int arr[2][3];,arr[1] 表示第二行的首地址。( )
答案:√
8.对于二维数组 int arr[2][3];,arr + 1 指向数组的第二行首元素。( )
答案:√
9.定义字符数组时,若不指定数组大小,必须进行初始化,且数组大小由初始化列表确定。( )
答案:√
10.对于字符数组 char str[10];,可以使用 str = "world"; 来给数组赋值。( )
答案:×
三、填空题(本大题共5小题,每题3分,共15分)
1.若有 int arr[5] = {1, 2, 3}; ,则 arr[3] 的值是______。
答案:0
2.若要输入一个包含 3 个整数的一维数组 arr,可以使用以下代码:
for (int i = 0; i < 3; i++) {
scanf("%d", ______);
}
答案:&arr[i]
3.若有 int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};,则 arr[1][2] 的值是______。
答案:6
4.若要将二维数组 int arr[2][3] 的所有元素初始化为 0,可以使用以下代码:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
______ = 0;
}
}
答案:arr[i][j]
5.若有字符数组 char str[] = "abc";,则 sizeof(str) 的值是______。
答案:4
四、应用题(本大题共2小题,共15分)
1.补全代码,二维数组求每行元素之和
#include <stdio.h>
#define ROWS 3
#define COLS 4
void rowSum(int arr[ROWS][COLS], int sum[]) {
for (int i = 0; ______ ; i++) {
sum[i] = 0;
for (int j = 0; ______; j++) {
sum[i] += ______;
}
}
}
int main() {
int arr[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int sum[ROWS];
rowSum(arr, sum);
for (int i = 0; i < ROWS; i++) {
printf("第 %d 行的和为: %d
", i + 1, sum[i]);
}
return 0;
}
答案:i < ROWS,j < COLS,arr[i][j]
2.补全代码, 维数组求对角线元素之和
#include <stdio.h>
#define SIZE 3
int diagonalSum(int arr[SIZE][SIZE]) {
int sum = 0;
for (int i = 0; i < SIZE; i++) {
sum += ______;
}
______;
}
int main() {
int arr[SIZE][SIZE] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int diagSum = diagonalSum(arr);
printf("对角线元素之和为: %d
", diagSum);
return 0;
}
答案:arr[i][i],return sum
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。
本试卷是广西《电子与信息大类考纲百套卷》的第36卷,是知识点训练卷,其编写要求如下:
(1)掌握一维数组的定义及引用;
(2)掌握二维数组的定义及引用;
(3)了解字符数组的定义及引用。
广西《电子与信息类考纲百套卷》 第36卷
《程序设计基础》
5.数组-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每小题3分,共60分)
1.执行int a[5]={1,2};后,a[4]的值是( )
A.0
B.随机值
C.1
D.编译错误
2.若有int arr[3]={10,20};,则*(arr+1)的值是( )
A.10
B.20
C.0
D.地址值
3.数组名arr表示的是( )
A.第一个元素的地址
B.所有元素的地址
C.最后一个元素的地址
D.数组长度
4.执行int a[3]={1};后,a[1]的值是( )
A.0
B.1
C.随机值
D.语法错误
5.若有定义char str[] = "Hello";,则str[5]的值是( )
A.'o'
B.'\0'
C.随机值
D.编译错误
6.以下字符数组初始化正确的是( )
A.char s[5] = "China";
B.char s; s = "test";
C.char s[3] = "abc";
D.char s[] = {'A','B','C'};
7.以下二维数组定义正确的是( )
A.int a[3,4];
B.float b[][3] = {1,2,3};
C.char c[2][] = {"AB","CD"};
D.double d[2][3] = {{1.1}, {2.2}};
8.以下初始化语句错误的是( )
A.int arr[][] = {{1,2}, {3,4}};
B.int arr[2][3] = {0};
C.int arr[][4] = {1,2,3,4,5};
D.char str[3][5] = {"A", "BC"};
9.若有int a[2][3];,以下表达式等价于a[1][2]的是( )
A.*(a[1] + 2)
B.*(*(a+1)+2)
C.*(a + 1 * 3 + 2)
D.以上全部
10.若定义int a[3][4];,则元素a[2][1]的地址计算公式是( )
A.&a[0][0] + 2 * 4 + 1
B.a + 2 * 4 + 1
C.(int*)a + 2 * 4 + 1
D.a[0] + 2 * 4 + 1
11.函数参数传递二维数组时,形参应声明为( )
A.int arr[][]
B.int (*arr)[4]
C.int **arr
D.int arr[3][4]
12.以下字符数组初始化正确的是( )
A.char s[2][5] = {"Apple", "Banana"};
B.char s[][] = {"A", "BC"};
C.char *s[2] = {"A", "BC"};
D.char s[] = {"A", "BC"};
13.若有定义int a[3][4];,以下表达式等价于a[1][2]的是( )
A.*(a[1] + 2)
B.*(*(a+1) + 2)
C.(*(a+1))[2]
D.以上全部
14.正确的字符串输入语句是( )
A.scanf("%s", str[10]);
B.gets(str);
C.fgets(str, 10, stdin);
D.scanf("%10s", str);
15.以下代码的输出是( )
char s[] = "A\065B";
printf("%d", sizeof(s));
A.4
B.5
C.6
D.7
16.以下代码的输出是( )
char s[] = "Hello\0World";
printf("%d", strlen(s));
A.5
B.6
C.11
D.编译错误
17.若有定义char *p = "Hello";,以下合法操作是( )
A.p[0] = 'h'
B.scanf("%s", p)
C.printf("%s", p+1)
D.strcat(p, "!")
18.以下代码的功能是( )
char s[] = "programming";
int i = 0, j = strlen(s)-1;
while (i < j) {
char temp = s[i];
s[i] = s[j];
s[j] = temp;
i++; j--;
}
A.字符串逆序
B.删除重复字符
C.统计字符数
D.字母大小写转换
19.以下代码存在的主要问题是( )
char s[5];
strcpy(s, "Hello");
A. 数组未初始化
B.越界写入
C.缺少结束符
D.语法错误
20.以下初始化正确的是( )
A. char a[5] = "abcde";
B.char a[] = {'a','b','c'};
C.char a[3] = "abc";
D.char a[4] = "abcd";
二、判断题(本大题共10小题,每小题1分,共10分)
1.若定义 int arr[5];,则数组 arr 可以存储 5 个整数,数组元素的下标范围是 0 到 5。( )
2.对于一维数组 int arr[5] = {1};,数组的其他元素会自动初始化为 0。( )
3.可以使用 scanf("%d", arr); 来输入一维数组的所有元素。( )
4.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 sizeof(arr) 可以得到数组 arr 所占用的字节数。( )
5.定义二维数组时,第一维的大小可以省略,但第二维的大小不能省略。( )
6.二维数组在内存中是按列优先存储的。( )
7.对于二维数组 int arr[2][3];,arr[1] 表示第二行的首地址。( )
8.对于二维数组 int arr[2][3];,arr + 1 指向数组的第二行首元素。( )
9.定义字符数组时,若不指定数组大小,必须进行初始化,且数组大小由初始化列表确定。( )
10.对于字符数组 char str[10];,可以使用 str = "world"; 来给数组赋值。( )
三、填空题(本大题共5小题,每题3分,共15分)
1.若有 int arr[5] = {1, 2, 3}; ,则 arr[3] 的值是______。
2.若要输入一个包含 3 个整数的一维数组 arr,可以使用以下代码:
for (int i = 0; i < 3; i++) {
scanf("%d", ______);
}
3.若有 int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};,则 arr[1][2] 的值是______。
4.若要将二维数组 int arr[2][3] 的所有元素初始化为 0,可以使用以下代码:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
______ = 0;
}
}
5.若有字符数组 char str[] = "abc";,则 sizeof(str) 的值是______。
四、应用题(本大题共2小题,共15分)
1.补全代码,二维数组求每行元素之和
#include <stdio.h>
#define ROWS 3
#define COLS 4
void rowSum(int arr[ROWS][COLS], int sum[]) {
for (int i = 0; ______ ; i++) {
sum[i] = 0;
for (int j = 0; ______; j++) {
sum[i] += ______;
}
}
}
int main() {
int arr[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int sum[ROWS];
rowSum(arr, sum);
for (int i = 0; i < ROWS; i++) {
printf("第 %d 行的和为: %d
", i + 1, sum[i]);
}
return 0;
}
2.补全代码, 维数组求对角线元素之和
#include <stdio.h>
#define SIZE 3
int diagonalSum(int arr[SIZE][SIZE]) {
int sum = 0;
for (int i = 0; i < SIZE; i++) {
sum += ______;
}
______;
}
int main() {
int arr[SIZE][SIZE] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int diagSum = diagonalSum(arr);
printf("对角线元素之和为: %d
", diagSum);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$