任务22:数组的应用 《编程语言-C语言》45分钟专题训练

| 2份
| 28页
| 118人阅读
| 2人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目四: 数组 第22卷: 数组的应用 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.执行以下程序段的输出结果是( ) int i,j=0; char a[ ]="How are you",b[10]={0}; for(i=0;a[i];i++) if(a[i]==' ') b[j++]=a[i+1]; printf("%s",b); A.Hay B.How are you C.we D.ay 【答案】D 2.执行以下程序段的输出结果是( ) 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.369 D.852 【答案】D 3.执行以下程序段的输出结果是( ) char s[20]="I like it.",t[20]="Are you?",c[20];int i=0; while(s[++i]!='\0')t[i]=s[i];t[i]=0;printf("string s:%s ",s); A.string s:I like it. B.string s: Are you? C.string s:I like it.Are you? D. string s: Are you? I like it. 【答案】A 4.执行以下程序段的输出结果是( ) char s[ ]="2473",c,i; for(i=0;c=s[i];i++) switch(c-'0') {case 2:case 3:putchar(c+4);continue; case 4:putchar(c+4);break; case 5:putchar(c+3); default:putchar(c+2);} A.6697 B.6789 C.7986 D.6897 【答案】D 5.执行以下程序段的输出结果是( ) char s[ ]="abcdef";s[3]='\0'; printf("%s",s); A.abcd B.ab C.abc D.abcdef 【答案】C 6.执行以下程序段时输入:abcABC<回车>,则输出结果是( ) char s[80];int i=0;gets(s); while(s[i]!='\0') {if(s[i]>='a'&&s[i]<='z') s[i]='z'+'a'-s[i];i++;}puts(s); A.zyxABC B.abcABC C.ABCABC D.xyzABC 【答案】A 7.执行以下程序段的输出结果是( ) char s[3][20]={"BASIC","JAVA","C++"};int i,k=0; for(i=1;i<3;i++) if((strcmp(s[k],s[i]))<0)k=i;puts(s[k]); A.BASIC B.JAVA C.C++ D.JAVAC++ 【答案】B 8.以下程序的功能是,求3*3矩阵的主对角线元素之和,请选择填空。( ) main() {int i,j,sum=0,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)sum=【 】;printf("%d",sum);getch();} A.a[i][j] B.sum+a[i][i--] C.sum+a[i][i++] D.sum+a[i][i] 【答案】D 9.执行以下程序段的输出结果是( ) int i,sum=0; int b[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; for(i=0;i<4;i++)sum=sum+b[i][1];printf("%d",sum); A.30 B.31 C.32 D.33 【答案】C 10.执行以下程序段时输入:grils<回车>,则输出结果是( ) char str[10]="12345";gets(str); strcat(str,"def");printf("%s ",str); A.grilsdef B.12345def C.12345grils D.abc45def 【答案】A 11.执行以下程序段后,变量k的值是( ) int k=3,a[3];a[0]=2;k=a[1]*k; A.0 B.3 C.9 D.不定值 【答案】D 12.执行以下程序段的输出结果是( ) int i,x[10]={2,3,2,3,0,3,2,1,3,3},y[4]={0}; for(i=0;i<10;i++) y[x[i]]++;printf("%d",y[3]); A.5 B.3 C.1 D.0 【答案】A 13.执行以下程序段的输出结果是( ) int x[5]={0},i;x[0]=1;x[1]=2;x[2]=3; for(i=2;i<5;i++) x[i]=x[i-0]+x[i-1]; for(i=2;i<5;i++) printf("%d ",x[i]); A.5 4 3 B.5 5 4 C.5 4 2 D.5 5 5 【答案】D 14.以下程序段的功能是( ) int a[ ]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;}a[j+1]=t;} A.对数组a进行插入排序(升序) B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序) D.对数组a进行选择排序(降序) 【答案】B 15.执行以下程序段的输出结果是( ) int a[6][6],i,j,sum=0; for(i=1;i<6;i++) for(j= 1;j<6;j++)a[i][j]=(i+j)/2; for(i=1;i<6;i++) {for(j=1;j<6;j++)sum+=a[i][j];} printf("%2d",sum); A.69 B.150 C.70 D.68 【答案】A 16.( ) int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);} A.-4 0 4 0 4 B.-4 0 4 0 3 C.-4 0 4 4 3 D.-4 0 4 4 0 【答案】C 17.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。( ) main() {char x[ ]="programming";char y[ ]="Fortran";int i=0; while(x[i]!='\0'&&y[i]!='\0') if(x[i]==y[i])printf("%c",【 】); else i++;getch();} A. x[i++] B.y[++i] C.x[i] D.y[i] 【答案】A 18.执行以下程序段的输出结果是( ) char ch[7]={"12ab56"};int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0'; printf("%d ",s); A.1256 B.12ab56 C.15 D.1 【答案】D 19.执行以下程序段的输出结果是( ) char str[ ]="SSSWLIA",c;int k; for(k=2;(c=str[k])!='\0';k++) {switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue;}putchar('*');} A.SSW* B.SW* C.SW*A D.SW 【答案】B 20.执行以下程序段的输出结果是( ) char a[ ]="morming",t;int i,j=0; for(i=1;i<7;i++) if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j]; puts(a); A.mogninr B.mo C.morning D.mornin 【答案】B 21.执行以下程序段的输出结果是( ) int i,r;char s1[80]="bus",s2[80]="book"; for(i=r=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]==s2[i]) i++; else {r=s1[i]-s2[i];break;}printf("%d",r); A.1 B.3 C.4 D.6 【答案】C 22.执行以下程序段的输出结果是( ) char a[2][6]={"sum","moon"};int i,j,len[2]; for(i=0;i<2;i++) {for(j=0;j<6;j++) if(a[i][j]=='\0'){len[i]=j;break;} printf("%s:%d ",a[i],len[i]);} A.sum:3 4 B.sum3moon4 C.sum:4 moon:3 D.sum:3 moon:4 【答案】D 23.执行以下程序段的输出结果是( ) int a[ ]={-65,0,45,32,23,87,56,80,65,23,77,55};int i,so=0,sj=0; for(i=1;i<10;i++) {if(a[i]%2==0)so++; else sj++;}printf("%d,%d ",so,sj); A.4,5 B.4,8 C.3,8 D.3,9 【答案】A 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[8]={6,12,18,42,44,52,67,94}; int low=0,mid,high=7,found=0,x; scanf("%d",&x); while((low<=high)&&(found==0)) {mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x<a[mid]) high=mid-1; else {found=1;break;}} if(found==1) printf("Search Successful!The index is:%d ",mid); else printf("Can't search ! "); getch();} 执行程序时输入:67<回车> 【答案】Search Successful!The index is:6 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[9]={0,6,12,18,42,44,52,67,94}; int x=52,i,n=9,m; i=n/2+1; m=n/2; while(m!=0) if(x<a[i]) {i=i-m/2-1;m-m/2;} else if(x>a[i]) {i=i+m/2+1;m=m/2;} else break; printf("The index is:%d ",i); getch();} 【答案】The index is:6 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[4][4],i,j; for(i=1;i<4;i++) for(j=1;j<4;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<4;i++) {for(j=1;j<4;j++) printf("%2d",a[i][j]); printf(" ");} getch();} 【答案】 1 0 0 0 1 0 0 0 1 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=117,i=0;char a[5]; do {switch(x%16) {case 10:a[i]='A';break; case 11:a[i]='B';break; case 12:a[i]='C';break; case 13:a[i]='D';break; case 14:a[i]='E';break; case 15:a[i]='F';break; default:a[i]='0'+x%16;break;} i++;x=x/16;} while(x!=0); for(x=i-1;x>=0;x--) printf("%c",a[x]);getch();} 【答案】75(进制的转换) 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i;char a[ ]="Time",b[ ]="Tom"; for(i=0;a[i]!='\0'&&b[i]!='\0';i++) if(a[i]==b[i]) if(a[i]>='a'&&a[i]<='z') printf("%c",a[i]-32); else printf("%c",a[i]+32); else printf("*"); getch();} 【答案】t*M 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #include<string.h> main() {char a[2][80],t;int i,j,m,n,L,max; for(i=0;i<=1;i++)gets(a[i]); t=a[0][0]; for(i=0;i<=1;i++) {L=strlen(a[i]); for(j=0;j<=L;j++) if(a[i][j]>t) {max=a[i][j];m=i;n=j;}} printf("%c %d %d ",max,m,n); getch();} 执行程序时从键盘输入:girl<回车>boy<回车> 【答案】y 1 2 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=0; char a[ ]="hunan",b[ ]="gaokao",c[10]; while(a[i]!='\0' && b[i]!='\0') {if(a[i]>=b[i]) c[i]=a[i]-32; else c[i]=b[i]-32;++i;} c[i]='\0'; puts(c);getch();} 【答案】HUOKN 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是使用筛选法求100以内的素数。所谓筛选法即,在一张纸上写上1~100的全部整数,然后逐个判断它们是否是素数,找出非素数,就把它挖掉,最后剩下的就是素数。程序中有三处错误,请改正。 L1 #include <math.h> L2 #include <stdio.h> L3 #include<conio.h> L4 main() L5 {int i,j,n,a[100]; L6 for(i=0;i<100;i++) L7 a[i]=i+1; L8 a[0]=0; L9 for(i=1;i<sqrt(100.0);i++) L10 for(j=i+1;j<=100;j++) L11 {if(a[i]==0&&a[j]==0) L12 if(a[j]%a[i]!=0) L13 a[j]=0;} L14 for(i=1,n=0;i<=100;i++) L15 {if(a[i]==0) L16 {printf("%5d",a[i]); L17 n++;} L18 if(n==10) L19 {printf(" ");n=0;}} L20 printf(" "); L21 getch();} 答案: L11 {if(a[i]!=0&&a[j]!=0) L12 if(a[j]%a[i]==0) L15 {if(a[i]!=0) 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是,输入一个数,按照原来排序的规律将这个数插入到已经排好序的数组中去。请填空。 #include <stdio.h> #include<conio.h> main() {int a[11]={2,4,6,8,10,12,14,16,18,20}; int temp1,temp2,number,end,i,j; printf("数组a为: "); for(i=0;i<10;i++) printf("%d ",a[i]); printf(" "); printf("插入数据为:"); scanf("%d",&number); if(【1】) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]>number) {temp1=【2】; a[i]=number; for(j=i+1;j<11;j++) {temp2=【3】; a[j]=temp1; temp1=temp2;} 【4】;}}} printf("插入数据后的数组a为: "); for(i=0;i<11;i++) printf("%d ",a[i]); printf(" "); getch();} 答案:①number>a[9] ②a[i] ③a[j] ④break 33.有15个数按照由小到大顺序存放在一个数组中,输入一个数,使用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”。请填空。 #include <stdio.h> #include<conio.h> main() {int i,number,high,low,mid,loca,flag=1,sign; int a[15]={1,3,5,7,9,11,21,24,25,34,36,42,48,56,78}; char c; printf("数组数据为:"); for(i=0;i<15;i++)printf("%d ",a[i]);printf(" "); while(flag) {printf("请输入需要查找的数据:"); scanf("%d",&number); sign=0;high=0;low=15-1; if(【1】)loca=-1; while((!sign)&&(high<=low)) {mid=【2】; if(number==a[mid]) {loca=mid; printf("%d的位置是%d ",number,loca+1); sign=1;} else if(【3】) low=mid-1; else high=mid+1;} if(【4】) printf("未能找到%d. ",number); printf("是否继续查找(Y/N)?"); scanf("%c",&c); if(c=='N'||c=='n')flag=0;} getch();} 答案:①(number<a[0])||(number>a[15-1]) ②(low+high)/2 ③number<a[mid] ④!sign||loca==-1 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目四: 数组 第22卷: 数组的应用 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.执行以下程序段的输出结果是( ) int i,j=0; char a[ ]="How are you",b[10]={0}; for(i=0;a[i];i++) if(a[i]==' ') b[j++]=a[i+1]; printf("%s",b); A.Hay B.How are you C.we D.ay 2.执行以下程序段的输出结果是( ) 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.369 D.852 3.执行以下程序段的输出结果是( ) char s[20]="I like it.",t[20]="Are you?",c[20];int i=0; while(s[++i]!='\0')t[i]=s[i];t[i]=0;printf("string s:%s ",s); A.string s:I like it. B.string s: Are you? C.string s:I like it.Are you? D. string s: Are you? I like it. 4.执行以下程序段的输出结果是( ) char s[ ]="2473",c,i; for(i=0;c=s[i];i++) switch(c-'0') {case 2:case 3:putchar(c+4);continue; case 4:putchar(c+4);break; case 5:putchar(c+3); default:putchar(c+2);} A.6697 B.6789 C.7986 D.6897 5.执行以下程序段的输出结果是( ) char s[ ]="abcdef";s[3]='\0'; printf("%s",s); A.abcd B.ab C.abc D.abcdef 6.执行以下程序段时输入:abcABC<回车>,则输出结果是( ) char s[80];int i=0;gets(s); while(s[i]!='\0') {if(s[i]>='a'&&s[i]<='z') s[i]='z'+'a'-s[i];i++;}puts(s); A.zyxABC B.abcABC C.ABCABC D.xyzABC 7.执行以下程序段的输出结果是( ) char s[3][20]={"BASIC","JAVA","C++"};int i,k=0; for(i=1;i<3;i++) if((strcmp(s[k],s[i]))<0)k=i;puts(s[k]); A.BASIC B.JAVA C.C++ D.JAVAC++ 8.以下程序的功能是,求3*3矩阵的主对角线元素之和,请选择填空。( ) main() {int i,j,sum=0,a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)sum=【 】;printf("%d",sum);getch();} A.a[i][j] B.sum+a[i][i--] C.sum+a[i][i++] D.sum+a[i][i] 9.执行以下程序段的输出结果是( ) int i,sum=0; int b[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; for(i=0;i<4;i++)sum=sum+b[i][1];printf("%d",sum); A.30 B.31 C.32 D.33 10.执行以下程序段时输入:grils<回车>,则输出结果是( ) char str[10]="12345";gets(str); strcat(str,"def");printf("%s ",str); A.grilsdef B.12345def C.12345grils D.abc45def 11.执行以下程序段后,变量k的值是( ) int k=3,a[3];a[0]=2;k=a[1]*k; A.0 B.3 C.9 D.不定值 12.执行以下程序段的输出结果是( ) int i,x[10]={2,3,2,3,0,3,2,1,3,3},y[4]={0}; for(i=0;i<10;i++) y[x[i]]++;printf("%d",y[3]); A.5 B.3 C.1 D.0 13.执行以下程序段的输出结果是( ) int x[5]={0},i;x[0]=1;x[1]=2;x[2]=3; for(i=2;i<5;i++) x[i]=x[i-0]+x[i-1]; for(i=2;i<5;i++) printf("%d ",x[i]); A.5 4 3 B.5 5 4 C.5 4 2 D.5 5 5 14.以下程序段的功能是( ) int a[ ]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;}a[j+1]=t;} A.对数组a进行插入排序(升序) B.对数组a进行插入排序(降序)C.对数组a进行选择排序(升序) D.对数组a进行选择排序(降序) 15.执行以下程序段的输出结果是( ) int a[6][6],i,j,sum=0; for(i=1;i<6;i++) for(j= 1;j<6;j++)a[i][j]=(i+j)/2; for(i=1;i<6;i++) {for(j=1;j<6;j++)sum+=a[i][j];} printf("%2d",sum); A.69 B.150 C.70 D.68 16.( ) int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);} A.-4 0 4 0 4 B.-4 0 4 0 3 C.-4 0 4 4 3 D.-4 0 4 4 0 17.下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。( ) main() {char x[ ]="programming";char y[ ]="Fortran";int i=0; while(x[i]!='\0'&&y[i]!='\0') if(x[i]==y[i])printf("%c",【 】); else i++;getch();} A. x[i++] B.y[++i] C.x[i] D.y[i] 18.执行以下程序段的输出结果是( ) char ch[7]={"12ab56"};int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0'; printf("%d ",s); A.1256 B.12ab56 C.15 D.1 19.执行以下程序段的输出结果是( ) char str[ ]="SSSWLIA",c;int k; for(k=2;(c=str[k])!='\0';k++) {switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue;}putchar('*');} A.SSW* B.SW* C.SW*A D.SW 20.执行以下程序段的输出结果是( ) char a[ ]="morming",t;int i,j=0; for(i=1;i<7;i++) if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=a[j]; puts(a); A.mogninr B.mo C.morning D.mornin 21.执行以下程序段的输出结果是( ) int i,r;char s1[80]="bus",s2[80]="book"; for(i=r=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]==s2[i]) i++; else {r=s1[i]-s2[i];break;}printf("%d",r); A.1 B.3 C.4 D.6 22.执行以下程序段的输出结果是( ) char a[2][6]={"sum","moon"};int i,j,len[2]; for(i=0;i<2;i++) {for(j=0;j<6;j++) if(a[i][j]=='\0'){len[i]=j;break;} printf("%s:%d ",a[i],len[i]);} A.sum:3 4 B.sum3moon4 C.sum:4 moon:3 D.sum:3 moon:4 23.执行以下程序段的输出结果是( ) int a[ ]={-65,0,45,32,23,87,56,80,65,23,77,55};int i,so=0,sj=0; for(i=1;i<10;i++) {if(a[i]%2==0)so++; else sj++;}printf("%d,%d ",so,sj); A.4,5 B.4,8 C.3,8 D.3,9 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[8]={6,12,18,42,44,52,67,94}; int low=0,mid,high=7,found=0,x; scanf("%d",&x); while((low<=high)&&(found==0)) {mid=(low+high)/2; if(x>a[mid]) low=mid+1; else if(x<a[mid]) high=mid-1; else {found=1;break;}} if(found==1) printf("Search Successful!The index is:%d ",mid); else printf("Can't search ! "); getch();} 执行程序时输入:67<回车> 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[9]={0,6,12,18,42,44,52,67,94}; int x=52,i,n=9,m; i=n/2+1; m=n/2; while(m!=0) if(x<a[i]) {i=i-m/2-1;m-m/2;} else if(x>a[i]) {i=i+m/2+1;m=m/2;} else break; printf("The index is:%d ",i); getch();} 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a[4][4],i,j; for(i=1;i<4;i++) for(j=1;j<4;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<4;i++) {for(j=1;j<4;j++) printf("%2d",a[i][j]); printf(" ");} getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=117,i=0;char a[5]; do {switch(x%16) {case 10:a[i]='A';break; case 11:a[i]='B';break; case 12:a[i]='C';break; case 13:a[i]='D';break; case 14:a[i]='E';break; case 15:a[i]='F';break; default:a[i]='0'+x%16;break;} i++;x=x/16;} while(x!=0); for(x=i-1;x>=0;x--) printf("%c",a[x]);getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i;char a[ ]="Time",b[ ]="Tom"; for(i=0;a[i]!='\0'&&b[i]!='\0';i++) if(a[i]==b[i]) if(a[i]>='a'&&a[i]<='z') printf("%c",a[i]-32); else printf("%c",a[i]+32); else printf("*"); getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #include<string.h> main() {char a[2][80],t;int i,j,m,n,L,max; for(i=0;i<=1;i++)gets(a[i]); t=a[0][0]; for(i=0;i<=1;i++) {L=strlen(a[i]); for(j=0;j<=L;j++) if(a[i][j]>t) {max=a[i][j];m=i;n=j;}} printf("%c %d %d ",max,m,n); getch();} 执行程序时从键盘输入:girl<回车>boy<回车> 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=0; char a[ ]="hunan",b[ ]="gaokao",c[10]; while(a[i]!='\0' && b[i]!='\0') {if(a[i]>=b[i]) c[i]=a[i]-32; else c[i]=b[i]-32;++i;} c[i]='\0'; puts(c);getch();} 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是使用筛选法求100以内的素数。所谓筛选法即,在一张纸上写上1~100的全部整数,然后逐个判断它们是否是素数,找出非素数,就把它挖掉,最后剩下的就是素数。程序中有三处错误,请改正。 L1 #include <math.h> L2 #include <stdio.h> L3 #include<conio.h> L4 main() L5 {int i,j,n,a[100]; L6 for(i=0;i<100;i++) L7 a[i]=i+1; L8 a[0]=0; L9 for(i=1;i<sqrt(100.0);i++) L10 for(j=i+1;j<=100;j++) L11 {if(a[i]==0&&a[j]==0) L12 if(a[j]%a[i]!=0) L13 a[j]=0;} L14 for(i=1,n=0;i<=100;i++) L15 {if(a[i]==0) L16 {printf("%5d",a[i]); L17 n++;} L18 if(n==10) L19 {printf(" ");n=0;}} L20 printf(" "); L21 getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是,输入一个数,按照原来排序的规律将这个数插入到已经排好序的数组中去。请填空。 #include <stdio.h> #include<conio.h> main() {int a[11]={2,4,6,8,10,12,14,16,18,20}; int temp1,temp2,number,end,i,j; printf("数组a为: "); for(i=0;i<10;i++) printf("%d ",a[i]); printf(" "); printf("插入数据为:"); scanf("%d",&number); if(【1】) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]>number) {temp1=【2】; a[i]=number; for(j=i+1;j<11;j++) {temp2=【3】; a[j]=temp1; temp1=temp2;} 【4】;}}} printf("插入数据后的数组a为: "); for(i=0;i<11;i++) printf("%d ",a[i]); printf(" "); getch();} 33.有15个数按照由小到大顺序存放在一个数组中,输入一个数,使用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”。请填空。 #include <stdio.h> #include<conio.h> main() {int i,number,high,low,mid,loca,flag=1,sign; int a[15]={1,3,5,7,9,11,21,24,25,34,36,42,48,56,78}; char c; printf("数组数据为:"); for(i=0;i<15;i++)printf("%d ",a[i]);printf(" "); while(flag) {printf("请输入需要查找的数据:"); scanf("%d",&number); sign=0;high=0;low=15-1; if(【1】)loca=-1; while((!sign)&&(high<=low)) {mid=【2】; if(number==a[mid]) {loca=mid; printf("%d的位置是%d ",number,loca+1); sign=1;} else if(【3】) low=mid-1; else high=mid+1;} if(【4】) printf("未能找到%d. ",number); printf("是否继续查找(Y/N)?"); scanf("%c",&c); if(c=='N'||c=='n')flag=0;} getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务22:数组的应用  《编程语言-C语言》45分钟专题训练-第1页
1
任务22:数组的应用  《编程语言-C语言》45分钟专题训练-第2页
2
任务22:数组的应用  《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。