c语言考前强化习题及其答案_第1页
c语言考前强化习题及其答案_第2页
c语言考前强化习题及其答案_第3页
c语言考前强化习题及其答案_第4页
c语言考前强化习题及其答案_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一部分C语言程序设计

第一章c语言初步知识

-■、选择题:

1-5ABCAB

1.以下叙述中错误的是

A)用户所定义的标识符允许使用关键字

B)用户所定义的标识符应尽量做到“见名知意”

C)用户所定义的标识符必须以字母或下划线开头

D)用户定义的标识符中,大、小写字母代表不同标识

2.以下能正确定义且赋初值的语句是

A)intnl=n2=10;B)charc=32;

C)floatf^Rl.l;D)doublex=12.3E2.5;

3.设有定义:intk=l,m=2;floatf=7;则以下选项中错误的表达式是

A)k=k>=kB)-k++C)k%int(f)D)k>=0=m

4.以下程序的功能是进行位运算

main()

{unsignedchara,b;

a=7A3;b=~4&3;

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

}

程序运行后的输出结果是

A)43B)73C)70D)40

5.算法具有五个特性,以下选项中不属于算法特性的是

A)有穷性B)简洁性C)可行性D)确定性

6-10ACDBC

以下选项中可作为C语言合法常量的是

A)-80.B)-080C)-8el.OD)-80.0e

7.以下叙述中正确的是

A)用C程序实现的算法必须要有输入和输出操作

B)用C程序实现的算法可以没有输出但必须要有输入

C)用C程序实现的算法可以没有输入但必须要有输出

D)用C程序实现的算法可以既没有输入也没有输出

8.以下不能定义为用户标识符的是

A)MainB)_0C)_intD)sizcof

9.以下选项中,不能作为5法常量的是

A)1.234e04B)1.234e0.4C)1.234e+4D)1.234c0

10.有以下程序

main()

intc=35;printf("%d\n",c&c);

程序运行后的输出结果是

A)0B)70C)35D)1

11-15BCDCA

11.用C语言编写的代码程序

A)可立即执行B)是一个源程序

C)经过编译即可执行D)经过编译解释才能执行

12.结构化程序由三种基本结构组成,三种基本结构组成的算法

A)可以完成任何复杂的任务B)只能完成部分复杂的任务

C)只能完成符合结构化的任务D)只能完成一些简单的任务

13.下列选项中,不能用作标识符的是

A)_1234_B)」_2C)int_2_D)2_int_

14.有以下定义语句doublea,b;intw;longc;

若各变量已正确赋值,则下列选项中正确的表达式是

A)a=a+b=b++B)w%((int)a+b)

C)(c+w)%(int)aD)w=a==b;

15.设有定义语句:charcl=92,c2=92;,则以下表达式中值为零的是

A)clAc2B)cl&c2C)-c2D)cl|c2

16-20BBBCA

16.有以下程序

main()

{unsignedinta;

intb=-1;

a=b;

printf("%u",a);

)

程序运行后的输出结果是

A)-lB)65535C)32767D)-32768

17.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是

A)有零个或多个输入B)有零个或多个输出

C)有穷性D)可行性

18.以卜.叙述中正确的是

A)C语言的源程序不必通过编译就可以直接运行

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

19.以下符合C语言语法的实型常量是

A)1.2E0.5B)3.14.159EC),5E-3D)E15

20.以下4组用户定义标识符中,全部合法的一组是

A)mainB)IfC)txtD)int

enclude-maxREALk_2

sinturbo3COM_001

21-25CBAAC

21.若以卜.选项中的变量已正确定义,则正确的赋值语句是

A)xl=26.8%3B)l+2=x2C)x3=0xl2D)x4=l+2=3;

22.设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式七a><h计算结果不相符的是

2

A)(a+b)*h/2B)(l/2)*(a+b)*h

C)(a+b)*h*l/2D)h/2*(a+b)

23.有以下程序

