C语言题库含答案1_第1页
C语言题库含答案1_第2页
C语言题库含答案1_第3页
C语言题库含答案1_第4页
C语言题库含答案1_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

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

文档简介

第一章C语言概述

选择题

1、一个c程序的执行是从_A—。

A)本程序的main函数开始,到main函数结束B)本程序文件的第个函数开始,到本程

序文件的最后一个函数结柬

C)本程序的main函数开始,到本程序文件的最后•个函数结束D)本程序文件的第一个函

数开始,到木程序main函数结束

2、以下叙述正确的是_C—«

A)在C程序中.main函数必须位于程序的最前面B)c程序的每行中只能写一条语句

C)c语言本身没有输入输出语句D)在对一个c程序进行编译的过程中,可发现注释中的拼

写错误

3、以下叙述不正确的是_D—。

A)一个c源程序可由一个或多个函数组成B)一个c源程序必须包含一个main函数

C)c程序的基本组成单位是函数D)在c程序中,注释说明只能位于一条语句的后面

4、c语言规定:在一个源程序中,main函数的位置_C—。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后

5,一个c语言程序是由_B—。

A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成

6、用C语言编写的代码程序_B—

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

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

7、以下叙述中正确的是_B—

A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将

被转换成二进制的机器指令

C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编

8、以下叙述中正确的是—C—

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

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

晚,具有其他语言的一切优点

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

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

第二章程序的灵魂--算法

选择题

1、算法具有五个特性,以下选项中不属于算法特性的是—B—

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

2、以下叙述中正确的是_C—

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

但必须要有输入

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

有输入也没有输出

3、结构化程序由三种基本结构组成,三种基本结构组成的算法_C—

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

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

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

A)有零个或多个输入B)有零个或多个输出C)有穷性D)可行性

5、C语言中用于结构化程序设计的三种基本结构是_A_

A)顺序结构、选择结构、循环结构B)if、switch>break

C)for>while、do-whileD)f、for、continue

6、结构化程序设计所规定的三种基本控制结构是_C—

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

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

第三章数据类型,运算符与表达式

选择题

1、C语言基本类型包括一Do

A.整型、实型、逻辑型B.整型、实型、字符型、逻辑型

C.整型、字符型、逻辑型D.整型、实型、字符型

2、C语言中的标识符只能由字母、数字、下划线三种字符组成,且第一个字符一C—o

A.必须为字母B.必须为下划线

C.必须为字母或下划线D.可以是字母、数字、下划线中任意一种字符

3、C语言中最简单的数据类型包括一B—。

A.整型、实型、逻辑型B.整型、实型、字符型

C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型

4、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是一C—。

A.-3B.9C.-12D.6

5、若t为double类型,表达式t=l,t+5,t++的值是___D。

A.lB.6.0C.2.0D.1.0

6、若已定义x和y为double类型,则表达式:x=l,y=x+3/2的值是___C。

A.lB.2C.2.0D.2.5

7、设a为5,执行下列语句后,b的值不为2的是—C。

A.b=a/2B.b=6-(—a)C.b=a%2D.b=a>3?2:l

8、下列四组选项中,均是不合法的用户标识符的选项—C_。

A.AP_0doB.floatgoto_A

C.b-agotointD._123tempINT

9、下列选项中,合法的C语言关键字是一Do

A.VARB.cherC.integerD.default

10、下面不正确的字符串常量是A—o

A.'abc'B.“⑵”2"C."0MD."”

11、下面不正确的字符常量是—Ao

A.nc"B.VC.‘W'DJ'

12、下述程序段的输出结果是Ao

intx=10;

inty=x++;

printf(1,%d,%d',,(x++,y),y++);

A.ll,10B.ll,11C.10,10D.10,11

13、已知各变量的类型说明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

则以下不符合C语言语法的表达式是—Ao

A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)

14、己知字母A的ASCII编码为10进制数65,且c2为字符型,则执行语句c2=,A"6-3后,

c2中的值为一A。

A.DB.68C.不确定的值D.C

15、以下所列的C语言常量中,错误的是_B。

A.OxFFB.1.2e0.5C.2LD.''72'

16>以下叙述正确的是Co

A.在C程序中main函数必须位于程序的最前面B.C程序的每行中只能写一条语句

C.C语言本身没有输入输HI语句D.在对个C程序进行编译的过程中,可发现注释中的错

