C语言复习题 下载本文

第1章

1.1 单选题

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

A.有零个或多个输入 B. 有零个或多个输出 C.有穷性 D. 可行性 2. 以下叙述中正确的是( )。

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

B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C. C语言源程序经编译形成的二进制代码可以直接运行 D. C语言中的函数不可以单独进行编译 3. 用C语言编写的代码程序( )。

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

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

4. 结构化程序由三种基本结构组成,三种基本结构组成的算法( )。 A. 可以完成任何复杂的任务 B. 只能完成部分复杂的任务 C. 只能完成符合结构化的任务 D. 只能完成一些简单的任务 5. 以下叙述中正确的是( )。

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

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

1.2 填空题

1.C语言程序的基本单位是__________。

2.一个C语言程序总是从__________开始执行,并终止于__________。

3.一个C语言程序是由一个或若干个函数构成的,程序中至少应包含一个__________函数。

4.一个C语言函数一般由两部分组成,它们分别是__________和__________。 5.函数体以__________开始,以__________结束。

6.结构化程序的3种基本结构是__________、__________和__________。

7.C语言源程序文件名的后缀是__________,经过编译后,生成的目标文件名的后缀是__________,经过连接后,生成的可执行文件名的后缀是__________。

第2章

2.1 单选题

1.下列叙述中正确的是( )。

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

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

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

2.下列关于C语言用户标识符的叙述中正确的是( )。 A.用户标识符中可以出现下划线和中划线(减号) B.用户标识符中不可以出现中划线,但可以出现下划线

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

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 3.下列4个选项中,( )是合法的用户自定义标识符。 A.b?b B.float C.2a D._isw 4.以下选项中不正确的整型常量是( )。 A.12L B.?10 C.1 900 D.123U 5.以下选项中,( )是不正确的字符常量。 A.\ B.'1' C.'\\n' D.'\\101 6.下列关于自增运算符++和自减运算符??的叙述中正确的是( ) A.它们的运算对象可以是任何类形的变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是char型变量、int型变量和float型变量 7.下列表达式中值为0的是( )。 A.3%5 B.3/5.0 C.3/5 D.3.0/5 8.设变量已正确定义并赋值,表达式( )不符合C语言语法。 A.int(3.14) B.++a C.a=b=5 D.a=4,3 9.若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。 A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b 10.若变量已正确定义并赋值,表达式( )不符合C语言语法。 A.a*b/c; B.3%2 C.2, b D.a/b/c 11.下列选项中,( )可以将x、y定义成float类型变量,并赋同一初值3.14。 A.double x, y=3.14; B.double x, y=2*3.14; C.double x=3.14, y=3.14; D.double x=y=3.14; 12.若变量已正确定义,表达式“j=3, j++”的值是( )。 A.3 B.4 C.5 D.0

13. 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式

1 的表达式是( )。 abcA. 1/a*b*c B.1/(a*b*c) C.1/a/b/(float)c D.1.0/a/b/c 14. 以下能正确定义且赋初值的语句是( ) int n1=n2=10; B. char c=32; C. float f=f+1.1; D. double x=12.3E2.5; 15. 以下不能定义为用户标识符的是( ) A. scanf B. Void C. _3com_ D. int 16. 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32+z)后,x的值为 ( ) A.4 B.16 C.48 D.32 17. 设有 int x=11,则表达式(x++ * 1/3)的值是( )。 A. 3 B.4 C. 11 D.12

xy?z的C

18. 以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子

语言表达式是()。 A. x/y*z B. x*(1/(y*z)) C. x/y*1/z 19. 有以下程序 main()

 { char a1='M', a2='m';

 printf(\以下叙述中正确的是( )  A.程序输出大写字母M B.程序输出小写字母m  C.格式说明符不足,编译出错 D.程序运行时产生出错信息 20. 以下程序运行后的输出结果是( ).  main()

 { char p[]={'a', 'b', 'c'}, q[]=\

 printf(\ }; A.4 4 B.3 3 C.3 4 D.4 3

21. 以下叙述中错误的是( )

A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识 22.在C语言中,下列属于构造类型的是()

A.整型 B 字符型 C实型 D.数组类型 23.下列字符串属于标识符的是()

A. INT B. 5_student C. 2ong D. !DF 24.C语言中能用来表示整常数的进制是()

A.十进制、八进制、十六进制 B.十二进制、十进制 C.六进制、八进制 D.二进制、十进制 25.在C语言中,回车换行符是()

A. \\n B. \\t C. \\v D. \\b

26. 在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII码() 。 A)大32 B)大64 C)小32 D)小64 27. 设d为字符变量,下列表达式不正确的是() 。 A)d=97 B)d=?a? C)d=”a” D)d=?g? 28.设d为字符变量,下列表达式正确的是 () 。 A)d=678 B)d=?a? C)d=”d” D)d=?gjkl?

29. 已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为 。 main() {char x,y; x=?0?;y=?9?;

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

D. x/y/z

}

A)因输出格式不合法,输出错误信息 B)48,57 C)0,9 D)48,58

30.已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为 。 main()

{char c=?A?;int i=10; c=c+10; i=c%i;

printf(“%c,%d\\n”,c,i); }

A)75,7 B)75,5 C)K,5 D)因存在非图形字符,无法直接显示出来

31.已知在ASCII集中,字母A的序号为65,下面程序的输出结果为 。 main()

{char c1=?B?,c2=?Y?;

printf(“%d,%d\\n”,++c1,--c2); }

A)输出格式不合法,输出错误信息 B)67,88 C)66,89 D)C,X

32. C语言中,运算对象必须是整型数的运算符是() 。 A)% B)\\ C)% 和 \\ D)** 33..下列常数中,合法的C 常量是() 。 A)-0. B)?105? C)?AB? D)”35” 34.下列常数中,合法的C 常量是() 。 A)”x-y” B)?105? C)?Be? D)7ff 35.下列常数中,合法的C 常量是() 。 A)?\\n? B)e-310 C)?DEF? D)?1234? 36.下列常数中,不合法的C 常量是() 。 A)-0x2a B)lg3 C)?[? D]”CHINA” 37.下列常数中,不合法的C 常量是() 。 A)-0x3b B)123e+2.3 C)?}? D)6e+7 38.下列符号中,可以作为变量名的是 () 。 A)+a B)12345e C)a3B D)5e+0 39.下列符号中,可以作为变量名的是() 。 A)+c B)*X C)_DAY D)next day

40. 若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为 () A)1 B)2 C)2.0 D)2.5 41.下列程序的执行结果是() 。 #include #define sum 10+20 main() {

int b=0,c=0; b=5;