main()

{unsignedchara,b;

a=4|3;

b=4&3;

printfC^d%d\n';a,b);

)

执行后输出结果是

A)70B)07C)11D)430

24.以下叙述中正确的是

A)C程序中注释部分可以出现在程序中任意合适的地方

B)花括号“{”和“}”只能作为函数体的定界符

C)构成C程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C语句之间的分隔符,不是语句的一部分

25.以卜.选项中可作为C语言合法整数的是

A)10110BB)0386C)OXfTaD)x2a2

26.以下不能定义为用户标识符的是

A)scanfB)VoidC)_3com_D)int

26-30DACDC

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

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

28.已定义c为字符型变量,则下列语句中正确的是

A)c='97';B)c="97";C)c=97;D)c=na";

29.有以下程序

main()

{intx=3,y=2,z=l;

printff'%d\n”,x/y&〜z);

)

程序运行后的输出结果是

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

30.以下叙述中正确的是

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

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

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

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

31-35ADBDD

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

A)顺序结构、选择结构、循环结构B)if、switchsbreak

C)for、while,do-whileD)if、for、continue

32.下列叙述中正确的是

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35.设char型变量x中的值为1010001,则表达式(2+x)A(~3)的值是

A)10101001B)10101000C)111111010)01010101

36-40CBACD

36.以下选项中合法的实型常数是

A)5E2.0B)E-3C).2E0D)1.3E

37.以下选项中合法的用户标识符是

A)longB)_2TcstC)3DmaxD)A.dat

38.已知大写字母A的点CH码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量

Aior是

A)字符AB)字符aC)字符eD)非法的常量

39.以下非法的赋值语句是

A)n=(i=2,++i);B)j++;C)++(i+l);D)x=j>0;

40.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

A)6.500000B)6C)5.500000D)6.000000

41-45ADCDD

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

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

42.有以下程序

main()

{unsignedchara,b,c;

a=0x3;b=a|0x8;c=b«l;

printfT%d%d\n'',b,c);

}

程序运行后的输出结果是

A)-ll12B)-6-13C)1224D)1122

43.结构化程序设计所规定的三种基本控制结构是

A)输入、处理、输出B)树形、网形、环形

C)顺序、选择、循环D)主程序、子程序、函数

44.要把高级语言编写的源程序转换为目标程序,需要使用

A)编辑程序B)驱动程序C)诊断程序D)编译程序

45.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为

A)50B)66C)52D)68

46-50BDDDB

46.若有定义:inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为

A)1.4B)1C)2.0D)2

47.若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是

A)a的值是字符CB)a的值是浮点型

C)不允许字符型和浮点型相加D)a的值是字符'A'的ASCII值加上1。

48.以下选项中不属于C语言的类型的是

A)signedshortintB)unsignedlongint

C)unsignedintD)longshort

49.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是

A)a=20000+20000;B)a=4000*10;

C)a=30000+10000;D)a=4000L*10L;

50.以下叙述正确的是

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

第二章顺序结构

一、选择题:

1.以下叙述中错误的是

A)C语句必须以分号结束B)复合语句在语法上被看作一条语句

C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句

2.以下叙述中正确的是

A)调用printf函数时泌须要有输出项

B)使用putchar函数时,必须在之前包含头文件stdio.h

C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCH码

3.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序编译时出错。

main()

/*Beginning*/

{intr;floats;

scanf("%d",&r);

s=冗*r*r;printf("s=%f\n",s);

}

出错的原因是

A)注释语句书写位置错误B)存放圆半径的变量r不应该定义为整型

C)输出语句中格式描述符非法D)计算圆面积的赋值语句中使用了非法变量

4.有以下程序

main()

{charal='M',a2='m';

printf(H%c\n,,,(al,a2));}

以下叙述中正确的是

A)格式输出大写字母MB)程序输出小写字母m

C)格式说明符不足,编译出错D)程序运行时产生出错信息

