大学c语言考试题及答案
一、单项选择题
1.以下关于C语言中数据类型的叙述错误的是()
A.基本数据类型包括整型、实型、字符型
B.数组属于构造数据类型
C.指针类型属于构造数据类型
D.空类型不属于基本数据类型
答案:C
2.若有定义“inta=10,b=20;”,则执行“printf(%d\n,(a,b));”后的输出结果是()
A.10
B.20
C.30
D.不定值
答案:B
3.以下不能正确定义二维数组的是()
A.inta[2][2]={{1},{2}};
B.inta[][2]={{1,2},{3,4}};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
答案:D
4.以下对C语言函数的有关描述中,正确的是()
A.在C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B.C函数既可以嵌套定义又可以递归调用
C.函数必须有返回值,否则不能使用函数
D.C程序中有调用关系的所有函数必须放在同一个源程序文件中
答案:A
5.以下关于指针的运算中,非法的是()
A.p++;
B.p=p+1;
C.p+=1;
D.p=a;
答案:B
6.以下关于结构体的叙述中错误的是()
A.结构体中可以定义另一个结构体作为其成员
B.结构体中成员可以是不同类型的数据
C.可以对结构体变量名直接赋值
D.可以用指针指向结构体变量
答案:C
7.以下关于文件操作的叙述中错误的是()
A.文件操作需要包含头文件stdio.h
B.文件打开后可以进行读写操作
C.文件关闭后,与之关联的缓冲区内容会自动写入文件
D.文件操作完成后必须关闭文件
答案:C
8.以下关于循环结构的叙述中错误的是()
A.while循环是先判断条件,再执行循环体
B.do-while循环是先执行循环体,再判断条件
C.for循环是先执行初始化表达式,再判断条件,然后执行循环体
D.三种循环结构都可以用break语句跳出循环
答案:C
9.以下关于数组作为函数参数的叙述中错误的是()
A.数组可以作为函数的参数
B.传递给函数的数组实际上是数组的首地址
C.在函数中对数组元素的修改不会影响原数组
D.函数可以返回数组
答案:C
10.以下关于位运算的叙述中错误的是()
A.位运算可以对整数类型的数据进行操作
B.左移运算相当于将数乘以2的幂次方
C.右移运算对于无符号数是逻辑右移,对于有符号数是算术右移
D.位运算的操作数只能是整型或字符型数据
答案:D
二、多项选择题
1.以下属于C语言关键字的是()
A.auto
B.enum
C.extern
D.register
答案:ABCD
2.以下关于C语言数组的叙述正确的是()
A.数组的下标从0开始
B.数组的大小在定义时必须确定
C.数组可以在定义时进行初始化
D.数组可以作为函数的参数传递
答案:ABCD
3.以下关于C语言指针的叙述正确的是()
A.指针是一种数据类型
B.指针可以进行算术运算
C.指针可以指向数组元素
D.指针可以指向函数
答案:ABCD
4.以下关于C语言结构体的叙述正确的是()
A.结构体可以包含不同类型的成员
B.可以定义结构体类型的数组
C.可以定义指向结构体的指针
D.结构体可以作为函数的参数传递
答案:ABCD
5.以下关于C语言文件操作的叙述正确的是()
A.文件操作需要包含头文件stdio.h
B.文件打开后可以进行读写操作
C.文件关闭后,与之关联的缓冲区内容会自动写入文件
D.可以使用fseek函数进行文件位置的移动
答案:ABCD
三、判断题
1.C语言中,所有的变量在使用前都必须先定义。()
答案:对
2.在C语言中,逻辑运算符“”的优先级高于“||”。()
答案:对
3.数组名可以作为函数的参数传递,传递的是数组的首地址。()
答案:对
4.结构体变量可以直接整体赋值。()
答案:错
5.文件操作完成后必须关闭文件,否则可能导致数据丢失。()
答案:对
6.循环结构中的break语句只能用于跳出while循环。()
答案:错
7.指针变量可以进行自增、自减运算。()
答案:对
8.函数的返回值类型可以是void,表示函数没有返回值。()
答案:对
9.二维数组在内存中是按行优先存储的。()
答案:对
10.位运算只能对整型数据进行操作。()
答案:对
四、简答题
1.简述C语言中指针与数组的