R=FUNC(X+Y ,Z--); printf(\}
上面程序的输出结果是 (2分) A. 11 B. 20 C. 21 D. 31
:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x-,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x-,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。
参考答案: C
33、C语言函数的隐含存储类别是______. (2分) A. extern B. static C. register D. auto
声明变量的时候,如果类型前面不特别指明某些关键字(如static, extern, register)时,默认是auto,也称自动变量。
参考答案: D
34、 以下不正确的说法是() (2分)
A. 在不同的函数中可以使用相同名字的变量 B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量在本函数范围内有效
在一个函数中的复合语中定义的变量,只能在这个复合语句范围内有效
参考答案: D
35、有以下程序
viod fun (int a,int b,int c) { a=456; b=567; c=678;} main()
{ int x=10, y=20,z=30; fun (x,y,z);
printf(\}
11
输出结果是 (2分) A. 30,20,10
B. 10,20,30
C. 456,567,678 D. 678,567,456
参考答案: B
36、以下叙述中正确的是 (2分)
A. A)C程序中的注释只能出现在程序的开始位臵和语句的后面 B. C程序书写格式严格,要求一行内只能写一个语句 C. C程序书写格式自由,一个语句可以写在多行上 D. 用C语言编写的程序只能放在一个程序文件中
参考答案: C
37、下列可用于C语言用户标识符的一组是 (2分) A. void, define, WORD B. a3_3,_123,Car
C. For, -abc, IF Case D. 2a, DO, sizeof
参考答案: B
38、以下叙述中错误的是 (2分) A. 用户所定义的标识符允许使用关键字
B. 用户所定义的标识符应尽量做到\见名识意\ C. 用户所定义的标识符中,大、小写字母代表不同标识 D. 用户所定义的标识符必须以字母或下划线开头
参考答案: A 40、有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b;
执行该程序段后,a的值为
(2分) A. 12
B. 11
12
C. 10 D. 编译出错
参考答案: B
a的值为11
*p相当于变量a, *p的值为10
2
单选题:(每题2分,共80分)
1、( )是构成c语言程序的基本单位 (2分) A. 函数 B. 变量 C. 子程序 D. 语句
参考答案: A
3、以下选项中属于C语言的数据类型是
(2分) A. 复数型 B. 逻辑型
C. 双精度型double
D. 集合型
C语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。
参考答案: C
4、若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是
(2分)
A. a的值是字符C
13
B. a的值是浮点型
C. 不允许字符型和浮点型相加 D. a的值是字符‘A’的ASCII值加上1
参考答案: D
5、以下所列的C语言常量中,错误的是
(2分) A. 0xFF
B. 1.2e0.5e后面必须是整数 C. 2L D. '\\72'
参考答案: B
6、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是____ (2分) A. 1 B. 2 C. 2.0 D. 2.5
因为,double是双精度的浮点型,
但3/2=1,除非是3.0/2或者(double)3/2都=1.5, 所以结果为2.0
参考答案: c
7、表达式((a=3*5,a*5),a+5)的值是多少( ) (2分) A. 20 B. 80 C. 不能确定 D. 15
参考答案: A
9、若有说明语句:int a,b,c ;
则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
(2分)
A. scanf(\ B. scanf(\
14
C. scanf(\ D. scanf(\
对于int c,*d=&c;,c是一整型数据,d是一指针,它指向变量c(即d=&c,*是指针类型的说明符),所以,输入c的值可以用scanf(\也可以用scanf(\
参考答案: A 10、以下说法中正确的是 (2分)
A. #define和printf都是C语句 B. #define是C语句,而printf不是 C. printf是C语句,但#define不是
D. #define和printf都不是C语句
参考答案: D
11、设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为______________. (2分) A. 1
B. 2
C. 3 D. 0
参考答案: B
13、能正确表示a和b同时为正或同时为负的逻辑表达式是 (2分)
A. (a>=0‖b>=0)&&(a<0‖b<0) B. (a>=0&&b>=0)&&(a<0&&b<0) C. (a+b>0)&&(a+b<=0)
D. a*b>0
参考答案: D
15、为避免嵌套的条件分支语句if?else的二义性,C语言规定,C程序中的
else总是与____组成配对关系。 (2分)
A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if
15