5.有以下程序

#include<stdio.h>

main()

{charcl=,r,c2=,2,;

c1=getchar();c2=getchar();putchar(c1);putchar(c2);

当运行时输入:a<回车〉后,以下叙述正确的是

A)变量cl被赋予字符a,c2被赋予回车符B)程序将等待用户输入第2个字符

C)变量cl被赋予字符a,c2中仍是原有字符2D)变量cl被赋予字符a,c2中将无确定值

6.数字字符0的ASCII值为48,若有以下程序

main()

{chara-l',b-2';

printf("%c,",b++);

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

}

程序运行后的输出结果是

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

7.有以下程序

main()

{intm=12,n=34;

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

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

}

程序运行后的输出结果是

A)12353514B)12353513C)12343514D)12343513

8.有定义语句:intb;charc[10];,则正确的输入语句是

A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);

C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);

9.有以下程序

main()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

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

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是

A)m=123n=456p=789B)m=123n=456p=789

C)m=123,n=456,p=789D)123456789

10.有以下程序

main()

{intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

程序运行后的输出结果是

A)3B)5Q-1D)-2

11.有以下程序

main()

{chara-a*,b;

printf(n%c;\++a);

printf(H%c\nn,b=a++);

)

程序运行后的输出结果是

A)b,bB)b,cC)a,bD)a,c

12.有以下程序

main()

{intm=0256,n=256;

printf(n%o%o\n*m,n);

)

程序运行后的输出结果是

A)02560400B)0256256C)256400D)400400

13.有以下程序

main()

{inta=666,b=888;

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

)

程序运行后的输出结果是

A)错误信息B)666C)888D)666,888

14.有以下程序

main()

{chara,b,c,d;

scanf(,,%c,%c,%d,%dn,&a,&b,&c,&d);

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

)

若运行时从键盘上输入:6,5,65,66〈回车则输出结果是

A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6

15.有以下程序

main()

(

intx=102,尸012;

printf("%2d,%2d\n”,x,y);

执行后输出结果是

A)10,01B)02,12C)102,10D)02,10

16.有以下程序

main()

{inta;charc=10;

floatf=100.0;doublex;

a=f7=c*=(x=6.5);

printff%d%d%3.1f%3.1f\n”,a,c,f,x);

}

程序运行后的输出结果是

A)16516.5B)1651.56.5

C)1651.06.5D)2651.56.5

17.有定义语句:intx,y;,若要通过$©2!1里,%(1,%(1",&*,&丫);语句使变量*得到数值11,变量y得

到数值12,下面四组输入形式中,错误的是

A)1112〈回车>B)11,12〈回车〉

C)II,12〈回车>D)ll,〈回车》

12V回车〉

18.设有如下程序段:

intx=2002,y=2003;

printfC%d\n”,(x,y));

则以下叙述中正确的是

A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B)运行时产生出错信息

C)输出值为2002

D)输出值为2003

19.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位

四舍五入的是

A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0;

C)x=(int)(x*l00+0.5)/l00.0;D)x=(x/l00+0.5)*100.0;

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

intm=32767,n=032767

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

执行后输出结果是

A)32767,32767B)32767,032767

C)32767,77777D)32767,077777

21.若有以下程序段

intm=0xabe,n=0xabc;

m-=n;

执行后输出结果是

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

22.有以下程序段

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

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

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

若从键盘上输入:10A10V回车,,则输出结果是:

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

23.有以下程序

main()

{inti=10j=l;

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

}

执行后输出结果是

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

24.有以下程序

main()

{chara,b,c,*d;

a='\';b='\xbc';

c=80xab';d="\017";

print("%c%c%c\n",a,b,c,*d);

}

编译时出现错误,以下叙述中正确的是

A)程序中只有a=V;语句不正确B)b=,\xbc,;语句不正确

C)d="\017";语句不正确D)a=,\5;和c=,\0xab';语句都不正确

