C语言练习题z45章.docx

上传人:b****7 文档编号:9610443 上传时间:2023-02-05 格式:DOCX 页数:31 大小:26.68KB
下载 相关 举报
C语言练习题z45章.docx_第1页
第1页 / 共31页
C语言练习题z45章.docx_第2页
第2页 / 共31页
C语言练习题z45章.docx_第3页
第3页 / 共31页
C语言练习题z45章.docx_第4页
第4页 / 共31页
C语言练习题z45章.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C语言练习题z45章.docx

《C语言练习题z45章.docx》由会员分享,可在线阅读,更多相关《C语言练习题z45章.docx(31页珍藏版)》请在冰豆网上搜索。

C语言练习题z45章.docx

C语言练习题z45章

C语言练习题(4-5章)

一、选择题

1.以下叙述正确的是

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚、具有其他语言的一切优点

2.C语言中用于结构化程序设计的三种基本结构是

A)顺序结构、选择结构、循环结构

B)if、switch、break

C)for、while、do-while

D)if、for、continue

3.在一个C语言程序中

A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现

C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置

4.下列叙述中正确的是

A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型

C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型

5.下列关于C语言用户标识符的叙述中正确的是

A)用户标识符中可以出现下划线和中划线(减号)

B)用户标识符中不可以出现中划线,但可以出现下划线

C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

6.已定义ch为字符型变量,以下赋值语句中错误的是

A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa';

7.以下程序段中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是()

A)if((a>b)&&(b>c))k=1;B)if((a>b)||(b>c))k=1

elsek=0;elsek=0;

C)if(a<=b)k=0;D)if(a>b)k=1;

elseif(b<=c)k=1;elseif(b>c)k=1;

elsek=0;

8.若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767;

printf("%d,%o\n",m,n);

执行后输出结果是

A)32767,32767B)32767,032767C)32767,77777D)32767,077777

9.下列关于单目运算符++、--的叙述中正确的是

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D)它们的运算对象可以是char型变量、int型变量和float型变量

10.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%Xm\n",m);

执行后输出结果是

A)0X0B)0x0C)0D)0XABC

11.有以下程序段

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:

10A10<回车>,则输出结果是:

A)10,A,10B)10,a,10C)10,a,0D)10,A,0

12.有以下程序,执行后输出的结果是

main()

{inti=1,j=1,k=2;

if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);

}

A)1,1,2B)2,2,1C)2,2,2D)2,2,3

13.有以下程序,执行后输出的结果是

main()

{inta=5,b=4,c=3,d=2;

if(a>b>c)printf("%d\n",d);

elseif((c-1>=d)==1)printf("%d\n",d+1);

elseprintf("%d\n",d+2);

}

A)2B)3C)4D)编译时有错,无结果

14.有以下程序,执行后输出的结果是

main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

A)9,2B)10,2C)9,1D)10,1

15.有定义语句:

inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是

A)if(c

elseif(b

elsex=3;elsex=1;

C)if(a<3)x=3;D)if(A

if(a<2)x=2;if(b

if(a<1)x=1;if(c

16.假定所有变量均已正确说明,下列程序段运行后x的值是

a=b=c=0;x=35;

if(!

a)x--;

elseif(b);if(c)x=3;

elsex=4;

A)34B)4C)35D)3

17.以下程序输出结果是

A)7B)6C)5D)4

main()

{intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);

}

18.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为

A)1B)2C)3D)6

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=3;

elsex=6;

19.在执行以下程序时,如果从键盘上输入:

ABCdef<回车>,则输出为

A)ABCdefB)abcDEFC)abC)D)DEF

#include

main()

{charch;

while((ch=getchar())!

=’\n’)

{if(ch>=’A’&&ch<=’Z’)ch=ch+32;

elseif(ch>=’a’&&ch<’z’)ch=ch-32;

printf(“%c”,ch);

}

printf(“\n”);

}

20.在执行以下程序时,为了使输出结果为,t=4则给a和b输入的值应满足的条件是

A)a>bB)aa>b

main()

{ints,t,a,b;

scanf(“%d,%d”,&a,&b);

s=1;t=1;

if(a<0)s=s+1;

if(a>b)t=s+1;

elseif(a==b)t=5;

elset=2*s;

printf(“t=%d\n”,t);

}

21.以下程序的输出结果是

A)-11B)01C)10D)00

main()

{inta=-1,b=1,k;

if((++a<0)&&!

(b--<=0))

printf("%d%d\n",a,b);

else

printf("%d%d\n",b,a);

}

