c高级面试题及答案
单项选择题(每题2分,共10题)
1.以下关于C语言中指针的说法,正确的是()
A.指针变量只能指向基本数据类型变量
B.指针变量的类型由它所指向变量的类型决定
C.指针变量不能进行算术运算
D.指针变量的大小是不固定的
答案:B
2.若有定义`inta[5]={1,2,3,4,5};intp=a;`,则`(p+3)`的值是()
A.3
B.4
C.5
D.6
答案:B
3.以下关于函数指针的说法,错误的是()
A.函数指针指向的是函数的入口地址
B.可以通过函数指针调用函数
C.函数指针的类型必须与它所指向函数的类型一致
D.函数指针不能作为函数参数
答案:D
4.在C语言中,以下哪种存储类别的变量在程序运行期间一直存在()
A.auto
B.register
C.static
D.extern
答案:C
5.若有定义`typedefstruct{intx;floaty;}MY_TYPE;`,则以下声明变量正确的是()
A.structMY_TYPEa;
B.MY_TYPEa;
C.typedefMY_TYPEa;
D.struct{intx;floaty;}a;
答案:B
6.以下关于结构体的说法,正确的是()
A.结构体成员不能是结构体类型
B.结构体变量可以整体赋值
C.结构体不能作为函数参数
D.结构体的大小一定是其成员大小之和
答案:B
7.当`const`修饰指针时,以下说法正确的是()
A.`constintp`表示指针`p`指向的内容不能被修改
B.`intconstp`表示指针`p`不能指向其他地址
C.`constintconstp`表示指针`p`及其指向的内容都不能被修改
D.以上说法都正确
答案:D
8.以下关于文件操作的函数,用于打开文件的是()
A.`fclose`
B.`fread`
C.`fopen`
D.`fwrite`
答案:C
9.在C语言中,`define`宏定义的作用是()
A.定义常量
B.定义函数
C.条件编译
D.包含头文件
答案:A
10.以下关于位运算的说法,错误的是()
A.``是按位与运算符
B.`|`是按位或运算符
C.`^`是按位异或运算符
D.`~`是右移运算符
答案:D
多项选择题(每题2分,共10题)
1.以下哪些是C语言中的基本数据类型()
A.int
B.float
C.char
D.double
答案:ABCD
2.以下关于数组的说法,正确的有()
A.数组名是一个指针常量
B.数组元素可以是不同类型的数据
C.可以通过下标访问数组元素
D.数组在内存中是连续存储的
答案:ACD
3.以下哪些函数用于字符串操作()
A.`strcpy`
B.`strcmp`
C.`strlen`
D.`printf`
答案:ABC
4.以下关于函数的说法,正确的有()
A.函数可以有多个返回值
B.函数可以没有参数
C.函数调用时实参和形参的类型要匹配
D.函数可以嵌套定义
答案:BC
5.以下哪些是C语言中的存储类别()
A.auto
B.register
C.static
D.extern
答案:ABCD
6.以下关于结构体的说法,正确的有()
A.结构体可以包含不同类型的成员
B.结构体变量可以作为函数参数
C.结构体可以嵌套定义
D.结构体成员可以通过`.`或`-`运算符访问
答案:ABCD
7.以下关于指针的说法,正确的有()
A.指针可以指向数组
B.指针可以指向函数
C.指针可以进行比较运算
D.指针可以进行赋值运算
答案:ABCD
8.以下哪些是C语言中的预处理指令()
A.`include`
B.`define`
C.`ifdef`
D.`endif`
答案:ABCD
9.以下关于文件操作的说法,正确的有()
A.打开文件时需要指定文件名和打开方式
B.读取文件内容可以使用`fread`函数
C.写入文件内容可以使用`fwrite`函数
D.操作完文件后需要关闭文件
答案:ABCD
10.以下关于C语言内存管理的说法,正确的有()
A.`malloc`函数用于动态分配内存
B.`free`函数用于释放动态分配的内存
C.动态分配的内存如果不释放会导致内存泄漏
D.