1、好好学 www.HH 资料最全的计算机等级考试网站 2008 年 9 月全国计算机等级考试笔试试卷 二级公共基础知识和二级 C++语言程序设计 (考试时间 90 分钟,满分 100 分) 一、选择题(每小题2分,共70分) (1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后 再依次出栈,则元素出栈的顺序是( )。 A)123456ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA (2)下列叙述中正确的是( )。 A)循环队列有队头和队尾两个指针,因此,循环队列是非线性
2、结构 B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况 D)循环队列中元素的个数是由队头指针和队尾指针共同决定 (3)在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是( A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n) (4)下列叙述中正确的是( )。 )。 A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 C)顺序存储结构
3、能存储有序表,链式存储结构不能存储有序表 D)链式存储结构比顺序存储结构节省存储空间 (5)数据流图中带有箭头的线段表示的是( A)控制流 C)模块调用 )。 B)事件驱动 D)数据流 (6)在软件开发中,需求分析阶段可以使用的工具是( )。 A)N-S 图 C)PAD 图 B)DFD 图 D)程序流程图 (7)在面向对象方法中,不属于“对象”基本特点的是( )。 A)一致性 C)多态性 B)分类性 D)标识唯一性 (8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。 A)一对一 C)多对一 B)一对多
4、 D)多对多 (9)在数据管理技术发展的三个阶段中,数据共享最好的是( )。 A)人工管理阶段 C)数据库系统阶段 (10)有三个关系 R、S 和 T 如下: R S T B)文件系统阶段 D)三个阶段相同 A B B C A B C m 1 n 2 1 3 3 5 m 1 3 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为( )。 A)
5、笛卡尔积 B)交 C)并 D)自然连接 (11)在下列原型所示的 C++函数中,按“传值”方式传递参数的是( A)void f1(int x); B)void f2(int*x); C)void f3(const int*x); D)void f4(int&x); )。 (12)在 C++中,编译系统自动为一个类生成缺省构造函数的条件是( )。 A)该类没有定义任何有参构造函数 B)该类没有定义任何无参构造函数 C)该类没有定义任何构造函数 D)该类没有定义任何成员函数 (13)在一个派生类的成员函数中,试图调
6、用其基类的成员函数“void f();”,但无法通过编 译。这说明( )。 A)f()是基类的私有成员 C)派生类的继承方式为私有 B)f()是基类的保护成员 D)派生类的继承方式为保护 (14)下列关于运算符重载的叙述中,错误的是( )。 A)有的运算符可以作为非成员函数重载 B)所有的运算符都可以通过重载而被赋予新的含义 C)不得为重载的运算符函数的参数设置默认值 D)有的运算符只能作为成员函数重载 (15)下列关于模板的叙述中,错误的是( )。 A)调用模版函数时,在一定条件下可以省略模板实参 B)可以用 int、double 这样的类型修饰符来声明模
7、版参数 C)模板声明中的关键字 class 都可以用关键字 typename 替代 D)模板的形参表中可以有多个参数 (16)要利用 C++流进行文件操作,必须在程序中包含的头文件是( )。 A)iostream B)fstream C)strstream D)iomanip (17)下列字符串中不能作为 C++标识符使用的是( )。 A)WHILE B)user C)_lvar D)9stars (18)下列语句中错误的是( )。 A)const int a; C)const int*point=0;
8、
(19)有如下程序:
#include 9、10);
A)3
B)10 C)12 D)15
(20)下列语句中,正确的是( )。
A)char*myString="Hello-World!";
B)char myString="Hello-World!";
C)char myString[11]="Hello-World!";
D)char myString[12]="Hello-World!";
(21)若已经声明了函数原型“void fun(int a, double b=0.0);”,则下列重载函数声明中正确
的是( )。
A)void fun(int a=90, doub 10、le b=0.0);
C)void fun(double a, int B);
(22)有如下程序:
#include 11、int a, double b = 0.0);
)。
A)1
B)2
C)3
D)4
(23)下列选项中,与实现运行时多态性无关的是( )。
A)重载函数 B)虚函数 C)指针
(24)下列运算符函数中,肯定不属于类 Value 的成员函数的是(
D)引用
)。
A)Value operator+(Value);
C)Value operator*(int);
B)Value operator-(Value, Value);
D)Value operator/(Valu 12、e);
(25)下列模板声明中,有语法错误的是( )。
A)template 13、namespace std;
class MyClass{
public:
MyClass(int i=0){cout<<1;}
MyClass(const MyClass&x){cout<<2;}
B)对象名
D)C++的关键字
MyClass& operator=(const MyClass&x){cout<<3; return*this;}
~MyClass(){cout<<4;}
};
int main(){
MyClass obj1(1),obj2(2),obj3(obj1);
14、 return 0:
}
运行时的输出结果是( )。
A)112444 B)11114444 C)121444 D)11314444
(28)有如下程序:
#include 15、{
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print(); //语句 1
obj2.Print(); //语句 2
obj1.Set(20); //语句 3
obj2.Set(30); //语句 4
return 0;
}
其主函数中错误的语句是(
)。
A)语句 1
B)语句 2
C)语句 3
D)语句 4
(29)在类声明中,紧跟在“public:”后声明的成员的访问权限是( )。
A)私有
B)公有 16、
C)保护
D)默认
(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明
该基类成员的访问权限是( )。
A)公有或私有
B)私有
C)保护或私有
D)公有或保护
(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为( )。
A)私有继承
B)非私有继承
C)保护继承
D)公有继承
(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为( )。
A)派生类、成员对象类、基类
B)成员对象类、基类、派生类
C)基类、成员对象类、派生类
D)基类、派生类、成员 17、对象类
(33)如果表达式 a>=b 中的“>=”是作为非成员函数重载的运算符,则可以等效地表示为
( )。
A)a.operator>=(b) B)b.operatotr>=(a)
C)operator>=(a,b) D)operator>=(b,a)
(34)当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为
( )。
A)ios base::in
B)ios_base::binary
C)ios_base::in|ios_base::out D)ios_base::out
(35)在一个抽象类中,一定 18、包含有( )。
A)虚函数 B)纯虚函数
二、填空题(每空2分,共30分)
C)模板函数
D)重载函数
(1)对下列二叉树进行中序遍历的结果___________。
A
B
C
D
X
E
Y
F
Z
(2)按照软件测试的一般步骤,集成测试应在___________测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,___________支持软件开发的各个环节
19、
的控制和管理。
(4)数据库设计包括概念设计、___________和物理设计。
(5)在二维表中,元组的___________不能再分成更小的数据项。
(6)当使用关键字___________作为函数返回类型时,该函数不返回任何值。
(7)已知数组 a 中有 n 个元素,下列语句将数组 a 中从下标 xl 开始的 k 个元素移动到从下
标 x2 开始的 k 个元素中,其中 0<=xl 20、include 21、espace std;
class pumpkin{
public:
pumpkin(){++count;}
~pumpkin(){--count;}
static void total_count(){
cout< 22、 pumpkin pl[10];
pumpkin::total_count();
return 0;
}
这个程序的输出结果是___________。
(10)有如下递归函数:
int Fun(int n){
if(n<=1) return 1;
___________
}
请补充完整,使得函数 Fun 能够正确计算形参 n 的阶乘。
(11)请在下列程序中的空格处填写正确的语句:
class Sample{
public:
Sample(){}
~Sa 23、mple(){}
void SetData(int data) { //将 Sample 类成员变量 data 设置成形参的值
___________
}
private: int data;
};
(12)有如下类定义,请将Sample类的拷贝构造函数补充完整。
class Sample{
public:
Sample(){)
~Sample() {if(p) delete p;)
Sample (const Sample& s){
___________
24、 }
void SetData(int data) {p=new int(data);}
private:
int*p;
};
(13)重载加法运算符“+”,其函数名是___________。
(14)有如下程序:
#include 25、 Wages(double CBase, double CBonus, double CTax):
base(CBase), bonus(CBonus), tax(CTax){}
double getPay()const; //返回应付工资额
Wages operator+(Wages w)const; //重载加法
};
double Wages::getPay()const{return base+bonus-tax;}
Wages Wages::operator+(Wages w)const{
return W 26、ages(base+w.base, bonus+w.bonus, tax+w.tax);
}
int main(){
Wages wl(2000,500,100),w2(5000,1000,300);
cout<<(wl+w2).getPay0< 27、strcpy(this->name, name);}
const char*getName()const {return name;}
virtual void call()const=0;
};
class Dog: public Pet{
public:
Dog(char*name):Pet(name){}
void call()const{cout<<"汪汪叫";}
};
class Cat:public Pet{
public:
Cat(char*name):Pet(name){}
void call()c 28、onst{cout<<"喵喵叫";}
};
int main(){
Pet*pet1=new Dog("哈克"), *pet2=new Cat("吉米");
cout< 29、
(6)B)
(7)A)
(11)A) (12)A)
(16)B) (17)B)
(21)C) (22)C)
(26)B) (27)C)
(31)A) (32)C)
(3)C)
(8)B)
(13)C)
(18)D)
(23)A)
(28)B)
(33)A)
(4)A)
(9)C)
(14)B)
(19)A)
(24)D)
(29)A)
(34)B)
(5)D)
(10)D
(15)D
(20)D
(25)C)
(30)D
(35)C)
二、填空题
(1)DBXEAYFZC
(2)单元
(3)过程
(4)逻辑设计
(5)分量
(6)联接
(7)设计
(8)选择结构(或条件结构)
(9)RunSQL
(10)动态
(11)64
(12)num
(13)f0+f1
(14)rs.eof
(15)fd
好好学 www.HH 资料最全的计算机等级考试网站
计算机等级考试频道网址:
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818