17、以下运算符中,运算对象必须是整型的是一B―o

A./B.%=C.!=D.(=

18、正确的标识符是一D。

A.?aB.a=2C.a.3D.a_3

19、在C语言中(以16位Pc机为例),5种基本数据类型的存储空间长度的排列顺序为_A—。

A)char<int<longint<=float<doubleB)char=int<longint<=float<double

C)char<int<longint=float=doubleD)char=int=longint<=float<double

20、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是—B_«

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

21、以下不正确的叙述是—D—。

A.在C程序中,逗号运算符的优先级最低B.在C程序中,APA和apa是两个不同的变量

C.如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持

不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实

型数值

22、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为一C—。X=(i=4,j=16,k=32)

A)4B)16C)32D)52

23、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B—。

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

24、下列四组选项中,均不是c语言关键字的选项是_Ao

A)defineFtypeB)getccharprintf

C)includescanfcaseD)whilegopow

25、下面四个选项中,均是c语言关键字的选项是_B。

A)autoenumincludeB)switchtypedefcontinue

C)signedunionscanfD)ifstructtype

26、下面四个选项中,均是合法整型常量的选项是一A―o

A)160-OxffffOUB)-0xcdf01aOxe

C)-01986.0120668D)-0x48a3e5Ox

27、下面四个选项中,均是合法转义字符的选项是—A

A)\"N4\n4B)V'017'4\;;4

C)'O18'T'xab'D)'\\0'AIOI4'xlf'

28、下面四个选项中,均是正确的八进制数或十六进制数的选项是_Co

A)-10Ox8f-OilB)Oabc-017Oxc

C)0010-OxllOxflD)0al2-0x123-Oxa

29、己知各变量的类型说明如下:

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下符合c语言语法的表达式.A_。

A)a+=a-=(b=4)*(a=3)B)a=a*3=2

C)x%(-3)D)y=float(i)

综合题

30、求下列算术表达的值,设x=2.5,a=7,y=4.7。

x+a%3*(int)(x+y)%2/4

答案:

2.5

31、求下列算术表达的值,设a=2,b=3,x=3.5,y=2.5o

(float)(a+b)/2+(int)x%(int)y

答案:

3.5

32、写出下面赋值表达式运算后a的值,设原来a=12:

(1)a+=a

(2)a-=2

(3)a*=2+3

(4)a/=a+a

(5)a%=(n%=2)n的值等于5

(6)a+=a-=a*=a

答案:

(1)24

⑵10

⑶60

(4)0

⑸0

(6)0

第四章顺序程序设计

1、有以下程序

main()

{intm=0256,n=256;

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

)

程序运行后的输出结果是A)02560400B)0256256C)256400D)400400

答案:C

2、有以下程序

main()

{血a=666,b=888;

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

)

程序运行后的输出结果是A)错误信息B)6®C)888D)666,888

答案:B

3、有以下程序

main()

(

intx=102,y=012;

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

)

执行后输出结果是A)1Q01B)02,12C)102J0D)02JO

答案:C

4、有以下程序

main()

{inta;charc=10;

floatf=100.0;doublex;

a=f/=c*=(x=6.5);

printf(n%d%d%3.1f%3.1f\nM,a,c,f,x);

)

程序运行后的输出结果是A)16516.5B)1651.56.5

C)1651.06.5D)2651.56.5答案:B

5、有定义语句:intx,y;,若要通过5。2”("%<1,%(1",&*,&丫);语句使变量*得到数值11,变

量y得到数值12,下面四组输入形式中,错误的是A)H12(回车>B)ll,12〈回车>

C)C,12V回车》

12〈回车>回车>

答案:A

6、设有如下程序段:

intx=2002,y=2003;

printf(H%d\n\(x,y));

则以下叙述中正确的是A)输出语句中格式说明符的个数少于输出项的个数,不能正确输

出B)运行时产生出错信息C)输出值为2002D)输出值为2003

答案:D

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

intm=32767,n=032767

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

执行后输出结果是A)32767,32767B)32767,032767

C)32767,77777D)32767,077777

答案:A

8、若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%X\n”,m);

执行后输出结果是A)0X0B)0x0C)0D)OXABC

答案:c

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

k的值为3,以下选项中正确的输入语句是A)scanf(“%2d%2d%2d”,&i,&j,&k);B)

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

