c面试题及答案.doc
c面试题及答案
一、单项选择题(每题2分,共10题)
1.在C语言中,以下哪种数据类型用于表示单个字符?
A.int
B.float
C.char
D.double
答案:C
2.以下哪个是C语言中的合法标识符?
A.1_variable
B.$var
C._var1
D.var@
答案:C
3.C语言中,函数的返回值类型默认是?
A.int
B.void
C.char
D.无默认类型
答案:A
4.若有定义inta=5;则表达式a++的值为?
A.5
B.6
C.4
D.7
答案:A
5.在C语言中,用于输入的函数是?
A.printf
B.scanf
C.getchar
D.putchar
答案:B
6.以下数组定义正确的是?
A.inta(5);
B.inta[5];
C.inta{5};
D.inta5;
答案:B
7.C语言中,逻辑真用什么表示?
A.true
B.True
C.false
D.非零值
答案:D
8.若有函数声明voidfunc(inta,floatb);调用时正确的是?
A.func(1);
B.func(1,2);
C.func(1,2.0);
D.func(1.0,2.0);
答案:C
9.在C语言中,以下哪种循环至少会执行一次循环体?
A.for循环
B.while循环
C.do-while循环
D.都不一定
答案:C
10.若定义结构体structstudent{intid;charname[20];};则定义结构体变量的正确方式是?
A.students;
B.structstudents;
C.structs;
D.sstudent;
答案:B
二、多项选择题(每题2分,共10题)
1.以下哪些是C语言中的基本数据类型?
A.int
B.float
C.double
D.string
答案:ABC
2.在C语言中,关于指针下列说法正确的是?
A.指针是一种变量
B.指针可以指向任何数据类型
C.指针变量存储的是地址
D.指针必须初始化
答案:ABC
3.以下哪些是C语言中的控制语句?
A.if语句
B.switch语句
C.break语句
D.continue语句
答案:ABCD
4.关于C语言中的函数,以下说法正确的是?
A.可以有多个返回值
B.可以嵌套定义
C.可以递归调用
D.函数名是唯一标识
答案:CD
5.当定义一个二维数组inta[3][4];以下哪些表达式是正确的?
A.a[0][0]
B.a[1,2]
C.a[2][3]
D.a[3][0]
答案:AC
6.在C语言中,以下哪些操作符可以用于位运算?
A.
B.|
C.^
D.~
答案:ABCD
7.若有宏定义defineMAX(a,b)((a)(b)?(a):(b)),以下说法正确的是?
A.这是求两个数最大值的宏
B.使用时可能会有副作用
C.宏展开是在编译前
D.宏名可以是任何合法标识符
答案:ABCD
8.关于C语言中的文件操作,以下正确的是?
A.可以读写文本文件
B.可以读写二进制文件
C.需要包含stdio.h头文件
D.有专门的文件指针类型
答案:ABCD
9.在C语言中,以下哪些是存储类说明符?
A.auto
B.static
C.register
D.extern
答案:ABCD
10.以下哪些属于C语言中的预定义宏?
A.__LINE__
B.__FILE__
C.__DATE__
D.__TIME__
答案:ABCD
三、判断题(每题2分,共10题)
1.在C语言中,变量必须先定义后使用。()
答案:正确
2.一个C程序可以有多个main函数。()
答案:错误
3.数组名在作为函数参数时,传递的是数组的全部元素。()
答案:错误
4.全局变量在整个程序的任何地方都可以直接使用。()
答案:错误
5.在C语言中,单引号和双引号没有区别。()
答案:错误
6.函数内部定义的静态变量在函数调用结束后仍然存在。()
答案:正确
7.对于结构体变量,可以直接用赋值语句整体赋值。()
答案:错误
8.在C语言中,逻辑运算符和||具有短路特性。()
答案:正确
9.所有的C语言程序都需要有includestdio.h语句。()
答案:错误
10.指针变量可以和整数直接相加。()
答案:正确
四、简答题(每题5分,共4题)
1.简述C语言中数组和指针的关系。
答案:数组名可视为常量指针,指向数组首元素。指