第五章 数组《编程语言基础-C语言》(高教版第五版)章节过关卷

2025-03-04
| 2份
| 11页
| 315人阅读
| 4人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 第5章 数组
类型 作业-单元卷
知识点 数组
使用场景 同步教学-单元练习
学年 2025-2026
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 256 KB
发布时间 2025-03-04
更新时间 2025-03-04
作者 糖醋排骨009
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2025-03-04
下载链接 https://m.zxxk.com/soft/50787457.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《编程语言基础——C语言》高等教育出版社(第五版) 第五章 数组 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1. 以下对一维数组a的定义中正确的是( ) A. char a(10); B.int a[0..10]; C. int a[10]; D. int c=10; int a[c]; 2. 以下对一维数组的定义中不正确的是( ) A. double x[5]={2.0,0,6.0,8.0,10.0}; B. int y[5]={2,1,3,5,7,9}; C. char z[ ]={‘1’,‘2’,‘3’}; D. char h[ ]={‘\x10’,‘\xa’,‘\x8’}; 3. 以下对二维数组的定义中正确的是( ) A. int a[3][]={1,2,3,4,5,6}; B. int a[][3]; C.int a[][3]={1,2,3,4,5,6}; D. inta[][]={{1,2,3},{4,5,6}}; 4. 假定一个 int型变量占用两个字节,若有定义:int x[5]={0,2,4};则数组x在内存中所占字节数是( ) A.6 B.10 C.20 D.3 5. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int a[4][4]={{1,4,5},{8,4,6},{3,6,7}}; printf("%d%d%d%d ",a[1][3],a[1][0],a[3][1],a[3][2]); getch(); } A.0800 B.1450 C.4860 D.5136 6. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int m[][3]={1,4,7,2, 5,8, 3, 6,9};int i,k=1; for(i=0; i<3; i++)printf("%d ", m[k][i]); getch(); } A.456 B.258 C.369 D.789 7. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int b[3][3]={0,1,2,2, 0, 2, 3, 1,2},i, j,t=0; for(i=0;i<3;i++) for(j=i; j<=i;j++) t=t+b[i][b[j][j]]; printf("%d ",t); getch();} A.3 B.4 C.1 D.9 8. 若有定义:int a[5][5];,则引用数组元素正确的是( ) A. a[0][5] B. a[0][4] C. a[5][5] D. a[2][2+3] 9. 若有定义:int ch1[10];,则不能代表数组元素ch1[1]地址的是( ) A.&ch1[0]+1 B.&ch1[l] C.&ch1[0]++ D.ch1+1 10. 以下程序的输出结果是( ) #include "string.h" main( ) { char p[5][10]={ "abe5","aabdfg78","dcd22be", "33abbd","cdff5"}: printf("%d ", strlen(p[4]));} A.5 B.6 C.8 D.7 11. 以下能正确定义二维数组的是( ) A.int a[][5]; B. int a[][5]={2}; C.int a[][5]={}; D.int a[2][5]={{1}},{2}, {3,4}}; 12. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> 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][i]); getch();} A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 13. 下列描述中,不正确的一项是( ) A.字符型数组中可以存放字符串 B.可以对字符串进行整体输入、输出 C.可以对浮点型数组进行整体输入、输出 D.不能在复制语句中通过赋值运算符对字符型数组进行整体赋值 14. 设有定义:char a[10]=“ABCD”;,则a[4]的值为( ) A.“ABCD” B.‘\0’ C.‘D’ D.0 15. 设有定义:char s[15]=“it is string”;则printf(“%d”,strlen(s));的输出结果是( ) A.12 B.13 C.15 D.14 16. 语句strcat(strcpy(str1,str2),str3);的功能是( ) A. 将字符串 str2 复制到字符串 str1 后再将字符串str3 连接到字符串 str1 之后。 B. 将字符串 str2 连接到字符串 str1 后再将字符串 str1 复制到字符串 str3 中。 C. 将字符串 str1 连接到字符串 str2中后再复制到字符串 str3之后。 D. 以上说法均不准确 17. 若有如下定义,则正确的叙述为( ) char x[]="abcde"; char y[]={'a’,’b’,’c','d’,'e’}; A.数组x和数组y相等 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组y的长度大于数组x的长度 18. 若有定义:char array []=“china”;则数组array所占空间为( )字节。 A.4 B.6 C.5 D.7 19. 以下关于字符数组的描述中,错误的一项是( ) A.字符数组可以存放字符串 B.字符数组中的字符串可以进行整体输入输出 C.可以在使用赋值运算符对字符数组进行整体赋值 D.不可以使用关系运算符对字符串进行比较 20. 以下关于数组的描述中,正确的一项是( ) A.数组的大小是固定的,但是数组中的元素可以是不同类型 B.数组的大小是固定的,但是数组中的元素必须是相同类型 C.数组的大小是可变的,但是数组中的元素可以是不同类型 D.数组的大小是可变的,但是数组中的元素必须是相同类型 二、程序运行结果题(本题共7小题,每题3分,共21分) 21. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[5]={0}; int i,b[10]={2,2,5,3,2,4,3,1,3,5}; for(i=0;i<5;i++) a[b[i]]++; for(i=0;i<5;i++) printf( "%d ",a[i]); getch(); } 22. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i,k,a[10],p[3]; k=8; 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(); } 23. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i,j,row,col,max; int a[3][4]={{1,1,3,4},{9,8,7,6},{-1,-3,0,11}}; max=a[0][0]; row=0;col=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max) {max=a[i][j];row=i;col=j; } printf( " max=%d,row=%d,co1=%d ",max,row,col); getch();} 24. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[3][3]={{1,8},{2,3},{4,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d",s); getch(); } 25. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[5],i,m=10,k=8; for(i=0;i<5;i++) a[i]=m%k; for(i--;i>=0;i--) printf("%d", a[i]); getch(); } 26. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { char str[50]="welcome2025"; int i,n=0; for(i=0;str[i]!='\0';i++) if('0'<=str[i]&& str[i]<='9') n=n *10+str[i]-'0'; printf("result =%d ",n); getch(); } 27. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> main( ) { char s[]="cdyhggert",t; int i=0,j=strlen(s)-1; while(i<j-1) {t=s[j];s[j]=s[i];s[i]=t;i++;j--;} puts(s); getch(); } 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 28. 下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include <stdio.h> #include <string.h> main() { char a[="language",t; int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2;j<k;【1】) if(【2】){t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(" "); } 29. 下面程序的功能是把给定的字符按其矩阵格式读入数组str中,并输出行号与列号之和为3的数组元素。请填空。 #include<sydio.h> main() { char str[4][3]={‘A',‘b','c,‘d',‘E',‘f’,‘G',‘h',‘T’,‘j',’K',‘T'}; int x, y, z; for(x=0; x<4; x++) for (y=0;【1】; y++) {z=x+y; if(【2】) printf("%c ",【3】); }} 30. 下面程序的功能是输入一个3x3的实数矩阵,求两条对角线元素中各自的最大值。请填空。 #include<stdio.h> main() { float s[3][3],max1,max2,x; int i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) { scanf("%f", &x); s[i][j]=x; } maxl=【1】 ; for(i=1; i<3;i++) if(【2】) max1=s[i][i]; max2=【3】 ; if(max2<s[1][1]) max2=s[1][1]; if(max2<s[2][0]) max2=s[2][0]; printf("max1=%fn",maxl); printf("max2=%f ",max2);} 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共15分) 下面程序的功能是统计年龄在16~31岁之间的学生人数。程序中有三处错误,请改正。L1 #include <stdio.h> L2 main( ) L3 {int a[30], n , age,i; L4 for(i=0;i<30;i++) a[i]=0; L5 printf(“Enter the number of the students(<30) "); L6 scanf("%d",&n); L7 printf("Enter the age of each student: "); L8 for(i=0;i<n;i++) L9 { scanf("%d",age); L10 a[age]++;} L11 printf("the result is "); L12 printf(" age number "); L13 for(i=16;i<32;i++) L14 printf("%3d %6d ",i,a[i]);} 31. 下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有 a[i][j]=a[j][i]),程序中有两处错误,请改正。 L1 #include <stdio.h> L2 main( ) L3 { int a[4][4]={l,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; L4 int i,j,found=0; L5 for(j=0;j<4;j++) L6 for(i=j;i<4;i++) L7 if(a[j][i]!=a[i][j]) L8 {found=0;break;} L9 if(found= =1) printf("No"); L10 else printf("Yes");} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 《编程语言基础——C语言》高等教育出版社(第五版) 第五章 数组 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1. 以下对一维数组a的定义中正确的是( ) A. char a(10); B.int a[0..10]; C. int a[10]; D. int c=10; int a[c]; 答案:C 2. 以下对一维数组的定义中不正确的是( ) A. double x[5]={2.0,0,6.0,8.0,10.0}; B. int y[5]={2,1,3,5,7,9}; C. char z[ ]={‘1’,‘2’,‘3’}; D. char h[ ]={‘\x10’,‘\xa’,‘\x8’}; 答案:B 3. 以下对二维数组的定义中正确的是( ) A. int a[3][]={1,2,3,4,5,6}; B. int a[][3]; C.int a[][3]={1,2,3,4,5,6}; D. inta[][]={{1,2,3},{4,5,6}}; 答案:C 4. 假定一个 int型变量占用两个字节,若有定义:int x[5]={0,2,4};则数组x在内存中所占字节数是( ) A.6 B.10 C.20 D.3 答案:B 5. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int a[4][4]={{1,4,5},{8,4,6},{3,6,7}}; printf("%d%d%d%d ",a[1][3],a[1][0],a[3][1],a[3][2]); getch(); } A.0800 B.1450 C.4860 D.5136 答案:A 6. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int m[][3]={1,4,7,2, 5,8, 3, 6,9};int i,k=1; for(i=0; i<3; i++)printf("%d ", m[k][i]); getch(); } A.456 B.258 C.369 D.789 答案:B 7. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int b[3][3]={0,1,2,2, 0, 2, 3, 1,2},i, j,t=0; for(i=0;i<3;i++) for(j=i; j<=i;j++) t=t+b[i][b[j][j]]; printf("%d ",t); getch();} A.3 B.4 C.1 D.9 答案:B 8. 若有定义:int a[5][5];,则引用数组元素正确的是( ) A. a[0][5] B. a[0][4] C. a[5][5] D. a[2][2+3] 答案:B 9. 若有定义:int ch1[10];,则不能代表数组元素ch1[1]地址的是( ) A.&ch1[0]+1 B.&ch1[l] C.&ch1[0]++ D.ch1+1 答案:C 10. 以下程序的输出结果是( ) #include "string.h" main( ) { char p[5][10]={ "abe5","aabdfg78","dcd22be", "33abbd","cdff5"}: printf("%d ", strlen(p[4]));} A.5 B.6 C.8 D.7 答案:A 11. 以下能正确定义二维数组的是( ) A.int a[][5]; B. int a[][5]={2}; C.int a[][5]={}; D.int a[2][5]={{1}},{2}, {3,4}}; 答案:B 12. 以下程序的输出结果是( ) #include<stdio.h> #include<conio.h> 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][i]); getch();} A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 答案:A 13. 下列描述中,不正确的一项是( ) A.字符型数组中可以存放字符串 B.可以对字符串进行整体输入、输出 C.可以对浮点型数组进行整体输入、输出 D.不能在复制语句中通过赋值运算符对字符型数组进行整体赋值 答案:C 14. 设有定义:char a[10]=“ABCD”;,则a[4]的值为( ) A.“ABCD” B.‘\0’ C.‘D’ D.0 答案:B 15. 设有定义:char s[15]=“it is string”;则printf(“%d”,strlen(s));的输出结果是( ) A.12 B.13 C.15 D.14 答案:A 16. 语句strcat(strcpy(str1,str2),str3);的功能是( ) A. 将字符串 str2 复制到字符串 str1 后再将字符串str3 连接到字符串 str1 之后。 B. 将字符串 str2 连接到字符串 str1 后再将字符串 str1 复制到字符串 str3 中。 C. 将字符串 str1 连接到字符串 str2中后再复制到字符串 str3之后。 D. 以上说法均不准确 答案:A 17. 若有如下定义,则正确的叙述为( ) char x[]="abcde"; char y[]={'a’,’b’,’c','d’,'e’}; A.数组x和数组y相等 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组y的长度大于数组x的长度 答案:C 18. 若有定义:char array []=“china”;则数组array所占空间为( )字节。 A.4 B.6 C.5 D.7 答案:B 19. 以下关于字符数组的描述中,错误的一项是( ) A.字符数组可以存放字符串 B.字符数组中的字符串可以进行整体输入输出 C.可以在使用赋值运算符对字符数组进行整体赋值 D.不可以使用关系运算符对字符串进行比较 答案:C 20. 以下关于数组的描述中,正确的一项是( ) A.数组的大小是固定的,但是数组中的元素可以是不同类型 B.数组的大小是固定的,但是数组中的元素必须是相同类型 C.数组的大小是可变的,但是数组中的元素可以是不同类型 D.数组的大小是可变的,但是数组中的元素必须是相同类型 答案:B 二、程序运行结果题(本题共7小题,每题3分,共21分) 21. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[5]={0}; int i,b[10]={2,2,5,3,2,4,3,1,3,5}; for(i=0;i<5;i++) a[b[i]]++; for(i=0;i<5;i++) printf( "%d ",a[i]); getch(); } 答案:0 0 3 1 0 22. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i,k,a[10],p[3]; k=8; 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(); } 答案:24 23. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i,j,row,col,max; int a[3][4]={{1,1,3,4},{9,8,7,6},{-1,-3,0,11}}; max=a[0][0]; row=0;col=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max) {max=a[i][j];row=i;col=j; } printf( " max=%d,row=%d,co1=%d ",max,row,col); getch();} 答案:max=11,row=2,co1=3 24. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[3][3]={{1,8},{2,3},{4,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j]; printf("%d",s); getch(); } 答案:15 25. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a[5],i,m=10,k=8; for(i=0;i<5;i++) a[i]=m%k; for(i--;i>=0;i--) printf("%d", a[i]); getch(); } 答案:22222 26. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { char str[50]="welcome2025"; int i,n=0; for(i=0;str[i]!='\0';i++) if('0'<=str[i]&& str[i]<='9') n=n *10+str[i]-'0'; printf("result =%d ",n); getch(); } 答案:result =2025 27. 以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> #include<string.h> main( ) { char s[]="cdyhggert",t; int i=0,j=strlen(s)-1; while(i<j-1) {t=s[j];s[j]=s[i];s[i]=t;i++;j--;} puts(s); getch(); } 答案:tregghydc 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 28. 下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。 #include <stdio.h> #include <string.h> main() { char a[="language",t; int i, j, k; k=strlen(a); for(i=0; i<=k-2; i+=2) for(j=i+2;j<k;【1】) if(【2】){t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(" "); } 答案: 【1】j=j+2或j+=2 【2】a[i]>a[j] 29. 下面程序的功能是把给定的字符按其矩阵格式读入数组str中,并输出行号与列号之和为3的数组元素。请填空。 #include<sydio.h> main() { char str[4][3]={‘A',‘b','c,‘d',‘E',‘f’,‘G',‘h',‘T’,‘j',’K',‘T'}; int x, y, z; for(x=0; x<4; x++) for (y=0;【1】; y++) {z=x+y; if(【2】) printf("%c ",【3】); }} 答案: 【1】y<3 【2】z==3 【3】str[x][y] 30. 下面程序的功能是输入一个3x3的实数矩阵,求两条对角线元素中各自的最大值。请填空。 #include<stdio.h> main() { float s[3][3],max1,max2,x; int i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) { scanf("%f", &x); s[i][j]=x; } maxl=【1】 ; for(i=1; i<3;i++) if(【2】) max1=s[i][i]; max2=【3】 ; if(max2<s[1][1]) max2=s[1][1]; if(max2<s[2][0]) max2=s[2][0]; printf("max1=%fn",maxl); printf("max2=%f ",max2);} 答案: 【1】s[0][0] 【2】max1<s[i][i] 【3】s[0][2] 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共15分) 31. 下面程序的功能是统计年龄在16~31岁之间的学生人数。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 main( ) L3 {int a[30], n , age,i; L4 for(i=0;i<30;i++) a[i]=0; L5 printf(“Enter the number of the students(<30) "); L6 scanf("%d",&n); L7 printf("Enter the age of each student: "); L8 for(i=0;i<n;i++) L9 { scanf("%d",age); L10 a[age]++;} L11 printf("the result is "); L12 printf(" age number "); L13 for(i=16;i<32;i++) L14 printf("%3d %6d ",i,a[i]);} 答案: 【1】L9 { scanf("%d",&age); 【2】L10 a[age-16]++;} 【3】L14 printf("%3d %6d ",i,a[i-16]);} 32. 下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有 a[i][j]=a[j][i]),程序中有两处错误,请改正。 L1 #include <stdio.h> L2 main( ) L3 { int a[4][4]={l,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; L4 int i,j,found=0; L5 for(j=0;j<4;j++) L6 for(i=j;i<4;i++) L7 if(a[j][i]!=a[i][j]) L8 {found=0;break;} L9 if(found= =1) printf("No"); L10 else printf("Yes");} 答案: 【1】L6 for(i=j+1;i<4;i++) 【2】L8 {found=1;break;} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第五章  数组《编程语言基础-C语言》(高教版第五版)章节过关卷
1
第五章  数组《编程语言基础-C语言》(高教版第五版)章节过关卷
2
第五章  数组《编程语言基础-C语言》(高教版第五版)章节过关卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。