C)scanf("%d,%d,%d”,&i,&j,&k);D)sanf("i=%d,j=%d,k=%d",&i,&j,&k);

答案:C

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

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

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

答案:B

II、以下程序段的输出结果是

inta=1234;

printf("%2d\n",a);A)12B)34C)1234D)提示出错、无结果

答案:C

12、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是

A)NPUTx、y、z;B)sanf("%d%d%d'',&x,&y,&z);

C)scanf(''%d%d%d'',x,y,z);D)ead("%d%d%d'',&x,&y,&z);答案:B

13、若变量已正确说明为float类型,要通过语句scanf("%f%f%f,;&a,&b,&c);给a赋于

10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A)10v回车〉

22c回车〉

33c回车>B)10.0,22.0,33.0<回车〉

C)C.Ov回车〉

22.033.0<回车>D)1022c回车>33<回车〉

答案:B

14、有如下程序

main()

{inty=3,x=3,z=l;

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

)

运行该程序的输出结果是

A)34B)42C)43D)33

答案:D

15、以下说法中正确的是

A)#define和printf都是C语句B)#define是C语句,而printf不是

C)printf是C语句,但#(10行优不是D)#define和printf都不是C语句

答案:D

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

main()

{intk=17;

printf("%d,%o,%x\n",k,k,k);

}A)17,021,0x11B)17,17,17

C)17,0x11,021D)17,21,11

答案:D

17、若有以下定义和语句:

intu=010,v=0x10,w=10;

printf(H%d,%d,%d\n'\u,v,w);

则输出结果是:

A)8,6,10B)10,10,10C)8,8J0D)810,10

答案:A

18、请读程序片段:

inti=65536;printf(n%d\n",i);

上面程序片段的输出结果是

A)65536B)0C)有语法错误,无输出结果D)-l

答案:B

19、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

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

上面程序片段的输出结果是

A)200B)100C)100200D)输出格式符不够,输出不确定的值

答案:A

20、以下程序的输出结果是。

#include<stdio.h>

#include<math..h>

main()

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

floatx=10.,5,y=4.0,z;

z=(a+b)/c+sqrt((double)y)*1.2/c+x;

printf(u%i\n",z);

)

A)14.000000B)015.400000

C)13.700000D)14.900000

答案:C

21、下列程序执行后的输出结果是(小数点后只写一位)

main()

{doubled;floatflingIinti

i=f=l=d=20/3;

printf(u%d%ld%f%f\n0,i,l,f,d);

A)666.06.0B)666.76.7C)666.06.7D)666.76.0

答案:A

22、以下叙述中正确的是

A)输入项可以是一个实型常量,如:

scakf("%f",3.5);B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:

scakf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

scakf("%4.2f,&f);D)当输入数据时,必须指明变量地址,例如:

scakf("%f",&f);

答案:D

23、请读程序:

#include<stdio.h>

main()

{inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

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

(

若运行时从键盘上输入9876543210vCR>(<CR>表示回车),则上面程序的输出结果是

A)a=98,b=765,c=4321B)a=10,b=432,c=8765

C)a=98,b=765.000000,c=4321.000000D)a=98,b=765Qc=4321.0

答案:C

24、以下程序的输出结果是。

#include<stdio.h>

main()

{inta=2,c=5;

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

)

A)a=%2,b=%5B)a=2,b=5

C)a=%%d,b=%%dD)a=%d,b=%d

答案:D

25、执行下面程序中的输出语句,a的值是

main()

{inta;

printf("%d\nM,(a=3*5,a*4,a+5));

)

A)®B)20C)5D)10

答案:B

26、若变量已正确说明为float类型,要通过语句

scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是

A.10<回车>22〈回车>33v回车>B.10.0,22.0,33.0<回车〉

C.lO.Oc回车>22.033.0<回车>D.1022c回车>3女回车〉答案:B

27、若有以下定义和语句:

charcl=tb\c2="e<;

