中职c语言期末考试题及答案
一、单项选择题(每题2分,共20分)
1.C语言程序的基本单位是()
A.程序行B.语句C.函数D.字符
2.以下合法的标识符是()
A.1aB.intC._abcD.a+b
3.若有定义:inta=5;则表达式a+=a-=aa的值是()
A.-40B.30C.40D.-120
4.执行语句:for(i=0;i5;i++)后,变量i的值是()
A.4B.5C.6D.0
5.以下能正确定义数组并赋值的语句是()
A.inta[5]={1,2,3,4,5,6};
B.inta[]={1,2,3,4,5};
C.inta[5]={0};
D.inta[5]={1.2,3.4,5.6};
6.函数调用时,实参和形参之间的数据传递是()
A.地址传递B.值传递C.由用户指定传递方式D.由实参传给形参,再由形参传回给实参
7.若有定义:charstr[]=hello;则数组str所占的字节数是()
A.5B.6C.7D.8
8.以下关于指针的说法,正确的是()
A.指针就是地址B.指针变量可以不赋值C.指针只能指向变量D.指针不能指向数组
9.以下不能正确表示逻辑值“真”的是()
A.1B.非0整数C.0D.大于0的数
10.若有定义:struct{inta;charb;}s;则sizeof(s)的值是()
A.3B.4C.5D.6
二、多项选择题(每题2分,共20分)
1.以下属于C语言数据类型的有()
A.整型B.实型C.字符型D.结构体
2.以下运算符中,优先级高于乘法运算符的有()
A.+B.-C.%D.()
3.以下语句能正确输出换行的有()
A.printf(\n);B.printf(\r);C.putchar(\n);D.putchar(\r);
4.以下能正确定义和初始化二维数组的有()
A.inta[2][3]={{1,2,3},{4,5,6}};
B.inta[][3]={1,2,3,4,5,6};
C.inta[2][]={{1,2},{3,4}};
D.inta[2][3]={1,2,3,4,5,6};
5.以下函数属于标准输入输出库函数的有()
A.scanfB.printfC.getcharD.putchar
6.以下关于循环结构的说法,正确的有()
A.for循环可以用于已知循环次数的情况B.while循环先判断条件,后执行循环体C.do-while循环先执行循环体,后判断条件D.三种循环可以相互嵌套
7.以下能正确定义指针变量的有()
A.intp;B.charp;C.intp;D.floatp;
8.以下关于函数的说法,正确的有()
A.函数可以有返回值B.函数可以没有参数C.函数可以嵌套定义D.函数可以递归调用
9.以下属于预处理命令的有()
A.includeB.defineC.ifD.else
10.以下关于结构体的说法,正确的有()
A.结构体可以包含不同类型的成员B.结构体变量可以整体赋值C.结构体变量可以作为函数参数D.结构体变量可以通过点号访问成员
三、判断题(每题2分,共20分)
1.C语言程序必须有一个main函数。()
2.变量必须先定义后使用。()
3.表达式3/2的值是1.5。()
4.for循环的三个表达式都可以省略。()
5.数组名代表数组的首地址。()
6.函数的返回值类型由函数定义时的返回值类型决定。()
7.指针变量可以指向任何类型的变量。()
8.逻辑运算符的优先级高于关系运算符。()
9.预处理命令在编译之前执行。()
10.结构体变量不能作为函数的返回值。()
四、简答题(每题5分,共20分)
1.简述C语言中变量的存储类型有哪些?
答:C语言变量存储类型有auto(自动变量)、regi