C语言练习题2分支结构 循环结构 数组 函数二级真题.docx
《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx》由会员分享,可在线阅读,更多相关《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx(34页珍藏版)》请在冰豆网上搜索。
![C语言练习题2分支结构 循环结构 数组 函数二级真题.docx](https://file1.bdocx.com/fileroot1/2023-4/24/72897477-617b-457a-b903-8f0a02914804/72897477-617b-457a-b903-8f0a029148041.gif)
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)12a34bB)12a34bC)12,a,34,bD)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(aelsek=c;
if(belsek=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;}
程序运行