国家计算机二级c试题及答案
一、单项选择题(每题2分,共20分)
1.在C语言中,合法的字符常量是()
A.\084
B.\x43
C.ab
D.\0
答案:B
2.若有定义:inta=5;则表达式a++的值是()
A.5
B.6
C.7
D.4
答案:A
3.以下叙述中正确的是()
A.C语言中的函数不可以单独进行编译
B.C语言中的函数可以嵌套定义
C.C语言中的函数可以嵌套调用
D.C语言中的函数不可以递归调用
答案:C
4.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是()
A.n=0;while((ch=getchar())!=\n)n++;
B.n=0;while(getchar()!=\n)n++;
C.for(n=0;getchar()!=\n;n++);
D.n=0;scanf(%c,ch);while(ch!=\n){n++;scanf(%c,ch);}
答案:D
5.以下关于宏的叙述中正确的是()
A.宏名必须用大写字母表示
B.宏定义必须位于源程序中所有语句之前
C.宏替换没有数据类型限制
D.宏调用比函数调用耗费时间
答案:C
6.若有定义:inta=1,b=2,c=3;则执行表达式(a=b+c)(++b)后b的值为()
A.2
B.3
C.4
D.5
答案:A
7.若有以下定义:
inta[10]={1,2,3,4,5,6,7,8,9,10};
intp=a;
则(p+2)的值为()
A.3
B.2
C.1
D.4
答案:A
8.若有以下程序段:
inta=0,b=0,c=0;
c=(a-=a-5);(a=b,b+3);
则执行后a、b、c的值分别是()
A.0,0,5
B.0,0,0
C.5,0,5
D.5,0,0
答案:A
9.以下叙述中错误的是()
A.C程序必须由一个或一个以上的函数组成
B.函数调用可以作为一个独立的语句存在
C.若函数有返回值,必须通过return语句返回
D.函数形参的值也可以传回给对应的实参
答案:D
10.若有以下定义:
structst{
intx;
inty;
}a[2]={{1,2},{3,4}};
则表达式a[0].xa[1].y的值为()
A.1
B.2
C.3
D.4
答案:D
二、多项选择题(每题2分,共20分)
1.以下属于C语言基本数据类型的是()
A.整型
B.实型
C.字符型
D.结构体类型
E.枚举类型
答案:ABC
2.以下关于指针的叙述中,正确的是()
A.指针变量可以进行算术运算
B.指针变量中存放的是地址值
C.可以通过指针变量访问它所指向的变量
D.一个指针变量可以指向多个变量
E.指针变量可以作为函数参数
答案:ABCE
3.以下关于函数的叙述中,正确的是()
A.函数可以没有返回值
B.函数可以有多个返回值
C.函数可以有多个形参
D.函数的返回值类型必须与函数定义中的类型一致
E.函数的形参可以是指针类型
答案:ACDE
4.在C语言中,以下哪些是合法的标识符()
A._abc
B.123abc
C.a-b
D.abc123
E.for
答案:AD
5.以下关于数组的叙述中,正确的是()
A.数组的下标从0开始
B.数组名是一个常量指针
C.可以动态分配数组的内存空间
D.数组元素可以是不同类型的数据
E.二维数组在内存中是按行优先存储的
答案:ABCE
6.以下关于结构体的叙述中,正确的是()
A.结构体可以包含不同类型的成员
B.结构体成员可以是结构体类型
C.结构体变量占用的内存空间是其成员占用空间之和
D.可以定义结构体数组
E.结构体变量之间不能进行赋值操作
答案:ABCD
7.以下关于文件操作的叙述中,正确的是()