《C语言程序设计》数组-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第36卷

2025-04-25
| 2份
| 16页
| 150人阅读
| 1人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 数组
使用场景 中职复习
学年 2025-2026
地区(省份) 广西壮族自治区
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 181 KB
发布时间 2025-04-25
更新时间 2025-04-25
作者 胥豆豆老师
品牌系列 学易金卷·考纲百套卷
审核时间 2025-04-25
下载链接 https://m.zxxk.com/soft/51821141.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》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; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》数组-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第36卷
1
《C语言程序设计》数组-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第36卷
2
《C语言程序设计》数组-知识点训练卷 广西职教高考《电子与信息类考纲百套卷》第36卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。