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

2025-04-25
| 2份
| 17页
| 121人阅读
| 1人下载

资源信息

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

内容正文:

编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。 本试卷是广西《电子与信息大类考纲百套卷》的第35卷,是知识点训练卷,其编写要求如下: (1)掌握一维数组的定义及引用; (2)掌握二维数组的定义及引用; (3)了解字符数组的定义及引用。 广西《电子与信息类考纲百套卷》 第35卷 《程序设计基础》 5.数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共20小题,每小题3分,共60分) 1.以下正确的数组声明是( ) A.int a(5); B.int n=5; int a[n]; C.float arr[3.5]; D.char str[10]; 答案:D​ 2.若int a[5]={0};,以下引用正确的是( ) A.a[5] = 10; B.a[2.5] = 3; C.a[3] = a[0] + 1; D.a = {1,2,3}; 答案:C 3.逆序输出数组的正确代码段是( ) A.for(int i=0; i<5; i++) printf("%d", a[5-i]); B.for(int i=5; i>=0; i--) printf("%d", a[i]); C.for(int i=5; i>0; i--) printf("%d", a[i]); D.for(int i=0; i<5; i++) printf("%d", a[4-i]); 答案:D 5.以下代码段存在的主要问题是( ) int arr[5] = {1,2,3,4,5}; for(int i=0; i<=5; i++) printf("%d", arr[i]); A.语法错误 B.数组未初始化 C.输出顺序错误 D.越界访问 答案:D​ 6.执行以下代码后输出结果为( ) char str[10] = "hello"; printf("%d", strlen(str)); A.5 B.6 C.10 D.随机值 答案:A 7.以下代码的输出是( ) int arr[] = {9,8,7,6}; int *p = arr; printf("%d", *(p+3)); A.9 B.8 C.7 D.6 答案:D 8.执行int a[2][3] = {1,2,3,4};后,a[1][2]的值是( ) A.0 B.4 C.5 D.编译错误 答案:A 9.以下代码的输出是( ) int a[2][3] = {{1,2,3}, {4,5,6}}; printf("%d", *(*(a+1)+1)); A.2 B.4 C.5 D.6 答案:C 10.以下代码的功能是( ) 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][i]; A.计算主对角线元素和 B.计算副对角线元素和 C.计算所有元素和 D.计算每行元素和 答案:A 11.以下代码的输出是( ) int arr[2][3] = {{1,2,3}, {4,5,6}}; printf("%d", *(*(arr + 1) + 2)); A.3 B.5 C.6 D.编译错误 答案:C 12.以下代码的功能是( ) int a[3][4], max_row = 0; for(int i=0; i<3; i++) for(int j=0; j<4; j++) if(a[i][j] > a[max_row][0]) max_row = i; A.找到最大元素所在行 B.找到每行第一个元素的最大值 C.找到第一列的最大值 D.逻辑错误 答案:B 13.以下字符数组定义错误的是( ) A.char s[5] = {'A','B','C','D','E'}; B.char s[] = "Hello"; C.char s[3] = {'1','2','\0'}; D.char s[2] = "China"; 答案:D 14.若char str[10] = "ABCDE";,则str[5]的值是( ) A.'E' B.'\0' C.随机值 D.编译错误 答案:B 13.执行char arr[5] = {'a','\0','c','d','e'};后,printf("%s", arr);的输出是( ) A.a B.acde C.a cde D.编译错误 答案:A 14.以下代码存在的主要问题是( ) char s[5]; strcpy(s, "Programming"); A.数组未初始化 B.越界写入 C.缺少结束符 D.语法错误 答案:B 15.以下代码的功能是( ) char s[20] = "Hello"; char *p = s + 3; printf("%s", p); A.输出"lo" B.输出"Hello" C.输出"llo" D.越界访问 答案:A 16.以下初始化正确的是( ) A.char a[5] = "abcde"; B.char a[] = {'a','b','c'}; C.char a[3] = "abc"; D.char a[4] = "abcd"; 答案:B 17.以下代码存在的主要问题是( ) char str1[5] = "test", str2[5]; strcpy(str2, str1); A.str1未初始化 B.str2未初始化 C.strcpy可能导致缓冲区溢出 D.语法错误 答案:C 18.动态分配字符数组的正确方式是( ) A.char *str = malloc(10); strcpy(str, "Hello"); B.char str[10]; str = "Hello"; C.char *str; scanf("%s", str); D.char *str = "Hello"; 答案:A 19.以下代码的输出是( ) printf("%d", sizeof("AB\0CD")); A.3 B.5 C.6 D.7 答案:C 20.若有定义char *p = "Hello";,以下合法操作是( ) A. p[0] = 'h' B.scanf("%s", p) C.printf("%s", p+1) D.strcat(p, "!") 答案:C 二、判断题(本大题共10小题,每小题1分,共10分) 1.在 C 语言中,定义一维数组时,数组的大小可以是一个变量。( ) 答案:× 2.定义一维数组时,可以不指定数组大小,但必须进行初始化。( ) 答案:√ 3.在 C 语言中,数组名代表数组首元素的地址。( ) 答案:√ 4.定义一维数组时,数组元素的数据类型可以是任意类型,包括自定义类型。( ) 答案:√ 5.可以使用 int arr[2, 3]; 来定义一个 2 行 3 列的二维数组。( ) 答案:× 6.对于二维数组 int arr[2][3] = {{1, 2}, {3, 4}};,未明确初始化的元素会自动初始化为 0。( ) 答案:√ 7.可以通过 scanf("%d", arr); 一次性输入二维数组 arr 的所有元素。( ) 答案:× 8.二维数组 int arr[2][3]; 的元素个数为 6 个。( ) 答案:√ 9.在 C 语言中,字符数组必须以 '\0' 结尾才能表示一个字符串。( ) 答案:× 10.若有字符数组 char str[10] = {'h', 'e', 'l', 'l', 'o'};,则 strlen(str) 的结果是 5。( ) 答案:√ 三、填空题(本大题共5小题,每题3分,共15分) 1.定义一个包含 10 个整数的一维数组,数组名为 nums,应使用的语句是______。 答案:int nums[10]; 2.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 *(arr + 1) 的值是______。 答案:2 3.定义一个 3 行 4 列的二维整数数组 matrix,应使用的语句是______。 答案:int matrix[3][4]; 4.若有 int arr[2][3];,则 sizeof(arr) 表示的是______。 答案:二维数组 arr 所占用的总字节数 5.若要将字符串 "world" 复制到字符数组 str 中,可使用的函数是______。 答案:strcpy 四、应用题(本大题共2小题,共15分) 1.补全代码, 一维数组元素逆序 #include <stdio.h> #define SIZE 5 void reverseArray(int arr[], int size) { int left = 0, right = size - 1; while (______) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; ______; ______; } } int main() { int arr[SIZE] = {1, 2, 3, 4, 5}; reverseArray(arr, SIZE); for (int i = 0; i < SIZE; i++) { printf("%d ", arr[i]); } return 0; } 答案:left < right,left++,right-- 2.补全代码,二维数组转置 #include <stdio.h> #define ROWS 3 #define COLS 3 void transpose(int arr[ROWS][COLS], int transposed[COLS][ROWS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; ______; j++) { transposed[j][i] = ______; } } } int main() { int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int transposed[COLS][ROWS]; transpose(arr, transposed); for (int i = 0; i < COLS; i++) { for (int j = 0; j < ROWS; j++) { printf("%d ", transposed[i][j]); } printf(" "); } return 0; } 答案: j < COLS,arr[i][j] 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:广西《电子与信息大类考纲百套卷》,是依据广西《高等职业教育考试大纲与说明(电子与信息大类)》2026版编写。本套试卷共100份,由三个部分组成。第一部分是按考点要求编写的60份知识点训练卷;第二部分是针对三门课程编写的30份常考题训练卷;第三个部分是10份专业知识综合训练卷。 本试卷是广西《电子与信息大类考纲百套卷》的第35卷,是知识点训练卷,其编写要求如下: (1)掌握一维数组的定义及引用; (2)掌握二维数组的定义及引用; (3)了解字符数组的定义及引用。 广西《电子与信息类考纲百套卷》 第35卷 《程序设计基础》 5.数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、单项选择题(本大题共20小题,每小题3分,共60分) 1.以下正确的数组声明是( ) A.int a(5); B.int n=5; int a[n]; C.float arr[3.5]; D.char str[10]; 2.若int a[5]={0};,以下引用正确的是( ) A.a[5] = 10; B.a[2.5] = 3; C.a[3] = a[0] + 1; D.a = {1,2,3}; 3.逆序输出数组的正确代码段是( ) A.for(int i=0; i<5; i++) printf("%d", a[5-i]); B.for(int i=5; i>=0; i--) printf("%d", a[i]); C.for(int i=5; i>0; i--) printf("%d", a[i]); D.for(int i=0; i<5; i++) printf("%d", a[4-i]); 5.以下代码段存在的主要问题是( ) int arr[5] = {1,2,3,4,5}; for(int i=0; i<=5; i++) printf("%d", arr[i]); A.语法错误 B.数组未初始化 C.输出顺序错误 D.越界访问 6.执行以下代码后输出结果为( ) char str[10] = "hello"; printf("%d", strlen(str)); A.5 B.6 C.10 D.随机值 7.以下代码的输出是( ) int arr[] = {9,8,7,6}; int *p = arr; printf("%d", *(p+3)); A.9 B.8 C.7 D.6 8.执行int a[2][3] = {1,2,3,4};后,a[1][2]的值是( ) A.0 B.4 C.5 D.编译错误 9.以下代码的输出是( ) int a[2][3] = {{1,2,3}, {4,5,6}}; printf("%d", *(*(a+1)+1)); A.2 B.4 C.5 D.6 10.以下代码的功能是( ) 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][i]; A.计算主对角线元素和 B.计算副对角线元素和 C.计算所有元素和 D.计算每行元素和 11.以下代码的输出是( ) int arr[2][3] = {{1,2,3}, {4,5,6}}; printf("%d", *(*(arr + 1) + 2)); A.3 B.5 C.6 D.编译错误 12.以下代码的功能是( ) int a[3][4], max_row = 0; for(int i=0; i<3; i++) for(int j=0; j<4; j++) if(a[i][j] > a[max_row][0]) max_row = i; A.找到最大元素所在行 B.找到每行第一个元素的最大值 C.找到第一列的最大值 D.逻辑错误 13.以下字符数组定义错误的是( ) A.char s[5] = {'A','B','C','D','E'}; B.char s[] = "Hello"; C.char s[3] = {'1','2','\0'}; D.char s[2] = "China"; 14.若char str[10] = "ABCDE";,则str[5]的值是( ) A.'E' B.'\0' C.随机值 D.编译错误 13.执行char arr[5] = {'a','\0','c','d','e'};后,printf("%s", arr);的输出是( ) A.a B.acde C.a cde D.编译错误 14.以下代码存在的主要问题是( ) char s[5]; strcpy(s, "Programming"); A.数组未初始化 B.越界写入 C.缺少结束符 D.语法错误 15.以下代码的功能是( ) char s[20] = "Hello"; char *p = s + 3; printf("%s", p); A.输出"lo" B.输出"Hello" C.输出"llo" D.越界访问 16.以下初始化正确的是( ) A.char a[5] = "abcde"; B.char a[] = {'a','b','c'}; C.char a[3] = "abc"; D.char a[4] = "abcd"; 17.以下代码存在的主要问题是( ) char str1[5] = "test", str2[5]; strcpy(str2, str1); A.str1未初始化 B.str2未初始化 C.strcpy可能导致缓冲区溢出 D.语法错误 18.动态分配字符数组的正确方式是( ) A.char *str = malloc(10); strcpy(str, "Hello"); B.char str[10]; str = "Hello"; C.char *str; scanf("%s", str); D.char *str = "Hello"; 19.以下代码的输出是( ) printf("%d", sizeof("AB\0CD")); A.3 B.5 C.6 D.7 20.若有定义char *p = "Hello";,以下合法操作是( ) A. p[0] = 'h' B.scanf("%s", p) C.printf("%s", p+1) D.strcat(p, "!") 二、判断题(本大题共10小题,每小题1分,共10分) 1.在 C 语言中,定义一维数组时,数组的大小可以是一个变量。( ) 2.定义一维数组时,可以不指定数组大小,但必须进行初始化。( ) 3.在 C 语言中,数组名代表数组首元素的地址。( ) 4.定义一维数组时,数组元素的数据类型可以是任意类型,包括自定义类型。( ) 5.可以使用 int arr[2, 3]; 来定义一个 2 行 3 列的二维数组。( ) 6.对于二维数组 int arr[2][3] = {{1, 2}, {3, 4}};,未明确初始化的元素会自动初始化为 0。( ) 7.可以通过 scanf("%d", arr); 一次性输入二维数组 arr 的所有元素。( ) 8.二维数组 int arr[2][3]; 的元素个数为 6 个。( ) 9.在 C 语言中,字符数组必须以 '\0' 结尾才能表示一个字符串。( ) 10.若有字符数组 char str[10] = {'h', 'e', 'l', 'l', 'o'};,则 strlen(str) 的结果是 5。( ) 三、填空题(本大题共5小题,每题3分,共15分) 1.定义一个包含 10 个整数的一维数组,数组名为 nums,应使用的语句是______。 2.若有 int arr[5] = {1, 2, 3, 4, 5}; ,则 *(arr + 1) 的值是______。 3.定义一个 3 行 4 列的二维整数数组 matrix,应使用的语句是______。 答案:int matrix[3][4]; 5.若要将字符串 "world" 复制到字符数组 str 中,可使用的函数是______。 四、应用题(本大题共2小题,共15分) 1.补全代码, 一维数组元素逆序 #include <stdio.h> #define SIZE 5 void reverseArray(int arr[], int size) { int left = 0, right = size - 1; while (______) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; ______; ______; } } int main() { int arr[SIZE] = {1, 2, 3, 4, 5}; reverseArray(arr, SIZE); for (int i = 0; i < SIZE; i++) { printf("%d ", arr[i]); } return 0; } 2.补全代码,二维数组转置 #include <stdio.h> #define ROWS 3 #define COLS 3 void transpose(int arr[ROWS][COLS], int transposed[COLS][ROWS]) { for (int i = 0; i < ROWS; i++) { for (int j = 0; ______; j++) { transposed[j][i] = ______; } } } int main() { int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int transposed[COLS][ROWS]; transpose(arr, transposed); for (int i = 0; i < COLS; i++) { for (int j = 0; j < ROWS; j++) { printf("%d ", transposed[i][j]); } printf(" "); } return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

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