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

2025-04-25
| 2份
| 18页
| 110人阅读
| 1人下载

资源信息

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

内容正文:

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

资源预览图

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