中南c语言考试题及答案
一、单项选择题(每题2分,共10题)
1.C语言源程序文件的扩展名是()
A..exeB..cC..objD..h
2.以下哪个是合法的标识符()
A.123abcB._abcC.intD.a-b
3.若有定义:inta=5;则表达式a++的值是()
A.5B.6C.4D.7
4.以下关于if语句的说法正确的是()
A.if后面只能接一条语句
B.if语句不能嵌套使用
C.if语句中条件表达式可以是任意表达式
D.if语句必须有else子句
5.以下哪种循环结构至少会执行一次循环体()
A.forB.whileC.do-whileD.以上都不是
6.若有定义:inta[5]={1,2,3,4,5};则a[2]的值是()
A.2B.3C.4D.5
7.函数定义时,若没有返回值,函数类型应定义为()
A.intB.voidC.floatD.char
8.以下哪种数据类型占用内存空间最小()
A.intB.floatC.charD.double
9.若有定义:charstr[]=hello;则strlen(str)的值是()
A.5B.6C.7D.8
10.以下关于指针的说法错误的是()
A.指针变量可以存储地址
B.指针变量必须初始化
C.指针可以进行加减运算
D.指针可以指向数组
二、多项选择题(每题2分,共10题)
1.以下属于C语言基本数据类型的有()
A.intB.floatC.doubleD.char
2.以下哪些运算符属于算术运算符()
A.+B.-C.D./
3.以下哪些语句可以用于循环控制()
A.breakB.continueC.returnD.goto
4.以下关于数组的说法正确的有()
A.数组元素类型必须相同
B.数组大小在定义时必须确定
C.数组名代表数组首地址
D.可以通过下标访问数组元素
5.以下哪些函数可以用于输入输出()
A.printfB.scanfC.getcharD.putchar
6.以下关于函数的说法正确的有()
A.函数可以嵌套调用
B.函数可以递归调用
C.函数必须有返回值
D.函数定义可以嵌套
7.以下哪些是合法的常量()
A.123B.3.14C.aD.hello
8.以下关于结构体的说法正确的有()
A.结构体是一种自定义数据类型
B.结构体可以包含不同类型的成员
C.结构体变量可以整体赋值
D.结构体成员可以通过“.”或“-”访问
9.以下哪些操作可以用于文件处理()
A.fopenB.fcloseC.freadD.fwrite
10.以下关于指针的说法正确的有()
A.指针可以指向函数
B.指针可以指向结构体
C.指针可以进行比较运算
D.指针可以进行乘法运算
三、判断题(每题2分,共10题)
1.C语言中,变量必须先定义后使用。()
2.表达式5/2的结果是2.5。()
3.if语句中条件表达式的值为0时,表示条件为假。()
4.for循环中,循环体至少会执行一次。()
5.数组名作为函数参数时,传递的是数组的首地址。()
6.函数定义时,形参必须指定类型。()
7.字符常量可以用双引号括起来。()
8.结构体变量在内存中是连续存储的。()
9.文件操作结束后,不需要关闭文件。()
10.指针变量的值是一个地址。()
四、简答题(每题5分,共4题)
1.简述C语言中变量的作用域。
答:变量作用域指变量的有效范围。局部变量在定义它的函数或复合语句内有效;全局变量作用域从定义处到文件结束,若用extern声明可扩大到其他文件。
2.简述数组和指针的关系。
答:数组名代表数组首地址,可视为常量指针。指针可指向数组元素,通过指针能像操作数组一样访问数组元素。数组名和指针在某些运算和访问方式上类似,但本质有区别,指针可移动,数组名常量不可。
3.简述函数调用的过程。
答:调用函数时,程序暂停当前执行,将实参值传递给形参,跳转到被调用函数执行,被调用函数执行完毕后,返回调用处继续执行后续代码,若有返回值,将返回值传递给调用处。
4.