25.已知i、j、k为int型变量,若从键盘输入:1,2,3〈回车,,使i的值为1、j的值为2、k的值为

3,以下选项中正确的输入语句是

A)scanf(“%2d%2d%2d”,&i,&j,&k);

B)scanfT%d%d%d”,&i,&j,&k);

C)scanf("%d,%d,%d",&i,&j,&k);

D)scanf("i=%dj=%d,k=%d",&i,&j,&k);

26.设有定义:longx=-123456L;,则以下能够正确输出变量x值的语句是

A)printf("x=%d\n”,x);B)printf(ltx=%ld\n,,,x);

C)printf("x=%8dL\n”,x);D)printf(ux=%LD\n,,,x);

27.若有以下程序:

main()

{intk=2,i=2,m;

m=(k+=i*=k);printfC%d,%d\n”,m,i);

)

执行后的输出结果是

A)8,6B)8,3C)6,4D)7,4

28.以下程序段的输出结果是

inta=1234;

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

A)12B)34C)1234D)提示出错、无结果

29.若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句

A)scanf("%d%d%d",&a,&b,d);B)scanf("%d%d%d",&a,&b,&d);

C)scanf("%d%d%d",a,b,d);D)scanf("%d%d%d",a,b,*d);

二、填空题:

1.以下程序运行后的输出结果是

main()

{intx=0210;printf("%X\n”,x);

)

2.以下程序运行后的输出结果是

main()

{charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

printf(H%d%f\nM,n,x);

}

3.已知字母A的ASCII码为65,以下程序运行后的输出结果是

main()

{chara,b;

a='A+5'・'3';b=a+'6'・'2';

printf(n%d%c\n';a,b);

)

4.以下程序运行时若从键盘输入:102030〈回车〉。输出结果是

#include<stdio.h>

main()

{inti=O,j=O,k=O;

scanf(H%d%*d%du,&i,&j,&k);

printf(H%d%d%d\n,\ij,k);}

5.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33V回车〉.输出结果是

#include"stdio.h"

main()

{

chara,b;

a=getchar();scanf(H%d,',&b);

a=a-'A'+'O';

b=b*2;

printf(M%c%c\nM,a,b);}

6.以下程序段的输出结果是

inti=9;

7.以下程序运行后的输出结果是

main()

{inta,b,c;

a=25;

b=025;

c=0x25;

printf(n%d%d%d\nM,a,b,c);

}

8.已知字符A的ACSII码值为65,以下语句的输出结果是

charch='B';

printf("%c%d\nn,ch,ch);

9.有以下语句段

intnl=10,n2=20;

printf(n\nl,n2);

要求按以下格式输出nl和n2的值,每个输出行从第一列开始,请填空。

nl=10

n2=20

10.有以下程序

#include<stdio.h>

main()

{charchl,ch2;intnl,n2;

ch1=getchar();ch2=getchar();

nl=chl-t0,;n2=nl*10+(ch2-t0,);

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

)

程序运行时输入:12〈回车),执行后输出结果是

11.以下程序运行后的输出结果是

main()

{charm;

m=uB,+32;printf(u%c\n",m);

)

12.若有语句

inti=-19j=i%4;

printf("%d\n"j);

则输出结果是

13.若有程序

main()

{intij;

scanf("i=%dj=%d";&i,&j);

printf("i=%dj=%d\n",ij);

}

要求给i赋10,给j赋20,则应该从键盘输入

14.若有以下程序

main()

{chara;

a='H'-'A'+'O';

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

)

执行后的输出结果是

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

main()

{inta=177;

printf("%o\n",a);

)

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

main()

inta=0

a+=(a=8);

prin氓"%d\n”,a);

第三章选择结构

一、选择题:

1.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选

项是

A)k%2B)k%2==lC)(k%2)!=0D)!k%2==l

2.设有定义:inta=2,b=3,c=4;则以下选项中值为0的表达式是

