c高级面试题及答案
单项选择题(每题2分,共10题)
1.以下关于C语言中指针的说法,正确的是()
A.指针变量只能指向同类型的变量
B.指针变量可以指向任何类型的变量
C.指针变量不能指向数组
D.指针变量不能指向函数
答案:A
2.若有定义:`inta[5]={1,2,3,4,5};`,则`a[5]`的值是()
A.5
B.不确定
C.0
D.编译错误
答案:B
3.以下哪种函数声明是正确的()
A.`voidfunc(inta;intb)`
B.`voidfunc(inta,intb)`
C.`voidfunc(intab)`
D.`voidfunca,intb`
答案:B
4.关于`static`关键字,说法错误的是()
A.可以修饰局部变量,延长其生命周期
B.可以修饰全局变量,使其作用域仅限于本文件
C.可以修饰函数,使其作用域仅限于本文件
D.不能修饰结构体成员
答案:D
5.若有定义:`chars=hello;`,则`s`的类型是()
A.`char`
B.`char`
C.`constchar`
D.`constchar`
答案:B
6.以下运算符中,优先级最高的是()
A.``
B.`||`
C.`!`
D.`==`
答案:C
7.若有定义:`typedefintmyInt;`,则下面说法正确的是()
A.`myInt`是一个新的数据类型
B.`myInt`是`int`的别名
C.不能用`myInt`定义变量
D.`myInt`和`int`没有关系
答案:B
8.函数`strcpy`的作用是()
A.计算字符串长度
B.比较两个字符串
C.复制字符串
D.连接两个字符串
答案:C
9.以下关于结构体的说法,错误的是()
A.结构体可以嵌套
B.结构体变量可以作为函数参数
C.结构体成员不能是指针类型
D.可以定义结构体数组
答案:C
10.若有定义:`inta=5,b=3;`,则表达式`a/b`的值是()
A.1.666667
B.1
C.2
D.1.67
答案:B
多项选择题(每题2分,共10题)
1.以下哪些是C语言中的存储类说明符()
A.`auto`
B.`register`
C.`static`
D.`extern`
答案:ABCD
2.以下关于数组的说法正确的是()
A.数组名代表数组的首地址
B.数组可以作为函数参数
C.可以对数组进行整体赋值
D.数组元素的下标从0开始
答案:ABD
3.以下哪些函数用于字符串操作()
A.`strlen`
B.`strcmp`
C.`strcat`
D.`memcpy`
答案:ABC
4.关于C语言中的指针运算,正确的有()
A.指针可以进行加法运算
B.指针可以进行减法运算
C.指针可以进行乘法运算
D.指针可以进行关系运算
答案:ABD
5.以下哪些是C语言中的预处理指令()
A.`include`
B.`define`
C.`ifdef`
D.`endif`
答案:ABCD
6.以下关于函数的说法正确的是()
A.函数可以嵌套定义
B.函数可以嵌套调用
C.函数可以有返回值
D.函数可以没有参数
答案:BCD
7.以下哪些类型可以作为函数的返回值类型()
A.`int`
B.`char`
C.`float`
D.指针类型
答案:ABCD
8.关于结构体和共用体,说法正确的是()
A.结构体中各成员占用不同的内存空间
B.共用体中各成员占用相同的内存空间
C.结构体变量和共用体变量都可以进行初始化
D.结构体和共用体都可以嵌套
答案:ABCD
9.以下哪些运算符可以用于指针操作()
A.``
B.``
C.`-`
D.`.`
答案:ABC
10.以下关于C语言中的文件操作,正确的是()
A.`fopen`用于打开文件
B.`fclose`用于关闭文件
C.`fread`用于读取文件内容
D.`fwrite`用于写入文件内容
答案:ABCD
判断题(每题2分,共10题)
1.C语言中,数组名在作为函数参数传递时,会退化为指针。()
答案:对
2.`const`关键字修饰的变量不能被修改。()
答案:对
3.函数内部定义的静态局部变量,在函数调用结束后就会被销毁。()
答案:错
4.C语言中,字符串是以`\0`作为结束标志的