c语言考试题及答案
一、单项选择题(每题2分,共10题)
1.以下关于C语言标识符的描述,正确的是()
A.标识符只能由字母、数字和下划线组成
B.标识符可以以数字开头
C.关键字不能作为标识符
D.标识符中不能有下划线
答案:C
解析:标识符由字母、数字和下划线组成,且不能以数字开头,关键字不能作为标识符,标识符中可以有下划线,所以A、B、D错误,C正确。
2.若有定义:inta=5;则执行语句a+=a-=aa;后,a的值是()
A.-40
B.0
C.40
D.5
答案:A
解析:先算aa=25,然后a-=25,a变为-20,最后a+=-20,即a=-20+(-20)=-40。
3.以下能正确定义一维数组的选项是()
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara=ABCDE;
D.inta[5]=0123;
答案:B
解析:A选项数组初始化时元素个数不能超过定义的大小;C选项不能用一个字符给字符数组赋值一个字符串;D选项赋值方式错误,所以正确的是B。
4.以下程序段的输出结果是()
```c
intx=10,y=3;
printf(%d\n,x/y);
```
A.3.333333
B.3
C.3.0
D.不确定
答案:B
解析:两个整数相除结果取整,10/3=3,所以输出3。
5.以下关于函数的说法,错误的是()
A.函数可以没有参数
B.函数可以没有返回值
C.函数必须有返回值
D.函数可以嵌套调用
答案:C
解析:函数可以没有参数,如voidfunc();也可以没有返回值,用void修饰返回类型,函数可以嵌套调用,所以A、B、D正确,C错误。
6.若有定义:chars[]=hello;则sizeof(s)的值是()
A.5
B.6
C.7
D.不确定
答案:B
解析:字符数组s中除了存放hello这5个字符外,还会自动在末尾添加\0,所以sizeof(s)的值是6。
7.以下运算符中,优先级最高的是()
A.
B.||
C.==
D.+
答案:D
解析:算术运算符+的优先级高于关系运算符==和逻辑运算符、||。
8.若有定义:intp;则p是()
A.整型变量
B.指向整型变量的指针变量
C.指向指针的指针变量
D.不确定
答案:B
解析:intp定义了一个指向整型变量的指针变量。
9.以下循环语句中,循环体执行次数为0的是()
A.for(inti=0;i10;i++)
B.while(1)
C.do{}while(0);
D.for(inti=10;i0;i--)
答案:C
解析:do-while循环先执行一次循环体,这里条件为0,所以循环体执行0次。
10.以下关于结构体的说法,正确的是()
A.结构体成员的数据类型必须相同
B.结构体变量不能作为函数参数
C.结构体可以嵌套定义
D.结构体不能包含指针成员
答案:C
解析:结构体成员数据类型可以不同,结构体变量能作为函数参数,结构体可以嵌套定义,结构体也可以包含指针成员,所以A、B、D错误,C正确。
二、多项选择题(每题2分,共10题)
1.以下属于C语言基本数据类型的有()
A.int
B.float
C.char
D.double
答案:ABCD
解析:C语言基本数据类型包括整型(int)、浮点型(float、double)、字符型(char)。
2.以下哪些是合法的C语言常量()
A.123
B.a
C.abc
D.0x12
答案:ABD
解析:a是字符常量,123是整型常量,0x12是十六进制整型常量,abc是字符串常量,双引号括起来的是字符串,单引号括起来的单个字符才是字符常量,所以C不合法,A、B、D合法。
3.以下关于if语句的说法,正确的有()
A.if语句可以没有else子句
B.if语句中的条件表达式必须用括号括起来
C.if语句可以嵌套使用
D.if语句只能判断一个条件
答案:AC
解析:if语句可以没有else子句;条件表达式不一定非要用括号括起来;if语句可以嵌套;if语句可以通过逻辑运算符连接多个条件来判断,所以B、D错误,A、C正确。
4.以下能用