A)(!a=l)&&(!b=0)B)(a<b)&&!c||l

C)a&&bD)a||(b+b)&&(c-a)

3.有以下程序段

intk=0,a=l,b=2,c=3;

k=a<b?b:a;k=k>c?c:k;

执行该程序段后,k的值是

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

4.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if(a<b)

i[c==d)y=0;

elsey=l;

该语句所表示的含义是

r0a<b且c=d"0a<b且c=d

A)y=1B)y=Y

11aeb-1a2b且cWd

"0a<b且c=d"0a<b且c=d

C)y=YD)y=y

-1a<b且c#d-1c#d

5.有以下程序

main()

{

inta,b,d=25;

a=d/10%9;

b=a&&(-l);

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

程序运行后的输出结果是

A)6,1B)2,1C)6,0D)2,0

6.有以下程序

main()

{inti=lj=2,k=3;

if(i++==1&&(++j==311k-H-=3))

printf(H%d%d%d\nn,i,j,k);

)

程序运行后的输出结果是

A)123B)2340223D)233

7.若整型变量a、b、c、d中的值依次为:14、3、2o则条件表达式a〈b?a:c〈d?c:d的值

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

8.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是

A)abs(x-y)<10B)x-y>-10&&x-y<10

C)(x-y)<-10||!(y-x)>10D)(x-y)*(x-y)<100

9.有以下程序

main()

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

if(a>b)

ifi(b>c)

printf(H%dn,d4-++l);

else

printfC%d\++d+l);

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

)

程序运行后的输出结果是

A)2B)3C)43D)44

10.下列条件语句中,功能与其他语句不同的是

A)if(a)printiT%d\n”,x);elseprintff%d\n”,y);

B)if(a=0)printf("%d\n”,y);elseprintf("%d\n”,x);

C)if(a!=0)printf("%d\n”,x);elseprintf("%d\n”,y);

D)if(a=0)printf("%d\nH,x);elseprintff%d\n”,y);

11.以下4个选项中,不能看作一条语句的是

A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b=0)m=l;n=2;

12.以下程序段中与语句k=a>b?(b>c?l:0):0;功能等价的是

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

elsek=0;elsek=0;

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

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

elsek=0;

13.以下选项中非法的表达式是

A)0<=x<100B)i=j==0C)(char)(65+3)D)x+l=x+l

14.有以下程序

main()

{inta=1,b=2,m=0,n=0,k;

k=(n=b>a)11(m=a<b);

printfC'%d,%d\n”,k,m);

程序运行后的输出结果是

A)0,0B)0,lC)l,0D)l,l

15.有定义语句:inta=l,b=2,c=3,x;则以下选项中各程序段执行后,x的值不为3的是

A)if(c<a)x=l;B)if(a<3)x=3;

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

elsex=3;elsex=l;

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

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

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

16.有以下程序

main()

{inti=lj=l,k=2;

if((j++IIk++)&&i++)printfC%d,%d,%d\n\i,j,k);

)

执行后输出结果是

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

17.有以下程序

main()

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

if(a>b>c)

printff%d\n”,d);

elseif((c-l>=d)=l)

printf(n%d\nn,d+l);

else

printf(n%d\nn,d+2)

|

执行后输出结果是

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

18.已有定义:intx=3,y=4,z=5;,则表达式!(x+y)+z-l&&y+z/2的值是

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

1x>0

19.有一函数,y=0x=0,以下程序段中不能根据x值正确计算出y值的是

-lx<0

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

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

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

C)y=0;D)if(x>=0)

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

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

elsey=-l;elsey="l;

20.有以下程序

main()

{inta=l5,b=21,m=0;

switch(a%3)

{caseO:m++;break;

case

switch(b%2)

{default:m++;

caseO:m++;break;

}

}

printfC%d\n”,m);

)

程序运行后的输出结果是

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

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

main()

{inta=5,b=4,c=6,d;

printf(H%d\nH,d=a>b?(a>c?a:c):(b));

)

