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

2025-09-09
| 2份
| 28页
| 137人阅读
| 0人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第16卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第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}; 2. 以下程序段的输出结果是( ) int a[5] = {1, 3, 5, 7, 9}; int *p = a; printf("%d ", *(p + 2)); A. 1 B. 3 C. 5 D. 7 3. 执行以下程序段的输出结果是( ) main( ) { int i, k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3; i++) p[i]=a[i*(i+1)]; for(i=0;i<3; i++) k+=p[i]*2; printf("%d ",k); getch();} A. 20 B. 21 C. 22 D. 23 4. 执行以下程序段的输出结果是( ) main( ) { int p[7]={11,13,14,15,16,17,18}; int i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i]; i++;} printf("%d ",k); getch();} A. 58 B. 56 C. 24 D. 42 5.执行以下程序的输出结果是( ) main( ) { int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]+1; printf("%d ",n[1]); getch();} A.0 B.1 C.2 D.3 6. 以下程序段的输出结果是( ) char str[] = "abc\0def"; printf("%s", str); A. abc\0def B. abc C. def D. 编译错误 7.若有 char str[] = "abcde";,则 strlen(str) 的返回值是( ) A. 5 B. 6 C. 7 D. 不确定 8.执行以下程序的输出结果是( ) main( ) { int p[7]={11,13,14,15,16,17,18}; int i=0,j=0; while(i<7&&p[i]%2==1)j+=p[i++]; printf("%d ",j); getch();} A. 25 B. 24 C. 26 D. 27 9. 有如下代码: char str[20]; strcpy(str, "hello"); strcat(str, " world"); int len = strlen(str); len 的值是( ) A. 5 B. 10 C. 11 D. 20 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; } 二、判断题(本大题共10小题,每小题2分,共20分) 1. 在C语言中,语句:int a[5]=(0,1,2,3,4,);可以对一维数组a进行初始化。( ) 2. 在C语言中,下列语句不能对一位数组a进行初始化。( ) #define N 10 int a[N]; 3. 若有以下数组说明,则i=10;a[a[i]]元素数值是6。( ) int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; 4. 若有定义 int a[2][3];,则数组 a 的最后一个元素是 a[2][3]。( ) 5. 可以使用 printf 函数输出字符数组中的单个字符。( ) 6. 有如下所示的程序,由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3。( ) main() {charp[]={'a','b','c'}; char q[10]={'a','b','c'}; printf("%d%d ",strlen(p),strlen(q));} 7.执行以下程序的输出结果为:3,4。( ) main() {char p[]={'a','b','c'},q[]="abc"; printf("%d,%d ",sizeof(p),sizeof(q));} 8. strcpy 函数复制字符串时会自动复制字符串结束标志 '\0'。( ) 9. 在使用一维数组进行循环时,循环变量的起始值和终止值可以根据需要任意设定,不会影响程序的正确性。( ) 10.执行以下语句的输出结果是:3。( ) char sp[]="\t\v\\\0will "; printf("%d",strlen(sp)); 三、填空题(本大题共5小题,每题2分,共10分) 1.下列程序的功能是读入20个整数,统计非负数个数,并计算非负数之和,横线处应该填入的代码是 ______。 main( ) { int i, a[20],s,count; s=count=0; for(i=0; i<20; i++) scanf("%d", &a[i] ); for(i=0; i<20; i++) {if( a[i]<0 ) continue ; ; count++;} printf("s=%d\t count=%d ", s, count);getch();} 2. 若有定义 int a[3][4];,要输出数组 a 第二行第三列的元素,应该使用语句 printf("%d ", ______);。 3. 若有定义 char str[10] = "abc";,则 strlen(str) 的值是 ______。 4. 有如下代码: char str1[20] = "hello"; char str2[] = "world"; strcat(str1, str2); 执行后 str1 中的字符串是 ______。 5. 下列程序的功能是按以下形式输出数组右上半三角,横线处应该填入的代码是 ______。 main( ) { int num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=1;j<=i;j++) printf("%4c",' '); for(j= ;j<4;j++) printf("%4d",num[i][j]); printf(" ");} getch();} 四、读程序写结果题(本大题共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> #include <conio.h> main( ) { int i,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d ",k); getch();} 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> #include <conio.h> main( ) { int n[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d ",n[i][j]); getch();} 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.编写程序,输出以下的杨辉三角形(要求输出10行)。 4.用户输入一维整数数组的元素个数和各个元素,找出数组中第二大的元素,若不存在则输出 -1。 5.编写程序,找出二维数组中的鞍点,即该位置上的元素在改行上最大、在该列上最小,一个二维数组也可能没有鞍点,但最多有一个鞍点。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第16卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第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. 执行以下程序段的输出结果是( ) main( ) { int i, k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3; i++) p[i]=a[i*(i+1)]; for(i=0;i<3; i++) k+=p[i]*2; printf("%d ",k); getch();} A. 20 B. 21 C. 22 D. 23 答案:B 4. 执行以下程序段的输出结果是( ) main( ) { int p[7]={11,13,14,15,16,17,18}; int i=0,k=0; while(i<7&&p[i]%2) {k=k+p[i]; i++;} printf("%d ",k); getch();} A. 58 B. 56 C. 24 D. 42 答案:C 5.执行以下程序的输出结果是( ) main( ) { int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]+1; printf("%d ",n[1]); getch();} A.0 B.1 C.2 D.3 答案:D 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.执行以下程序的输出结果是( ) main( ) { int p[7]={11,13,14,15,16,17,18}; int i=0,j=0; while(i<7&&p[i]%2==1)j+=p[i++]; printf("%d ",j); getch();} A. 25 B. 24 C. 26 D. 27 答案:B 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. 在C语言中,语句:int a[5]=(0,1,2,3,4,);可以对一维数组a进行初始化。( ) 答案:错误 2. 在C语言中,下列语句不能对一位数组a进行初始化。( ) #define N 10 int a[N]; 答案:错误 3. 若有以下数组说明,则i=10;a[a[i]]元素数值是6。( ) int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; 答案:正确 4. 若有定义 int a[2][3];,则数组 a 的最后一个元素是 a[2][3]。( ) 答案:错误 5. 可以使用 printf 函数输出字符数组中的单个字符。( ) 答案:正确 6. 有如下所示的程序,由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3。( ) main() {charp[]={'a','b','c'}; char q[10]={'a','b','c'}; printf("%d%d ",strlen(p),strlen(q));} 答案:正确 7.执行以下程序的输出结果为:3,4。( ) main() {char p[]={'a','b','c'},q[]="abc"; printf("%d,%d ",sizeof(p),sizeof(q));} 答案:正确 8. strcpy 函数复制字符串时会自动复制字符串结束标志 '\0'。( ) 答案:正确 9. 在使用一维数组进行循环时,循环变量的起始值和终止值可以根据需要任意设定,不会影响程序的正确性。( ) 答案:错误 10.执行以下语句的输出结果是:3。( ) char sp[]="\t\v\\\0will "; printf("%d",strlen(sp)); 答案:正确 三、填空题(本大题共5小题,每题2分,共10分) 1.下列程序的功能是读入20个整数,统计非负数个数,并计算非负数之和,横线处应该填入的代码是 ______。 main( ) { int i, a[20],s,count; s=count=0; for(i=0; i<20; i++) scanf("%d", &a[i] ); for(i=0; i<20; i++) {if( a[i]<0 ) continue ; ; count++;} printf("s=%d\t count=%d ", s, count);getch();} 答案:s+=a[i] 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. 下列程序的功能是按以下形式输出数组右上半三角,横线处应该填入的代码是 ______。 main( ) { int num[4][4]={{1,2,3,4},{5,6,7,8}, {9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=1;j<=i;j++) printf("%4c",' '); for(j= ;j<4;j++) printf("%4d",num[i][j]); printf(" ");} getch();} 答案:i 四、读程序写结果题(本大题共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> #include <conio.h> main( ) { int i,k,a[10],p[3]; k=5; for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf("%d ",k); getch();} 答案:21 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> #include <conio.h> main( ) { int n[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j]; printf("%d ",n[i][j]); getch();} 答案:6 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.编写程序,输出以下的杨辉三角形(要求输出10行)。 答案代码: #include <stdio.h> #include <conio.h> #define N 10 main( ) { int i,j,a[N][N]; for(i=0;i<N;i++) {a[i][i]=1; a[i][0]=1; } for(i=2;i<N;i++) for(j=1;j<=i-1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<N;i++) {for(j=0;j<=i;j++) printf("%6d",a[i][j]); printf(" "); } printf(" "); getch();} 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> #include <conio.h> #define N 3 #define M 4 main( ) { int i,j,k,a[N][M],max,maxj,flag; printf("please input matrix: "); for(i=0;i<N;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); for(i=0;i<N;i++) {max=a[i][0]; maxj=0; for(j=0;j<M;j++) if(a[i][j]>max) {max=a[i][j]; maxj=j;} flag=1; for(k=0;k<N;k++) if(max>a[k][maxj]) {flag=0; continue; } if(flag) {printf("鞍点为a[%d][%d]=%d ",i,maxj,max); break;}} if(!flag) printf("鞍点不存在! "); getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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