c2007计算机2级试题及答案
一、单项选择题(每题2分,共10题)
1.在C语言中,合法的字符常量是()
A.\084B.\x43C.abD.\0
答案:B
2.若有定义:inta=5,p=a;,则printf(%d,p);的输出结果为()
A.地址B.5C.无确定值D.编译错误
答案:B
3.以下关于数组的描述正确的是()
A.数组的大小是固定的,但可以有不同类型的元素
B.数组元素的下标从1开始
C.数组名是一个常量指针
D.可以用赋值语句整体对数组赋值
答案:C
4.以下函数的功能是()
```c
voidfun(chars)
{
chart=s;
while(t!=\0)
t++;
t--;
while(st)
{
charc=s;
s=t;
t=c;
s++;
t--;
}
}
```
A.将字符串s中的字符逆序存放
B.求字符串s的长度
C.比较字符串s的首尾字符
D.将字符串s首尾字符交换
答案:A
5.若有定义:structstudent{
charname[20];
intage;
floatscore;
};
structstudentst={Tom,20,85.5};
则访问st成员age的正确方式是()
A.st-ageB.st.ageC.student.ageD.(st).age
答案:B
6.在C语言中,文件由()组成。
A.记录B.数据行C.数据块D.字符(字节)
答案:D
7.以下关于宏定义的说法错误的是()
A.宏定义只是简单的字符串替换
B.宏名一般用大写字母表示
C.宏定义可以嵌套定义
D.宏定义不需要分号结尾
答案:C
8.若有inti=10;,则执行下列语句后的输出结果为()
```c
switch(i)
{
case9:printf(nine);break;
case10:printf(ten);
case11:printf(eleven);break;
default:printf(error);
}
```
A.tenB.tenelevenC.errorD.nine
答案:B
9.设p1和p2是指向同一个int型数组的指针变量,k为int型变量,则不能正确执行的语句是()
A.k=p1+p2;B.p2=k;C.p1=p2;D.k=p1(p2);
答案:B
10.以下能正确定义二维数组的是()
A.inta[][3];B.inta[2][];C.inta[][];D.inta[2][3]={{1,2},{3,4,5}};
答案:D
二、多项选择题(每题2分,共10题)
1.以下关于C语言中变量的说法正确的有()
A.变量必须先定义后使用
B.变量的类型决定了变量的存储大小和取值范围
C.全局变量在整个程序的运行期间都占用内存
D.局部变量的作用域仅限于定义它的函数内部
答案:ABCD
2.下列关于函数的叙述正确的是()
A.函数可以没有返回值
B.函数可以嵌套定义
C.函数的形参在函数调用时才分配内存空间
D.函数可以有多个返回值
答案:AC
3.在C语言中,以下数据类型中属于构造类型的有()
A.数组B.结构体C.共用体D.枚举
答案:ABC
4.以下关于指针的说法正确的有()
A.指针变量可以存储变量的地址
B.指针变量可以进行算术运算
C.空指针的值为NULL
D.可以通过指针间接访问变量的值
答案:ABCD
5.对于以下代码:
```c
includestdio.h
intmain()
{
inti=0;
do
{
printf(%d,i);
i++;
}while(i3);
return0;
}
```
正确的说法有()
A.这是一个do-while循环
B.循环体至少执行一次
C.输出结果为012
D.可以用while循环等价替换
答案:ABC
6.以下关于C语言文件操作的说法正确的有()
A.可