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

2025-09-09
| 2份
| 25页
| 94人阅读
| 0人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第17卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第17卷 《C语言程序设计》 (五)数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main( ) { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); getch();} A. 1,5,9, B. 1,4,7, C. 3,5,7, D. 3,6,9, 2.执行以下程序的输出结果是( ) main( ) { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } getch();} A. 2 5 8 B. 4 5 6 C. 3 6 9 D. 7 8 9 3. 以下对二维数组 a 进行正确初始化的语句是( ) A. int a[2][3] = {{1, 2}, {3, 4}, {5, 6}}; B. int a[][3] = {{1, 2, 3}, {4, 5, 6}}; C. int a[2][] = {{1, 2, 3}, {4, 5, 6}}; D. int a[2][3] = {1, 2, 3; 4, 5, 6}; 4.定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( ) for(i=0;i<3;i++) printf("%d ",x[i][2-i]); A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 5. 执行以下程序的输出结果是( ) main( ) { char s[]="abcde"; s+=2; printf("%d ",s[0]); getch();} A. 输出字符a的ASCII码 B. 输出字符c的ASCII码 C. 输出字符c D. 程序出错 6. 若有定义 char str1[10] = "abc", str2[10] = "def";,要将 str2 连接到 str1 后面,以下正确的操作是( ) A. str1 = str1 + str2; B. strcpy(str1, str2); C. strcat(str1, str2); D. strcat(str2, str1); 7. 执行以下程序的输出结果是( ) main( ) { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); getch();} A. 258 B. 852 C. 369 D. 741 8. 执行以下程序的输出结果是( ) int n[5]={0,0,0},i,k=2; for(i=0;i<k;i++) n[i]=n[i]+1; printf("%d ",n[k]); A. 0 B. 1 C. 2 D. 不确定值 9. 有一维数组 int arr[5] = {1, 2, 3, 4, 5};,以下代码的输出结果是( ) int sum = 0; for (int i = 0; i < 5; i++) { sum += arr[i]; } printf("%d", sum); A. 10 B. 15 C. 5 D. 20 10. 若要比较两个字符串 str1 和 str2 的大小,以下正确的做法是( ) A. if (str1 == str2) B. if (str1 > str2) C. if (strcmp(str1, str2) == 0) D. if (strcpy(str1, str2) == 0) 二、判断题(本大题共10小题,每小题2分,共20分) 1. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后。( ) 3. 在C语言中,语句:char str="\x43";可以正确定义字符串数组。( ) 3. 定义二维数组时,第一维的大小可以省略,但第二维的大小不能省略。( ) 4. 执行以下语句的输出结果是:6,6。( ) char s[]=" 123\\"; printf("%d,%d ",strlen(s),sizeof(s)); 5.执行下面的程序段后,变量k中的值为:30。( ) int k=3,s[2]; s[0]=k; k=s[1]*10; 6. 当使用 scanf 函数输入字符串时,遇到空格会自动停止输入。( ) 7. strcat 函数可以将任意长度的字符串连接到目标字符串后面,不会产生越界问题。( ) 8. 若 strcmp(str1, str2) 返回值为正,则表示 str1 的字典序小于 str2。( ) 9. 可以使用 strlen 函数来计算字符数组的大小。( ) 10. strcat 和 strcpy 函数都要求目标数组有足够的空间来存储结果。( ) 三、填空题(本大题共5小题,每题2分,共10分) 1. 若有定义 int a[5] = {1, 2, 3, 4, 5};,要输出数组 a 的第 3 个元素,应该使用语句 printf("%d ", ______);。 2. 若有定义 int a[2][3] = {{1, 2}, {4}};,则数组元素 a[0][2] 的值是 ______。 3. 下列程序的功能是产生一个10×10的方阵,要求该方阵副对角线上的元素均为2,其余元素均为0,最后输出该方阵,横线处应该填入的代码是 ______。 main( ) { int i,j;int a[10][10]={0}; for(i=0;i<10;i++) =2; for(i=0;i<10;i++) {for(j=0;j<10;j++) printf("%d ",a[i][j]); printf(" ");} getch();} 4.下列程序的功能是从键盘输入一个字符串,将其按照逆序输出。横线处应该填入的程序代码是 ______。 #include <stdio.h> #include<string.h> main( ) { char a[20];int i; gets(a); for(i= ;i>=0;i--) printf("%c",a[i]);getch();} 5. 有一维数组 int arr[5] = {1, 3, 5, 7, 9};,通过循环计算数组元素之和的代码如下,请补充完整: int sum = 0; for (int i = 0; i < ______; i++) { sum += arr[i]; } 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int i, f[10]; f[0]=f[1]=1; for(i=2;i<10;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<10;i++) { if(i%4==0) printf(" "); printf("%3d",f[i]); } getch();} 2.以下程序的运行结果是______。 #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; printf("%d ", n[i][j]);} printf(" ");} getch();} 3.以下程序的运行结果是______。 #include <stdio.h> int main() { char str1[] = "abc"; char str2[] = "def"; char str3[10]; int i = 0, j = 0; while (str1[i] != '\0') { str3[i] = str1[i]; i++; } while (str2[j] != '\0') { str3[i] = str2[j]; i++; j++; } str3[i] = '\0'; printf("%s ", str3); return 0; } 4.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; for(i=0;i<=1;i++) {for(j=0;j<=2;j++) b[j][i]=a[i][j]; } for(i=0;i<=2;i++) {for(j=0;j<=1;j++) printf("%5d",b[i][j]); } getch();} 5.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {5, 4, 3, 2, 1}; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; } 五、编程题(本大题共5小题,每题5分,共25分) 1. 用户输入一维整数数组的元素个数和各个元素,将该数组元素逆置后输出。 2.编写程序,在一个已经排好序的数组中,按照要求输入一个数之后,按原来排序的规律将它插入到数组中去。 3.编写程序,使用筛选法求100之内的素数。 4.用户输入二维数组的阶数(假设为方阵)和各个元素,计算主对角线和副对角线元素之和(如果是奇数阶矩阵,中间元素只加一次)并输出。 5.用户输入一维整数数组的元素个数和各个元素,使用插入排序算法对数组进行排序后输出。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第17卷,是知识点训练卷。按“C语言程序设计”考试纲要(五)数组的六点知识点要求编写,其六点要求是: 1.掌握数组和数组元素概念。2.掌握一维数值型数组的定义、引用、初始化。3.掌握二维数值型数组的定义、引用、初始化。4.了解字符数组的定义、引用、输入与输出。5.了解常用字符串处理函数:strlen()、strcat()、strcpy()、strcmp()。6.掌握简单一维数值型数组循环程序设计。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第17卷 《C语言程序设计》 (五)数组-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main( ) { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); getch();} A. 1,5,9, B. 1,4,7, C. 3,5,7, D. 3,6,9, 答案:C 2.执行以下程序的输出结果是( ) main( ) { int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]); } getch();} A. 2 5 8 B. 4 5 6 C. 3 6 9 D. 7 8 9 答案:C 3. 以下对二维数组 a 进行正确初始化的语句是( ) A. int a[2][3] = {{1, 2}, {3, 4}, {5, 6}}; B. int a[][3] = {{1, 2, 3}, {4, 5, 6}}; C. int a[2][] = {{1, 2, 3}, {4, 5, 6}}; D. int a[2][3] = {1, 2, 3; 4, 5, 6}; 答案:B 4.定义如下变量和数组: int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是( ) for(i=0;i<3;i++) printf("%d ",x[i][2-i]); A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9 答案:C 5. 执行以下程序的输出结果是( ) main( ) { char s[]="abcde"; s+=2; printf("%d ",s[0]); getch();} A. 输出字符a的ASCII码 B. 输出字符c的ASCII码 C. 输出字符c D. 程序出错 答案:D 6. 若有定义 char str1[10] = "abc", str2[10] = "def";,要将 str2 连接到 str1 后面,以下正确的操作是( ) A. str1 = str1 + str2; B. strcpy(str1, str2); C. strcat(str1, str2); D. strcat(str2, str1); 答案:C 7. 执行以下程序的输出结果是( ) main( ) { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); getch();} A. 258 B. 852 C. 369 D. 741 答案:B 8. 执行以下程序的输出结果是( ) int n[5]={0,0,0},i,k=2; for(i=0;i<k;i++) n[i]=n[i]+1; printf("%d ",n[k]); A. 0 B. 1 C. 2 D. 不确定值 答案:A 9. 有一维数组 int arr[5] = {1, 2, 3, 4, 5};,以下代码的输出结果是( ) int sum = 0; for (int i = 0; i < 5; i++) { sum += arr[i]; } printf("%d", sum); A. 10 B. 15 C. 5 D. 20 答案:B 10. 若要比较两个字符串 str1 和 str2 的大小,以下正确的做法是( ) A. if (str1 == str2) B. if (str1 > str2) C. if (strcmp(str1, str2) == 0) D. if (strcpy(str1, str2) == 0) 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1. 函数调用:strcat(strcpy(str1,str2),str3)的功能是将串str2复制到串str1中后再将串str3连接到串str1之后。( ) 答案:正确 3. 在C语言中,语句:char str="\x43";可以正确定义字符串数组。( ) 答案:错误 3. 定义二维数组时,第一维的大小可以省略,但第二维的大小不能省略。( ) 答案:正确 4. 执行以下语句的输出结果是:6,6。( ) char s[]=" 123\\"; printf("%d,%d ",strlen(s),sizeof(s)); 答案:错误 5.执行下面的程序段后,变量k中的值为:30。( ) int k=3,s[2]; s[0]=k; k=s[1]*10; 答案:错误 6. 当使用 scanf 函数输入字符串时,遇到空格会自动停止输入。( ) 答案:正确 7. strcat 函数可以将任意长度的字符串连接到目标字符串后面,不会产生越界问题。( ) 答案:错误 8. 若 strcmp(str1, str2) 返回值为正,则表示 str1 的字典序小于 str2。( ) 答案:错误 9. 可以使用 strlen 函数来计算字符数组的大小。( ) 答案:错误 10. strcat 和 strcpy 函数都要求目标数组有足够的空间来存储结果。( ) 答案:正确 三、填空题(本大题共5小题,每题2分,共10分) 1. 若有定义 int a[5] = {1, 2, 3, 4, 5};,要输出数组 a 的第 3 个元素,应该使用语句 printf("%d ", ______);。 答案:a[2] 2. 若有定义 int a[2][3] = {{1, 2}, {4}};,则数组元素 a[0][2] 的值是 ______。 答案:0 3. 下列程序的功能是产生一个10×10的方阵,要求该方阵副对角线上的元素均为2,其余元素均为0,最后输出该方阵,横线处应该填入的代码是 ______。 main( ) { int i,j;int a[10][10]={0}; for(i=0;i<10;i++) =2; for(i=0;i<10;i++) {for(j=0;j<10;j++) printf("%d ",a[i][j]); printf(" ");} getch();} 答案:a[i][9-i] 4.下列程序的功能是从键盘输入一个字符串,将其按照逆序输出。横线处应该填入的程序代码是 ______。 #include <stdio.h> #include<string.h> main( ) { char a[20];int i; gets(a); for(i= ;i>=0;i--) printf("%c",a[i]);getch();} 答案:strlen(a)-1 5. 有一维数组 int arr[5] = {1, 3, 5, 7, 9};,通过循环计算数组元素之和的代码如下,请补充完整: int sum = 0; for (int i = 0; i < ______; i++) { sum += arr[i]; } 答案:5 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int i, f[10]; f[0]=f[1]=1; for(i=2;i<10;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<10;i++) { if(i%4==0) printf(" "); printf("%3d",f[i]); } getch();} 答案: 1 1 2 3 5 8 13 21 34 55 2.以下程序的运行结果是______。 #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; printf("%d ", n[i][j]);} printf(" ");} getch();} 答案: 0 1 2 1 2 3 2 3 4 3.以下程序的运行结果是______。 #include <stdio.h> int main() { char str1[] = "abc"; char str2[] = "def"; char str3[10]; int i = 0, j = 0; while (str1[i] != '\0') { str3[i] = str1[i]; i++; } while (str2[j] != '\0') { str3[i] = str2[j]; i++; j++; } str3[i] = '\0'; printf("%s ", str3); return 0; } 答案:abcdef 4.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; for(i=0;i<=1;i++) {for(j=0;j<=2;j++) b[j][i]=a[i][j]; } for(i=0;i<=2;i++) {for(j=0;j<=1;j++) printf("%5d",b[i][j]); } getch();} 答案: 1 4 2 5 3 6 5.以下程序的运行结果是______。 #include <stdio.h> int main() { int arr[5] = {5, 4, 3, 2, 1}; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < 5; i++) { printf("%d ", arr[i]); } return 0; } 答案:1 2 3 4 5 五、编程题(本大题共5小题,每题5分,共25分) 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]); } int left = 0, right = n - 1; while (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } printf("逆置后的数组为: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 2.编写程序,在一个已经排好序的数组中,按照要求输入一个数之后,按原来排序的规律将它插入到数组中去。 答案代码: #include <stdio.h> #include <conio.h> main( ) { int a[11]={1,4,6,9,13,16,19,28,40,100}; int templ ,temp2 ,number,end,i,j; printf("array a: "); for(i=0;i<10;i++) printf("%5d",a[i]); printf(" "); printf("insert data:"); scanf("%d",&number); end=a[9]; if (number>end) a[10]=number; else {for(i=0;i<10;i++) {if (a[i]>number) {templ=a[i]; a[i]=number; for (j=i+1;j<11;j++) {temp2=a[j]; a[j]=templ; templ=temp2; } break; } } } printf("Now array a: "); for(i=0;i<11;i++) printf("%5d",a[i]); printf(" "); getch();} 3.编写程序,使用筛选法求100之内的素数。 答案代码: #include <stdio.h> #include <conio.h> #include<math.h> main( ) { int i,j,n,a[101]; //定义a数组包含101个元素 for(i=1;i<=100;i++) //a[0]不用,只用a[1]~a[100] a[i]=i; //使[1]~a[100]的值为1~100 a[1]=0; //先“挖掉"[1] for(i=2;i<sqrt(100);i++) for (j=i+1;j<=100;j++) {if(a[i]!=0 &&a[j]!=0) if (a[j]%a[i]==0) a[j]=0; //把非素数“挖掉” } printf(" "); for(i=2,n=0;i<=100;i++) {if(a[i]!=0) //选出值不为0的数组元素,即素数 {printf("%5d",a[i]); //输出素数,宽度为5列 n++; //累积本行已输出的数据个数 } if(n==10) {printf(" "); n=0; } } printf(" "); getch();} 4.用户输入二维数组的阶数(假设为方阵)和各个元素,计算主对角线和副对角线元素之和(如果是奇数阶矩阵,中间元素只加一次)并输出。 答案代码: #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 sum = 0; for (int i = 0; i < n; i++) { sum += arr[i][i]; sum += arr[i][n - 1 - i]; } if (n % 2 == 1) { int mid = n / 2; sum -= arr[mid][mid]; } printf("对角线元素之和为: %d ", sum); return 0; } 5.用户输入一维整数数组的元素个数和各个元素,使用插入排序算法对数组进行排序后输出。 答案代码: #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]); } for (int i = 1; i < n; i++) { int key = arr[i]; int j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } printf("排序后的数组为: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf(" "); return 0; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $

资源预览图

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