数组.docx
- 文档编号:14392113
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:20
- 大小:20.28KB
数组.docx
《数组.docx》由会员分享,可在线阅读,更多相关《数组.docx(20页珍藏版)》请在冰点文库上搜索。
数组
一、选择题
1.设有定义:
chars[12]="harmonious";,则printf("%d",strlen(s));的输出结果是
A.9B.10C.11D.12
2.错误的说明语句是____。
A)charword[]={'T','u','r','b','o','\0'};
B)charword[]={"Turbo\0"};
C)charword[]="Turbo\0";
D)charword[]='Turbo\0";
3.已知:
chars[5],c;intb;则调用函数scanf的正确语句是______。
A)scanf("%s%c",s,C);
B)scanf("%d%c",&b,&C);
C)scanf("%d%c",b,&C);
D)scanf("%s%c",s,&C);
4.合法的数组说明语句是____。
A)int[]="string";
B)inta[5]={0,l,2,3,4,5};
C)chara="string";
D)chara[]={0,l,2,3,4,5};
5.在下述对C语言字符数组的描述中错误的是____。
A)字符数组可以存放字符串
B)字符数组中的字符串可以进行整体输入/输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)字符数组的下标从0开始
6.调用str1en("abcd\0ef\0g")的返回值为____。
A)4B)5C)8D)9
7.已知:
charstr1[10],str2[10]={"books"};则在程序中能够将字符串"book"赋给数组str1的正确语句是____。
A)str1={"books"};
B)strcpy(str1,str2);
C)str1=str2;
D)strcpy(str2,str1);
8.已知:
charstr1[20]="abcde",str2[20]="xyz";则执行语句;
printf("%d",str1en(strcpy(str1,str2)));
输出结果是____。
A)9B)3C)5D)8
9.下面字符串的说明错误的是____。
A)charstr[7]="FORTRAN";
B)charstr[]="FORTRAN";
C)char*str="FORTRAN";
D)charstr[]={'F','O','R',T,'R','A','N','\0'};
10.已知:
inti,x[3][3]={l,2,3,4,5,6,7,8,9};则下面语句的输出结果是____。
for(i=0;i<3;i++)
printf("%d",x[i][2-i]);
A)159B)147C)357D)369
11.已知:
charstr[]="ab\n\012\\\"";则执行语句:
printf("%d",str1en(str));的结果是____。
A)3B)4C)6D)12
12.已知:
inta[3][4];则对数组元素的非法引用是____。
A)a[0][2*1]B)a[l][3]
C)a[4-2][0]D)a[0][4]
13.以下能对外部的二维数组a进行正确初始化的语句是____。
A)inta[2][]={{l,0,l},{5,2,3}};
B)inta[][3]={{l,2,3},{4,5,6}};
C)inta[2][4]={{l,2,3},{4,5},{6}};
D)inta[][3]={{l,0,1,{},{1,1}};
14.以下不能对二维数组a进行正确初始化的语句是____。
A)inta[2][3]={0};
B)inta[][3]={{l,2},{0}};
C)inta[2][3]={{l,2},{3,4},{5,6}};
D)inta[][3]={l,2,3,4,5,6};
15.下面程序的运行结果是____。
charc[5]={'a','b',\0','c',\0'};
printf("%s",c);
A)'a"b'B)abC)abcD)都有错
16.在下面的程序段中,每行前面的数字表示行号,则下面程序____。
1main()
2{
3inta[3];
4inti;
5for(i=0;i<3;i++)scanf("%d",&a[i]);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf("%d\n",a);
8}
A)没有错误B)第5行有错误
C)第6行有错误D)第7行有错误
运行程序,输入:
FortranLanguage
17.下面程序输出两个字符串中对应位置相同的字符。
请选择填空。
#include
charx[]="programming";
chary[]="Fortran";
main()
{inti=0;
while(x[i]!
='\0'&&y[i]!
='0')
if(x[i]==y[i])
printf("%c",_______);
elsei++;
}
A)x[i++]B)y[++i]C)x[i]D)y[i]
18.下面程序的功能是将字符串s中所有的字符"c"删除。
请选择填空。
#include
main()
{chars[80];inti,j;
gets(s);
for(i=j=0;s[i]!
='\0';i++)
if(s[i]!
='c')
_________;
s[j]='\0';
puts(s);
}
A)s[j++]=s[i]B)s[++j]=s[i]
C)s[j]=s[i];j++D)s[j]=s[i]
二、读程序写结果
1.main()
{
staticint[3][3]={1,2,3,4,5,6,7,8,9},x,s1=0,s2=0;
for(x=0;x<=2;x++)
s1=s1-a[x][x];
for(x=0;x<3;x++)
s2=s2+a[x][2-x];
printf(“s1=%d,s2=%d”,s1,s2);
}
2.main()
{
inta[6]={1,2,3,4,5,6},k;
for(k=5;k>=0;k--)
if(a[k]%2!
=0)
printf(“%d”,a[k]);
}
3.main()
{inti,j,k,n[3];
for(i=0;i<3;i++)
n[i]=0;k=2;
for(i=0;i for(j=0;j n[j]=n[i]+1; printf("%d\n",n[1]); } 4.阅读程序,写出执行结果。 #include main() {charstr[30]; scanf("%s",str); printf("%s",str); } 运行程序,输入: FortranLanguage 5.阅读程序,写出执行结果。 #include"stdio.h" main() {charstr[30];gets(str); printf("%s\n",str); } 三完善程序题 1.将一个二维数组行和列元素互换,存到另一个二维数组中. main() { inta[2][3]={1,2,3},{4,5,6}}; intb[3][2],i,j; for(i=0;i<=1;i++) for(j=0;j<=2;j++) b[j][i]=___________; for(i=0;i<=2;i++) {for(i=0;i<=2;i++) printf("%d",b[i][j]); printf("\n"); } } 2.用起泡法对10个数排序(由大到小) main() { inta[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<=8;i++) for(j=0;j<=8-i;j++) if(______) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(j=0;j<=9;j++) printf("%d",a[j]); } 3.有一个3*4的矩阵,求出其中值最大的那个元素的值,以及其所在的行号和列号。 main() { inti,j,row=0,colum=0,max; inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,3,5,7}}; max=a[0][0]; for(inti=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) { ________; row=i; colume=j; } printf("max=%d,row=%d,colum=%d\n",max.row+1,colum+1); } 4.输出字符串中的数字字符 #include"stdio.h" main() { chara[80]; inti=0; gots(a); while(a[i]! ='\0') { if(______) putchar(a[i]); i++; } } 5.输出Fibonacci数列的前30项。 Fibonacci数列为: 1,1,2,3,5,8,13,…… main() { inti,t[30]={1,1}; for(i=2;i<30;i++) t[i]=____________; for(i=0;i<30;i++) { if(i%5==0)printf("\n"); printf("%10d",t[i]); } } 6.用选择法对10个排序(由大到小)。 main() { intn,j,i,t; inta[10]; for(i=0;i<=9;i++) scanf("%d",&a[i]); for(i=0;i<=8;i++) { p=i; for(j=___________;j<=9;j++) if(a[p] p=j; if(p! =i) {t=a[i];a[i]=a[p];a[p]=t;} } for(i=0;i<=9;i++) printf("%d,",a[i]); } 7.有一个3×3的矩陈,求出主对角线上元素的最大值。 main() { inta[3][3],i,j,max; for(i=0;i<=2;i++) for(j=0;j<=2;j++) scanf("%d",&a[i][j]); ___________________; for(i=1;i<=2;i++) if(max max=a[i][i]; printf("%d\n",max); } 8.下列程序的功能是将数组a的元素按行求和并且存储到数组s中。 main() {ints[3]={0}; inta[3][4]={{l,2,3,4},{5,6,7,8},{9,10,11,12}}; inti,j; for(i=0;i<3;i++) {for(j=0;j<4;j++) ______________; printf("%d\n",s[i]); } } 9.用起泡法对10个整数排序(由大到小)。 main() {inta[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(___________) {t=a[j];a[j]=a[j+l];a[j+l]=t;} for(j=0;j<=9;j++) printf("%d",a[j]); } 10.程序读入20个整数,统计非负数个数,并计算非负数之和。 请填空完成。 #include"stdio.h" main() {inti,a[20],s,count; s=count=0; for(i=0;i<20;i++) scanf("%d"______); for(i=0;i<20;i++) {if(a[i]<0) _________; s+=a[i];count++; } printf("s=%d\tcount=%d\n",s,count); } 11.下面的程序是求出数组a的两条对角线上的元素之和。 请填空完成。 #include"stdio.h" main() {inta[3][3]={1,3,6,7,9,11,14,15,17}; intsum1=0,sum2=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j)sum1=sum1+a[i][j]; for(i=0;i<3;i++) for(______;_______;j--) if(i+j==2) sum2=sum2+a[i][j]; printf("sum1=%d,sum2=%d\n",sum1,sum2); } 12.下面的函数invert的功能是将一个字符串的内容颠倒过来。 请填空完成。 voidinvert(charstr[]) {inti,j,_____; for(i=0,j=str1en(str)____;i {k=str[i]; str[i]=str[j]; str[j]=k;} } 13.从键盘上输入若干名(不超过100名)学生的成绩,计算出平均成绩,并输出低于平均分的学生的成绩,用输入负数结束输入,请填空完成。 #include"stdio.h" main() {floatx[1000],sum=0,ave,a; intn=0,i; printf("Entermark: "); scanf("%f',&a); while(a>0&&n<1000) {sum+=________; x[n]=________; n++; scanf("%f",&a); } ave=________; printf("Output: \n); printf("ave=%f\n",ave); for(i=0;i if(_______) printf("%f\n",x[i]); } 14.下面的函数是在二维数组中产生如下形式的杨辉三角形。 请填空完成。 1 11 121 1331 14641 …….. #defineN11 yahui(inta[][N]) {inti,j; for(i=1;i {a[i][1]=1;a[i][i]=1;} for(____;i for(j=2;_;j++) a[i][j]=_______+a[i-1][j]; } 15.以下程序可以将从键盘上输入的十进制数(long类型)以二进制、八进制或十六进制数的形式输出。 请填空完成。 #include main() {charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; intc[64],d,i=0,base; longn; printf("Enteranumber: "); scanf("%ld",&n); printf("Enternewbase: "); scanf("%d",&base); do {c[i]=_______; i++; n=n/base; }while(n! =0); printf("Transmutenewbase: \n); for(--i;i>=0;--i) {d=c[i]; printf("%c",b___); } } 16.下列程序最多从键盘输入99个字符,遇到'\n'后则退出,遇到空格则换成字符'#',对其它字符依次按原样送入数组c中。 请填空完成。 #include"stdio.h" main() {inti; charch,c[100]; for(i=0;_____;i++) {if((ch=getchar())=='n') ________; if(ch=='') ________;c[i]=ch; } c[i]='\0'; puts(c); } 17.下面程序的功能是找出所有的"水仙花数"保存到数组s中并输出。 请将程序补充完整(所谓"水仙花数"是指一个三位数,其各位数字的立方之和等于该三位数,如: 407就是一个水仙花数,因为43+03+73=407。 main() {ints[10],i,a1,a2,a3,x,n=0; printf("共有%d个水仙花数,它们是: ",n); for(i=0;i printf("%d",s[i]); printf("\n"); } 四、程序改错 1.将字符数组a2中的全部字符拷贝到字符数组s1中,不使用strcpy函数 (1)#include"stdio.h" (2)main() (3){chars1[80],s2[80]; (4)inti; (5)printf("Inputs2"); (6)scanf("%s",s2); (7)for(i=0;i<=strlen(s2)) (8){s1[i]=s2[i]; (9)i++; (10)} (11)printf("s1: %s\n",s1); (12)} 2.给一维数组输入数据并输出。 main() { doublea[5],i; for(i=0;i<5;i++) scanf("%f",&a[i]); for(i=0;i<=4;i++) printf("%f",a[i]); } 3.输入一个不少于三个字符的字符串,将其首尾字符互换后输出该字符串。 #include"string.h" main() { chars[20],c;intn; scanf("%s",&s); n=strlen(s); c=s[n-1]; s[n-1]=s[0]; s[0]=c; printf("%s\n",s); } 4.已知一个有序的一维数组,输入一个数,要求按原来排序的规律将它插入到数组中。 main() {inta[10]={l,3,5,7,9,11},n=6,i,num; scanf("%d",&num); i=n-1; while(a[i]>num&&i>=0) {a[i+1]=a[i];i--;} printf("arraya: "); for(i=0;i<=n;i++) printf("%5d",a[i]); printf("\n"); } 5.输入5个整数,求其中正整数之和,并输出。 (1)#include"stdio.h" (2)main() (3){intk,a[5],sum=0; (4)for(k=0;k<5;k++){ (5)scanf("%d",a[k]); (6)if(a[k]>0) (7)sum+=a[k]; (8)} (9)printf("正整数的和sum=%d",sum); (10)} 6.下面的程序输出三个字符串中的最大字符串。 (1)#include (2)#include (3)main() (4){chars[30],str[3][30]; (5)inti; (6)for(i=0;i<3;i++) (7)gets(str); (8)if(strcmp(str[0],str[1])>0) (9)strcpy(s,str[0]); (10)else (11)strcpy(s,str[1]); (12)if(strcmp(str[2],s)>0) (13)strcpy(s,str[2]); (14)printf("%s\n",s); (15)} 7.下面程序段的功能是对a数组中的元素按从大到小的顺序排序。 程序中有错误,请修改。 inta[10]={2,17,8,3,24,53,82,1,29,101},i,j,k,t; for(i=0;i<9;i++) {k=i; for(j=i+1;j<10;j++) if(a[j] k=j; if(k! =i) {t=a[j]; a[j]=a[i]; a[i]=t; } } 8.下面程序的功能是统计一个字符串中数字字符和小写字符的个数。 程序中有错误,请修改。 #include main()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组