c考试题库及答案
一、单项选择题(每题2分,共10题)
1.C语言中,用于输出的函数是()
A.scanfB.printfC.getcharD.putchar
2.以下合法的C语言标识符是()
A.3aB.a-bC._abcD.int
3.C语言中,定义整型变量的关键字是()
A.floatB.doubleC.intD.char
4.若有定义inta=5;则表达式a++的值是()
A.5B.6C.4D.7
5.以下运算符优先级最高的是()
A.+B.==C.D.
6.对于for循环,初始化部分可以省略,此时()
A.循环无法执行
B.自动初始化为0
C.需在循环体中初始化
D.语法错误
7.若有数组定义inta[5];则数组元素下标的范围是()
A.1-5B.0-4C.0-5D.1-4
8.以下函数声明正确的是()
A.intfun(inta;intb);
B.intfun(inta,intb);
C.intfun(a,b);
D.intfun(inta,b);
9.C语言中,字符串结束标志是()
A.\0B.\nC.\tD.0
10.若有定义intp;则p是()
A.整型变量B.整型数组C.指向整型的指针D.函数指针
二、多项选择题(每题2分,共10题)
1.以下属于C语言数据类型的有()
A.整型B.浮点型C.字符型D.结构体
2.下列运算符中,属于算术运算符的有()
A.+B.-C.D./
3.以下可以作为C语言常量的有()
A.10B.3.14C.aD.hello
4.关于if语句,正确的有()
A.可以单分支B.可以双分支C.可以多分支D.不能嵌套
5.下列关于数组的说法正确的有()
A.数组元素类型相同
B.数组下标从0开始
C.数组大小必须在定义时确定
D.可以动态改变数组大小
6.以下函数中,用于输入输出的有()
A.scanfB.printfC.fopenD.fclose
7.指针可以指向()
A.变量B.数组C.函数D.结构体
8.以下属于C语言关键字的有()
A.intB.whileC.forD.return
9.关于结构体,正确的是()
A.可以包含不同类型成员
B.成员访问通过.运算符
C.可以定义结构体数组
D.结构体不能嵌套
10.下列文件操作函数中,用于打开文件的有()
A.fopenB.openC.fcloseD.freopen
三、判断题(每题2分,共10题)
1.C语言中,变量必须先定义后使用。()
2.表达式5/2的结果是2.5。()
3.do-while循环至少会执行一次循环体。()
4.数组名代表数组的首地址。()
5.函数可以没有返回值。()
6.指针变量可以不初始化。()
7.C语言中,字符串就是字符数组。()
8.可以用一个数组名给另一个数组名赋值。()
9.结构体成员的访问可以通过指针进行。()
10.文件操作结束后不需要关闭文件。()
四、简答题(每题5分,共4题)
1.简述C语言中变量的命名规则。
答:由字母、数字、下划线组成,且只能以字母或下划线开头,不能与关键字重名。
2.简述for循环的执行流程。
答:先执行初始化部分,然后判断条件表达式,若为真执行循环体,再执行更新部分,之后重复判断条件表达式,直到条件为假结束循环。
3.简述指针的作用。
答:指针用于存储变量的地址,可实现对变量的间接访问,方便函数间数据传递、操作数组等。
4.简述文件操作的基本步骤。
答:打开文件(确定文件名、操作模式等),对文件进行读或写操作,操作完成后关闭文件。
五、讨论题(每题5分,共4题)
1.讨论C语言中函数传值和传址的区别。
答:传值是将实参值复制给形参,形参改变不影响实参;传址是将实参地址传给形参,通过形参可改变实参值。传址能实现函数间数据双向传递,效率有时更高。
2.讨论数组和指针