c高级试题及答案
单项选择题(每题2分,共10题)
1.以下关于C语言中指针的说法,正确的是()
A.指针变量只能指向基本数据类型变量
B.指针变量中存储的是所指向变量的地址
C.指针变量不能进行算术运算
D.指针变量的类型与它所指向变量的类型无关
答案:B
2.若有定义`inta[3][4];`,则对数组元素引用正确的是()
A.`a[2][4]`
B.`a[1,3]`
C.`a[1][0]`
D.`a(2)(1)`
答案:C
3.函数调用时,以下说法正确的是()
A.实参和形参各占一个独立的存储单元
B.实参和形参可以共用存储单元
C.实参可以是常量、变量或表达式,但形参只能是变量
D.形参可以是常量、变量或表达式,但实参只能是变量
答案:A
4.以下关于结构体的说法错误的是()
A.结构体是一种用户自定义的数据类型
B.结构体成员可以是不同数据类型
C.结构体变量不能整体赋值
D.可以定义结构体数组
答案:C
5.若有定义`typedefintPINT;PINTp;`,则以下叙述正确的是()
A.`p`是一个指向整型变量的指针变量
B.`p`是一个整型变量
C.`typedef`声明错误
D.`p`是一个指针函数
答案:A
6.以下关于文件操作的说法,正确的是()
A.`fopen`函数打开文件失败时返回0
B.`fclose`函数关闭文件时不需要传入文件指针
C.可以使用`fscanf`从文件中读取数据
D.文件操作结束后不需要关闭文件
答案:C
7.对于`constintp;`,以下说法正确的是()
A.`p`所指向的值不能被修改
B.`p`不能指向其他地址
C.`p`是一个常量指针
D.`p`可以随意赋值
答案:A
8.以下哪个不是C语言的预处理指令()
A.`include`
B.`define`
C.`if`
D.`ifdef`
答案:C
9.若有定义`inta[5]={1,2,3,4,5};intp=a;`,则`(p+3)`的值为()
A.3
B.4
C.5
D.6
答案:B
10.以下关于递归函数的说法,错误的是()
A.递归函数必须有终止条件
B.递归函数调用自身
C.递归函数效率一定比非递归函数高
D.递归函数可以解决一些复杂的问题
答案:C
多项选择题(每题2分,共10题)
1.以下属于C语言数据类型的有()
A.整型
B.浮点型
C.字符型
D.结构体
答案:ABCD
2.以下关于数组的描述正确的是()
A.数组元素可以是不同数据类型
B.数组名代表数组的首地址
C.数组的大小在定义时必须确定
D.可以对数组进行整体初始化
答案:BCD
3.以下函数中,用于字符串操作的有()
A.`strcpy`
B.`strcmp`
C.`strlen`
D.`strcat`
答案:ABCD
4.以下关于指针运算的描述,正确的是()
A.指针可以进行加法运算
B.指针可以进行减法运算
C.指针可以进行乘法运算
D.指针可以进行关系运算
答案:ABD
5.以下关于结构体的操作,正确的是()
A.可以定义结构体变量
B.可以对结构体变量进行初始化
C.可以访问结构体变量的成员
D.可以将结构体变量作为函数参数传递
答案:ABCD
6.以下属于C语言预处理指令的有()
A.`include`
B.`define`
C.`ifndef`
D.`endif`
答案:ABCD
7.以下关于文件操作函数的描述,正确的是()
A.`fopen`用于打开文件
B.`fwrite`用于向文件中写入数据
C.`fread`用于从文件中读取数据
D.`fseek`用于移动文件指针
答案:ABCD
8.以下关于函数的说法,正确的是()
A.函数可以有返回值
B.函数可以没有参数
C.函数可以嵌套定义
D.函数可以递归调用
答案:ABD
9.以下关于内存分配函数的描述,正确的是()
A.`malloc`用于分配内存
B.`calloc`用于分配内存并初始化
C.`realloc`用于重新分配内存
D.`free`用于释放内存
答案:ABCD
10.以下关于位运算的说法,正确的是()
A.位运算可以提高程序的执行效率
B.常见的位运算符有``、`|`、`^`等
C.位运算只能用于整型数据
D.可以使用位运算实现一些特殊功能
答案: