C语言练习题2分支结构 循环结构 数组 函数二级真题.docx
- 文档编号:17974854
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:34
- 大小:24.98KB
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx
《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx》由会员分享,可在线阅读,更多相关《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx(34页珍藏版)》请在冰豆网上搜索。
C语言练习题2分支结构循环结构数组函数二级真题
C语言练习题
(二)
一选择题
1.有以下程序
#include
voidmain()
{inta;
scanf(“%d”,&a);
if(a++<9)printf((“%d\n”,a);
elseprintf((“%d\n”,a--);
}
程序运行时键盘输入9<回车>,则输出的结果是
A10B11C9D8
2.有以下程序
#include
voidmain()
{
ints=0,n;
for(n=0;n<3;n++)
{switch(s)
{
case0:
case1:
s+=1;
case2:
s+=2;break;
case3:
s+=3;
case4:
s+=4;
}
printf((“%d\n”,s);
}
}
程序运行后的结果是
A1,2,4B1,3,6C3,10,14D3,6,10
3.若k是int类型变量,且有以下for语句
for(k=-1;k<0;k++)printf(“****\n”);
下面关于语句执行情况的叙述中正确的是
A循环体执行一次B循环体执行两次
C循环体一次也不执行D构成无限循环
4.有以下程序
#include
voidmain()
{charA,B,C;
B=’1’;C=’A’
for(A=0;A<6;A++)
{if(A%2)putchar(B+A);
elseputchar(C+A);
}
}
程序运行后输出的结果是
A1B3D5FBABCDFECA2C4E6D123456
5.fun函数的功能是:
通过键盘输入给x所指的整型数组所有元素赋值。
在下列划线处应该填写的是
#include
#defineN5
voidfun(intx[N])
{intm;
for(m=N-1;m>0;m--)
scanf(“%d\n”,);
}
A&x[++m]B&x[m+1]Cx+(m++)Dx+m
6.有以下函数
#include
#include
voidmain()
{printf(“%d\n”,strlen(“ATS\n012\1”));}
程序运行后的输出结果是
A3B8C4D9
7.有以下函数
#include
voidmain()
{chara[20],b[20],c[20];
scanf(”%s%s”,a,b);
gets(c);
printf(”%s%s%s\n”,a,b,c);
}
程序运行时从第一行开始输入thisisacat!
<回车>,则输出结果是
Athisisacat!
BthisisaCthisisacat!
Dthisisacat!
8.有以下函数
#include
viodfun(charc)
{if(c>’x’)fun(c-1);
printf(“%c”,c);
}
voidmain()
{fun(‘z’);}
程序运行输出结果是
AxyzBwxyzCzyxwDzyx
9、有以下函数
#include
viodfunc(intn)
{inti;
for(i=0;i<=n;i++)printf(“*”);
printf(“#”);
}
main()
{func(3);printf(“?
?
?
?
”);func(4);printf(“\n”);}
程序运行输出结果是
A****#?
?
?
?
***#B***#?
?
?
?
*****#
C**#?
?
?
?
*****#D****#?
?
?
?
*****#
(10)有以下程序
#include
main()
{inta=1,b=0;
if(--a)b++;
elseif(a=0)b+=2:
elseb+=3:
printf("%d\n",b);
)
程序运行后的输出结果是()。
A)0B)1C)2D)3
(11)下列条件语句中,输出结果与其他语句不同的是()。
A)if(a)printf("%d\-n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!
=0)p由printtf("%d\n",x);elseprintf("%d\n",y);
D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
(12)有以下程序
#include
main()
{inta=7;
while(a--);
printf("%d\n",a);
)
程序运行后的输出结果是()。
A)-1B)0C)1D)7
(13)有以下程序
#include
doublef(doublex);
main()
{doublea_0;inti;
for(i=0;i<30;i+=10)a+=f((double)i);
printf("%5.0f\n",a);
}
doublef(doublex)
(returnX+x+1;)
程序运行后的输出结果是()。
A)503B)401C)500D)1404
(14)以下定义数组的语句中错误的是()。
A)intnum[]={1,2,3,4,5,6};B)intnum[][3]={{1,2},3,4,5,6};
C)intnum[2][4]=({1,2,,{3,4},{5,6});D)intnum[][4]={1,2,3,4,5,6};(27)
(15)有以下程序
#include
#defineN4
voidfun(inta[][N],imb[])
{inti;
for(i=0;i ) voidmain() {intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i; fun(x,y); for(i=0;i } 程序运行后的输出结果是()。 A)-12,-3,0,0,B)-3,-1,1,3,C)0,1,2,3,D)-3,-3,-3,-3 (16)以下程序的主函数中调用了在其前面定义的fun函数 #include { main() {doublea[15],k; k=fun(a); } 则以下选项中错误的fun函数首部是()。 A)doublefun(doublea[15])B)doublefun(double*a) C)doublefun(doublea[])D)doublefun(doublea) (17)有以下程序 #include #include main() {chara[5][10]={"china","beijing","you","tiananmen","welcome”); inti,j;chart[10]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(strcmp(a[i],a[j])>O) {strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);} puts(a[3]); ) 程序运行后的输出结果是()。 A)BeijingB)chinaC)welcomeD)tiananmen (18)有以下程序 #include intf(intm) {staticintn=0; n+=m: returnn; ) main() {intn=0; printf("%d",f(++n)); printf("%d\n",f(n++)); ) 程序运行后的输出结果是()。 A)1,2B)1,1C)2,3D)3,3 (19)有以下程序 #include main() {charch[3][5]={"AAAA","BBB","CC"); printf("%s\n",ch[1]); } 程序运行后的输出结果是()。 A)AAAAB)CCC)BBBCCD)BBB (20)有以下程序段 charname[20]; intnum; scanf("name=%snum=%d",name;&num); 当执行上述程序段,并从键盘输入: name=Lilinum=1001<回车>后,name的值为 A)Lili B)name=Lili C)Lilinum=D)name=Lilinum=1001 (21)if语句的基本形式是: if(表达式)语句,以下关于“表达式”值的叙述中正确的是 A)必须是逻辑值B)必须是整数值 C)必须是正数D)可以是任意合法的数值 (22)有以下程序 #include main() {intx=011; printf("%d\n",++x); } 程序运行后的输出结果是 A)12B)11C)10D)9 (23)有以下程序 #include main() {ints; scanf("%d",&s); while(s>0) {switch(s) {case1: printf("%d",s+5); case2: printf("%d",s+4);break; case3: printf("%d",s+3); default: printf("%d",s+1);break; } scanf("%d",&s); } } 运行时,若输入123450<回车>,则输出结果是 A)6566456B)66656C)66666D)6666656 (24)有以下程序段 inti,n; for(i=0;i<8;i++) {n=rand()%5; switch(n) {case1: case3: printf("%d\n",n);break; case2: case4: printf("%d\n",n);continue; case0: exit(0); } printf("%d\n",n); } 以下关于程序段执行情况的叙述,正确的是 A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作 C)当产生的随机数n为1和2时不做任何操作 D)当产生的随机数n为0时结束程序运行 (25)有以下程序 #include main() {chars[]="012xy\08s34f4w2"; inti,n=0; for(i=0;s[i]! =0;i++) if(s[i]>='0'&&s[i]<='9')n++; printf("%d\n",n); } 程序运行后的输出结果是 A)0B)3C)7D)8 (26)若i和k都是int类型变量,有以下for语句 for(i=0,k=-1;k=1;k++)printf("*****\n"); 下面关于语句执行情况的叙述中正确的是 A)循环体执行两次 B)循环体执行一次 C)循环体一次也不执行 D)构成无限循环 (27)有以下程序 #include main() {charb,c;inti; b='a';c='A'; for(i=0;i<6;i++) {if(i%2)putchar(i+b); elseputchar(i+c); } printf("\n"); } 程序运行后的输出结果是 A)ABCDEFB)AbCdEfC)aBcDeFD)abcdef (28)有以下程序段 #include main() { while(getchar()! ='\n'); } 以下叙述中正确的是 A)此while语句将无限循环 B)getchar()不可以出现在while语句的条件表达式中 C)当执行此while语句时,只有按回车键程序才能继续执行 D)当执行此while语句时,按任意键程序就能继续执行 (29)有以下程序 #include main() {intx=1,y=0; if(! x)y++; elseif(x==0) if(x)y+=2; elsey+=3; printf("%d\n",y); } 程序运行后的输出结果是 A)3B)2C)1D)0 (30)有以下程序 #include main() {chara[30],b[30]; scanf("%s",a); gets(b); printf("%s\n%s\n",a,b); } 程序运行时若输入: howareyou? Iamfine<回车> 则输出结果是 A)howareyou? B)how Iamfineareyou? Iamfine C)howareyou? IamfineD)rowareyou? (31)设有如下函数定义 intfun(intk) {if(k<1)return0; elseif(k==1)return1; elsereturnfun(k-1)+1; } 若执行调用语句: n=fun(3);,则函数fun总共被调用的次数是 A)2B)3C)4D)5 (32)有以下程序 #include intfun(intx,inty) {if(x! =y)return((x+y);2); elsereturn(x); } main() {inta=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是 A)3B)6C)8D)12 (33)有以下程序 #include intfun() {staticintx=1; x*=2; returnx; } main() {inti,s=1; for(i=1;i<=3;i++)s*=fun(); printf("%d\n",s); } 程序运行后的输出结果是 A)0B)10C)30D)64 (34)有以下程序 #include #defineS(x)4*(x)*x+1 main() {intk=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是 A)197B)143C)33D)28 (35)以下是if语句的基本形式: if(表达式)语句其中“表达式” A)必须是逻辑表达式B)必须是关系表达式 C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式 (36)有以下程序 #include main() {intx; scanf(“%d”,&x); if(x<=3); else if(x! =10) printf(“%d\n”,x);} 程序运行时,输入的值在哪个范围才会有输出结果 A)不等于10的整数B)大于3且不等于10的整数 C)大于3或等于10的整数D)小于3的整数 (37)以下程序中的变量已正确定义 for(i=0;i<4;i++,i++) for(k=1;k<3;k++)printf(*”); 程序段的输出结果是 A)********B)****C)**D)* (38)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是 A)n=0;while((ch=getchar())! =’\n’)n++; B)n=0;while(getchar()! =’\n’)n++; C)for(n=0;getchar()! =’\n’;n++); D)n=0;for(ch=getchar();ch! =’\n’;n++); (39)有以下程序 #include main() {inta1,a2;charc1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); printf(“%d,%c,%d,%c”,a1,c1,a2,c2);} 若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是: 12,a,34,b,则正确的输入格式是(以下代表空格, A)12a34b (40)有以下程序 #include intf(intx,inty) {return(y-x)*x);} main() {inta=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(“%d\n”,d);} 程序运行后的输出结果是 A)10B)9C)8D)7 (41)有以下程序 #include intfun(intx,inty) {if(x==y)return(x); elsereturn((x+y)/2) } main() {inta=4,b=5,c=6; printf(“%d\n”,fun(2*a,fun(b,c)))} 程序运行后的输出结果是 A)3B)6C)8D)12 (42)设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是 A)autoB)registerC)staticD)auto或register (43)以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是 A)switch(a)B)switch(a==1) {case1: a=b;break;{case0: a=b;break; default: a++;}case1: a++;} C)switch(a)D)switch(a==1) {default: a++;break;{case1: a=b;break; case1: a=b;}case0: a++;} (44)有如下嵌套的if语句 if(a if(a elsek=c; if(b elsek=c; 以下选项中与上述if语句等价的语句是 A)k=(a a: b;k=(b<c)? b: c; B)k=(a ((b<c)? a: b)((b>c)? b: c); C)k=(a ((a<c)? a: c)((b<c)? b: c); D)k=(a a: b;k=(a<c)? a: c; (45)有以下程序 #include main() {inti,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j--) {if(i+j>3)break; m*=i*j;} } printf(“m=%d\n”,m); } 程序运行后的输出结果是 A)m=6B)m=2C)m=4D)m=5 (46)有以下程序 #include main() {inta=1,b=2; for(;a<8;a++){b+=a;a+=2;} printf(“%d,%d\n”,a,b); } 程序运行后的输出结果是 A)9,18B)8,11C)7,11D)10,14 (47)以下关于return语句的叙述中正确的是 A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返同到调用处 (48)下列选项中,能正确定义数组的语句是 A)intnum[0..2008];B)intnum[]; C)intN=2008;D)#defineN2008 intnum[N]; intnum[N]; (49)有以下程序 #include main() {inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=1;i<3;i++)s=s+a[b[i]]; printf(“%d\n”,s); } 程序运行后的输出结果是 A)6B)10C)11D)15 (50)有以下程序 #include main() {intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=1;i<3;i++) for(j=1;j<=1;j++)t+=b[i][b[j][i]]; printf(“%d\n”,t); } 程序运行后的输出结果是 A)1B)3C)4D)9 (51)若有以下定义和语句 chars1[10]="abcd! ",s2="\n123\\"; printf("%d%d\n",strlen(s1),strlen(s2)); 则输出结果是 A)5 5B)10 5C)10 7D)5 8 (52)有以下程序 #include intf(intt[],intn); main() {inta[4]={1,2,3,4},s; s=f(a,4);printf(“%d\n”,s);} intf(intt[],intn) {if(n>0)returnt[n-1]+f(t,n-1); elsereturn0;} 程序运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言练习题2分支结构 循环结构 数组 函数二级真题 语言 练习题 分支 结构 循环 函数 二级
![提示](https://static.bdocx.com/images/bang_tan.gif)