C语言程序设计期末考试2_第1页
C语言程序设计期末考试2_第2页
C语言程序设计期末考试2_第3页
C语言程序设计期末考试2_第4页
C语言程序设计期末考试2_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计期末考试

第1章C语言程序设计概述

第1章测试题

1、以下叙述正确的是。

A、C语言实现输入输出功能需要调用库函

B、C程序中的每一条语句必须单独写在一

行上

C、一个C语言程序中的main函数可以没有,

但最多只能有一个

D、C程序在编译时可将解释中的错误反馈

给用户

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

A、C语言中的main函数可以在程序的任意

位置

B、在C程序中,解释说明只能位于一条语

1/1H

句的后面

C、C语言是结构化的程序设计语言,其基

本组成单位是函数

D、一个C源程序有且仅有一个main函数

3、一个C源程序

A、C语言程序由一个主程序和若干个子程

序组成

B、C语言程序由若干个主函数组成

C、C语言程序若干个子函数组成

D、C语言程序若干子程序组成

4、一个C程序的执行是从。

A、从第一个函数开始,到最后一个函数结

B、从main函数开始到main函数结束

C、从第一个函数开始,到main函数结束

D、从main函数开始,到最后一个函数结束

5、以下叙述正确的是。

A、函数是C语言的基本组成单位

2/111

B、可以在一个函数中定义另外一个函数

C、一个程序只能有一个函数

D、一个函数只能在一个程序中调用

6、构成C语言程序的基本单位是。

A、函数

B、文件

C、语句

D、字符

7、以下叙述正确的是。

A、C语言源程序可以直接运行

B、C语言程序编译后产生源程序,后缀名

为.C

C、C语言程序中的函数可以单独编译

D、C语言源程序编译后产生目标程序

8、以下叙述正确的是。

A、函数的函数体必须用“{}”括起来

B、函数的函数体如果只有一条语句,则“什〃

可以省略

C、C语言中函数必须用预处理#include将其

3/111

包含进来

D、函数体可以放在程序的任意位置

9、以下叙述正确的是。

A、C语言在编译时既检查语法错误,也检

查逻辑错误

B、C语言编译时若有语法错误,也会编译

成功

C、C语言编译时若有语法错误,则会给用

户反馈错误信息

D、C语言程序必须在没有语法错误和逻辑

错误的情况下,才能编译成功

10、以下叙述正确的是。

A、C语言程序每次执行前都要进行编译

B、C语言是解释执行的语言

C、C语言是编译执行的语言

D、C语言程序在链接后进行编译,如果有

语法错误,将会给用户报错

11、以下叙述正确的是。

A、程序是指由二进制0和1构成的代码

4/111

B、程序是人和计算机之间交流的工具

C、程序设计语言从机器语言、汇编语言向

高级语言发展

D、程序设计语言从高级语言、汇编语言向

机器语言发展

12、以下叙述正确的是。

A、高级语言更符合人们的语言习惯

B、汇编语言是由二进制0和1表示的

C、机器语言晦涩难懂,执行速度也很慢

D、高级语言可以被计算机直接执行,所以

它是高级的

13、以下叙述错误的是。

A、C语言程序是面向对象的程序设计语言

B、C语言数据类型丰富

C、C语言是高级程序设计语言

D、C语言可以直接访问物理地址

14、C语言从开始执行。

A、函数

B、头文件

5/111

C、主函数

D、定义变量的语句

15、以下叙述正确的是。

A、C语言程序执行效率高,但可移植性差

B、C语言程序可以包含多个预处理命令

C、连接程序只是把源程序连接成目标程序

D、C语言的源程序经过连接可直接执行

16、计算机能够直接执行的程序是。

A、机器语言编写的程序

B、高级语言编写的程序

C、机器语言编写的函数

D、汇编语言编写的程序

17、计算机能够直接执行的是。

A、源程序

B、目标程序

C、汇编程序

D、可执行程序

18、以下叙述正确的是。

6/111

A、C语言在编译时检查语法错误

B、C语言在编译时检查语法错误

C、C语言在编译时检查程序的完整性

D、C语言在编译时检查程序的完整性

19、C语言源程序要正确的执行,则必须要

有。

A、#include函数

B、main函数

C、用户自定义函数

D、输入、输出语句

20、以下叙述正确的是。

A、C语言经过编译生成0和1组成的二进

B、机器语言经过编译可以生成高级语言指

C、机器语言虽然可移植性好,但执行速度

比较慢

D、机器语言不能被计算机直接识别,所以

不能用机器语言编写操作系统

7/111

21、关于C语言以下叙述正确的是。

A、C语言是汇编语言

B、C语言是机器语言

C、C语言是高级语言

D、C语言是低级语言

22、以下叙述正确的是。

A、C语言程序中的每条语句都用一个分号

作为结束符

B、C语言程序中的每个函数都用一个分号

作为结束符

C、C语言中的每条命令都用一个分号作为

结束符

D、C语言中的语句末尾可以使用分号,也

可以不使用分号

23、一个C语言程序是由。

A、一个主函数和若干个库函数组成

B、一个主函数和若干个子函数组成

C、一个主过程和若干个子过程组成

D、一个主函数和若干个函数体组成

8/111

24、在计算机中,一个字节所包含二进制位

的个数是。

A、2

B、4

C、8

D、16

25、下列叙述中正确的是。

