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

2025-09-21
| 2份
| 14页
| 79人阅读
| 0人下载

资源信息

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

内容正文:

《编程语言基础——C语言》高等教育出版社(第五版) 第五章 数组 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.在C语言中,一位数组的定义方式为:类型说明符 数组名( ) A. [常量表达式] B.[整型常量名] C. [整型常量或整型表达式] D. [整型常量] 答案:A 2.以下错误的数组定义形式是( ) A.int a[10]; B.int a[3+2]; C.int a[3*3]; D.int a[3.2]; 答案:D 3.以下正确的数组定义形式是( ) A.int n;scanf(“%d”,&n);int a[n]; B.int a[1…10]; C.int a[3.2]; D.#define N 10 int a[N]; 答案:D 4.以上对一堆整型数据a进行正确初始化的语句是( ) A.int a[10]=(0,0,0,0,0); B.int a[10]={}; C.int a[]={}; D.int a[10]={10*1}; 答案:D 5.在C语言中,有语句“int a[]={0,1,2,3};”,则数组a的长度是( ) A.3 B.4 C.5 D.6 答案: B 6.在C语言中,有语句“char ch[10];”,则数组ch所占字节数为( ) A.10 B.11 C.12 D.20 答案: A 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]);} A.258 B.741 C.852 D.369 答案: C 8.以下程序段的输出结果是_________________。 main(){ int p[7]={11,13,14,15,16,17,18}; i=0;k=0; while(i<7&&p[i]%2) {k=k+P[i];i++;} printf(“%d ”,k);} A.58 B.56 C.45 D.24 答案:D 9.若有说明int a[5][4],则对数组元素正确引用的是( ) A.a[3+1][2*2]; B.a(2+1)(0); C.a[2+2,3]; D.a[2*2][3]; 答案:D 10.若有说明:int a[3][4],则对a数组元素的正确引用是( ) A.a[2][4]; B.a[1,3]; C.a[1+1][0]; D.a(2)(1); 答案:C 11. 下列二维数组初始化语句中,正确的是( ) A.int a[][3]={8,0,7,0,3,1,2,5}; B.int a[][]={{9,3,1},{8,4,2},{3,5,7}}; C.flota a[2][3]={{1,2},{3,4},{5,6}}; D.float a[3][]={{1,2,3},{4,5,6},{7,8,9}}; 答案:A 12.以下不能正确定义二维数组的选项是( ) A.int a[2][2]={{1},{2}}; B.int a[][2]={1,2,3,4}; C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}}; 答案:D 13. 以下对二维数组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][0]={{1,0,1},{1},{1,1}}; 答案:B 14.以下对二维数组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][4]={1,2,3}; D.int a[][3]={{1,0,1},{1},{1,1}}; 答案:A 15.对于以下定义正确的叙述为( ) char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; A.数组x和数组y等价 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度 答案:C 16.以下不能正确进行字符串赋初值的语句是( ) A.char str[5]="good!"; B.char str[]="good!"; C.char *str="good!"; D.char str[5]={'g','o','o','d'}; 答案:A 17.设有以下变量定义:char str[20],i;当输入“zhang空格hong回车”时,能输入“zhang hong”的程序段是( ) A.scanf(“%s”,str); B.for(i=0,str[i]=getchar();str[i]!=' ';) str[i++]=getchar(); C.gets(str); D.for(i=0,str[i]=getchar();str[i]!='\0';i++) str[i]=scanf("%c",str[i]); 答案:C 18.以下程序段printf("%d ",strlen("ATS 012\1\\")); 的输出结果是( ) A.11 B.10 C.9 D.8 答案:C 19. 以下语句 printf("%d ",strlen("\t\"\065\xff ")); 的输出结果是( ) A.5 B.14 C.8 D.9 答案:A 20.以下程序段char s[]="\\141\141abc\t";printf("%d ",strlen(s));的输出结果是( ) A.9 B.12 C.13 D.14 答案:A 21. 以下程序段char str[]="ab \012\\\"";printf("%d ",strlen(str));的输出结果是( ) A.3 B.4 C.6 D.12 答案:C 22.若有以下说明和语句,则输出结果是( ) char sp[]="\t \\0wi11 ";printf("%d ",strlrn(sp)); A.4 B.3 C.9 D.字符串中有非法字符 答案:C 23. 以下程序的输出结果是( ) #include<string.h> main(){ char *p="abcde\0fghik\0"; printf("%d ",strlen(p));} A.12 B.15 C.6 D.5 答案:D 24.有以下程序,执行后输出结果是( ) char a[]="abcdefg",b[10]="abcdefg"; printf("%d %d ",sizeof(a),sizeof(b)); A.7 7 B.8 8 C.8 10 D.10 10 答案:C 25.函数调用:strcat(strcpy(str1,str2),str3)的功能是( ) A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2中后再连接到串str3之后 C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1中后再将串str1复制到串str3之后 答案:C 二、简答题(本题共5小题,每题6分,共30分) 26. 以下程序的输出结果是【 】。 int a[5],i; for(i=0;i<5;i++) {a[i]=2*i+1; printf(“%d ”,a[i]);} 答案:1 3 5 7 9 27. 以下程序的运行结果是【 】。 int a[3][3]={1,2,3,4,5,6,7,8,9}; int i,j,s=0; for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j]; printf("%d ",s); 答案:11 28. 以下程序的运行结果是【 】。 #include<stdio.h> main(){ int a[4],i; for(i=0;i<4;i++) {a[i]=i*2+1; printf("a[%d]=%d",i,a[i]);} } 答案:a[0]=1 a[1]=3 a[2]=5 a[3]=7 29. 以下程序的运行结果是【 】。 #include<stdio.h> main(){ int i,a[]={0,0,0,0,0}; for(i=1;i<=4;i++) {a[i]=a[i-1]*2+1; printf("%d",a[i]);} } 答案:1 3 7 15 30. 以下程序的运行结果是【 】。 #include<stdio.h> 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[k]);} 答案:0 三、案例分析题(本题共2小题,共20分) 31.已知一维整型数组a中的数已按由小到大的顺序排序,编写程序,删去一维数组中所有相同的数,使之只剩一个。例如:a数组中元素为{2, 2, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10, 10}; 【参考程序】#include <stdio.h> main() { int a[20] = {2, 2, 2, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10, 10}; int i, j; printf("请输入 "); for (i = 0; i < 20; i++) printf("%3d", a[i]); for (j = 1, i = 1; i < 20; i++) if (a[j - 1] != a[i]) a[j++] = a[i]; printf("请输出 "); for (i = 0; i < j; i++) printf("%3d", a[i]); } 32.计算并输出杨辉三角形的前10行。杨辉三角形的前5行如图a所示,其中最左和最有两个数均为1,中间的每个元素等于左上方和右上方两个元素之和。 提示:可将杨辉三角形存于一个二维数组中,如图b所示。 1 1 1 1 1 1 1 2 1 1 2 1 1 3 3 1 1 3 3 1 1 4 6 4 1 1 4 6 4 1 图a 图b 【参考程序】#include <stdio.h> //#define N 10 // 定义杨辉三角的行数 int main() { int i, j, a[10][10] = {0}; // 初始化二维数组 // 初始化杨辉三角的第一列和最后一列 for (i = 0; i < N; i++) { a[i][0] = 1; // 第一列置为1 a[i][i] = 1; // 最后一列置为1 } // 计算杨辉三角的其他元素 for (i = 2; i < 10; i++) { for (j = 1; j < i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; // 当前元素等于上一行的左右两个元素之和 } } // 打印杨辉三角 for (i = 0; i < 10; i++) { for (j = 0; j <= i; j++) { printf("%d ", a[i][j]); // 打印当前元素,并保持一定的格式 } printf(" "); // 每打印完一行后换行 } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 《编程语言基础——C语言》高等教育出版社(第五版) 第五章 数组 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共25小题,每题2分,共50分) 1.在C语言中,一位数组的定义方式为:类型说明符 数组名( ) A. [常量表达式] B.[整型常量名] C. [整型常量或整型表达式] D. [整型常量] 2.以下错误的数组定义形式是( ) A.int a[10]; B.int a[3+2]; C.int a[3*3]; D.int a[3.2]; 3.以下正确的数组定义形式是( ) A.int n;scanf(“%d”,&n);int a[n]; B.int a[1…10]; C.int a[3.2]; D.#define N 10 int a[N]; 4.以上对一堆整型数据a进行正确初始化的语句是( ) A.int a[10]=(0,0,0,0,0); B.int a[10]={}; C.int a[]={}; D.int a[10]={10*1}; 5.在C语言中,有语句“int a[]={0,1,2,3};”,则数组a的长度是( ) A.3 B.4 C.5 D.6 6.在C语言中,有语句“char ch[10];”,则数组ch所占字节数为( ) A.10 B.11 C.12 D.20 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]);} A.258 B.741 C.852 D.369 8.以下程序段的输出结果是_________________。 main(){ int p[7]={11,13,14,15,16,17,18}; i=0;k=0; while(i<7&&p[i]%2) {k=k+P[i];i++;} printf(“%d ”,k);} A.58 B.56 C.45 D.24 9.若有说明int a[5][4],则对数组元素正确引用的是( ) A.a[3+1][2*2]; B.a(2+1)(0); C.a[2+2,3]; D.a[2*2][3]; 10.若有说明:int a[3][4],则对a数组元素的正确引用是( ) A.a[2][4]; B.a[1,3]; C.a[1+1][0]; D.a(2)(1); 11. 下列二维数组初始化语句中,正确的是( ) A.int a[][3]={8,0,7,0,3,1,2,5}; B.int a[][]={{9,3,1},{8,4,2},{3,5,7}}; C.flota a[2][3]={{1,2},{3,4},{5,6}}; D.float a[3][]={{1,2,3},{4,5,6},{7,8,9}}; 12.以下不能正确定义二维数组的选项是( ) A.int a[2][2]={{1},{2}}; B.int a[][2]={1,2,3,4}; C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}}; 13. 以下对二维数组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][0]={{1,0,1},{1},{1,1}}; 14.以下对二维数组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][4]={1,2,3}; D.int a[][3]={{1,0,1},{1},{1,1}}; 15.对于以下定义正确的叙述为( ) char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; A.数组x和数组y等价 B.数组x和数组y的长度相同 C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度 16.以下不能正确进行字符串赋初值的语句是( ) A.char str[5]="good!"; B.char str[]="good!"; C.char *str="good!"; D.char str[5]={'g','o','o','d'}; 17.设有以下变量定义:char str[20],i;当输入“zhang空格hong回车”时,能输入“zhang hong”的程序段是( ) A.scanf(“%s”,str); B.for(i=0,str[i]=getchar();str[i]!=' ';) str[i++]=getchar(); C.gets(str); D.for(i=0,str[i]=getchar();str[i]!='\0';i++) str[i]=scanf("%c",str[i]); 18.以下程序段printf("%d ",strlen("ATS 012\1\\")); 的输出结果是( ) A.11 B.10 C.9 D.8 19. 以下语句 printf("%d ",strlen("\t\"\065\xff ")); 的输出结果是( ) A.5 B.14 C.8 D.9 20.以下程序段char s[]="\\141\141abc\t";printf("%d ",strlen(s));的输出结果是( ) A.9 B.12 C.13 D.14 21. 以下程序段char str[]="ab \012\\\"";printf("%d ",strlen(str));的输出结果是( ) A.3 B.4 C.6 D.12 22.若有以下说明和语句,则输出结果是( ) char sp[]="\t \\0wi11 ";printf("%d ",strlrn(sp)); A.4 B.3 C.9 D.字符串中有非法字符 23. 以下程序的输出结果是( ) #include<string.h> main(){ char *p="abcde\0fghik\0"; printf("%d ",strlen(p));} A.12 B.15 C.6 D.5 24.有以下程序,执行后输出结果是( ) char a[]="abcdefg",b[10]="abcdefg"; printf("%d %d ",sizeof(a),sizeof(b)); A.7 7 B.8 8 C.8 10 D.10 10 25.函数调用:strcat(strcpy(str1,str2),str3)的功能是( ) A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2中后再连接到串str3之后 C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1中后再将串str1复制到串str3之后 二、简答题(本题共5小题,每题6分,共30分) 26. 以下程序的输出结果是【 】。 int a[5],i; for(i=0;i<5;i++) {a[i]=2*i+1; printf(“%d ”,a[i]);} 27. 以下程序的运行结果是【 】。 int a[3][3]={1,2,3,4,5,6,7,8,9}; int i,j,s=0; for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j]; printf("%d ",s); 28. 以下程序的运行结果是【 】。 #include<stdio.h> main(){ int a[4],i; for(i=0;i<4;i++) {a[i]=i*2+1; printf("a[%d]=%d",i,a[i]);} } 29. 以下程序的运行结果是【 】。 #include<stdio.h> main(){ int i,a[]={0,0,0,0,0}; for(i=1;i<=4;i++) {a[i]=a[i-1]*2+1; printf("%d",a[i]);} } 30. 以下程序的运行结果是【 】。 #include<stdio.h> 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[k]);} 三、案例分析题(本题共2小题,共20分) 31.已知一维整型数组a中的数已按由小到大的顺序排序,编写程序,删去一维数组中所有相同的数,使之只剩一个。例如:a数组中元素为{2, 2, 3, 3, 4, 4, 5, 6, 6, 6, 6, 7, 7, 8, 9, 9, 10, 10, 10, 10}; 32.计算并输出杨辉三角形的前10行。杨辉三角形的前5行如图a所示,其中最左和最有两个数均为1,中间的每个元素等于左上方和右上方两个元素之和。 提示:可将杨辉三角形存于一个二维数组中,如图b所示。 1 1 1 1 1 1 1 2 1 1 2 1 1 3 3 1 1 3 3 1 1 4 6 4 1 1 4 6 4 1 图a 图b 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

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