c面试题及答案
一、单项选择题(每题2分,共10题)
1.C语言中,定义整型变量的关键字是()
A.floatB.charC.intD.double
2.以下运算符优先级最高的是()
A.+B.C.=D.
3.若有定义“inta[5];”,则数组a的下标范围是()
A.0-4B.1-5C.0-5D.1-4
4.以下函数声明正确的是()
A.intfun(){}B.voidfun(inta;intb)
C.floatfun(inta,b)D.charfun(inta,intb)
5.以下哪种数据类型不能作为switch语句的表达式()
A.intB.charC.floatD.short
6.若“inta=5;”,执行“a+=3;”后,a的值是()
A.5B.3C.8D.2
7.以下正确的指针定义是()
A.intp;B.intp;C.intp;D.intp;
8.函数strlen(abc\n)的返回值是()
A.3B.4C.5D.6
9.以下循环语句执行次数是()
```c
inti=0;
while(i5){
i++;
}
```
A.4B.5C.6D.7
10.若“inta=3,b=5;”,则表达式“ab?a:b”的值是()
A.3B.5C.0D.1
二、多项选择题(每题2分,共10题)
1.以下属于C语言基本数据类型的有()
A.intB.floatC.structD.double
2.以下哪些是C语言的关键字()
A.ifB.whileC.printfD.return
3.关于数组,下列说法正确的是()
A.数组元素类型必须相同
B.数组名是一个指针常量
C.数组可以不初始化
D.数组大小在定义后不能改变
4.以下能正确输出字符串的函数有()
A.printfB.putsC.scanfD.gets
5.关于函数,下列说法正确的是()
A.函数可以嵌套定义
B.函数可以有返回值
C.函数可以没有参数
D.函数可以递归调用
6.以下运算符中,属于关系运算符的有()
A.B.==C.!=D.
7.以下哪些可以作为C语言的标识符()
A._abcB.123abcC.abc_123D.int
8.以下关于指针的说法正确的是()
A.指针变量存储的是内存地址
B.指针可以进行算术运算
C.指针可以指向数组
D.指针可以指向函数
9.以下属于文件操作函数的有()
A.fopenB.fcloseC.freadD.fwrite
10.以下哪些循环语句可以实现循环功能()
A.forB.whileC.do-whileD.switch
三、判断题(每题2分,共10题)
1.C语言中,变量必须先定义后使用。()
2.表达式“5/2”的结果是2.5。()
3.数组名作为函数参数时,传递的是数组的首地址。()
4.函数内定义的局部变量在函数结束后会自动释放内存。()
5.指针变量可以不初始化。()
6.“if(0)”条件判断为真。()
7.字符串“abc”在内存中占用3个字节。()
8.continue语句用于跳出整个循环。()
9.结构体变量可以整体赋值。()
10.可以使用“include”包含自定义头文件。()
四、简答题(每题5分,共4题)
1.简述C语言中函数的定义格式。
答案:返回值类型函数名(参数列表){函数体语句;},如“intadd(inta,intb){returna+b;}”。
2.说明指针和数组的关系。
答案:数组名本质是指向数组首元素的指针常量。指针可用于访问数组元素,通过指针运算遍历数组。如“inta[5];intp=a;”,p可操作a数组元素。
3.简述C语言中三种循环语句(for、while、do-while)的区别。
答案:for先初始化,再判断条件,后更新变量;while先判断条件再执行循环体;do-while先执行循环体