22.与y=(x>0?

1:

X<0?

-l:

0);的功能相同的if语句是

A)if(x>0)y=l;B)if(x)

elseif(x<0)y=-l;if(x>0)y=l;

elsey=0;elseif(x<0)y=-l;

elsey=0;

C)y=-l;D)y=0;

if(x)if(x>=0)

if(x>0)y=l;if(x>0)y=l;

elseif(x==0)y=0;elsey=-l;

elsey=-l;

23.下列程序执行后的输出结果是

A)-32767B)FFFEC)-1D)-32768

main()

{charx=0xFFFF;printf(”%d\n”,x--);}

24.语句printf("a\bre\’hi\’y\\\bou\n");的输出结果是

A)a\bre\’hi\’y\\\houB)a\bre\’hi\’y\bou

C)re’hi’youD)abre’hi’y\bou

(说明:

’\b’是退格符)

25.有如下程序,该程序的输出结果是

main0

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);

}

A)0.000000B)0.250000C)0.500000D)1.000000

26.有如下程序,该程序的输出结果是

main0

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec++;

printf("%d\n",c);

}

A)0B)1C)2D)3

27.若执行以下程序时从键盘上输入9,则输出结果是

A)11B)10C)9D)8

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

elseprintf("%d\n",n--);

}

28.阅读以下程序:

程序运行后,如果从键盘上输人5,则输出结果是

main()

{intx;

scanf("%d",&x);

if(x--<5)printf("%d",x);

elseprintf("%d",x++);

}

A)3B)4C)5D)6

29.假定w、x、y、z、m均为int型变量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(w

w:

x;m=(m

m:

y;m=(m

m:

z;

则该程序运行后,m的值是

A)4B)3C)2D)1

30.有一函数

1x>0

y=0x=0

-1x<0,

以下程序段中不能根据x的值正确计算出y的值的是____。

A)if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

B)y=0;if(x>0)y=1;elseif(x<0)y=-1;

C)y=0;if(x>=0)if(x>0)y=1;elsey=-1;

D)if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;

31.以下选项中,与k=n++完全等价的表达式是___。

A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1

32.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是

for(i=5;i;i--)

for(j=0;j<=4;j++){...}

A)20B)25C)24D)30

33.若有以下定义:

floatx;inta,b;

则正确的switch语句是

A)switch(x)B)switch(x)

{case.0:

printf("*\n");{case1,2:

printf("*\n");

case2.0:

printf("**\n");case3:

printf("**\n");

}}

C)switch(a+b)D)switch(a+b);

{case1:

printf("\n");{case1:

printf(."*\n");

case1+2:

printf("**\n");case2:

printf("**\n");

}}

34.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为

A)2,0B)5,0C)5,5D)2,5

#include

main()

{intv1=0,v2=0;

charch;

while((ch=getchar())!

=’#’)

switch(ch)

{case‘a’:

;

case‘h’:

;

default:

v1++;

case‘0’:

v2++;

}

printf(“%d,%d\n”,v1,v2);

}

35.有如下程序,该程序的输出结果是

main0

{intx=1,a=0,b=0;

switch(x){

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

36.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是

A)swich(a+b);B)switch(a*a+b*b)

{case1:

y=a+b;break;{case3:

case0:

y=a-b;break;case1:

y=a+b;break;

}case3:

y=b-a,break;

}

C)switch(a)D)switch(a-b)

{casec1:

y=a-b;break{default:

y=a*b;break;

casec2:

x=a*d;breakcase3:

case4:

x=a+b;break;

default:

x=a+b;case10:

case11:

y=a-b;break;

}}

37.有以下程序,程序运行后的输出结果是

main()

{inta=16,b=20,m=0;

switch(a%3)

{case0:

m++;break;

case1:

m++;

switch(b%2)

{default:

m++;

case0:

m++;break;

}

}

printf("%d\n",m);

}

A)1B)2C)3D)4

38.有以下程序,执行后输出的结果是

main()

{inti;

for(i=0;i<3;i++)

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

A)011122B)012C)012020D)120

39.有以下程序,程序运行时,从键盘输入:

01<回车>,程序执行后的输出结果是()

main()

{chark;inti;

for(i=1;i<3;i++)

{scanf("%c",&k);

switch(k)

{case'0':

printf("another\n");

case'1':

printf("number\n");

}

}

}

A)anotherB)anotherC)anotherD)number

numbernumbernumbernumber

anothernumber

40.假定a和b为int型变量,则执行以下语句后b的值为

