c语言c语言考试题库及答案
一、单项选择题(每题2分,共20分)
1.以下哪个是C语言的合法标识符?
A.123abc
B._abc
C.@abc
D.abc@
答案:B
2.C语言中,int类型数据在内存中占多少字节?
A.1字节
B.2字节
C.4字节
D.8字节
答案:C
3.若有定义“inta=5,b=3;”,则表达式“a/b”的值是?
A.1.666667
B.1
C.2
D.1.67
答案:B
4.以下关于C语言函数的说法,正确的是?
A.函数必须有返回值
B.函数可以嵌套定义
C.函数可以嵌套调用
D.函数不能调用自身
答案:C
5.以下哪个头文件用于输入输出操作?
A.stdlib.h
B.string.h
C.stdio.h
D.math.h
答案:C
6.若有定义“charstr[]=hello;”,则数组str的长度是?
A.5
B.6
C.7
D.8
答案:B
7.以下哪种循环结构会先执行循环体,再判断条件?
A.for循环
B.while循环
C.do-while循环
D.以上都不是
答案:C
8.若有定义“intp,a=10;”,要使p指向a,正确的赋值语句是?
A.p=a;
B.p=a;
C.p=a;
D.p=a;
答案:B
9.以下关于结构体的说法,错误的是?
A.结构体可以包含不同类型的数据成员
B.结构体变量可以整体赋值
C.结构体成员不能是结构体类型
D.可以定义结构体数组
答案:C
10.以下哪个运算符用于取地址?
A.
B.
C.-
D..
答案:B
二、多项选择题(每题2分,共20分)
1.以下属于C语言基本数据类型的有()
A.int
B.float
C.double
D.char
答案:ABCD
2.以下哪些是合法的C语言常量()
A.123
B.a
C.3.14
D.hello
答案:ABCD
3.以下哪些语句可以用于终止循环()
A.break
B.continue
C.return
D.exit
答案:AB
4.以下关于数组的说法正确的有()
A.数组名代表数组的首地址
B.数组下标从0开始
C.可以通过数组名整体输出数组元素
D.数组元素类型必须相同
答案:ABD
5.以下哪些函数属于标准输入输出函数()
A.printf
B.scanf
C.getchar
D.putchar
答案:ABCD
6.以下关于指针的说法正确的有()
A.指针变量存储的是内存地址
B.可以对指针进行算术运算
C.指针可以指向数组
D.指针可以指向函数
答案:ABCD
7.以下哪些属于C语言的预处理指令()
A.include
B.define
C.ifdef
D.else
答案:ABCD
8.以下关于函数参数传递的说法正确的有()
A.可以通过值传递方式传递参数
B.可以通过地址传递方式传递参数
C.值传递时函数内部对参数的修改不会影响实参
D.地址传递时函数内部对参数的修改会影响实参
答案:ABCD
9.以下哪些是合法的C语言语句()
A.inta;a=10;
B.printf(Hello);
C.if(a10){a=20;}
D.while(1){}
答案:ABCD
10.以下关于结构体和共用体的说法正确的有()
A.结构体各成员占用独立内存空间
B.共用体所有成员共享同一内存空间
C.结构体变量和共用体变量都可以作为函数参数
D.结构体和共用体都可以嵌套定义
答案:ABCD
三、判断题(每题2分,共20分)
1.C语言中,变量必须先定义后使用。()
答案:对
2.表达式“321”的值为1。()
答案:错
3.for循环的三个表达式都可以省略。()
答案:对
4.数组一旦定义,其大小不能改变。()
答案:对
5.指针变量可以不初始化。()
答案:错
6.函数的返回值类型必须与函数定义时的返回值类型一致。()
答案:对
7.预处理指令在编译之前执行。()
答案:对
8.可以通过结构体变量名直接访问结