2006 年 9 月全国计算机二级 C 语言考试真题及答案
一、选择题(每小题 2 分,共 70 分)下列各题 A)、B)、C)、D)四个选项中,只有一个
选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列选项中不符合良好程序设计风格的是______。
A)、源程序要文档化
B)、数据说明的次序要规范化
C)、避免滥用 goto 语句
D)、模块设计要保证高耦合,高内聚
(2)从工程管理角度,软件设计一般分为两步完成,它们是______。
A)、概要设计与详细设计
B)、数据设计与接口设计
C)、软件结构设计与数据设计
D)、过程设计与数据设计
(3)下列选项中不属于软件生命周期开发阶段任务的是______。
A)、软件测试
B)、概要设计
C)、软件维护
D)、详细设计
(4)在数据库系统中,用户所见的数据模式为______。
A)、概念模式
B)、外模式
C)、内模式
D)、物理模式
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。
1
A)、编码设计
B)、测试阶段
C)、运行阶段
D)、物理设计
(6)设有如下三个关系表下列操作中正确的是
A)、T=R∩S
B)、T=R∪S
C)、T=R×S
D)、T=R/S
(7)下列叙述中正确的是
A)、一个算法的空间复杂度大,则其时间复杂度也必定大
B)、一个算法的空间复杂度大,则其时间复杂度必定小
C)、一个算法的时间复杂度大,则其空间复杂度必定小
D)、上述三种说法都不对
(8)在长为 64 的有序线性表中进行顺序查找,坏情况下需要比较的次数为______。
A)、63
B)、64
C)、6
D)、7
(9)数据库技术的根本目标是要解决数据的______。
A)、存储问题
B)、共享问题
C)、安全问题
D)、保护问题
2
(10)对下列二叉树: 进行中序遍历的结果是______。
A)、ACBDFEG
B)、ACBDFGE
C)、ABDCGEF
D)、FCADBEG
(11)下列有关内联函数的叙述中,正确的是______。
A)、内联函数在调用时发生控制转移
B)、内联函数必须通过关键字 inline 来定义
C)、内联函数是通过编译器来实现的
D)、内联函数体的后一条语句必须是 rennin 语句
(12)下列情况中,不会调用拷贝构造函数的是______。
A)、用一个对象去初始化同一类的另一个新对象时
B)、将类的一个对象赋予该类的另一个对象时
C)、函数的形参是类的对象,调用函数进行形参和实参结合时
D)、函数的返回值是类的对象,函数执行返回调用时
(13)下列有关继承和派生的叙述中,正确的是______。
A)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员
B)、派生类的成员函数可以访问基类的所有成员
C)、基类对象可以赋值给派生类对象
D)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
(14)下列运算不能重载为友元函数的是______。
A)、=
B)、+
C)、>
(
-
<
)
[]
->
++
--
>=
<=
D)、+=
-=
*=
/=
3
(15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。
A)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都
可以省略
B)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的后的若干个参数,
FC
EA
DBG 则都可以省略
C)、对于虚拟型参数所对应的模板实参,若能够省略则必须省略
D)、对于常规参数所对应的模板实参,任何情况下都不能省略
(16)下列关于输入流类成员函数 getline(
)的描述中,错误的是______。
A)、该函数是用来读取键盘输入的字符串的
B)、该函数读取的字符串长度是受限制的
C)、该函数读取字符串时,遇到终止符便停止
D)、该函数读取字符串时,可以包含空格
(17)下列符号中,正确的 C++标识符是______。
A)、enum
B)、2b
C)、foo-9
D)_32
(18)下列语句中,错误的是______。
A)、const
int
buffer=256;
B)、const
double*point;
C)、int
const
buffer=256;
D)、double*const point;
(19)if 语句的语法格式可描述为
格式 1:if(<条件>)<语句>
或
4
格式 2:if(<条件>)<语句 1>else<语句 2>
关于上面的语法格式,下列表述中错误的是
A)、<条件>部分可以是一个 if 语句,例如 if(if(a
=0)?)?
B)、<条件>部分可以是一个 if 语句,例如 if(?)if(?)?
C)、如果在<条件>前加上逻辑非运算符!并交换<语句 1>和<语句 2>的位置,语句功能不变
D)、<语句>部分可以是一个循环语句,例如 if(?)while(?)?
(20)有如下说明
int
a
[10]={1,2,3,4,5,,6,7,8,9,10},*p=a;
则数值为 9 的表达式是______。
A)、*p+9`
B)、*(p+8)
C)、*p+=9
D)、p+7
(21)或下面的函数调用
fun(a+b,3,max(n-1)b)
则 fun 的实参个数是______。
A)、3
B)、4
C)、5
D)、6
(22)以下关键字不能用来声明类的访问权限的是______。
A)、public
B)、static
C)、protected
D)、private
(23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。
5
A)、公有成员
B)、公有成员和保护成员
C)、公有成员、保护成员和私有成员
D)、保护成员
(24)关于运算符重载,下列表述中正确的是______。
A)、C++已有的任何运算符都可以重载
B)、运算符函数的返回类型不能声明为基本数据类型
C)、在类型转换符函数的定义中不需要声明返回类型
D)、可以通过运算符重载来创建 C++中原来没有的运算符
(25)关于关键字 class 和 typename,下列表述中正确的是______。
A)、程序中的 typename 都可以替换为 class
B)、程序中的 class 都可以替换为 typename
C)、在模板形参表中只能用 typename 来声明参数的类型
D)、在模板形参表中只能用 class 或 typename 来声明参数的类型
(26)有如下程序
#include
#include
using
namespace
std;
int
main(){
count
B)、fixed
C)、setfill(*)
D)、stew(8)
(27)有如下程序
#include
#include
using
namespace
std;
class
MyClass{
public:
MyClass(){cout<<’A”;}
MyClass(char c
{cout<~MyClass(){sout<<’B”;}
};
Int
main(){
MyClassp1,*p2
p2=new
MyClass(‘X’);
delete
p2;
return
0;
}
执行这个程序幕上将显示输出______。
A)、ABX
B)、ABXB
C)、AXB
D)、AXBB
public;
static
int
i;
int
value(){return
i-1}
int
value
()const{return
i+1;}
};
int
Fun;;i=2;
int
main(){
int
i=3;
Fun
Fun1
const
Fun
fun2;
return
0;
}
若程序的输出结果是:
123
则程序中下划线处遗漏的语句是______。
A)、cout<
B)、cout<
C)、cout<
D)、cout<
(29)有如下程序
#include
using
namespace
std;
class
Obj{
static
int
i;
public:
Obj(){i++;}
~Obj(){i--;}
static
int
getVal(){teturn i;}
8