c语言试题及答案
一、单项选择题(每题2分,共20分)
1.以下哪个是C语言的合法标识符?
A.123abc
B._abc
C.int
D.ab
答案:B
2.C语言中,用于输入数据的函数是?
A.printf
B.scanf
C.puts
D.getchar
答案:B
3.若inta=5;则表达式a+=a-=aa的值是?
A.-40
B.25
C.0
D.-20
答案:A
4.以下关于数组的说法正确的是?
A.数组元素的下标从1开始
B.数组名代表数组的首地址
C.数组的大小可以动态改变
D.不同类型的数据可以存储在同一个数组中
答案:B
5.以下哪个关键字用于循环中跳出本次循环,继续下一次循环?
A.break
B.continue
C.return
D.exit
答案:B
6.若定义函数voidfun(intx),调用该函数时,实参的类型应该是?
A.任意类型
B.实型
C.整型
D.字符型
答案:C
7.以下关于指针的说法错误的是?
A.指针变量存储的是内存地址
B.指针可以进行算术运算
C.空指针就是指向地址为0的指针
D.指针变量不需要初始化
答案:D
8.C语言中,字符串结束标志是?
A.\n
B.\0
C.\r
D.
答案:B
9.若inta[3][4];则数组a包含的元素个数是?
A.3
B.4
C.7
D.12
答案:D
10.以下哪个预处理指令用于包含头文件?
A.define
B.if
C.include
D.else
答案:C
二、多项选择题(每题2分,共20分)
1.以下属于C语言基本数据类型的有?
A.int
B.float
C.double
D.char
答案:ABCD
2.以下运算符中,优先级高于乘法运算符的有?
A.+
B.()
C.++
D.%
答案:BC
3.以下哪些语句可以用于循环控制?
A.for
B.while
C.do-while
D.switch
答案:ABC
4.以下关于函数的说法正确的有?
A.函数可以有返回值,也可以没有返回值
B.函数可以有参数,也可以没有参数
C.函数定义可以嵌套
D.函数调用可以嵌套
答案:ABD
5.以下关于数组的说法正确的有?
A.可以通过数组名直接访问数组元素
B.数组名是一个常量指针
C.数组初始化时,元素个数可以省略
D.多维数组在内存中按行存储
答案:ABCD
6.以下哪些是C语言中的输入输出函数?
A.printf
B.scanf
C.fopen
D.fclose
答案:AB
7.以下关于指针的说法正确的有?
A.指针变量可以指向数组元素
B.指针可以作为函数参数
C.可以对指针进行比较运算
D.指针可以指向函数
答案:ABCD
8.以下哪些是C语言中的预处理指令?
A.define
B.include
C.ifdef
D.endif
答案:ABCD
9.以下关于结构体的说法正确的有?
A.结构体是一种用户自定义的数据类型
B.结构体可以包含不同类型的成员
C.结构体变量可以作为函数参数
D.可以定义结构体数组
答案:ABCD
10.以下关于文件操作的说法正确的有?
A.打开文件使用fopen函数
B.关闭文件使用fclose函数
C.从文件中读取数据可以使用fscanf函数
D.向文件中写入数据可以使用fprintf函数
答案:ABCD
三、判断题(每题2分,共20分)
1.C语言程序的执行总是从main函数开始。()
答案:对
2.在C语言中,变量必须先定义后使用。()
答案:对
3.表达式5/2的结果是2.5。()
答案:错
4.for循环的三个表达式都可以省略。()
答案:对
5.函数的形参在函数定义时分配内存空间。()
答案:对
6.数组名作为函数参数时,传递的是数组的首地址。()
答案:对
7.指针变量不能指向自身。()
答案:错
8.字符串常量存储在内存的常量区。()
答案:对
9.结构体变量不能整体赋值。()
答案:错
10.文件操作结束后,必须关闭文件。()
答案:对
四、简答题(每题5分,共20分)
1.简述C语言中变量的存储类别有哪些?
答案:C语言变量存储类别有auto(自动)、register(寄存器)、static(静态)、extern(外部)。auto是默认类别,register建议存寄存器,stati