printf(,,%d,%c\n,',c2-cl,c2-tat+tAt);

则输出结果是O

A.2,MB.3,E

C.2,ED.输出项与对应的格式控制不一致,输出结果不确定答案:B

28、若有以下定义和语句:

intu=010,v=0x10,w=10;

printf("%d,%d,%d\n,\u,v,w);

则输出结果是o

A.8,16,10B.10,10,10C.8,8,10D.8,10,10答案:A

29、以下不正确的叙述是。

A.在C程序中,逗号运算符的优先级最低B.在C程序中,APA和apa是两个不同的变量

C.如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值保持

不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实

型数值答案:D

30、以下程序的输入结果是o

main()

{inti=010,j=10,k=0xl0;

printf("%d,%d,%d",i,j,k);

}A.8,10,16B.8,10,10C.IO,10,10D.10,10,I6答案:A

31、语句printf("s\\t")的输出结果为.

A.sWtB.s\tC.s\D.s答案:B

32、putchar函数可以向终端输出-一个。

A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值答案:D

33、已有定义inta=-2;和输出语句;printf("%8x”,a);以下正确的叙述是。

A)整型变量的输出格式符只有%d-种B)%x是格式符的一种,它可以适用于任何•种类

型的数据

C)%x是格式符的•种,其变量的值按卜六进制输出,但%8x是错误的D)%8x不是错误

的格式符,其中数字8规定了输出字段的宽度答案:D

34、阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为一。

main()

{intx,y,z;

scanf("%d%d%d”.&x,&y,&z);

prtntf("x+y+z=%d\n",x+y+z);

)

A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定值答案:D

35、以下能正确地定义整型变量a、b和c并为其赋值5的语句是。

A)inta=b=c=5;B)inta,b,c=5;C)a=5,b-5,c=5;D)a=b=c=5;答案:B

36、已知ch是字符型变量,下面不正确的赋值语句是—o

A)ch='a+b,;B)ch='\0';C)ch='7'+9;D)ch=5+9;答案:A

37、已知ch是字符型变量,下面正确的赋值语句是一。

A)ch='123';B)ch=Wf;C)ch=、08';D)ch="\";答案:B

38、设x、y均为float型变量,则以下不合法的赋值语句是一。

A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;答案:B

39、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5歹ij。如果字符串长

度小于5,则输出按方式。

A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出

C)右对齐输出该宇串,左补空格D)输出错误信息答案:C

40、有以下程序

main()

