c语言考试题及答案补考
一、单项选择题(每题2分,共10题)
1.C语言程序的基本单位是()
A.程序行B.语句C.函数D.字符
2.以下合法的标识符是()
A.3abB._abcC.intD.ab
3.若有定义:inta=5;则表达式a++的值是()
A.5B.6C.4D.7
4.以下运算符中,优先级最高的是()
A.+B.==C.D.
5.若有定义:inta[10];则对数组元素的正确引用是()
A.a[10]B.a(5)C.a[0]D.a[10-10]
6.函数调用时,实参和形参之间的数据传递是()
A.地址传递B.值传递C.由用户指定传递方式D.实参传给形参,形参再传回实参
7.以下关于指针的说法错误的是()
A.指针变量可以指向不同类型的变量
B.指针变量存储的是内存地址
C.指针可以进行算术运算
D.空指针的值为NULL
8.若有定义:chars[]=hello;则数组s的长度是()
A.5B.6C.7D.8
9.以下能正确打开一个文件的语句是()
A.FILEfp=open(test.txt,r);
B.FILEfp=fopen(test.txt,r);
C.FILEfp=fopen(test.txt,r);
D.FILEfp=open(test.txt,w);
10.以下关于结构体的说法正确的是()
A.结构体成员的数据类型必须相同
B.结构体变量不能整体赋值
C.结构体可以嵌套定义
D.结构体不能作为函数参数
二、多项选择题(每题2分,共10题)
1.以下属于C语言数据类型的有()
A.整型B.浮点型C.字符型D.数组
2.以下哪些是C语言的关键字()
A.ifB.whileC.printfD.scanf
3.以下表达式中,值为真的有()
A.53B.01C.5!=5D.3||0
4.以下关于数组的说法正确的有()
A.数组名代表数组的首地址
B.数组可以初始化
C.数组元素可以是不同类型的数据
D.可以通过数组名访问数组元素
5.以下函数中,属于标准输入输出函数的有()
A.printfB.scanfC.getcharD.putchar
6.以下关于指针运算的说法正确的有()
A.指针可以加上一个整数
B.指针可以减去一个整数
C.指针可以进行比较运算
D.指针可以进行乘法运算
7.以下关于结构体定义正确的有()
A.structstudent{intnum;charname[20];};
B.typedefstruct{intnum;charname[20];}student;
C.struct{intnum;charname[20];}s;
D.structstudent{intnum;charname[20];}s;
8.以下关于文件操作的函数有()
A.fopenB.fcloseC.freadD.fwrite
9.以下关于循环结构的说法正确的有()
A.for循环可以用于已知循环次数的情况
B.while循环先判断条件再执行循环体
C.do-while循环先执行循环体再判断条件
D.循环结构可以嵌套使用
10.以下关于函数的说法正确的有()
A.函数可以有返回值
B.函数可以没有参数
C.函数可以嵌套定义
D.函数可以递归调用
三、判断题(每题2分,共10题)
1.C语言区分大小写。()
2.变量必须先定义后使用。()
3.表达式5/2的结果是2.5。()
4.数组一旦定义,其大小不能改变。()
5.指针变量只能存储地址。()
6.结构体变量可以作为函数的返回值。()
7.打开文件时,若文件不存在则会自动创建。()
8.continue语句可以跳出整个循环。()
9.函数的形参在函数调用时才分配内存空间。()
10.宏定义是在编译阶段进行处理的。()
四、简答题(每题5分,共4题)
1.简述C语言中变量的作用域。
变量作用域指变量的有效范围。局部变量在定义它的函数或复合语句内有效;全局变量在整个源程序文件内