还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
习题六一.选择题.在语言中,引用数组元素时,其数组下标的数据类型允许是」—整型常量1C0A整型表达式B整形常量或整形表达式任何类型的表达式C C.以下对一维整型数组的正确说明是2a DA int a10;B intn=10,a[n];C intn;D#define SIZE10%scanf d”,n;int a[SIZE];int a[n];.若有定义则对数组元素的正确引用是3inta
[10],a DA a
[10]B a[
3.5]C a5D a[10-10].以下不能对一维数组进行正确初始化的语句是4a BAinta
[10]={0,0,0,0,0};B inta
[10]={};C inta[]={0};D inta
[10]={10*l};.若有定义[引则对数组元素的正确引用是5int a
[4],a A引A a
[2]
[3]B a[l,C a5D a[10-10].以下能对二维数组进行正确初始化的语句是6a B⑵口Aint a={{1,0/},{5,2,3}};B inta[]
[3]={{l,2,3},{4,5,6};C int a
[2]
[4]={{l,2,3},{4,5},{6};;D int a[]
[3]={{1,0,1},{},{1,1}.以下不能对二维数组进行正确初始化的语句是7a CAinta
[2]
[3]={0};B inta[]
[3]={{l,2},{0}};C inta
[2]
[3]={{l,2},{3,4},{5,6};D int a[]
[3]={1,2,34,5,6;.若有说明:则下面正确的叙述是只有元素可得到初值8inta
[3]
[4]={0};D Aa
[0]
[0]0{t=a[j];a[j]=a[p];a[p]=t;}%;forj=0;jn;j++printf d”,a[j]main{int a
[100],i,j,p,t,n=20;%for0=0;jn;j++scanf d”,a[j],for j=0;jn-l;j++;{P=Jfor i=j+l;in-l;i++if a[p]a[i]p=i;if p!=j{t=a[j];a[j]=a[p];a[p]=t;}%;forj=0;jn;j++printf d”,a[j].下面程序的功能是统计子字符串在字符串中出现的次数例如,若5substr str字符串为子字符串为则应输出;判断下面程序的正误,如果错误aaas Ikaaas,as,2请改正过来main{char substr
[80],str
[80];int iJ,k,num=0;getssubstr;getsstr;for i=0,str[i],i++for j=i,k=O;substr[k]==str[j];k++,j++ifsubstr[k+l]!=,\0,{num++;break;,printff’num=%d num;}main{char substr
[80],str
[80];int i,j,k,num=O;getssubstr;getsstr;for i=0;str[i];i++for j=i,k=O;substr[k]==str[j];k++j++if substr[k+l]==\0{num++;break;ifsubstr[k]==str[j]♦•l=j;},printf“num=%d num;五.程序填空题下面程序可求出矩阵的主对角线上的元素之和,请填空使程序完整
1.a2main{int a
[3]
[3]={1,3,5,7,9,1193,15,17},sum=0,i,j;for i=0;i3;i++for j=0;j3;j++if111i==j;sum=sum+
[2]a[i][j]printR“sum=%d\sum;.下面程序将十进制整数转换成进制,请填空使程序完整2n base3main{int i=0,base,nJ,num
[20];%scanf“d”,n;%scanf d;base;do{;i++num[i]=
[1];n%basen=
[2];n/base}while n!=0;【;;;for3]j=i j=l j-%;printf d”,num|JD.下面程序的功能是输入个数,找出最大值和最小值所在的位置,并把两者对310调,然后输出调整后的个数,请填空使程序完整103main{int a
[10],max,min,i,j,k;for i=0;i10;i++%;scanf d\a[i]max=min=a
[0];j=k=O;for i=0;i10;i++{if a[i]min{min=a[i];
[1];}j=iif a[i]max{max=a[i];
[2];}k=i
[3];a[j]=max;a[k]=min;for i=0;i10;i++%;printf d”,a[i]六.编程题.用选择法对个整数排序
110.有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
2.对三人的四门课程分别按人和科目求平均成绩,并输出包括平均成绩的二维成4绩表.提高题将一个数组中的值按逆序重新存放例如原来顺序为要58,6,5,4,lo求改为1,4,5,6,8o.提高题打印出杨辉三角形(要求打印出行,课本页)610P
1417.
6.提高题编写程序7()求一个字符串的长度;1S1()将一个字符串的内容复制给另一个字符串;2S1S2()将两个字符串和连接起来,结果保存在字符串中;3S1S2S1()搜索一个字符在字符串中的位置(例如在中的位置为)如果4T CHINA”3没有搜索到,则位置为一1()比较两个字符串和如果输出一个正数;如果输出;5S1S2,S1S2,S1=S2,0如果输出一个负数;输出的正,负数值为两个字符串相应位置字符S1VS2,ASCH码值的差值,当两个字符串完全一样时,则认为S1=S2以上程序均使用或函数输入,输出字符串不能使用中的系统函gets putsstring.h数此说明语句不正确B数组中各元素都可得到初值,但其值不一定为C a0数组中每个元素均可得到初值D a
0.若有说明;则下面不正确的叙述是9inta[]
[4]={0,0}D数组的每个元素都可得到初值Aa0二维数组的第一维大小为B a1因为二维数组中初值个数除以第二维大小的值的商向上取整为故数组的行C a1,a数为1只有元素和可得到初值其余元素均得不到初值D a
[0]
[0]0,
0.若二维数组有歹!则计算任一元素在数组中位置的公式为设位10a mJ,a
[0]
[0]于数组的第一个位置上DA i*m+j Bj*m+i Ci*m+j-l Di*m+j+l.若有说明则数组第一维大小是11inta[]
[3]={123,4,5,6,7};a B无确定值A2B3C4D.以下不正确的定义语句是12B;A double x
[5]={
2.0,
4.0,
6.0,
8.0,
10.0}B inty
[5]={0,l,3,5,7,9;C charcl[]={l,2,3,4,5};D charc2[]={4\xl0,,,\xa,,,\x8,};.下面程序段的输出结果是13Aint k,a
[3]
[3]={1,2,3,4,5,65,8,9};%for k=0;k3;k++printf d”,a[k][2-k];A357B369C159D
147.下面是对的初始化,其中不正确的是14s DAchar s
[5]={uabc,};B char s
[5]={ta,,,b,,,c,};C chars
[5]=;D char s
[5]=abcdeF\.下面程序段的输出结果是15Bcharc
[5]={a,b,0,c,0}printfft%s,,,c;匕笛A Bab Cabc D abc.有两个字符数组则以下正确的输入语句是17a,b,B%A getsa,b;B scanf“s%s”,a,b;C scanfu%s%s5\a b;D getsa,getsb”;,.下面程序段的输出结果是18Dchar a
[7]=abcdeF;char b
[4]=ABC”;strcpya,b;%printf c”,a
[5];A B\0C eD f.下面程序段的输出结果是19Bchar c[]=\t\v\\\Owill\n;printfCt%d,\strlenc;A14B3C9D6判断字符串和是否相等,应当使用
20.a b DA ifa==b Bifa=bC ifstrcpya,bDif strcmpa,b==
0.判断字符串是否大于应当使用21a b,DA ifabB ifstrcmpa,bC ifstrcmpb,a0D ifstrcmpa,b
0.下面叙述正确的是22D两个字符串所包含的字符个数相同时,才能比较字符串A字符个数多的字符串比字符个数少的字符串大B字符串“与“相等C STOP”STOP”字符串小于字符串叮D Thathe”.下面有关字符数组的描述中错误的是23C字符数组可以存放字符串A字符串可以整体输入,输出B可以在赋值语句中通过赋值运算对字符数组整体赋值C不可以用关系运算符对字符数组中的字符串进行比较D.下面程序的输出结果是24Amain{char ch
[7]=12ab56”;int i,s=O;for i=0;ch[i],0,ch[i]=,9,;i+=2s=10*s+ch[i]-409;%printf d\ns;A1B1256C12ab56Dab.下面程序的输出结果是25Bmain,char str[]=SSWLIA C;int k;for k=l;c=str[k]!=5\05;k++{switch c{case T:++k;break;case L:continue;default:putcharc;continue;,putchar*;A SSWB SW*C SW*A DSW二.填空题.在语言中,二维数组的元素在内存中的存放顺序是以行为主序存1c放O.若有定义则数组中行下标的下限为列下标的下限为工2doublex
[3]
[5],x2,,若有定义:则初始化后,⑵的值为3int a
[3]
[4]={{l,2},{0},{4,6,8,10}};a[l]⑵⑴得到的值为0,a6o.下面程序段的运行结果是5heo;char x[]=the teacher”int i=0;while x[++i]!=\0%;if x[i-l]==t printfc,x[i].欲为字符串输入其语句是一6SI HelloWorld!”,getsSl;.欲将字符串复制到字符串中,其语句是7S1S2strcpyS2,Sl;语言数组的下标总是从开始,不可以为负数;构成数组各个元素具有相同
9.C Q的数据类型字符串是以为结束标志的一维字符数组有定义则数组的长度是
10.char a1三.程序阅读题写出下面程序的运行结果
1.main{int a
[6]
[6],i,j;for i=l;i6;i++;;for j=l j6;j++a[i][j]=i/j*a/i for i=l;i6;i++{forj=l;j6;j++%咽;printf2d”,⑪;print/W}}
10000010000010000010.写出下面程序的运行结果2main{int i=0;char a[]=abm,b[]=aqid c
[10];while a[i]!=,\O,b[i]!=,\T{ifa[i]=b[i]c[i]=a[i]-32;else c[i]=b[i]-32;;i++;c[i]=\rputsc;}AQM.当运行下面程序时,从键盘上输入则写出下面程序的运行结果3AabD/,main{char s
[80];int i=0;getss;while s[i]!=\0{s[i]=z+a-s[i];;i++putss;}AzyD.写出下面程序的运行结果4main{int i,c;char s
[2]
[5]={“89801’9198”};for i=3;i=0;i-{c=s
[0][i]+s[l][i]-2*U;s
[0][i]=c%10+O;for i=0;i=l;i++putss[i];
70789198.当运行下面程序时,从键盘上输入则写出下面程序的运行结果5748915/,main{inta
[6],ij,k,m;for i=0;i6;i++%scanf d[a[i];for i=5;i=0;i--{k=a
[5];for j=4;j=0;j-a[j+l]=alj];a
[0]=k;for m=0;m6;m++%”声问;printf dprintf\rT;574891157489915748891574489157四.程序判断题.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过1来main{inta
[3]={3*0};int i;%for i=0;i4;i++scanf d\a[i];%;for i=0;i4;i++printf d,a[i]main{inta
[3]={3*0};int i;%for i=0;i3;i++scanf d”,a[i];for i=0;i3;i++printf%d,a[i];.下面程序为数组输入数据并输出结果;判断下面程序的正误,如果错误请改正过2来main;{inta
[3]={l,2,3},i%scanf d%d%d”,a;for i=0;i3;i++printfu%d9\a[i];main;{inta[3{1,2,3,iscanfC%d%d%d,\a
[0],a[l],a
[2];%for i=0;i3;i++printf d[i];.下面程序的功能是先将在字符串中的字符按逆序存放到串中,然后把中3s t s的字符按正序连接到串的后面例如,当中的字符串为时则中的ts“ABCDE”t字符串应为;判断下面程序的正误,如果错误请改正过来“EDCBAABCDE”main{chars
[80],t
[200];int i,sl;getss;si=strlens;for i=0;isl;i++t[i]=s[sl-i];for i=0;isl;i++t[sl+i]=s[i];putst;main{chars[8O],t[2OOJ={O};int i,sl;getss;si=strlens;for i=0;isl;i++t[i]=s[sl-i-l];for i=0;isl;i++t[sl+i]=s[i];putst;.下面程序的功能是将各无序整数从小到大排序;判断下面程序的正误,如果4n错误请改正过来main{inta[100J,i,j,p,t,n=20;%,for j=0;jn;j++scanf d“a[j],for j=0;jn-l;j++{p=j;fori=j+l;in-l;i++if a[p]a[i]t=i;if p!=j。