A、C语言是低级语言,因为可以直接访问

物理地址

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

执行

C、C语言可以直接访问物理地址,但它是

高级语言

D、C语言是高级语言,不能被编译成二进

26、下列说法正确的是。

A、C程序中的每一行必须书写一条语句,

不能出现空行

B、C程序的每一条语句都必须书写在一行

上,不能跨行

9/111

C、C程序的一行中可以书写多条语句

D、C程序的一行只能书写一条语句

27、在C语言中,每个语句必须以结束。

A、回车符

B、冒号

C、逗号

D、分号

28、C语言程序的开发顺序是。

A、编辑、编译、连接、运行

B、编译、编辑、连接、运行

C、编辑、连接、编译、运行

D、连接、编译、编辑、运行

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

A、C程序中解释部分可以出现在程序中任

意合适的地方

B、C程序中若用〃表示解释,则解释可以跨

C、C程序中若用/*和*/表示解释,则解释只

10/111

能有一行

D、花括号”{”和丁可以用来表示解释

30、用C语言编写的源文件经过编译,若没

有产生编译错误,则系统将。

A、生成目标文件

B、输出运行结果

C、生成可执行目标文件

D、生成源文件

第1章作业题

1、C语言是一种什么样的语言?为什么既可

以用来开发系统软件又可以编写应用程

序?

2、简述C语言源程序的基本结构。

3、C语言有哪些优点?

4、在计算机上执行C语言程序需要经过哪

些步骤?

第2章C语言的数据类型

第2章测试题

1、下列关于C语言用户标识符的叙述中正

确的是

A、可以出现数字、字母和其它符号

B、可以出现下划线,但必须在起始位置

C、可以有字母,但字母没有大小写之分

D、可以出现数字,但数字不能放在起始位

2、以下不是合法的标识符的选项是。

A、WHILE

B、_0_

C、_C

D、if

3、C语言提供的合法的数据类型关键字是

()o

A、double

12/111

B、Float

C、INT

D、Main

4、下列字符串可作为合法标识符的是。

A、double

B、9_hello

C、_if

D、!123

5、下列可用作C语言程序中的标识符的是。

A、print_doxy_z

B、wa:lscanf_lty-1

C、.objname_lwhile

D、int_studenta_l

6、以下选项中,均是不合法的用户标识符

的选项是。

A、Asky_0do

B、floatyy_21_A

C、a-bcontinuedouble

13/111

D、_123printfINT

7、下列运算符中优先级最低的运算符是

A、=

B、=

C、%

D、!

8、下列运算符中,要求操作数必须是整型

的运算符是O

A、%

B、/

C、

D、!

9、是合法的C语言字符常量。

A、‘X”

B、e3

C、#

D、cprogram

14/111

10、已定义c是字符型变量,则下列不合法

的赋值语句是。

A、c-a+b';

B、c=,\047/;

C、c=7;

D、c='!';

11、下列不合法的C语言转义字符的项目是

A>V

B、'Oxg,

C、V

12、转义字符vtor表示的是。

A、字符a

B、字符A

C、字符e

D、非法的常量

13、以下符合C语言语法规则的实型常量是

15/111

A、1.5E-0.5

B、3.14159E10

C、E-5

D、-E2

14、下面不正确的字符串常量是。

A>,helloc,

B、ll3A\&Qu

C、,,1.345H

D、“V”

15、如果inta=5,b=7;则条件表达式"ab

a-b:b-a”的值是。

A、5

B、7

c、-2

D、2

16、设a为整型变量,不能正确表达数学关

系:5al0的C语言表达式是。

A、a5a10

B、a==6||a==711a==811a==9

16/111

C、5al0

D、!(a=5)!(a=10)

17、表达式15%6*sqrt(9.O)/3值的数据类型

是o

A、int

B、float

C、double

D、不确定

18、设有以下变量定义,并已赋确定的值

charc;inta;floatx;doublem;贝表达

式:c*a+m-x所求得的数据类型为o

A、char

B、int

C、float

D、double

19、如果i=7,则k=(++i)+(i++)+(i++)执行过后

k的值为,i的值为。

A、21,7

B、22,8

17/111

C、24,8

D、24,10

20、以下选项中非法的表达式是

A、i-lOilO

B、(i+l)++

C、(char)(65+32)

D、i=j+=i*i

21、下列关于自增运算符++、自减运算符-

的叙述中正确的是O

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

和表达式。

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

型变量,但不能是float型变量。

C、它们的操作数可以是一个,也可以是两

个。

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

型变量和float型变量。

22、以下选项中,与k=i++完全等价的表达

式是o

18/111

A、i=i+l,k=i

B、k=i,i=i+l

C、k=++izi=i+l

D、k+=i+l

23、设intx=O,y=l;表达式(--x||y--)的值是

A、-1

B、0

C、1

D、2

24>设有语句inta=O,b=l,c=2;则下面表达式

中,值为0的表达式是o

A、a||b

B、a=b

C、a11b+cb-c

D、!((cba!c|11)

25、若有以下定义,则能使值为0的表达式

是。inta=9,b=2;

A、a%=(a/b)

19/111

B、a%=(a/=b)

C、a=(b-a%=b)

D、b*=(b=a%b)

26>floata=2.5,b=3.5,则表达式(int)a+b/b的

值是o

A、3.500000

B、3.000000

C、2.000000

D、3

已有定义:则表达

27>intx=3,y=4zz=5;,

式!x-y||(y-z)-l的值是0

A、-1

B、0

C、1

D、2

28>已有定义:intx=3,y=4,z=5;则表达

式!(x-y)y-z-l的值是。

A、-1

B、0

20/111

C、1

D、2

29、已知a,b,c都是已定义的整型变量,则

符合C语言语法规定的表达式是。

A、(a+l)=a-=b-=O

B、!a=a*3*c=2

C、a=a"(b-c)!

D、a=a-c*!(b+a)

30、若a为int类型,且其值为6,则执行完

表达式a+=a-=a*a后,a的值是。

A、-60

B、0

C、1

D、60

第2章作业题

1、C语言中数据类型转换的方式有几种?各

有什么特点?转换的规则是什么?

21/111

2、定义符号常量计圆的面积,设半径为4.25,

N的取值设为3.1415926,输出结果保留两位

小数。

3、将"China〃译成密码。译码规律:用原来

字母后面的第4个字母代替原来的字母。例

如,字母"A"后面第4个字母是"E〃,用"E〃代

替“A〃。

第3章顺序结构程序设计

第3章测试题

1、关于算法的描述,下列正确的是。

A、一个算法可以没有输入,但必须有输出

B、一个算法必须要有输入,但可以没有输

C、一个算法有几个输入就必须有几个输出

D、一个算法如果没有输入,则此算法是错

误的

2、算法的每一个步骤都应是确切定义的,

22/111

不能有二义性,相同的输入应该得到相同的

输出,这是算法的。

A、可行性

B、确定性

C、正当性

D、有穷性

3、以下程序片段:intx=2,y=3;printf();的

运行结果是。

A、输出为:x=2,y=3

B、什么都不输出

C、输出为:y=3

D、输出为:x=2

4、已知ahc为int型变量,若从键盘输入:

234回车,使a的值为2,b的值为3,c

的值为4,以下选项中合法的输入语句是。

zz,,

A、scanf(%2d%3d%4d/a,b,c);

B、scanf("%d%d,%d"jabc);

C、scanf("%dV%dV%d”,a,b,c);

zz//

D、scanf(a=%d/b=%d/c=%d/a,b,c);

23/111

5、若inta,b;doublex;以下不合法的scanf

函数调用语句是。

A、scanf("%d%o%f”,a,b,x);

B、scanf("%3d%*3d%lf7ahx);

C、scanf("%o%f%lo”,a,b);

D、scanf(zz%ld%lo%oz,,a,b,x);

6、有输入语句:scanf("a=%db=%dc=%cT1ahc);

为使变量a的值为1,b的值为3,c的值为

5,则正确的数据输入方式是。

A、1351/

B、1,3,51/

C、a=lb=3c=5iZ

D、a=lb=3c=5iZ

7、putchar()函数可以向终端输出一个。

A、整型变量表达式值

B、字符或字符型变量值

c>字符串

D、实型变量值

24/111

8、getchar。函数的参数个数是。

A、0

B、1

C、2

D、3

9、printf函数中用到格式符%8s,其中数字

8表示输出的字符占用8歹!I。如果字符串长

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

A、右对齐输出该字符串,左补空格

B、从左起输出该字符串,右补空格

C、当字符串长度小于格式中规定的长度时,

格式中的规定被忽略

D、输出错误信息

10、以下说法正确的是。

A、scanf()函数的输入项可以是整型、实型、

字符型等变量

B、若省略了scanf()函数中的格式控制字符,

则用户在输入终端输入数据时类型不受限

C、scanf()函数输入一个实型数据时,格式控

25/111

制部分应规定小数点后的位数,如scanf。%

4.2f",f);

D、scanf()函数输入数据时,必须指明变量的

地址

11、若有以下定义和语句:inta=010,

b=OxlO,c=10;printf("%d,%d,%d\n",

a,b,c);则输出结果是:。

A、10,10,10

B>8,8,10

C>8,10,10

D>8,16,10

12、以下程序的输出结果是。main(){int

a=10;printf("%d,%o,%x\n",a,a,a);}

A、10,12,a

B、10,olO,xlO

C、diO,olO,xlO,

D、10,2,xlO

13、下列程序执行后的输出结果是。void

26/111

main(){printf('\sl=%7soello〃);

A、sl=〃hello〃

B、sl=7hello

C、7sl=hello'

D、\'sl=〃hello〃\'

14、printf。函数中格式控制符%5s,其中数

字5表示o

A、输出项的个数为5

B、表示输出的字符串占用5列

C、表示输出的实型数据保留5位小数

D、输出错误

15、有以下程序段:inta,b,c;a=10;b=20;c=30;

a=b;b=c;c=a;

zz,/

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

A、3=10^=20,6=30;

B、3=20^=30,6=20;

C、a=20b=30c=10;

D、20,30,10

16、有以下程序段:main(){charc;

27/111

c=getchar();},若在键盘上输入hello,则c获

得的数据为。

A、hello

B、h

C、(hello)

D、无数据

“、以下程序段的输出结果是inta=1234;

printf("a=%2d\n"/a);

A、a=12

B、a=34

C、a=1234

D、提示出错、无结果

18、下列关于printf()函数说法错误的是。

A、printf()函数必须与scanf()函数配合使用

B、printf()函数是格式化输出函数,格式控

制字符控制了输出项的形式

C、printf()函数是库函数,必须使用#小(:111(^

命令将其包含进来

D、printf。函数可以输出一个对象,也可以

输出多个对象

28/111

19、设有定义:longX-654321L;,则以下能

够正确输出变量X值的语句是。

A、printf(zzx=%d\n,»;

B、printf(zzx=%ld\n,,,x);

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

D、printf("x=%LD\n〃,x);

20、根据定义和数据的输入方式,输入语句

的正确形式为。已有定义:数

floatflzf2;

据的输入方式:4.523.5

A、scanf("%f,%f",fl,f2);

B、scanf("%f%f",fl,f2);

、,,,,

Cscanf(%3.2f%2.1f,fl/f2);

D、scanf(,,%3.2f%2.1f,,,fl,f2);

21、下面的程序的输出结果是。

#includestdio.hmain(){Inti=010,j=10;

printf("%dz%d",++iJ-);}

A、11,10

B、9,10

C、010,9

29/111

D、10,9

22、下列程序的运行结果是。voidmain()

{inta;a=-2L;printf("%d\n'a);}

A、赋值不合法

B、输出值为-2

C、输出为不确定的值

D、输出值为2

23、有如下程序:main(){intx=3,y=3,

,,

z=l;pnntff"%d%d\n/(++x,y++)/z+2);}

运行该程序的输出结果是。

A、34

B、42

C、43

D、33

24、下列程序的输出结果是。main()

{doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;

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

A、3

B、3.2

30/111

C、0

D、3.07

25、以下程序的输出结果是。main(){int

a=4zb=5,c=0,d;d=!a!b||!c;pnntf("%d\n",d);}

A、1

B、0

C、非0的数

D、-1

26、若有以下程序main(){intk=2,i=2,m;

m=(k+=i*=k);printf("%d,%d\n”,m,i);}执行后

的结果是。

A、8,6

B、8,3

C、6,4

D、7,4

27、设a为int型变量,a=8567,则语句

printf("|%-06d|\n”,a);输出的结果为。main()

{intk=8567;printf("|%-06d|\n",k);}

31/111

A、无输出

B、输出为|08567|

C、|8567|

D、|-08567|

28、)下面程序段的输出结果是。main()

{charcl=,a,,c2=lf,;

,,,,

printf("%d,%c\n"/c2-cl,c2-a+B);}

A、2,M

B、5,!

C、2,E

D、5,G

29、下面的程序:main(){chara,b,c,d;a='\';

b=,\xbc,;c=,\Oxbc,;d=,\0127,;

nn编译时

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

出现错误,则该错误有可能是。

A、a='\';

B、b=,\xbc,;

C、c=,\Oxbc,;

D、d=,\01271;

32/111

30、下面的程序运行时,如果输入18,18,

则b的值为。main(){inta,b;

scanf(”%d,%x",a,b);b+=a;printf("%d"zb);}

A、36

B、42

C、输入有误,b无值

D、18

第3章作业题

1、什么是算法?如何评价算法?

2、〃鸡兔同笼问题"。鸡有2只脚,兔有4

只脚,如果已经鸡和兔的总头数为h,总脚

数为f。问笼中各有多少只鸡和兔。执行时

输入总头数10和总脚数32o

3、输入长方体的长宽高:I,w,h,输出长

方体的体积。

4、用顺序结构编写程序打印下面的图形。

期末考试

33/111

*********期末考试

*

第4章选择结构程序设计

第4章测试题

1、下列条件语句中,功能与其他语句不同

的是。

,,,,,,,,

A、if(a)printf(%d\n,x);elsepnnf(%d\n/y);

B、if(a==O)prinfff^dXn^y);else

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

C、if(a!=0)printf("%d\n",x);else

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

D、if(a==O)printf("%d\rTp<);else

,,,,

printf(%d\n/y);

2、假定所有变量均已正确说明,下列程序

段运行后x的值是oa=b=c=0;x=12;

if(!a)x-;elsex=5;if(c)x=3;elsex=4;

A、11

B、4

34/111

C、12

D、3

3、下列叙述中正确的是。

A、break语句只能用于switch语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case

配对使用

D、在switch语句中,不愿定使用break语

4、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。inta=l,b=3,c=5;

if(c=a+b)printf("yes\n");elseprintf("no\n");

A、2

B、3

C、5

D、1

5、当把以下4个表达式用作if语句的控制

表达式时,有一个选项与其他3个选项含义

不同,这个选项是。

35/111

A、k%2

B、k%2==l

C、(k%2)!=0

D、!k%2==l

6、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。intn=0,m=l,x=2;

if(!n)x-=l;x-=2;if(!x)x-=3;printf

("%d\n"?x);

A、2

B、1

C、3

D、6

7、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。

inta=3,b=5zc=7;

if(ab)a=b;c=a;if(c!=a)c=b;

printf(”%d/%d,%d\rT/ahc);

A、程序段有语法错

B>3,5,3

C、3,5,5

D、3,5,7

36/111

8、假定所有变量均已正确说明,执行以下

程序段时,从键盘上输入1和2,则结果是。

inta,b,s;scanf(,,%d%d,,,a,b);s=a;if(ab)s=b;

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

A、1

B、4

C、2

D、9

9、有定义语句:inta=l,b=2,c=3,x;,则以下

选项中各程序段执行后,x的值不等于3的

是。

A、if(c3)x=l;elseif(b2)x=2;elsex=3;

B、if(a2)x=3;elseif(al)x=2;elsex=l;

C>if(a3)x=3;if(a2)x=2;if(al)x=l;

D、if(a2)x=b;if(b3)x=c;if(cl)x=a;

10>下面选项if语句形式不正确的是。

A、if(xyx!=y);

B、if(x==y)x+=y,

C、if(x!=y)scanf(”%d,x);elsescanf("%cTM;

37/111

D、if(xy){x++;y++;}

11、为了避免在嵌套的条件语句if-else中产

生二义性,C语言规定:else子句总是与配

对。

A、缩排位置相同的if

B、其之前最近的没有else配对的if

C、其之后最近的if

D、同一行上的if

12、在下面的条件语句中,只有一个在功能

上与其它三个语句不等价,它是。

A、if(a)语句1else语句2

B>if(a==0)语句2else语句1

C、if(a1=0)语句1else语句2

D、if(a==0)语句1else语句2

13、在C语言语句中,用来决定分支流程的

表达式是。

A、可用任意表达式

B、只能用逻辑表达式或关系表达式

C、只能用逻辑表达式

38/111

D、只能用关系表达式

14、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。intk;k=-3;if(k=O)

printf("####");elseprintf("〃);

A、####

B、

C、####

D、有语法错误,无输出结果

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

stdio.hmain(){intx=0,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=l

、==

Bal/bl

Ca=l/b=0

D、a=2,b=2

16、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。inta=l,b=5,c=3;

if(ab)a=b;b=c;c=a;printf(na=%db=%d

39/111

,,

c=%d\n,a/b,c);

A、a=lb=5c=l

B、a=lb=3c=l

C、a=5b=3c=l

D、a=5b=3c=5

17、有以下程序#includestdio.hmain(){int

a=5,b=4,c=3,d=2;if(abc)printf("%d\n,d);else

if((c-l=d)==l)printf("%d\n5d+l);else

printf("%d\n",d+2);}执行后输出结果是。

A、2

B、3

C、4

D、编译时有错,无结果

18、对下述程序,是正确的判断。include

stdio.hmain(){intx,y;scanf("%d,%d7x,y);if

(xy)x=y;y=x;elsex++;y++;printf(〃%d/%d”凶y);}

A、有语法错误,不能通过编译

B、若输入3和4,则输出4和5

C、若输入4和3,则输出3和4

40/111

D、若输入4和3,则输出4和5

19、下述程序的输出结果是。#include

stdio.hmain(){inta=0,b=0,c=0;if(++a0||

++b0)++c;printf("%d,%d,%d”,a,b,c);}

A、0,0,0

B、1,1,1

C、1,0,1

D、0,1,1

20、在C语言中,多分支选择结构语句为:

switch(c){case常量表达式1:语句1;......

case常量表达式n-1:语句n-1;default语句

n;}其中括号内表达式c的类型:。

A、可以是任意类型

B、只能为整型

C、可以是整型或字符型

D、可以为整型或实型

21>若有以下定义:floatx;inta,b;则正确的

switch语句是。

A、switch(x){case1.0:printf("*\n");case2.0:

41/111

printf("**\n");}

B、switch(x){case1,2:pnntf(,,*\n,1);case3:

printf("**\n");}

C、switch(a+b){case1:printf("*\n");case1+2:

printf("**\n");}

D、switch(a+b);{case1:printf(”*\n”);case2:

printf("**\n");}

22、以下程序中与语句k=ab(bcl:0):0功

能等价的是。

A、if((ab)(bc))k=l;elsek=0;

B、if((ab)11(be))k=l;elsek=0;

C>if(a=b)k=0;elseif(b=c)k=l;elseif(be)k=l;

elsek=0;

D>if(ab)k=l;

23、若欲表示在if后a不等于0的关系,则

能够正确表示这一关系的表达式为。

A、a0

B、!a

C、a=0

D、a

42/111

24、下列各语句序列中,能够将变量a和b

中的较大值赋值到变量t中的是。

A、if(ab)t=a;t=b;

B、t=b;if(ab)t=a;

C、t=b;if(ab)elset=a;

D、t=a;if(ab)t=b;

25、有以下程序#includestdio.hmain(){intx;

scanf(”%d”,X);if(x=3);elseif(x!=10)

printf("%d\n",x);}程序运行时,输入的值在

范围才会有输出结果。

A、不等于10的整数

B、大于3且不等10的整数

C、大于3或等于10的整数

D、小于3的整数

26、以下4个选项中,不能看作一条语句的

是o

A、{;}

Ba=07b=0,c=0;

C、if(aO);

43/111

D、if(b==0)m=l;n=2;

27、有以下程序#includestdio.hmain(){int

a=0,b=4,c=0,d=10,x;if(a)d=d-10;elseif(!b)

if(!c)x=15;elsex=25;printf("%d\n",d);}程序

运行后的输出结果是O

A、5

B、3

C、20

D、10

28、若变量已正确定义,有以下程序段int

a=3,b=5,c=7;if(ab)a=b;c=a;if(c!=a)c=b;

HH其输出结果是

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

A、程序段有语法错

B、3,5,3

C、39595

D、3,5,7

29、有定义语句:inta=l,b=2,c=3,x;,则以下

选项中各程序段执行后,x的值不为3的是

44/111

A、if(ca)x=l;elseif(ba)x=2;

elsex=3;

B、if(a3)x=3;elseif(ba)x=2;

elsex=l;

C、if(a3)x=3;if(a2)x=2;if(al)

x=l;

D、if(ab)x=b;if(be)x=c;if(ca)

x=a;

30、当a=l,b=3,c=5,d=4时,执行下面

一段程序后,x的值为oif(ab)if(cd)

x=l;elseif(ac)if(bd)x=2;elsex=3;elsex=6;

elsex=7;

A、1

B、2

C、3

D、6

第4章作业题

1、用switch结构设计有两个操作数的数学

45/111

2、2.请编制程序,要求输入正整数a,若a

既是5又是7的整数倍,则输出yes,否则

输出noo

3、3.编程实现以下功能:输入年份year,判

断该年是否为闰年。其中判别闰年的条件是:

year能被4整除但不能被100整除,或者能

被400整除。

4、4.编程实现以下功能:输入一个大写字母

进行循环后移5个位置后输出。如7V变成F

输出,Z变成E输出。

5、5.有一函数:当xl时,y=x;当x=l且xlO

时,y=2x-l;当x=10时,y=3x-ll,写一程序,

输入x,输出y值

第5章循环结构程序设计

第5章测试题

46/111

1、设变量已正确定义,则以下能正确计算n!

的程序段是。

A、f=0;for(i=l;i=n;i++)f*=i;

B、f=l;for(i=l;in;i++)f*=i;

C、f=l;for(i=n;il;i++)f*=i;

D>f=l;for(i=n;i=2;j-)f*=i;

2、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。x=O,y=5,z=31;

while(z-0++x5)y=y-l;

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

A、3,2,0

B、32-1

c、43-1

D、5厂2厂5

3、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。inti,s=0;

for(i=l;ilO;i+=2)s+=i+l;printf("%d\n",s);

A、自然数1〜9的累加和

B、自然数1〜10的累加和

47/111

C、自然数1〜9中奇数之和

D、自然数1〜10中偶数之和

4、设有以下程序段intx=O,s=O;while(!x!=0)

s+=++x;printf(”%d,s);贝!]。

A、运行程序段后输出0

B、运行程序段后输出1

C、程序段中的控制表达式是非法的

D、程序段执行无限次

5、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。intt,a=l,b=5,c=-2;

while(abc){t=a;a=b;b=t;C++;}

printf(”%d,%d,%d,a,b,c);

A、1,5,0

B、1,5,-2

C、5,1,-1

D、5,L-2

6、有以下程序段:intn,t=l,s=0;scanf("%d",

n);do{s=s+t;t=t-2;)while(t!=n);为使程序不

陷入死循环,从键盘输入的数据应该是

48/111

A、任意正奇数

B、任意负偶数

C、任意负奇数

D、任意正偶数

7、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。intk=5;while(-k)

printfC%d",k-=3);printf("\n");

A、1

B、2

C、4

D、死循环

8、设有以下程序段intx=O,s=O;while)!x!=0)

s+=++x;printf("%d",s);则下面描述中正确的

A、运行程序段后输出0

B、运行程序段后输出1

C、循环的控制表达式不正确

D、程序段执行无限次

49/111

9、语句while(!x);中的!x等价于。

A、x==0

B、x!=l

C、x!=0

D、x==1

10、以下描述中正确的是。

A、由于do-while循环中循环体语句只能是

一条可执行语句,所以循环体内不能使用复

合语句。

B、do-while循环由do开始,用while结束,

在while(表达式)后面不能写分号。

C、在do-while循环体中,一定要有能使while

后面表达式的值变为零("假。的操作。

D>do-while循环中,根据情况可以省略while。

11、下面有关for循环的正确描述是。

A、for循环只能用于循环次数已经确定的情

B、for循环是先执行循环体语句,后判断表

达式

50/111

C、在for循环中,不能用break语句跳出循

环体

D、for循环的循环体可以包括多条语句,但

必须用花括号括起来

12、对for■(表达式1;;表达式3)可理解为。

A、for(表达式1;0;表达式3)

B、for(表达式1;1;表达式3)

C、for(表达式l;null;表达式3)

D、缺少一个表达式

13、以下是有限循环的语句为。

A、for(y=0,x=l;x++y;x=i++)i=x;

B、for(;;x++=i);

C、while(l){x++;}

D、for(i=10;;i")sum+=i;

14、执行语句for(i=l;i++4;);后变量的值为。

A、3

B、4

C、5

51/111

D、不定

15、以下正确的描述是。

A、continue语句的作用是结束整个循环的

执行。

B、只能在循环体内和switch语句体内使用

break语句。

C^在循环体内使用break语句或continue

语句的作用相同。

D、从多层循环嵌套中退出时,只能使用goto

语句。

16、以下描述正确的是。

A、goto语句只能用于退出多层循环。

B、switch语句中不能出现continue语句。

C、只能用continue语句来中止本次循环。

D、在循环中break语句不能独立出现。

17、在do-while循环中,循环由do开始,

用while结束;必须注意的是:在while表达

式后面的不能丢,它表示do-while语句的

结束。

52/111

A、0

B、1

C、;

D、,

18、for语句中的表达式可以部分或全部省

略,但两个不可省略。但当三个表达式均

省略后,因缺少条件判断,循环会无限制地

执行下去,形成死循环。

A、0

B、1

C、;

D、,

19、以下for语句,循环体执行的次数是。

for(a=0,b=0;(b!=l)(a=4);a++);

A、无限循环

B、循环次数不定

C、执行4次

D、执行5次

20、在C语言的循环语句for,while,do-while

53/111

中,用于直接中断最内层循环的语句是。

A、swich

B、continue

C、break

D、if

21、循环语句中的for语句,其一般形式如下:

for(表达式1;表达式2;表达式3)语句其中

表示循环条件的是。

A、表达式1

B、表达式2

C、表达式3

D、语句

22、以下能正确计算1X2X3X...X10的程序段

是。

A、do{i=l;s=l;s=s*i;i++;}while(i=10);

B、do{i=l;s=O;s=s*i;i++;}while(i=10);

C、i=l;s=l;do{s=s*i;i++;}while(i=10);

D、i=l;s=0;do{s=s*i;i++;}while(i=10);

23>break语句不能出现在语句中。

54/111

A、switch

B、for

C、while

D、if

24、下列循环语句中有语法错误的是。

A、while(x=y)5;

B、while(O);

C、do2while(x==b);

D、dox++;while(x==10);

25、假定所有变量均已正确说明,以下程序

段运行后的输出结果是。intx=0;do{x=

-l*x;}while(!x);

A、是死循环

B、循环执行一次

C、循环执行二次

D、有语法错误

26、下述程序段中,与其他程序段的作用

不同。

A、k=l;while(1){s+=k;k=k+l;if(klOO)

55/111

/z,,

break;}printf(\n%d/s);

B、k=l;Repeat:s+=k;if(++k=100)goto

Repeatprintf(zz\n%d,,,s);

C、intk,s=O;for(k=l;k=100;s+=++k);

printf(Qn%d",s);

D、k=l;dos+=k;while(++k=100);

//w

printf(\n%d/s);

27、以下程序段的循环次数是。for(i=2;

i==0;)printf("%d”,i--);

A、无限次

B、0

C、1

D、2

28、以下不是死循环的程序段是。

A、inti=100;while(1){i=i%100+l;if(ilOO)

break;}

B、for(;;);

C>intk=0;do{++k;}while(k=0);

D、ints=36;while(s);-s;

56/111

29、下述语句执行后,变量k的值是。int

k=l;while(k++10);

A、10

B、11

C、9

D、无限循环,值不定

30、以下程序段中的变量已正确定义

for(i=0;i4;i++J++)for(k=l;k3;k++);printfC'*")

程序段的输出结果是。

A、期末考试

♦*

B、****

C、**

D、*

第5章作业题

1、L编程实现以下功能:输出100以内能被

3整除且个位数为6的所有整数。

2、2,编程实现以下功能:计算1至10之间

57/111

的奇数之和和偶数之和。

3、3.编程实现以下功能:统计从键盘输入的

字符中数字字符的个数,当输入换行符时结

束循环。

4、4.编程求解天数:有1020个西瓜,第一

天卖一半多两个,以后每天卖剩下的一半多

两个。

5、5.编程输出如下图等腰三角形。*****

第6章函数与编译预处理

第6章测试题

1、以下叙述正确的是。

A、C语言中除了main函数,其他函数不可

作为单独文件形式存在

B、C语言程序是由过程和函数组成的

58/111

C、C语言函数不可以单独编译

D、C语言函数可以嵌套调用

2、以下关于C语言程序中函数的说法正确

的是。

A、函数的定义和点用都可以嵌彳

B、函数的定义不可以嵌套,但函数的调用

可以嵌套;

C、函数的定义可以嵌套,但函数的调用不

可以嵌套;

D、函数的定义不可以嵌套,但函数的调用

可以嵌套;

3、若已定义的函数有返回值,则以关于该

函数调用的叙述中错误的是

A、调用可以作为独立的语句存在

B、调用可以作为一个函数的实参

C、调用可以作为一个函数的形参

D、调用可以出现在表达式中

4、以下关于return语句的叙述中正确的是

A、一个自定义函数中必须有一条return语

59/111

B、没有return语句的自定义函数在执行结

束时不能返同到调用处

C、一个自定义函数中可以根据不同情况设

置多条return语句

D、定义成void类型的函数中可以有带返回

值的return语句

5、C语言规定:函数返回值类型是由

A、调用该函数时系统临时决定

B、调用该函数时的主调函数类型决定

C、return语句中的表达式类型决定

D、定义该函数时所指定的函数类型决定

6、函数调用可以(),以下错误的描述是

A、作为一个函数的实参

B、出现在一个表达式中

C、作为一个函数的形参

D、出现在执行语句中

7、以下说法不正确的是

A、实参可以是任意类型

60/111

B、形参应与其对应的实参类型一致

C、实参可以是常量、变量或表达式

D、形参可以是常量、变量或表达式

8、C语言规定,简单变量作实参,它与对应

形参之间的数据传递方式是

A、地址传递

B、单向值传递

C、由用户指定传递方式

D、双向值传递

9、当调用函数时,实参是一个数组名,则

向函数传送的是

A、数组的首地址

B、数组的长度

C、数组每个元素中的值

D、数组每一个元素的地址

10、如果在一个函数中的复合语句中定义了

一个变量,则该变量

A、为非法变量

B、只在该复合语句中有效

61/111

C、在本程序范围内有效

D、只在该复合语句中有效

11、以下不正确的说法为

A、形式参数是局部变量

B、在函数内的复合语句中定义的变量在本

函数范围内有效

C、在不同函数中可以使用相同名字的变量

D、在函数内定义的变量只在本函数范围内

有效

12、以下正确的说法是()

A、用户可以重新定义标准函数,若如此,

该函数将失去原有含义

B、用户若需调用标准库函数,调用前不必

使用预编译命令将该函数所在文件包括到

用户源文件中,系统自动去调

C、系统不允许用户重新定义标准库函数,

但可以使用标准库函数名定义用户自定义

函数

D、系统根本不允许用户重新定义标准库函

62/111

13、在C语言中,以下正确的说法是()

A、只有当实参和与其对应的形参同名时才

共占用存储单元

B、实参和与其对应的形参共占用一个存储

单元

C、实参和与其对应的形参各占用独立的存

储单元

D、形参是虚拟的,不占用存储单元

14、C语言允许函数值类型缺省定义,此时

该函数值隐含的类型是()

A、long型

B、double型

C、int型

D、float型

15、在C语言中,函数的隐含存储类别是

()

A、无存储类别

B、static

C、auto

63/111

D、局部存储

16、以下只有在使用时才为该类型变量分配

内存的存储类说明是()

A、register和static

B、auto和register

C、auto和static

D、extern和register

17、以下函数定义正确的是()

A、doublefun(intx,y)

B、doublefun(intx;y)

C>doublefun(intx,inty)

D、doublefunfintx;inty)

18、以下正确的函数形式是()

A、doublefun(intxjnty){doublez;z=x+y;

returnz;}

B、fun(x,y){intx,y;doublez;z=x+y;returnz;}

C、fun(intx,y){intz;returnz;}

D、doublefunfintxjnty){z=x+y;returnz;}

64/111

19^有如下函数调用语句

func(recl,rec2+rec3,(rec4,rec5));该函数调用

语句中,含有的实参个数是o

A、5

B、有语法错

C、4

D、3

20、在调用函数时,如果实参是简单变量,

它与对应形参之间的数据传递方式是()

A、由实参传给形参,再由形参传回实参

B、单向值传递

C、地址传递

D、传递方式由用户指定

21、以下叙述中正确的是()

A、函数的形参都属于全局变量

B、未在定义语句中赋初值的auto变量和

static变量的初值都是随机值

C、全局变量的作用域一定比局部变量的作

用域范围大

D、静态(static)类别变量的生存期贯穿于整

65/111

个程序的运行期间

22、有如下程序intruncfinta,intb)

{return(a+b);}main(){intx=2,y=5,z=8/r;

r=func(func(x,y),z);printf("%\d\n”,r);}该程序

的输出的结果是()

A、14

B、12

C、13

D、15

23、有如下程序longfib(intn){if(n2)

return(fib(n-l)+fib(n-2));elsereturn(2);}main()

{printf("%d\ntfib⑶);}该程序的输出结果

是()

A、8

B、6

C、4

D、2

24、有以下程序voidf(intx,inty){intt;

if(xy){t=x;x=y;y=t;}}main(){inta=4/b=3/c=5;

66/111

f(a,b);f(a,c);f(b,c);

printf("%d,%d,%d\n,a,b,c);}执行后输出的

结果是()

A、3,4,5

B、4,3,5

C、5,4,3

D、5,3,4

25、程序段:intx=12;doubley=3.141593;

printf("%d%8.6f"x,y);的输出结果是()

A、123.1415931

B、123,1415930

C、12,3.141593

D、123.141593

第7章数组

第7章测试题

1、以下对一维整型数组a的正确说明是。

A、#defineSIZE10……inta;

67/111

B、inta(10);

C、intn;scanf("%d〃,n);inta;

D、intn=10,a;

2、以下能对一维数组a进行正确初始化的

语句是。

Ainta=(0/0,0,0,0);

B、inta=;

C、inta={};

D、inta={10*l};

3、不是给数组的第一个元素赋值的语句

是。

A、a=l;

B、inta={l};

C、inta;scanf("%”户);

D、inta={l};

4、下面程序的运行结果是。main(){intaj;

for(i=l;i6;i++){a=6*(i-2+4*(i3))%5;

printf("%2d",a);}}

A、-10112

68/111

B、-10403

C、-10143

D、-10142

5、下列定义正确的是。

A、int4e

B、intb={2,5}

C、inta(10)

D、staticinta={l,234,5}

6、设有charstr,下列语句正确的是。

A、printf(”%s”,str);

B、printf("%c,str);

C、scanf(”%s”,str);

D、printf("%s,str);

7、下列说法正确的是。

A、在C语言中,数组元素的数据类型可以

不一致

B、在C语言中,可以使用动态内存分配技

术定义元素个数可变的数组

C、在C语言中,数组元素的个数可以不确

69/111

定,允许随机变动

D、在C语言中,定义了一个数组后,就确

定了它所容纳的具有相同数据类型元素的

个数

8、假设array是一个有10个元素的整型数

组,则下列写法中正确的是

A、array=10

B、array=O

C、array=O

D、array=O

9、有一数组如下定义:inta={l,2,3,4,5};执

行for(i=0;i6;i++)printf("%d",a);后输出的结

果是(

A、123455

B、123456

C、12345随机(

D、123450

10有一数组int

温馨提示

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

评论

0/150

提交评论