{intm,n,p;

scanf(nm=%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答案:A

填空题

41、下程序运行后的输出结果是()。

main(){htx=0210;printf("%X\n",x);}

答案:88

42、以下程序运行后的输出结果是()。

main()

{charc;intn=100;

floatf=10;doublex;

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

printfC^d%f\n",n,x);

)

答案:220.000000

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

#include<stdio.h>

main()

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

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

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

)

答案:10300

44、以下程序段的输出结果是()。

inti=9;

printf(',%o\n,,,i);

答案:11

45、以下程序运行后的输出结果是()。

main()

{inta,b,c;

a=25;

b=025;

c=0x25;

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

答案:252137

46、有以下语句段

intnl=10,n2=20;

printf(nn,nl.n2);

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

nl=10

n2=20

答案:nl=%d\nn2=%d

47、若有语句

inti=-19,j=i%4;

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

则输出结果是()。

答案:-3

48、若有程序

main()

{intij;

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

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

)

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

答案:i=10,j=20

49、以下程序的输出结果是()。

main()

{inta=177;

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

)

答案:261

50、以下程序的输出结果是()。

main()

{inta=0

a+=(a=8);

printf(n%d\nn,a);

)

答案:16

51、以下程序的输出结果是()

main()

{inta=l,b=2;

a=a+b;b=a-b;a=a-b;

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

)

答案:2,1

52、下列程序的输HI结果是16.00,请填空。。

main()

{inta=9,b=2;

floatx=(),yl.l,z;

z=a/2+b*x/y+l/2;

printf("%5.2f\n",z);

)

答案:6.6

53、以下程序的输出结果是()。

main()

{unsignediiorta=65536;intb;

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

}

答案:0

54、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是()。

intb,c;floata;

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

答案:5.0,4,c=3

55、若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是()o

inta,b;

scanf("a=%b,b=%d,&a,&b);

答案:a=l,b=2

综合题

56、原题:打印出下题的结果

main()

(

inta=5,b=7;

floatx=67.8564,y=-789.124;

charc='A';

longn=1234567;

unsignedu=65535;

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

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

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

printf(H%-10f,%-10f\n",x,y);

prinlf(”%8.2f,%8.2f,%4f,%4f,%3f,%3f\n”,x,y,x,y,x,y);

printf("%e,%10.2e\n",x,y);

prinlf("%c,%d,%o,%x\n”,c,c,c,c);

printf("%ld,%lo,%x\n",n,n,n);

printf(M%u,%o,%x,%d\n",u,u,u,u);

printf("%s,%5.3s\n","COMPUTER","COMPUTER");

)

答案:

57

57

67.856400,-789.124023

67.856400,-789.124023

67.86,-789.12,67.856400,-789.124023,67.856400,-789.124023

6.78564e+01,-7.9e+02

A,65,101,41

1234567,4553207,d687

65535,177777,ffff,-l

COMPUTER,COM

57、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,cl=A,c2=W。问在键盘上如

何输入?答案:

输入格式为:

a=3,b=78.571.82Aa

58、用下面的scanf函数输入数据使a=10,b=20,cl='A',c2='a',x=1.5,y=3.75,z=67.8,请问在

键盘上如何输入数据?

scanf("%5d%5d%c%c%f%f%*f,%f',&a,&b,&c1,&c2,&x,&y,&z);

答案:

输入格式为:

1020Aal.5-3.780.0,67.8

提示:10与20之间是3个空格,而那个0.0是随便•个浮点数即可。

59、设圆半径=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积,

用scanf输入数据,输出结果,输出时要求有文字说明,取小数点后2位数字,请编写程序。

答案:

main()

(

inth;

floatr,pi=3.14159;

floatcubageI,cubage2,penarea,facearea;

clrscr();

printfC'pleaseinputthecircle'sradii\nn);

scanf("%f",&r);

clrscr();

printf(npleaseinputthecylinder'sheight\n");

scanf(n%dn,&h);

per=2*pi*r;

area=pi*r*r;

facearea=4*pi*r*r;

cubage1=4/3*pi*r*r*r;

cubage2=area*h;

clrscr();

printf(M\n\n\tThecircle'sperimeteris%.2f\n",per);

printf(n\tThecircle'sareais%.2f\n'\area);

printf(M\tThesphere'sfaceareais%.2f\n'\facearea);

printf(M\tThesphere'scubageis%.2f\n",cubageI);

printf("\tThecylinder'scubageis%.2f\nH,cubage2);

)

60、输入一个华氏温度,要求输出摄氏温度。公式为c=(F-32)*5/9。

答案:

main()

(

floattemper;

floatc;

clrscr();

printf(nPleaseinputthetemperatureofFahrenheit\nn);

scanf("%fn,&temper);

c=(temper-32)*5/9;

printf(nTheCelsiustemperatureis%.2f',c);

}

61>编程序,用getchar。函数读入两个字符给cl,c2,然后用putchar。函数和printf函数输出

这两个字符。并思考以下问题:(1)变量cl,c2应为字符型或整型?抑或二者皆可?(2)要求输

出cl,c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整型变量与字符

变量是否在任何情况下都可以互相代替?如:

charcl,c2;

与intcl,c2;

是否可以无条件的等价?

答案:

main()

(

charcl,c2;

cl=getchar();

c2=getchar();

printfCAn1');

putchar(cl);

putchar(c2);

printf(ncI=%c,c2=%c",cl,c2);

I

(1)都可;(2)用printf()函数;(3)不可以,必须是整形变量的值在256以内,否则则超过了ASCII

的值。

62、设变量x=10.2,y=20.5,编程序实现两个变量的值互换。

答案:

main()

{doublex,y,t;

printf("Enterxandy:\nH);

scanf(u%lf%lf,&x,&y);

t=x;

x=y;

y=t;

printf(Mx=%f,y=%f\n",x,y);

运行程序:

Enterxandy:

输入:12.34口34.12/(/表示回车,口表示空格)

输出:x=34.120000,y=12.340000

第一个printf函数输出的是提示信息,提醒用户输入x和y的值;x,y值交换后用%£格

式输出x和y的值(输出double型数据可以用%f格式,但输入double型数据必须用%lf或%怕

格式)。在格式字符串中用“x=“,“y=”是为了对输出的数据进行说明,使输出数据更明确。

63、输入两个整数a和b(设a=1500,b=350),求a除以b的商和余数,编写完整程序并按如下

形式输出结果(□表示空格)。

a=nl500,b=a350

a/b=Da4,theaaainodab=n100

答案:

#includenstdio.h"

main()

(

inta,b,c,d;

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

c=a/b;/*求a/b的商*/

d=a%b;/*求a/b的余数*/

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

printf(na/b=%3d,theamodb=%4d\n",c,d);

)

第五章选择结构程序设计

选择题

1、表达式1&3&5&7的值为。

A.lB.3C.5D.7答案:A

2、表达式-l<=3<=-5值是o

A.OB.lC.3D.表达式语法有错答案:A

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

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

if(!a)X-;

elseif(b);

if(c)x=3;

elsex=4;

A.34B.4C.35D.3答案:B

4、若变量c为char类型,能正确判断出c为小写字母的表达式是。

A/a4<=c<=4z4B.(c>=4a4)ll(c<='z')

C.('a'v=c)and(z4>=c)D.(c>=h')&&(c<=2')答案:D

5、若执行以下程序时从键盘上输入9,

main()

{intn;

scanf(H%dn,&n);

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

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

)

则输出结果是。

A.llB.10C.9D.8答案:B

6、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是。

7、A.10<a<15B.a==l1IIa==12IIa==13IIa==14C.a>IO&&a<15

D.!(a<=10)&&!(a>=15)

答案:A

7、设x、y、t均为int型变量,则执行语句:x=y=3;t=++xlk+y;后,y的值为______。

A.不定值B.4C.3D.1答案:C

8、设有定义intx=l;inty=,a'<,A”x--:x++;,则变量y的值是。

A.OB.2C.lD.3答案:C

9,为表示关系x大于等于y,且y大于等于z,应使用C语言表达式。

A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D.(x>=y)&(y>=z)

答案:A

10、在以下一组运算中,优先级最高的运算符是。

A.<=B,=C.%D.<S&答案:C

11、执行下面语句后的输出结果为»

inti=-l;

if(i<=0)printf("****\n");

elseprintf("%%%%\n");

A.****B.%%%%

C.%%%%cD.有语法错误,不能正确执行答案:A

12、逻辑运算符两侧运算对象的数据类型o

A)只能是0或1B)只能是0或非0正数

c)只能是整型或字符型数据D)可以是C的任何类型的数据答案:D

13、以下关于运算符优先顺序的描述中正确的是o

A)关系运算符〈算术运算符〈赋值运算符〈逻辑与运算符B)逻辑与运算符〈关系运算

符〈算术运算符〈赋值运算符

C)赋值运算符〈逻辑与运算符〈关系运算符〈算术运算符D)算术运算符〈关系运算符<

赋值运算符〈逻辑与运算符答案:C

14、下列运算符中优先级别高的是

A)<B)+C)&&D)!=答案:B

15、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的达式是。

A)(x>=l)&&(x<=10&&(x>=200)&&(x<=210)B)(x>=1)ll(x<=10)ll(x>=200)ll(x

<=210)

C)(x>=1)&&(X<=10)ll(x>=200)&&(x<=210)D)(x>=l)ll(x<=l0)&&(x>=200)ll(x

<=210)答案:C

16、设有:inta=l,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n

的值为一。

A)1B)2C)3D)4答案:B

