还剩6页未读,继续阅读
文本内容:
数组练习题
一、选择题
1.以下能对一维数组a进行正确初始化的语句是A.int a
[10]=0,
0.0,0,0;B.int a
[10]={};C.int a[]={0};D.int a
[10]={10*l};
2.若有定义int a
[2]
[3];,以下选项中对a数组元素正确引用的是A.a
[2][!1]B.a
[2]
[3]C.a
[0]
[3]D.a[l2][!1]
3.以下能正确定义一维数组的选项是A.int a
[5]={0,1,2,3,4,5};B.char a[]={0,1,2,3,4,5};C.char a={A,B,C};D.int a
[5]=0123”;
4.已有定义:char a[]=〃xyz〃,b[]={x,y,z};,以下叙述中正确的是数组和的长度相同数组长度小于数组长度A.a bB.a b数组长度大于数组长度上述说法都不对C.a bD.
5.以下叙述中错误的是对于类型数组,不可以直接用数组名对数组进行整体输入或输出A.double数组名代表的是数组所占存储区的首地址,其值不可改变B.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出”下标C.越界”的出错信息可以通过赋初值的方式确定数组元素的个数D.
6.若有定义语句inta
[3]
[6];,按在内存中的存放顺序,a数组的第10个元素是A.a
[0]
[4]B.a[l]
[3]C.a
[0]
[3]D.
7.以下数组定义中错误的是A.intx□⑶={0};B.int x
[2][3{{1,2},{3,4},{5,6};C.int x[]
[3]={{1,2,3},{4,5,6}};D.int x
[2]
[3]={1,2,3,4,5,6;
8.以下能正确定义字符串的语句是A.char str[]={\064};B.char str=kx43;C.char str=;D.char str[]=\0;
9.有以下程序main int i,t口
[3]={9,8,7,6,5,4,3,2,1};for i=0;i3;i++printf〃%d〃,t[2-i][i];程序执行后的输出结果是A.753B.357C.369D.
75110.有以下程序main intx
[3]
[2]={0},i;fori=0;i3;i++scanf%d〃,x[i];printfz/%3d%3d%3d\n/z,x
[0]
[0],x
[0]
[1],x
[1]
[0];若运行时输入246〈回车〉,则输出结果为A.200B.204C.240D.
24611.有以下程序main intp
[8]={ll,12,13,14,15,16,17,18},i=0,j=0;whilei++7ifp[i]%2j+=p[i];printf z/%d〃,j;程序运行后的输出结果是A.42B.45C.56D.
6012.有以下程序ttinclude string.h〃main{char p[]={4a\z cz},q
[10]={A,r bz,,c,};printf zz%d%d\n〃,strlen p,strlen q;}以下叙述中正确的是A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B.由于P数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3C.由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3由于和数组中都没有字符串结束符,故长度都不能确定D.p q
13.有以下程序#include string.hmain char p
[20]={a,,,b,,,c\,d,},q□二〃abc〃,r□二〃abcde〃;strcpy p+strlen q,r;strcat p,q;printf v%d%d\n,z,sizeof p,strlen p;}程序运行后的输出结果是A.209B.99C.2011D.
111114.有以下程序main inta
[4]
[4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,j,k,t;for i=0;i4;i++forj=0;j3;j++for k=j+l;k4;k++if a[j][i]a[k][i]{t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}for i=0;i4;i++printf〃,a[i][j];}程序运行后的输出结果是A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,
15.有以下程序main inta
[4]
[4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;for i=0;i3;i++for k=i+i;k4;k++if a[i][i]a[k][k]{t=a[i][i];a[i][i]=a[k][k];a[k][k]=t;}fori=0;i4;i++printf xx%d,z,,a
[0][i];}程序运行后的输出结果是A.6,2,1,1,B.6,4,3,2,C.1,1,2,6,D.2,3,4,6,
16.有定义语句char s
[10];若要从终端给s输入5个字符,错误的输入语句是A.getss
[0]B.scanf xx%s,z,S+l C.gets sD.scanf s[l]有以下程序
17.ttinclude stdio.h〃main{int s
[12]={l,2,3,4,4,3,2,1,1,1,2,3},c
[5]={0},i;fori=0;i12;i++c[s[i]]++;for i=l;i5;i++printf c[i];printf、\n〃;程序的运行结果是A.1234B.2344C.4332D.
112318.若要求从键盘读入含有空格字符的字符串,应使用函数A.getcB.getsC.getcharD.scanf有以下程序
19.main{charp口=「a,,b,,,c,},q□二〃abc〃;printf z,%d%d\n〃,sizeof p,sizeof q;;程序运行后的输出结果是A.44B.33C.34D.43
二、填程序
1.下程序的功能是按以下形式输出数组右上半三角1234678111216ttinclude〃stdio.h〃main intnum
[4]
[4]={{1}2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;fori=0;i4;i++forj=0;ji;j++printf4c,for j=;j4;j++printf^d^,num[i][j];printf〃\n〃;
2.先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not found!”标志ttincludestdio.h〃main int i,x,a
[10];fori=0;i10;i++scanf〃%d〃,;scanf〃%d〃,x;printf〃%d〃,x;for i=0;i10;i++ifbreak;if i10printf^position:%d\\n〃,i;else printfNotfound!\\n〃,x;}
3.以下程序统计从终端输入的字符中大写字母的个数,num
[0]中统计字母A的个数,num[l]中统计字母B的个数,其它依次类推.用#号结束输入,请填空.ttinclude stdio.hffinclude ctype.hmainint num
[26]={0},i;char c;while!=,#,if isupperc num[c-A]+=;for i=0;i26;i++printf〃%c:%d\n”,i+A,num[i];
4.以下程序的功能是求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出请填空ttinclude stdio.hmain intx
[10],a
[9],i;for i=0;i10;i++scanf%d”,x[i];for i=;i10;i++a[i-l]=x[i]+;for i=0;i9;i++printf〃%d〃,a[i];printf〃\n〃;
三、写出以下程序的输出结果:
1.ftinclude stdio.hmain{inti,n
[4]={l};for i=l;i=3;i++n[i]=n[i-l]*2+l;printf〃%5d〃,n[i];}}
2.ttinclude stdio.h^include string.hmain{char ch[]=//abc/z,x
[3]
[4];inti;fori=O;i3;i++strcpyx[i],ch;for i=0;i3;i++printf〃%s〃,x[i][i];printf〃\n〃;}
3.ttinclude stdio.httinclude string.hmain{char a[]={\l,\2,\3,\4,\0};printf〃%d%d\n〃,sizeof a,strlen a;
4.ftinclude stdio.h#include string.hmain inta
[3]
[3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;fori=0;i3;i++s+=a[i][i]+a[i][3-i-l];printf〃%d\n〃,s;
四、编程题
1.编写程序,将两个字符串连接起来,不能使用strcat函数
2.用筛选法求1000以内的所有素数
3.编程求两个集合的交集和并集以及差。
个人认证
优秀文档
获得点赞 0