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