17、以下程序的运行结果是o

#includeustdio.h"

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-l)&&(-l);

printf(??%d,%dH,a,b);

)

A)6,1B)2,1C)6,0D)2,0答案:B

18>已知intx=I0,y=20,z=30;以下语句执行后x,y,z的值是。

if(x>y)z=x;x=y;y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20答案:B

19、请阅读以下程序:

main()

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

if(a=b+c)printf(''***\n'');

elseprintf("$$$');

)

以上程序—o

A)有语法错不能通过编译c)输出***B)可以通过编译但不能通过连接D)输出$$$

答案:D

20、以下程序的运行结果是一o

main()

{intm=5;

if(m++>5)printf("%d\n",m)

elseprintf(^^%d\n”,m—);

)

A)4B)5C)6D)7答案:C

21、当a=l,b=3,c=5,d=4时,执行完下面一段程序后,x的值是。

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

A)1B)2C)3D)6答案:B

22、以下程序的输出结果是一o

main()

{inta=100,x=10,y=20,okl=5,ok2=0;

if(x<y)

if(y!=10)

if(!okl)

a=I;

else

if(ok2)

a=10;

a=-l;

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

)

A)1B)0C)-lD)值不确定答案:C

23、若有条件表达式达式(exp)?a++:b-,则以下表达式中能完全等价于表达式(exp)的是—.