A)5B)4C)6D)不确定

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

main()

{inta=4,b=5,c=0,d;

d=!a&&!b||!c;

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

}

A)1B)0C)非0的数D)-1

二、填空题:

1.以下程序运行后的输出结果是

main()

{inta=l,b=2,c=3;

if(c=a)printf(M%d\n\c);

elseprintf(M%d\n,1,b);

)

2.以下程序运行后的输出结果是

main()

(

inta=3,b=4,c=5,t=99;

ifi(b<a&&a<c)t=a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

printf(n%d%d%d\nM,a,b,c);

)

3.以下程序运行后的输出结果是

main()

inta,b,c

a=l0;b=20;c=(a%b<I)||(a/b>1);

printf(M%d%d%d\nn,a,b,c);

}

4.以下程序运行后的输出结果是

main()

{intx=l,y=O,a=O,b=O;

switch(x)

{casel:switch(y)

{case0:a++;break;

casebreak;

)

case2:a++;b++;break;

}

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

}

5.有以下程序

main()

{intn=0,m=l,x=2;

if(!n)x-=l;

if(m)x-=2;

if(x)x-=3;

printf(n%d\nH,x);

)执行后输出结果是

6.以下程序运行后的输出结果是

main()

{intp=30;

printf("%d\n”,(p/3>0?p/10:p%3));

)

7.以下程序运行后的输出结果是

main()

{inta=l,b=3,c=5;

if(c=a+b)printf(nyes\nn);

elseprintf(”no\n”);

)

8.若有以下程序

main()

{intp,a=5;

if(p=a!=O)

primff%d\n”,p);

else

printfC%d\n”,p+2);

)

执行后输出结果是

9.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

ifi[a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

printf(,'%d%d%d\nH,a,b,c);

}

执行后输出结果是

10.以下程序运行后的输出结果是

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

printfT%d,%d\n”,x,y);

)

11.若从键盘输入58,则以下程序输出的结果是

main()

{inta;

scanf(n%dn,&a);

if(a>50)printf(H%d'\a);

if(a>40)printf(n%dH,a);

if(a>30)printf(n%dH,a);

)

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

main()

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

d=(a>b>c);

printff%d\n”,d);}

第四章循环结构

一、选择题:

1.有以下程序段

intn,t=l,s=0;

scanf("%d",&n);

do{s=s+t;t=t-2;}while(t!=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是

A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数

2.该变量已正确定义,则以下能正确计算f=n!的程序段是

A)40;B)fM;

for(i=l;i<=n;i-H-)f*=i;fbr(i=l;i<n;i++)f*=i;

C)fH;D)fM;

for(i=n;i>l;i++)f*=i;fbr(i=n;i>=2;i-)PM;

3.有以下程序

main()

{intk=5,n=0;

while(k>0)

{switch(k)

{default:break;

case1:n+=k;

case2:

case3:n+=k;

k-;

}

printf(M%d\n';n);

)

程序运行后的输出结果是

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

4.有以下程序

main()

inta=l,b;

fbr(b=l;b<=10;b++)

(

if(a>=8)break;

if(a%2==l){a+=5;continue;}

a-=3;

)

printff%d\n”,b);

}

程序运行后的输出结果是

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

5.有以下程序

main()

{inti;

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

switch(i)

{

caseO:printf("%d",i);

case2:printf("%d",i);

default:printf("%d",i);

程序运行后的输出结果是

A)022111B)021021C)000122D)012

6.有以下程序

main()

{inti=0,s=0;

for(;;)

ifi(i=3||i=5)continue;

if(i=6)break;

i++;

s+=i;

}

printfC%d\n”,s);

)

程序运行后的输出结果是

A)10B)13C)21D)程序进入死循环

7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是

A)for(i=l,p=l;iv=5;i++)p*=i;B)fbr(i=l;iv=5;i++){p=l;p*=i;}

