学校c语言考试题及答案
一、单项选择题(每题2分,共20分)
1.C语言源文件的扩展名是()
A..cB..objC..exeD..h
2.以下哪个是合法的标识符()
A.123abcB._abcC.intD.a@b
3.执行语句“inta=5;a+=a-=aa;”后,a的值是()
A.-40B.25C.0D.-20
4.若有定义“inta[5];”,则对数组元素的正确引用是()
A.a[5]B.a(3)C.a[0]D.a[5-5]
5.以下关于函数的说法错误的是()
A.函数可以嵌套定义B.函数可以嵌套调用
C.函数是C程序的基本模块D.函数可以有返回值
6.若有定义“chars[]=abc;”,则数组s的长度是()
A.2B.3C.4D.5
7.执行“for(i=0;i10;i+=2)printf(%d,i);”,输出次数是()
A.5B.4C.6D.10
8.以下运算符中,优先级最高的是()
A.+B.==C.D.()
9.若有定义“intp,a=10;p=a;”,则p的值是()
A.10B.aC.pD.地址值
10.下面关于指针的说法错误的是()
A.指针变量可以用整数赋值B.指针变量可以指向数组
C.指针变量可以指向函数D.指针变量中存储的是地址
二、多项选择题(每题2分,共20分)
1.以下属于C语言数据类型的有()
A.intB.floatC.doubleD.char
2.下列语句中能正确定义数组的有()
A.inta[3];B.inta[]={1,2,3};
C.chars[5]=abc;D.floatf[2]={1.0f,2.0f};
3.以下能实现循环结构的语句有()
A.forB.whileC.do-whileD.if
4.以下关于函数参数传递的说法正确的有()
A.可以传值B.可以传地址
C.形参和实参类型必须一致D.形参和实参个数必须相同
5.以下属于C语言关键字的有()
A.intB.returnC.printfD.scanf
6.下列有关指针的描述正确的是()
A.指针变量可以指向不同类型变量B.空指针不指向任何有效内存
C.指针变量可以进行算术运算D.指针可以指向数组元素
7.以下关于文件操作的函数有()
A.fopenB.fcloseC.fprintfD.fscanf
8.以下运算符中,属于关系运算符的有()
A.B.C.=D.==
9.若有定义“inta[3][4];”,则正确引用数组元素的有()
A.a[0][0]B.a[2][3]C.a[3][4]D.a[1+1][2]
10.以下关于结构体的说法正确的有()
A.结构体是一种自定义数据类型B.结构体可以嵌套定义
C.结构体变量可以整体赋值D.结构体成员可以是不同类型
三、判断题(每题2分,共20分)
1.C语言中,main函数是程序的入口。()
2.变量必须先定义后使用。()
3.在C语言中,数组下标从1开始。()
4.函数若无返回值,定义时可以不写返回类型。()
5.字符型变量只能存储一个字符。()
6.指针变量占用的内存大小与所指向变量的类型有关。()
7.可以对数组名进行自增自减运算。()
8.switch语句中,每个case后面必须有break语句。()
9.用fopen打开文件时,若文件不存在会自动创建。()
10.结构体变量的成员可以像普通变量一样进行各种运算。()
四、简答题(每题5分,共20分)
1.简述C语言中常量和变量的区别。
答:常量是在程序运行过程中值不能被改变的量,如数字常量、字符常量等;变量是在程序运行过程中值可以被改变的量,需要先定义,有自己的类型和存储单元,可用于存储和操作数据。
2.简述函数调用过程中值传递和地址传递的区别。
答:值传递是将实参的值复制一份传递给形参,形参的改变不影响实参;地址传递是将实参的地址传递给形参,形参通过地址对实参所指向的内容进行操作,