《第六章数组习题答案.doc》由会员分享,可在线阅读,更多相关《第六章数组习题答案.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六章数组习题答案一、单项选择题1. C语言中,一维数组下标的最小值是( B )。 A)1 B) 0 C) 视说明语句而定 D) 无固定下限2. 若有定义语句:int a36;,按在内存中的存放顺序,a数组的第10个元素是( B )。 A)a04 B) a13 C) a03 D) a143. 设有数组定义:char str =”China0”,则数组str所占的空间为( D )字节。 A)4个 B) 5个 C) 6个 D) 7个4. 若有定义语句:char str =”abn012n”; 则执行语句:printf(“%d”,strlen(str);后,输出结果是( A )。 A)3 B) 4
2、C) 6 D) 125. 下列描述中不正确的是( C )。 A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。 A)scanf( ) B)getchar( ) C) gets( ) D) getc( )7. 有以下程序 #include main( ) int i,x32=0; for(i=0;i3;i+) scanf(“%d”,xi); printf(“%3d%3d%3dn”,x00, x01, x
3、10); 程序运行后的输出结果是( )。 A)2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 68. 有以下程序 #include #include main( ) char p20=a,b,c,d,q =”abc”,r =”abcde”; strcpy(p+strlen(q),r); strcat(p,q); printf(“%d %dn”,sizeof(p),strlen(p); 程序运行后的输出结果是( C )。 A)20 9 B) 9 9 C) 20 11 D) 11 119. 有以下程序 #include #include main( ) char p20=a,b,c,
4、d,q =”abc”,r =”abcde”; strcat(p,r); strcpy(p+strlen(q),q); printf(“%dn”, strlen(p); 程序运行后的输出结果是( B )。 A) 9 B) 6 C) 11 D) 710.有以下程序 #include main( ) char s =”abcde”; s+=2; printf(“%dn”,s0); 程序运行后的输出结果是( D )。A)输出字符a的ASCII码 B) 输出字符c的ASCII码 C) 输出字符c D) 程序出错二、填空题1. 数组在内存中占一片连续的存储区,由 数组名 代表它的首地址。2. C语言程序在
5、执行过程中,不检查数组下标是否 越界 。3. 若定义char str20;则表示此数组有 20 个元素,其下标从 0 开始,最大为 19 。4. 设有定义语句:int i=3,a =1,2,3,4;,则数组a 的类型是 整型 ;数组元素ai的值是 4 。5. 设有定义:char s5=a,b;,则s1中的字符是 b ,s2中的字符是 0 。6. 定义一个名为x整型二维数组,其大小为34,要求每行第一个元素为1,其余均是0,则定义语句是 int x34=1,1,1;7. 以下程序统计从终端输入的字符中大写字母的个数,num0中统计字母A的个数,num1中统计字母B的个数,其它依次类推。用#号结束
6、输入,请填空。#include #include main( ) int num26=0,i; char c; while( c=getchar() )!=#) if(isupper(c) numc-A+= 1 ; for(i=0;i26;i+) printf(“%c:%dn”,i+A,numi;8. 以下程序的输出结果是 3715 。 #include main( ) int i,n4=1; for(i=1;i=3;i+) ni=ni-1*2+1; printf(“%d”,ni); 9. 以下程序的输出结果是 9 。#include #include main( ) printf(“%dn”
7、,strlen(“IBMn0121”); 10. 以下程序的输出结果是 4 7 。#include #include main( ) char a =1,2,3,4; printf(“%d %dn”,sizeof(a),strlen(a); 三、阅读程序题1. 以下程序的输出结果是 2 。 #include main( ) int a5=1,1,1,0,i,k=2; for(i=0;i=k;i+) ai=ai+1; printf(“%dn”,ak); 2. 以下程序的输出结果是 。 #include main( ) int a23=1,3,5,2,4,6; int i,j; for(i=0;i
8、=1;i+) for(j=0;j=2;j+) printf(“%3d”,aij); printf(“n”); 运行结果:1 3 5 2 4 63. 以下程序的输出结果是 2,2,1 。 #include main( ) int i,j,t,row=0,col=0; int a43=8,22,14,10,12,3,11,2,33,6,7,17; t=a00; for(i=0;i4;i+) for(j=0;j3;j+) if(aijt) t=aij;row=i;col=j; printf(“%d,%d,%dn”,t,row,col); 4. 以下程序的输出结果是 3 5 7 。 #include
9、main( ) int i,a33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(“%d”,ai2-i); 5. 以下程序的输出结果是 12,13 。 #include main( ) int a3=1,3,5,7,2,4,6,8,9; int i,j,s1=0,s2=0; for(i=0;i=2;i+) for(j=0;j=2;j+) if(i=j) s1=s1+aij; if(i+j=2) s2=s2+aij; printf(%d,%dn,s1,s2); 6. 以下程序的输出结果是 1234 。 #include main( ) char str =”;
10、 str4=0; printf(“%sn”,str); 7. 以下程序的输出结果是 。 #include #include main( ) char s18, s28, s38, s48; scanf(“%s%s”,s1,s2); gets(s3); gets(s4); puts(s1); puts(s2); puts(s3); puts(s4); 运行时输入以下数据:AAA BBBCCC DDD运行结果:AAA BBB CCC DDD8. 若输入ABC,以下程序的输出结果是 ABC6789 。 #include #include main( ) char str10=”abcde”; get
11、s(str);strcat(str,”6789”);printf(“%sn”,str); 9. 以下程序的输出结果是 632 。#include main( ) char ch =”632”; int a,s=0; for(a=0;cha=0&cha=9;a+) s=10*s+cha-0; printf(“%dn”,s); 10. 以下程序的输出结果是 。#include main( ) char str =A,A,A,A,A,A; int i,j,k; for(i=0;i3;i+) printf(“n”); for(j=0;ji;j+) printf(“ “); for(k=0;k5;k+)
12、 printf(“%c“,strk); 运行结果:AAAA AAAA AAAA四、编程题1. 将输入的n个整数按从小到大排序输出,并求出其中所有奇数的个数。2. 输入n个整数,求出其中最大数及其所在的位置,以及此n个数中素数的个数。3. 输入10学生的分数,计算平均分,并打印低于平均分数的成绩。4. 求300以内的所有素数的和。5. 编程求一个44矩阵两条对角线上所有元素之和。6. 编程,输入一个34整数矩阵并求各行元素之和及各列元素之和。7. 输入一个字符串,将指定位置的字符删除。8. 输入一个字符串,在指定的位置插入一个字符。9. 输入一个长度不超过80的字符串,编写程序,删除其中所有的数字字符。10.不用strlen函数,求键盘输入的字符串长度。11.不用strcat函数,将键盘输入的两个字符串连接起来形成一个新串