C)i=1;p=1;while(i<=5){p*=i;i++;}D)i=l;p=l;do{p*=i;i++;}while(i<=5);

8.有以下程序

main()

{chark;inti;

fdr(i=l;i<3;i-H-)

{scanR"%c”,&k);

switch(k)

{case'O':printf("another\n");

caseT:printf("number\n'');

程序运行时,从键盘输入:01〈回车〉,程序执行后的输出结果是

A)anotherB)anotherC)anotherD)another

numbernumbernumbernumber

numberanother

9.有以下程序

main()

{intx=0,y=5,z=3;

while(z—>0&&-H-x<5)y=y-i;

printfC4%d,%d,%d\n,\x,y,z);

)

程序执行后的输出结果是

A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5

10.有以下程序

main()

{inti,s=0;

fbr(i=1;i<l0;i+=2)s+=i+1;

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

}

程序执行后的输出结果是

A)自然数1〜9的累加和B)自然数1〜10的累加和

C)自然数1〜9中的奇数之和D)自然数1〜10中的偶数之和

11.有以下程序

main()

{inti,n=O;

fbr(i=2;i<5;i++)

{do

{if(i%3)continue;

n++;

}while(!i);

n++;

i

printfC4n=%d\n,,,n);

)

程序执行后的输出结果是

A)n=5B)n=2C)n=3D)n=4

12.下面程序的功能是输出以下形式的金字塔图案是:

***

main()

{intij;

fbr(i=l;i<=4;i-H-)

{for(j=l;j<=4-i;j-H-)printff”);

fbr(j=l;j<=;j++)printfC*");

printf(n\nH);

在下划线处应填入的是()

A)iB)2*i-1C)2*i+1D)i+2

13.有以下程序

main()

{ints=0,a=l,n;

scanff%d”,&n);

do

{s+=l;a=a-2;}

while(a!=n);

printf(n%d\nH,s);

若要使程序的输出值为2,则应该从键盘给n输入的值是

A)-lB)-3C)-5D)0

14.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

for(b=1;b<=c;b++)s=s+l;

则与上述程序段功能等价的赋值语句是

A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;

15.有以下程序

main()

{intk=4,n=0;

fbr(;n<k;)

{n++;

ifi(n%3!=0)continue;

k・・;

}

printf(n%d,%d\nn,k,n);

}

程序运行后的输出结果是

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

16.要求以下程序的功能是计算:s=l+」+L..+」~

2310

main()

{intn;floats;

s=1.0;

fbr(n=10;n>1;n—)

s=s+l/n;

print(”%6.4An”,s);

)

程序运行后输出结果错误,导致错误结果的程序行是

A)s=1.0;B)fbr(n=10;n>l;n—)

C)s=s+l/n;D)printf(n%6.4f7nH,s);

17.有以下程序

main()

{inti;

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

switch(i)

{case1:printf(n%d",i);

case2:printf(H%d",i);

default:printf(n%d,1,i);

执行后输出结果是

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

18.有以下程序

main()

{inti=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

printfC%d\nn,s);

执行后输出结果是

A)16B)12C)28D)21

19.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,

程序如下:

main()

{intn,k;

floatscore,sum,ave;

sum=0.0;

for(n=l;n<=10;n-H-)

{fbr(k=1;k<=4;k-H-)

{scanfi(64%f\&score);sum+=score;}

ave=sum/4.0;

printf(uNO%d:%f\n,\n,ave);

}

)

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是

A)sum=0.0;B)sum+=score;

C)ave=sun/4.0;D)printf(uN0%d:%f\n?,,n,ave);

20.有以下程序段

intn=0,p;

do{scanfft%d,,,&p);n-H-;}while(p!=12345&&n<3);

此处do一while循环的结束条件是

A)P的值不等于12345并且n的值小于3B)P的值等于12345并且n的值大于等于3

C)P的值不等于12345或者n的值小于3D)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论