A)(exp==0)B)(exp!=0)C)(exp==l)D)(exp!=l)答案:B

24、若w=l,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y;z的值是

A)4B)3C)2D)1答案:D

25、下列运算符中优先级别高的是

A)<B)+C)&&D)!=

答案:B

26、判断char型变量ch是否为大写字母的正确表达式是一。

A)4A'<=ch<='Z,B)(ch>=*Al)ll(ch<='Z')

C)(ch>='A')&&(ch<='Z')D)CA,<=ch)AND(,z'>=ch)答案:C

27、设有:inta=1,b=2,c=3,d=4,m—2,n=2;执行(m=a>b)&&(n=c>d)后n

的值为一。

A)1B)2C)3D)4答案:B

28、以下程序的运行结果是一。

main()

{intm=5;

if(m++>5)printfC,%d\n",m)

elseprintf(,?%d\n”,m—);

)

A)4B)5C)6D)7答案:C

29、以下程序的输出结果是o

main()

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

if(x<y)

if(y<0)z=O;

elsez+=l;

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

)

A)3B)2C)1D)0答案:B

30、若运行时给变量x输入12,则以下程序的运行结果是。

main()

{intx,y;

scanf("%d”,&x);

y=x>12?x+10:x-12;

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

A)0B)22C)12D)10答案:A

31、执行以下程序段后,变量a,b,c的值分别是o

intx=10,y=9;

inta,b,c;

a=(-x==y++)?-x;++y;

b=x++;

c=y;

A)a=9,b=9.c=9B)a=8,b=8,c=10

C)a=9,b=10,c=9D)a=l,b=ll,c=10答案:B

32、main()

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

switch(a%3)

{caseO:m++;break;

casel:m++;

switch(b%2)

{default:m++;

caseO:m++;break;

)

)

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

)

程序运行后的结果是o

A)1B)2C)3D)4答案:A

填空题

33、以下程序的运行结果是

main()

{inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:printf(n@n);break;

case2:switch(c==5)

{caseO:printf(u*M);break;

case1:printf(n#*');break;

default:printf(n#H);break;

)

default:printf(,'&,');

}printf("\nM);

)

答案:#&

34、请读程序

#include<stdio.h>

main()

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

switch(x)

{case1:

switch(y)

{caseO:a++;break;

casel:b++;break;

}

case2:

a++;b++;break;

)

printf("a=%d,b=%d',,a,b);

)

上面程序的运行结果是

答案:a=2,b=l

综合题

35、有三个整数a,b,c,由键盘输入,输出其中最大得数。

答案:

main()

(

inta,b,c,d;

printf(npleaseinput3num,theformatis123\n");

scanf(H%d%d%d",&a,&b,&c);

d=(a>b)?a:b;

d=(d>c)?d:c;

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

)

36、以下面的方程为基础,写一程序,输入X值,输出Y值,方程如下:当x<l时,y=x,

当l<=x<10时,y=2x-l,当x>=10时,y=3x-l1

答案:

main()

(

intx,y,a;

printf("pleaseinputthevalueofx");/*输入X的值*/

scanf(M%d,',&x);

printf("thevalueofyis:");/*分条件打印出y值*/

if(x<l)

(

y=x;

printf(n%dn,y);

)

else

if(x>=l&&x<10)

(

y=2*x-l;

printf(,,%d,',y);

else

y=3*x-l1;

printf("%cT,y);

37、给出一百分制成绩,要求输出成绩等级A,E,C,D,E,90分以上为A,80〜

90分为B,70〜79分为C,60〜69分为D,60分以下为E。

答案:

main()

{intnum;

printf("pleaseinputthescore:\n'*);

scanf(n%dn,&num);

if(num<0llnum>100)

printf("thescoreiserror,pleaseinputanumberfrom0-100\n");

elseif(num>=90)num=65;

elseif(num>=80)num=66;

elseif(num>=70)num=67;

elseif(num>=60)num=68;

elsenum=69;

printf(Mthelevelis:");

switch(num)

(

case65:printf(H%c",num);break;

case66:printf(u%c",num);break;

case67:printf("%c”,num)

温馨提示

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

评论

0/150

提交评论