中南大学c 期末考试试题及答案.doc
中南大学c期末考试试题及答案
一、单项选择题(每题2分,共10题)
1.在C语言中,以下哪个是合法的变量名?()
A.1a
B.a-1
C._a1
D.int
答案:C
2.若有定义inta=5;则表达式a++的值为()。
A.5
B.6
C.4
D.7
答案:A
3.C语言中,函数的返回值类型是由()决定的。
A.return语句中的表达式类型
B.调用该函数的主调函数类型
C.定义函数时所指定的函数类型
D.形参的数据类型
答案:C
4.以下数组定义中错误的是()。
A.inta[10];
B.inta[]={1,2,3,4,5};
C.intn=10;inta[n];
D.defineN10inta[N];
答案:C
5.在C语言中,若有定义intp;则以下说法正确的是()。
A.p是一个指针变量,它可以指向任何类型的数据
B.p是一个整型变量
C.p是一个指向整型数据的指针变量
D.p是一个函数指针
答案:C
6.以下关于结构体的说法正确的是()。
A.结构体不能嵌套定义
B.结构体成员不能是数组
C.结构体成员可以是不同类型的数据
D.结构体变量不能作为函数参数
答案:C
7.C语言中,文件操作函数fopen()的返回值类型是()。
A.int
B.char
C.FILE
D.void
答案:C
8.若有定义inta=1,b=2,c=3;则表达式(ab)?a:c的值为()。
A.1
B.2
C.3
D.0
答案:A
9.以下关于C语言中函数递归的说法错误的是()。
A.递归函数必须有结束条件
B.递归函数会不断调用自身直到满足结束条件
C.递归函数调用时会占用大量的栈空间
D.任何问题都可以用递归函数解决
答案:D
10.以下关于C语言中宏定义的说法正确的是()。
A.宏定义在运行时进行替换
B.宏定义可以嵌套定义
C.宏定义中的参数不进行类型检查
D.宏定义不能定义常量
答案:C
二、多项选择题(每题2分,共10题)
1.以下属于C语言基本数据类型的有()。
A.int
B.char
C.float
D.double
E.struct
答案:ABCD
2.在C语言中,以下关于函数的说法正确的有()。
A.函数可以有多个返回值
B.函数可以没有参数
C.函数可以递归调用
D.函数内部可以定义函数
E.函数必须有返回值类型声明
答案:BC
3.关于C语言中的指针,以下说法正确的有()。
A.指针可以指向数组元素
B.指针可以进行算术运算
C.指针可以指向函数
D.空指针不占用内存空间
E.指针变量必须初始化
答案:ABCE
4.以下关于C语言中数组的说法正确的有()。
A.数组元素可以是不同类型的数据
B.数组名是一个常量指针
C.可以动态分配数组的大小
D.二维数组在内存中是按行存储的
E.数组下标从1开始
答案:BCD
5.以下关于C语言中结构体和联合体的区别,正确的有()。
A.结构体的所有成员占用不同的内存空间,联合体的成员共用同一块内存空间
B.结构体可以同时存储多个成员的值,联合体同一时间只能存储一个成员的值
C.结构体的大小是所有成员大小之和,联合体的大小是最大成员的大小
D.结构体定义时成员顺序不重要,联合体定义时成员顺序很重要
E.结构体和联合体都不能嵌套定义
答案:ABC
6.在C语言中,以下关于文件操作的说法正确的有()。
A.文件操作包括读文件和写文件
B.可以用fclose()函数关闭文件
C.fgets()函数用于从文件中读取一行字符串
D.fputc()函数用于向文件写入一个字符
E.可以同时打开多个文件进行操作
答案:ABCDE
7.以下关于C语言中循环语句的说法正确的有()。
A.for循环语句可以用于循环次数已知的情况
B.while循环语句是先判断条件再执行循环体
C.do-while循环语句是先执行循环体再判断条件
D.可以在循环体内使用break语句跳