《C语言程序设计》(五)数组-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第16卷

2025-02-24
| 2份
| 28页
| 254人阅读
| 0人下载

资源信息

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

内容正文:

编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第16卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 吉林省《信息工程类(电子与信息类)考纲百套卷》 第16卷 《C语言程序设计》 (五)数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1. 以下对一维数组 a 进行正确初始化的语句是( ) A. int a[5] = {1, 2, 3, 4, 5, 6}; B. int a[] = {1, 2, 3, 4, 5}; C. int a[5] = {0 * 1, 0 * 2, 0 * 3, 0 * 4, 0 * 5}; D. int a[5] = {1, 2, 3, 4}; 答案:B 2. 以下程序段的输出结果是( ) int a[5] = {1, 3, 5, 7, 9}; int *p = a; printf("%d ", *(p + 2)); A. 1 B. 3 C. 5 D. 7 答案:C 3. 若有定义 int a[3][4];,则对数组 a 元素的正确引用是( ) A. a[3][4] B. a[0, 0] C. a[1][2] D. a(2)(3) 答案:C 4. 若有定义 int a[2][3] = {1};,则数组元素 a[1][2] 的值是( ) A. 1 B. 随机值 C. 0 D. 以上都不对 答案:C 5.以下对字符数组 str 进行正确初始化的语句是( ) A. char str[5] = {'H', 'e', 'l', 'l', 'o'}; B. char str[] = "Hello"; C. char str[5] = "Hello"; D. char str[] = {'H', 'e', 'l', 'l', 'o', '\0'}; 答案:B 6. 以下程序段的输出结果是( ) char str[] = "abc\0def"; printf("%s", str); A. abc\0def B. abc C. def D. 编译错误 答案:B 7.若有 char str[] = "abcde";,则 strlen(str) 的返回值是( ) A. 5 B. 6 C. 7 D. 不确定 答案:A 8. 若有 char str1[10] = "abc"; char str2[10] = "abc";,则 strcmp(str1, str2) 的返回值是( ) A. 0 B. 1 C. -1 D. 无法确定 答案:A 9. 有如下代码: char str[20]; strcpy(str, "hello"); strcat(str, " world"); int len = strlen(str); len 的值是( ) A. 5 B. 10 C. 11 D. 20 答案:C 10. 有一维数组 int arr[10];,以下哪个循环可以将数组元素初始化为其下标值( ) A. for (int i = 0; i < 10; i++) { arr[i] = i; } B. for (int i = 1; i <= 10; i++) { arr[i] = i; } C. for (int i = 0; i < 10; i++) { arr[i + 1] = i; } D. for (int i = 0; i <= 10; i++) { arr[i] = i; } 答案:A 二、判断题(本大题共10小题,每小题2分,共20分) 1. 定义一维数组时,数组大小可以是变量。( ) 答案:错误 2. 初始化一维数组时,可以只对部分元素进行初始化。( ) 答案:正确 3. 可以通过数组名直接对整个二维数组进行赋值操作。( ) 答案:错误 4. 若有定义 int a[2][3];,则数组 a 的最后一个元素是 a[2][3]。( ) 答案:错误 5. 可以使用 printf 函数输出字符数组中的单个字符。( ) 答案:正确 6. 字符数组的大小必须与所存储的字符串长度相等。( ) 答案:错误 7.strlen 函数返回的字符串长度包括字符串结束标志 '\0'。( ) 答案:错误 8. strcpy 函数复制字符串时会自动复制字符串结束标志 '\0'。( ) 答案:正确 9. 在使用一维数组进行循环时,循环变量的起始值和终止值可以根据需要任意设定,不会影响程序的正确性。( ) 答案:错误 10. 对于一维数组 int arr[5];,可以使用 arr = {1, 2, 3, 4, 5}; 来进行赋值。( ) 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1.若有定义 int a[10] = {1, 2, 3};,则数组 a 中元素 a[3] 的值是 ______。 答案:0 2. 若有定义 int a[3][4];,要输出数组 a 第二行第三列的元素,应该使用语句 printf("%d ", ______);。 答案:a[1][2] 3. 若有定义 char str[10] = "abc";,则 strlen(str) 的值是 ______。 答案:3 4. 有如下代码: char str1[20] = "hello"; char str2[] = "world"; strcat(str1, str2); 执行后 str1 中的字符串是 ______。 答案:helloworld 5. 若要将字符串 str2 复制到 str1 中,应使用的函数是 ______。 答案:strcpy 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {1, 2, 3, 4, 5}; int i; for (i = 0; i < 5; i++) { if (i % 2 == 0) { arr[i] *= 2; } } for (i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; } 答案:2 2 6 4 10 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int a[4] = {1, 2, 3, 4}; int b[4]; for (int i = 0; i < 4; i++) { b[i] = a[3 - i]; } for (int i = 0; i < 4; i++) { printf("%d ", b[i]); } return 0; } 答案:4 3 2 1 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; int max = arr[0][0]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } } printf("%d ", max); return 0; } 答案:6 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {10, 20, 30, 40, 50}; int *p = arr; for (int i = 0; i < 5; i++) { printf("%d ", *(p + i)); } return 0; } 答案:10 20 30 40 50 5.以下程序的运行结果是______。 #include <stdio.h> int main() { char str[] = "racecar"; int i = 0, j = 6; int isPalindrome = 1; while (i < j) { if (str[i] != str[j]) { isPalindrome = 0; break; } i++; j--; } if (isPalindrome) { printf("Yes "); } else { printf("No "); } return 0; } 答案:Yes 五、编程题(本大题共5小题,每题5分,共25分) 1.用户输入二维数组的行数和列数(假设为方阵,即行数等于列数)以及各个元素,将该二维数组的行和列互换后输出。 答案代码: #include <stdio.h> int main() { int n; printf("请输入二维数组的阶数(方阵): "); scanf("%d", &n); int arr[n][n]; printf("请输入 %d 行 %d 列的整数: ", n, n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &arr[i][j]); } } int temp; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { temp = arr[i][j]; arr[i][j] = arr[j][i]; arr[j][i] = temp; } } printf("行列互换后的二维数组为: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%d ", arr[i][j]); } printf(" "); } return 0; } 2.用户输入一维整数数组的元素个数、各个元素以及要删除的元素,输出删除指定元素后的数组。 答案代码: #include <stdio.h> int main() { int n; printf("请输入数组元素的个数: "); scanf("%d", &n); int arr[n]; printf("请输入 %d 个整数: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int target; printf("请输入要删除的元素: "); scanf("%d", &target); int newLen = 0; for (int i = 0; i < n; i++) { if (arr[i] != target) { arr[newLen] = arr[i]; newLen++; } } printf("删除指定元素后的数组为: "); for (int i = 0; i < newLen; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 3.用户输入二维数组的行数和列数以及各个元素,找出每行的最大值并输出。 答案代码: #include <stdio.h> int main() { int rows, cols; printf("请输入二维数组的行数和列数: "); scanf("%d %d", &rows, &cols); int arr[rows][cols]; printf("请输入 %d 行 %d 列的整数: ", rows, cols); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { scanf("%d", &arr[i][j]); } } for (int i = 0; i < rows; i++) { int max = arr[i][0]; for (int j = 1; j < cols; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } printf("第 %d 行的最大值是: %d ", i + 1, max); } return 0; } 4.用户输入一维整数数组的元素个数和各个元素,找出数组中第二大的元素,若不存在则输出 -1。 答案代码: #include <stdio.h> int main() { int n; printf("请输入数组元素的个数: "); scanf("%d", &n); int arr[n]; printf("请输入 %d 个整数: ", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } if (n < 2) { printf("-1 "); return 0; } int firstMax = arr[0] > arr[1] ? arr[0] : arr[1]; int secondMax = arr[0] < arr[1] ? arr[0] : arr[1]; for (int i = 2; i < n; i++) { if (arr[i] > firstMax) { secondMax = firstMax; firstMax = arr[i]; } else if (arr[i] > secondMax && arr[i] != firstMax) { secondMax = arr[i]; } } printf("数组中第二大的元素是: %d ", secondMax); return 0; } 5.用户输入一个字符串,去除字符串中多余的空格(连续的多个空格只保留一个)后输出。 答案代码: #include <stdio.h> int main() { char str[100]; printf("请输入一个字符串: "); scanf(" %[^ ]s", str); int i, j = 0; for (i = 0; str[i] != '\0'; i++) { if (str[i] != ' ' || (i > 0 && str[i - 1] != ' ')) { str[j] = str[i]; j++; } } str[j] = '\0'; printf("去除多余空格后的字符串为: %s ", str); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第16卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 吉林省《信息工程类(电子与信息类)考纲百套卷》 第16卷 《C语言程序设计》 (五)数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1. 以下对一维数组 a 进行正确初始化的语句是( ) A. int a[5] = {1, 2, 3, 4, 5, 6}; B. int a[] = {1, 2, 3, 4, 5}; C. int a[5] = {0 * 1, 0 * 2, 0 * 3, 0 * 4, 0 * 5}; D. int a[5] = {1, 2, 3, 4}; 答案:B 2. 以下程序段的输出结果是( ) int a[5] = {1, 3, 5, 7, 9}; int *p = a; printf("%d ", *(p + 2)); A. 1 B. 3 C. 5 D. 7 答案:C 3. 若有定义 int a[3][4];,则对数组 a 元素的正确引用是( ) A. a[3][4] B. a[0, 0] C. a[1][2] D. a(2)(3) 答案:C 4. 若有定义 int a[2][3] = {1};,则数组元素 a[1][2] 的值是( ) A. 1 B. 随机值 C. 0 D. 以上都不对 答案:C 5.以下对字符数组 str 进行正确初始化的语句是( ) A. char str[5] = {'H', 'e', 'l', 'l', 'o'}; B. char str[] = "Hello"; C. char str[5] = "Hello"; D. char str[] = {'H', 'e', 'l', 'l', 'o', '\0'}; 答案:B 6. 以下程序段的输出结果是( ) char str[] = "abc\0def"; printf("%s", str); A. abc\0def B. abc C. def D. 编译错误 答案:B 7.若有 char str[] = "abcde";,则 strlen(str) 的返回值是( ) A. 5 B. 6 C. 7 D. 不确定 答案:A 8. 若有 char str1[10] = "abc"; char str2[10] = "abc";,则 strcmp(str1, str2) 的返回值是( ) A. 0 B. 1 C. -1 D. 无法确定 答案:A 9. 有如下代码: char str[20]; strcpy(str, "hello"); strcat(str, " world"); int len = strlen(str); len 的值是( ) A. 5 B. 10 C. 11 D. 20 答案:C 10. 有一维数组 int arr[10];,以下哪个循环可以将数组元素初始化为其下标值( ) A. for (int i = 0; i < 10; i++) { arr[i] = i; } B. for (int i = 1; i <= 10; i++) { arr[i] = i; } C. for (int i = 0; i < 10; i++) { arr[i + 1] = i; } D. for (int i = 0; i <= 10; i++) { arr[i] = i; } 答案:A 二、判断题(本大题共10小题,每小题2分,共20分) 1. 定义一维数组时,数组大小可以是变量。( ) 答案:错误 2. 初始化一维数组时,可以只对部分元素进行初始化。( ) 答案:正确 3. 可以通过数组名直接对整个二维数组进行赋值操作。( ) 答案:错误 4. 若有定义 int a[2][3];,则数组 a 的最后一个元素是 a[2][3]。( ) 答案:错误 5. 可以使用 printf 函数输出字符数组中的单个字符。( ) 答案:正确 6. 字符数组的大小必须与所存储的字符串长度相等。( ) 答案:错误 7.strlen 函数返回的字符串长度包括字符串结束标志 '\0'。( ) 答案:错误 8. strcpy 函数复制字符串时会自动复制字符串结束标志 '\0'。( ) 答案:正确 9. 在使用一维数组进行循环时,循环变量的起始值和终止值可以根据需要任意设定,不会影响程序的正确性。( ) 答案:错误 10. 对于一维数组 int arr[5];,可以使用 arr = {1, 2, 3, 4, 5}; 来进行赋值。( ) 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1.若有定义 int a[10] = {1, 2, 3};,则数组 a 中元素 a[3] 的值是 ______。 答案:0 2. 若有定义 int a[3][4];,要输出数组 a 第二行第三列的元素,应该使用语句 printf("%d ", ______);。 答案:a[1][2] 3. 若有定义 char str[10] = "abc";,则 strlen(str) 的值是 ______。 答案:3 4. 有如下代码: char str1[20] = "hello"; char str2[] = "world"; strcat(str1, str2); 执行后 str1 中的字符串是 ______。 答案:helloworld 5. 若要将字符串 str2 复制到 str1 中,应使用的函数是 ______。 答案:strcpy 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {1, 2, 3, 4, 5}; int i; for (i = 0; i < 5; i++) { if (i % 2 == 0) { arr[i] *= 2; } } for (i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; } 2.以下程序的运行结果是______。 #include <stdio.h> int main() { int a[4] = {1, 2, 3, 4}; int b[4]; for (int i = 0; i < 4; i++) { b[i] = a[3 - i]; } for (int i = 0; i < 4; i++) { printf("%d ", b[i]); } return 0; } 3.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; int max = arr[0][0]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } } printf("%d ", max); return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {10, 20, 30, 40, 50}; int *p = arr; for (int i = 0; i < 5; i++) { printf("%d ", *(p + i)); } return 0; } 5.以下程序的运行结果是______。 #include <stdio.h> int main() { char str[] = "racecar"; int i = 0, j = 6; int isPalindrome = 1; while (i < j) { if (str[i] != str[j]) { isPalindrome = 0; break; } i++; j--; } if (isPalindrome) { printf("Yes "); } else { printf("No "); } return 0; } 五、编程题(本大题共5小题,每题5分,共25分) 1.用户输入二维数组的行数和列数(假设为方阵,即行数等于列数)以及各个元素,将该二维数组的行和列互换后输出。 2.用户输入一维整数数组的元素个数、各个元素以及要删除的元素,输出删除指定元素后的数组。 3.用户输入二维数组的行数和列数以及各个元素,找出每行的最大值并输出。 4.用户输入一维整数数组的元素个数和各个元素,找出数组中第二大的元素,若不存在则输出 -1。 5.用户输入一个字符串,去除字符串中多余的空格(连续的多个空格只保留一个)后输出。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

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