a=1;b=10;

do

{b-=a;a++;}

while(b--<0);

A)9B)-2C)-1D)8

41.设x和y均为int型变量,则执行下的循环后,y值为

for(y=1,x=1;y<=50;y++)

{if(x>=10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}

A)2B)4C)6D)8

42.设j为int型变量,则下面for循环语句的执行结果是

for(j=10;j>3;j--)

{if(j%3)j--;

--j;--j;

printf("%d",j);

}

A)63B)74C)62D)73

43.有以下程序,输出结果是

main()

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i=j-1)printf("%d",j);

}

}

A)11B)10C)9D)1011

44.当执行以下程序段时

A)循环体将执行一次B)循环体将执行两次

C)循环体将执行无限次D)系统将提示有语法错误

x=-1;

do{x=x*x;}while(!

x);

45.执行以下程序后,输出的结果是

A)-1B)1C)8D)0

main()

{inty=10;

do{y--;}while(--y);

printf(“%d\n”,y--);

}

46.在下列选项中,没有构成死循环的程序段是

A)inti=100B)for(;;);

while

(1)

{i=i%100+1;

if(i>100)break;

}

C)intk=1000;D)ints=36

do{++k;}while(k>=1000);While(s);--s;

(注意:

int数的范围)

47.执行语句:

for(i=1;i++<4;);后变量i的值是

A)3B)4C)5D)不定

48.以下程序的输出结果是

A)x=4B)x=8C)x=6D)x=12

main()

{inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<3;j++)

{if(j%2)continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

49.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为

A)m=3B)m=2C)m=1D)m=0

main()

{intm,n;

printf{“Enterm,n:

”};scanf(“%d%d,&m,&n”);

while(m!

=n)

{while(m>n)m-=n;

while(n>m)n-=m;

}

printf(“m=%d\n”,m);

}

50.以下程序的输出结果是

A)10192B)9876C)10990D)101091

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d,%d",x--,y);

}

51.以下程序的输出结果是

A)20B)31C)321D)210

main()

{intn=4;

while(n--)printf("%d",--n);

}

52.以下程序的输出结果是

A)编译不通过,无输出B)acegC)acegiD)abcdefghi

main()

{inti;

for(i='A';i<'I';i++,i++)printf("%c",i+32);

printf("\n");

}

53.以下叙述正确的是

A)do-while语句构成的循环不能用其它语句构成的循环来代替。

B)do一while语句构成的循环只能用break语句退出。

C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D)用do-while语句构成的循环,在while后的表达式为零时结束循环。

54.下列程序的输出结果是

A)4B)2C)1D)0

main()

{inti,j,m=0,n=0;

for(i=0;i<2;i++)

for(j=0;j<2;j++)

if(j>=i)m=1;n++;

printf("%d\n",n);

}

55.以下程序段的执行结果是

A)a=12y=12B)a=12y=12

a=14y=16a=16y=28

a=16y=20

C)a=12y=12D)a=12y=12

a=14y=26a=14y=44

inta,y;

a=10;y=0;

do

{a+=2;y+=a;

Printf("a=%dy=%d\n”,a,y);

if(y>20)break;

}while(a=14);

56.有如下程序,该程序的执行结果是

main0

{inti,sum;

for(i=1;i<=3;sum++)sum+=i;

printf("%d\n",sum);

}

A)6B)3C)死循环D)0

57.有如下程序,该程序的执行结果是

main0

{intx=23;

do

{printf("%d",x--);}

while(!

x);

}

A)321B)23C)不输出任何内容D)陷入死循环

58.有如下程序,该程序段的输出结果是

main0

{intn=9;

while(n>6){n--;printf("%d",n);}

}

A)987B)876C)8765D)9876

59.有以下程序段

intk=0

while(k=1)k++;

while循环执行的次数是

A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次

60.以下程序执行后sum的值是

A)15B)14C)不确定D)0

main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

printf("%d\n",sum);

}

61.有以下程序段

intx=3;

do

{printf("%d",x-=2);}

while(!

(--x));

其输出结果是

A)1B)30C)1-2D)死循环

62.t为int类型,进入下面的循环之前,t的值为0

while(t=l)

{……}

则以下叙述中正确的是

A)循环控制表达式的值为0B)循环控制表达式的值为1

C)循环控制表达式不合法D)以上说法都不对

63.以下程序的输出结果是

main()

{intnum=0;

while(num<=2)

{num++;printf(

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

当前位置:首页 > 高等教育 > 文学

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

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