C语言练习题2分支结构 循环结构 数组 函数二级真题.docx

上传人:b****2 文档编号:17974854 上传时间:2023-04-24 格式:DOCX 页数:34 大小:24.98KB
下载 相关 举报
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx_第1页
第1页 / 共34页
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx_第2页
第2页 / 共34页
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx_第3页
第3页 / 共34页
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx_第4页
第4页 / 共34页
C语言练习题2分支结构 循环结构 数组 函数二级真题.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言练习题2分支结构 循环结构 数组 函数二级真题.docx

《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx》由会员分享,可在线阅读,更多相关《C语言练习题2分支结构 循环结构 数组 函数二级真题.docx(34页珍藏版)》请在冰豆网上搜索。

C语言练习题2分支结构 循环结构 数组 函数二级真题.docx

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(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;}

程序运行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1