第6章 数组答案.docx
- 文档编号:30551447
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:20
- 大小:19.93KB
第6章 数组答案.docx
《第6章 数组答案.docx》由会员分享,可在线阅读,更多相关《第6章 数组答案.docx(20页珍藏版)》请在冰豆网上搜索。
第6章数组答案
第6章数组
一、选择题
1、以下错误的定义语句是(C)
A)intx[][3]={{0},{1},{1,2,3}};
B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D)intx[][3]={1,2,3,4};
2、若有定义:
inta[2][3];以下选项中对a数组元素正确引用的是(D)
A)a[2][!
1]B)a[2][3]C)a[0][3]D)a[1>2][!
1]
3、以下能正确定义一维数组的选项是(B)。
A)intnum(5*2);B)intnum[5*2];C)intlong[10];D)intnum(10);
4、以下能正确定义一维数组的选项是(B)。
A)intnum[];
B)#defineN100
intnum[N];
C)intnum[0..100];
D)intN=100;
intnum[N];
5、以下选项中正确的语句组是(D)
A)chars[];s=”BOOK!
”B)char*s;s={“BOOK!
”};
C)chars[10];s=”BOOK!
”D)char*s;s=”BOOK!
”;
6、若以下说明,则数值为4的表达式是(D)。
inta[12]={1,2,3,4,5,6,7,8,9,10};
charc=’a’,d,g;
A)a[g-c]B)a[4]C)a[‘d’-‘c’]D)a[‘d’-c]
7、以下程序的输出结果是(C)。
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
}
A)258B)741C)852D)369
8、有以下程序,程序运行后的输出结果是(D)。
main()
{
inti,k,a[10],p[3];
k=5;
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\n”,k);
}
A)60B)61C)62D)63
9、有如下程序
main()
{intn[5]={0,0,0},i,k=2;
for(i=0;i printf(“%d\n”,n[k]); } 该程序的输出结果是(D)。 A)不确定的值B)2C)1D)0 10、以下程序的输出结果是(A)。 main() { inta[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]); } A)0650B)1470C)5430D)输出值不定 11、有以下程序,执行后输出结果是(C)。 main() { intm[][3]={1,4,7,2,5,8,3,6,9}; inti,j,k=2; for(i=0;i<3;i++) printf("%d",m[k][i]); } A)456B)258C)369D)789 12、以下程序的输出结果是(A)。 A)18B)19C)20D)21 main() {inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(“%d\n”,s); } 13、以下程序的输出结果是(C)。 main() {inti,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, 14、有以下程序,执行后输出的结果是(D)。 main() { intp[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\n",k); } A)58B)56C)45D)24 15、有以下程序 main() {ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++)c[s[i]]++; for(i=1;i<5;i++)printf("%d",c[i]); printf("\n"); } 程序的运行结果是(C) A)1234B)2344C)4332D)1123 16、有以下程序 main() { intp[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7)if(p[i]%2)j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是(B) A)42B)45C)56D)60 17、当执行下列程序时,如果输入ABC,则输出结果是(A)。 main() { charss[10]=”12345”; gets(ss);strcat(ss,”6789”); printf(“%s\n”,ss); } A)ABC6789B)ABC67C)12345ABC6D)ABC45678 18、有以下程序,程序运行后的输出结果是(A)。 main() { chararr[2][4]; strcpy(arr[0],"you"); strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } A)you&meB)youC)meD)err 19、有以下程序,程序运行后的输出结果是(A)。 main() { inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) { a[i][j]=i+j; if(i=j) sum=sum+a[i][j]; } printf(“sum=%d”,sum); } A)sum=26B)sum=1C)sum=6D)sum=25 20、有以下程序,程序运行后的输出结果是(A)。 main() {chars[10]=”12134211”; intv[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case‘1’: i=0;break; case‘2’: i=1;break; case‘3’: i=2;break; case‘4’: i=3;break; } v[i]++; } for(k=0;k<4;k++) printf(“%d”,v[k]); } A)4211B)0008C)4678D)8888 21、以下程序的输出结果是(B)。 main() { charst[20]="hello\0\t\\"; printf("%d%d\n",strlen(st),sizeof(st)); } A)99B)520C)1320D)2020 22、以下程序的输出结果是(D)。 main() { intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++)t=t+b[i][b[j][j]]; printf("%d\n",t); } A)3B)2C)7D)4 23、以下程序的输出结果是(B) main() {charcf[3][5]={"AAAA","BBB","CC"}; printf("\"%s\"\n",ch[1]); } A)"AAAA"B)"BBB"C)"BBBCC"D)"CC" 24、若有定义语句: chars[10]=”1234567\0\0”;则strlen(s)的值是(A) A)7B)8C)9D)10 25、有以下程序 voidfun(inta,intb) { intt; t=a;a=b;b=t; } main() { intc[10]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2)fun(c[i],c[i+1]); for(i=0;i<10;i++)printf("%d,",c[i]); printf("\n"); } 程序的运行结果是(A) A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9, C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9, 26、有以下程序 voidf(charp[][10],intn)/*字符串从小到大排序*/ { chart[10];inti,j; for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[i],t);} } main() { charp[5][10]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); }程序运行后的输出结果是(D) A)2 B)4 C)6 D)3 27、有以下程序 main(){ charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcat(p,r);strcpy(p+strlen(q),q); printf("%d\n",sizeof(p)); } 程序运行后的输出结果是(C) A)9 B)6 C)20 D)7 28、有以下程序 #defineN20 fun(inta[],intn,intm){ inti,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main(){ inti,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } 程序运行后的输出结果是(C)。 A)10234 B)12344 C)12334 D)12234 29、有以下程序 intf(intb[][4]) {inti,j,s=0; for(j=0;j<4;j++) {i=j; if(i>2)i=3-j; s+=b[i][j]; } returns; } main() {inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a)); } 执行后的输出结果是(D)。 A)12 B)11 C)18 D)16 30、有以下程序 voidswap1(intc[]) {intt; t=c[0];c[0]=c[1];c[1]=t; } voidswap2(intc0,intc1) {intt; t=c0;c0=c1;c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(a);swap2(b[0],b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); } 其输出结果是(B)。 A)5353 B)5335 C)3535 D)3553 二、程序阅读题 1、有以下程序 main() { chars[]="abcde"; s[0]+=2; printf("%d\n",s[0]); } 执行后的结果是99。 2、有以下程序 main() { intx[3][2]={0},i; for(i=0;i<3;i++)scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]); } 若运行时输入: 246<回车>,则输出结果为204。 3、有以下程序 main() { inti,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++)printf(“%d”,t[2-i][i]); } 程序的执行后的输出结果是357。 4、以下程序的输出结果是30。 main() {inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1]; printf(“%d\n”,s); } 5、有以下程序 voidsum(inta[]) {a[0]=a[-1]+a[1];} main() { inta[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n",a[2]); } 程序运行后的输出结果是6。 6、以下程序的输出结果是abc。 main() { chars[]="abcdef"; s[3]='\0'; printf("%s\n",s); } 7、下列程序的输出结果是CDABC。 main() { charb[30]; strcpy(&b[0],”CH”); strcpy(&b[1],”DEF”); strcpy(&b[2],”ABC”); printf(“%s\n”,b); } 8、有以下程序 main() { charp[]={'a','b','c'},q[]="abc"; printf("%d%d\n",sizeof(p),sizeof(q)); }; 程序运行后的输出结果是34。 9、有以下程序 voidfun(int*s,intnl,intn2) {inti,j,t; i=nl;j=n2; while(i } main() { inta[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\n”); } 程序运行的结果是5678901234 10、以下程序运行后的输出结果是abcbcc main() { charch[]="abc",x[3][4];inti; for(i=0;i<3;i++)strcpy(x[i],ch); for(i=0;i<3;i++)printf("%s",&x[i][i]); printf("\n"); } 三、程序填空题 1、以下程序的功能是: 求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。 请填空。 main() { intx[10],a[9],i; for(i=0;i<10;i++)scanf(“%d”,&x[i]); for(i=1;i<10;i++) a[i-1]=x[i]+x[i-1] ; for(i=0;i<9;i++) printf(“%d”,a[i]); printf(“\n”); } 2、若已定义: inta[10],i;,以下fun函数的功能是: 在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。 请填空。 fun(inta[]) {inti; for(i=1;i<=10;i++)a[i-1]=i; for(i=0;i<5;i++)a[4-i]=a[i]; } 3、程序的功能是使一个字符串按逆序存放,请填空。 main() { charstr[]={“abcdefghijl”},m; inti,j; for(i=0,j=strlen(str);i {m=str[i]; str[i]=str[9-i]; str[j-1]=m; } printf(“%s\n”,str); } 4、用冒泡法对10个数据进行排序,请填空,让程序能正确运行。 main() { inta[11],i,j,t; printf(“input10numbers: \n”); for(i=1;i<11;i++) scanf(“%d”,&a[i]); for(j=1;j<10;j++) for(i=1;i<10-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf(“thesortednumbers: \n”); for(i=1;i<10;i++) printf(“%d”,a[i]); } 5、矩阵转置,请填空,让程序能正确运行。 main() { inta[2][3]={1,2,3,4,5,6}; intb[3][2],i,j; printf(“arraya: \n”); for(i=0;i<=1;i++) { for(j=0;j<=2;j++) { _b[j][i]=a[i][j]; printf(“%5d”,a[i][j]);} printf(“\n”); } printf(“arrayb: \n”); for(i=0;i<=2;i++) { for(j=0;j<=1;j++) printf(“%5d”,b[i][j]); __printf(“\n”);_ } } 6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1 11 121 1331 14641. 其构成规律是: (1)第0列元素和主对角线元素均为1 (2)其余元素为其左上方和正上方元素之和 (3)数据的个数每行递增1 请将程序补充完整。 #defineN6 voidyanghui(intx[N][N]) {inti,j; x[0][0]=1; for(i=1;i {x[i][0]=x[i][i]=1; for(j=1;j x[i][j]=x[i-1][j-1]+x[i-1][j]; } } 7、程序的功能是: 例如输入字符串: abc123edf456gh,执行程序后输出: 123456,即将字符串中的数字字符输出。 请填空。 main() {chars[80],d[80];inti,j; gets(s); for(i=j=0;s[i]! ='\0';i++) if(s[i]>=’0’&&s[i]<=’9’){d[j]=s[i];j++;} d[j]='\0'; puts(d); } 8、若有定义语句: chars[100],d[100];intj=0,i=0;且s中已赋字符串,请填空以实现字符串拷贝。 (注: 不得使用逗号表达式) while(s[i]){d[j]=s[i++];j++;} d[j]=0; 9、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。 例如,输入字符串: abc123edf456gh,执行程序后输出: 123456。 请填空。 main() {chars[80],d[80];inti,j; gets(s); for(i=j=0;s[i]! ='\0';i++) if(s[i]>=’0’&&s[i]<=’9’){d[j]=s[i];j++;} d[j]='\0'; puts(d); } 10、下面程序的功能是: 将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。 请填空。 main() {chara[]="clanguage",t; inti,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j<=k;j=j+2) if(_a[i]>a[j]_) {t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf("\n"); } 四、程序编程题 (1)编程实现: 给定大小为10的int型一维数组a,要求先输入10个数存入a中,再分别输出该数组中值为奇数的元素个数和值为偶数的元素个数。 (2)从键盘输入一个数,查找该数在一个给定的数组中出现的次数,并打印出现的位置(即下标)。 (3)有一个整型数组a[10],它的初值分别是: 6,5,9,3,8,1,0,4,2和7。 要求编写程序,将数组的值按升序排列。 (4)删除字符串中出现的数字。 比如: 输入字符串“a1b2c333d56ef”,处理完后输出为“abcdef”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 数组答案 数组 答案