c语言习题.docx
- 文档编号:10170057
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:34
- 大小:110.22KB
c语言习题.docx
《c语言习题.docx》由会员分享,可在线阅读,更多相关《c语言习题.docx(34页珍藏版)》请在冰点文库上搜索。
c语言习题
第五章练习题
一、选择题
1、判断字符串a和b是否相等,应当使用()
A、if(a==b)B、if(a=b)C、if(strcpy(a.b))D、if(strcmp(a,b))
2、以下正确的泄义语句是()
A、inta[l][4]={1,23,4,5);B、floatx[3][]={{1},{2},{3}};
C、longb⑵[3]={{1},{1,2},{1,2,3}};D、doubley(][3]={0};
3、以下各组选项中,均能正确泄义二维实型数组a的选项是()
A、floata[3][4];floata[][4];floata[3][]={{1}JO}};
B、floata(3,4);floata[3][4];floata[][]={{0),(0}};
C、floata[3][4];staticfloata[][4]={{0},{0});autofloata[][4]={{0},{0},{0}};
D、floata[3][4];floata[3][];floata[][4];
4、下而程序的运行结果是()
#includeHstdio.hHmain()
{charstr[]=HSSSWLIA\c;
intk;
foitk=2;(c=str[k]!
=W);k++)
{switch(c)
{case*r:
++k;break;
case'Llcontinuc;
default:
putchar(c);continue;
}
putchar(,**);
}
)
A、SSW*B、SW*C、SW*AD、SW
5、下而程序段是输出两个字符串中对应相等的字符。
横线处应填入()charx[]=MprogrammingM;
chary[]=MFortranH;
inti=0;
whi!
e(x[i]!
=W&&y[i]!
-\0)
if(x[i]=y[i])DrintH%—《1》):
11、下面程序的运行结果是()
main()
{inta[6],i;
for(i=l;i<6;i++)
{a[i]=9*(i-2+4*(i>3))%5;
printf(,t%2d,\a[i]);
}
}
A、-40404B、-40403C、-40443D.-40440
12、下而程序的运行结果是()
main()
{inta[6][6]Xj;
for(i=l;i<6;i++)
for(j=l;j<6;j++)
a[iJU]=(iZi)*(j/O;
for(i=l;i<6;i++)
{for(j=l:
j<6:
j++)
printf("%2d,'.a(i][j]);
printf(,,\nN);
}
}
A、11111
B、00001
C.10000
D.10001
11111
00010
01000
01010
11111
00100
00100
00100
11111
01000
00010
01010
11111
10000
00001
10001
13、下述对C语言字符数组的描述中错误的是()
A、字符数组可以存放字符串。
B、字符数组的字符串可以整体输入、输出。
C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值。
D、不可以用关系运算符对字符数组中的字符串进行比较。
14、判断字符串si是否大于字符串s2,应当使用()
A、if(sl>s2)B、if(strcmp(shs2))C、if(strcmp(s2,sl)>0)D、if(strcmp(sl,s2)>0)
15、下而程序(每行程序前而的数字表示行号):
()
1main()
2{
3inta[3]={3*0};
4inti;
5for(i=0;i<3;i++)scanf(”%d”,&a[i]);
6for(i=I;i<3;i++)a[O]=a[O]+a[i];
7printf(H%d\nM,a[O]);
8}
A、第3行有错误B、第7行有错误C、第5行有错误D、没有错误
16、下而程序的功能是从键盘输入一行字符,统计英中有多少个单词,单词之间用空格分隔。
横线处应填入()
main()
{chars[8O],cl,c2=;
inti=O,num=O:
gets(s);
whilcGHr'O')
(Cl=s[i];
if(i==0)c2=*:
elsec2=s[i-l];
if(《1》)num++;
i++;
}
printf(M%dH,num);
}
A、cl==1&&c2=』B、cl!
=*•&&c2二」C、cl=‘‘&&c2!
=,rD、cl#'1&&c2!
「
17、有字符数组a[80]和b(8O],则正确的输出语句是()
A、puts(a.b);B、printf(H%s,%s,\a[],b(]);C、putchar(a,b);D、puts(a).puts(b);
18、下而描述正确的是()
A、两个字符串所包含的字符个数相同时,才能比较字符串。
B、字符个数多的字符串比字符个数少的字符串大.
C、字符串“STOP”与“STOP”相等。
D、字符串“That”小于字符串“The”
19、有两个字符数组a、b,则以下正确的输入语句是()
A、gets(a.b);B、scanf(M%s%s,\a,b);C>scanf(u%s%sM,&a.&b);D^gets(HaH),gets(HbN);
20、以下不正确的定义语句是()
A、doublex[5]={2・040.6・0・8・0,l・0};B、inty[习=}{0丄234,6}
C、charc1[]={T,2,'3;'4:
'5'};D.charc2[]={\xlO,.,\xa,Ax8'};
21、调用函数时,若实参是一个数组名,则向函数对应的形参传送的是()
A、数组的长度B、数组的首地址
C、数组第一个元素的值D、整个数组元素的值
22、下而程序段的运行结果是()
chars[6J;s='、abcd'‘;printf("\"%s\'An':
s);
A、“abed"B、"abed“C、VabedVAnD、编译岀错
23、(多项选择)以下不能对二维数组a进行正确初始化的语句是()
A、inta⑵[匸{{1,0,1},{5,2,3}};B、.inta[][3]={{1,2,3},{4,5.6}};
C、inta[2][4]={{1,2,3},{4,5},{6}};D、inta[][3]={{1,0,1},{},{□}};
24、(多项选择)若有说明:
inta[3][4]:
则对a数组元素不能正确引用是()
A.a(2][4]B.a[l,3]C.a[l+l][0]D.a
(2)(l)
25、(多项选择)若有说明“staticinta[3][4]二{0}:
”则下面正确的叙述是()
A、只有元素:
a[0][0]可得到初值0B、此说明语句不正确
C、数组a中各元素都可得到初值,但其值不一建为0
D、数组a中每个元素均可得到初值0
26、以下对一维整型数组的正确说明是()
A、inta(l):
B.intn=10»a[n];
C、intn:
scanf「%d",&n);inta[n]:
D、#defineSIZE10inta(SIZE]:
27、有以下程序,其输出结果是()
voidswap1(intc[J)
{intt;
t=c[O]:
c[O]=c[l]:
c[l]=t;
}
voidswap2(intcOJntcl)
{intt;
t=cO;cO=cl;cl=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swap1(a);swap2(b[0],b[1]);
pnntfC%d%d%d%d\n匸[0],a[l],b[0].b[l]);
}
A、5353B、5335C、3535D.3553
28、以下程序执行后的输出结果是()
intf(intb[][4])
{inti,j,s=O;
for(j=0:
jv4;j十+)
{冃;
if(i>2)i=3-j;
s+=b[i]U);
returns;
}
main(){im[4][4]={{123・4},{0,245},{3,6912},{321・0}};pnntfC6%dW\f(a));}}
A、12B、11C.18
29、执行下列程序后输岀的结果是()
inta[3][3]=({I),⑵,{3}};
intb[3][3]={l,2,3}:
main()
{printf("%d\n%a(l][O]+b[O][O]):
}
A、0B、1C、2D.3
30、以下程序运行后,输出结果是()
main()
{inty=18,i=0,j,a[8];
do{a[i]=y%2;i++:
y=y/2:
}
D.10100
while(y>=1):
for(j=i-l;j>=0:
j-)pnntf("%&',a[j]):
printf(fcfc\nJ:
}
A、1000B、10010C.00110
二、填空题
1、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。
请填空。
(填空时数组元素请用数组表示方法)
main()
{inta[10]={l,2,3,4,567,&9,10};
intk,s,i;floatave;
for(k=s=i=0:
i<10;i++)
(if(a[i]%2!
=0)《1》;
s+=《2》:
k++;
}
if(k!
=O){ave=s/k:
printf(H%d,%f\k.ave);}
}
2、下而程序的运行结果是()
main()
{intnumjist[]={6,7.8.9);
intk,j,b,u=0,m=4,w;
w=m・l;
while(u<=w)
{j=num_list[uj;
k=2:
b=l;
while(k<=j/2&&b)b=j%卄k;
if(b)printf(M%dM,numJist[u-H-]);
else{numjist[u]=num」ist[w];numjist[w-]=j;}
}
}
3、下面程序的功能是将字符数组a[6]={,a\'b,,,c,.,d\,e';f}变为a[6]»请填空。
(注:
填空时数组元素请用数组表示方法)
main()
{chart,a⑹二{'aTbTcTd',e,f};
inti;
《1》:
for(《2》:
i>O;i-)a[i]=a[i-l];
a[O]=t;
for(i=0;i<=5;i++)printf(,t%c,,,a[i]);
}
4、下而程序的运行结果是()
main()
{inti;
chara[]=,,TimeH,b[]=HTom,r;
for(i=0;a[i]!
=,\0,&&b[i]!
=、O;i++)
if(a[i]=b[i])
if(a[i]>=,a•&&a[i]<=,z,)printf(,,%cl\a[i]-32);
elseprintf(H%c\a[i]+32);
elseprintf(H*n);
)
5、下而程序的运行结果是()
main()
{inti=l;n=3j.k=3;
inta[5]={1,4,5};
while(i<=n&&k>a[i])i++;
for(j=n-l;j>=i:
j-)a[j+ll=a[j];
a[i]=k;
for(i=0;i<=n;i++)printf(u%2d/\a[i]);
}
6、当从键盘输入18并回车后,下面程序的运行结果是()
main()
{intx,y,i・a[8]j.u・v;
scanf(M%d,,.&x);
y=x;i=O;
do
(u=y/2;a[i]=y%2;i++;y=u;
}while(y>=l);
for(j=i-l;j>=0:
j-)printf(H%d,\a[j]);
}
7、下而程序的运行结果是()
main()
{inta[10]={123,4,5,6.7,&9J0};
intk,s,i;
floatave;
for(k=s=i=0;i<10;i++)
{if(a[i]%2==0)continue;
s+=a[i];k++;}
if(k!
=0){ave=s/k:
printf(HThenumberis:
%d,Theaverageis:
%f\n*\k,ave);}
}
8、若有以下输入«CR>表示回车),则下面程序的运行结果是()
31232221130
main()
main()
{inta[4],x,i;
for(i=l;i<=3;i++)
a[i]=O;
scanf(H%dH.&x);
while(x>0)
{a[x]+=l:
scanf(H%dH.&x);}
for(i=l;i<=3;i++)printf(Ma[%d]=%d;\i,a[i]);
}
9、当运行以下程序时,从键盘输入:
BOOK
CUT
GAME
PAGE
#include"stdio.h11
#include”string.h”
main()
{inti;
charstr[10]Jemp[10]=MControlM;
for(i=0;i<4;i++)
(gets(str);
if(strcinp(temp,str)<0)strcpy(temp.str);
}
puts(temp);
}
10、当运行以下程序时,从键盘输入
girl
boy
#includeMstdio.hH
#includeHstring.hH
main()
{chara[2][80],t;
intijjnjLle,max:
for(i=0;i<=l;i++)gets(a[i]);
t=a[O][O];
for(i=0;i<=l;i++)
{le=strlen(a[i]);
for(j=0:
j<=le;i++)
if(a[i][j]>t){max=a[i][j];m=i:
n=j;}
}
printf(H%c%d%d\n",max,m,n);
}
11、下面程序的功能是在三个字符串中找出最小的。
请填空(注:
填空时请用数组元素表示方法)。
#includeHstdio.hH
#include”string.h”
main()
{chars[2O],str[3][2O];
inti;
for(i=0;i<3;i++)gets(str[i]);
strcpy(s,(《1》)str[O]:
str[l]):
if(strcmp(str[2]5s)<0)strcpy(s,str⑵);
printfC^sXn1;《2》);
}
12、下而程序段的运行结果是()
charch[]=H600M;
inta,s=O;
for(a=0;ch[a]>=,0'&&ch[a]<=9';a++)s=10*s+ch[a]-,0,;
printf(H%d,\s);
13、下而程序的运行结果是()
main()
(inta[3][3],ij;
for(i=l;i<3;i++)
for(j=l;j<3:
j++)a[i]|j]=(i/j)*O/i);
for(i=l;i<3;i++)
for(j=l;j<3;j++)printfC'%d/\a[i]U]));
}
14、下而程序段将输出computer,请填空。
charc[]='Itsacomputer”;
for(i=0;i<=《1》)卄)
printf(M%c\c[i《2》]);
15、下而程序的运行结果是()
main()
{inta[9]={0,6」2,1842.44,52,67.94};
intx=52,i,n=9.m;
i=n/2+l;m=n/2:
while(m!
=O)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题