• 长沙
  • 株洲
  • 湘潭
您的位置首页 >> 互动长株潭 >> 教育培训

2008年9月全国计算机等级考试二级C++真题试卷及答案

2009/9/18 12:56 作者:刘大 点击:2168 评论:3 条 【
1)一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后
再依次出栈,则元素出栈的顺序是( )。

A)123456ABCDE

B)EDCBA54321

C)ABCDE12345 D)54321EDCBA
(2)下列叙述中正确的是( )。
A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D)循环队列中元素的个数是由队头指针和队尾指针共同决定
(3)在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。
A)O(n) B)O(n2)
C)O(log2n) D)O(nlog2n)
(4)下列叙述中正确的是( )。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间

(5)数据流图中带有箭头的线段表示的是( )。
A)控制流
C)模块调用
B)事件驱动
D)数据流

(6)在软件开发中,需求分析阶段可以使用的工具是( )。

A)N-S 图
C)PAD 图
B)DFD 图
D)程序流程图

(7)在面向对象方法中,不属于“对象”基本特点的是( )。

A)一致性
C)多态性
B)分类性
D)标识唯一性

(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

A)一对一
C)多对一
B)一对多
D)多对多

(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

A)人工管理阶段
C)数据库系统阶段
(10)有三个关系 R、S 和 T 如下:



由关系 R 和 S 通过运算得到关系 T,则所使用的运算为()。

A)笛卡尔积

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)在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编
译。这说明( )。

A)f()是基类的私有成员
C)派生类的继承方式为私有
B)f()是基类的保护成员
D)派生类的继承方式为保护

(14)下列关于运算符重载的叙述中,错误的是( )。
A)有的运算符可以作为非成员函数重载
B)所有的运算符都可以通过重载而被赋予新的含义
C)不得为重载的运算符函数的参数设置默认值
D)有的运算符只能作为成员函数重载
(15)下列关于模板的叙述中,错误的是( )。
A)调用模版函数时,在一定条件下可以省略模板实参
B)可以用 int、double 这样的类型修饰符来声明模版参数
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;
B)const int a=10;
C)const int*point=0;
D)const int*point=new int(10);
(19)有如下程序:
#include
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< return 0;
}
运行时的输出结果是( )。

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, 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);
(22)有如下程序:
#include
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

(23)下列选项中,与实现运行时多态性无关的是( )。
A)重载函数 B)虚函数 C)指针 D)引用
(24)下列运算符函数中,肯定不属于类 Value 的成员函数的是( )。

A)Value operator+(Value);
C)Value operator*(int);

B)Value operator-(Value, Value);
D)Value operator/(Value);

(25)下列模板声明中,有语法错误的是( )。
A)templateT fun(T x){return x;}
B)templateT fun(T x, int n){return x*n;}
C)templateT fun(T *p){return *p;}
D)templateT classA{T n;};
(26)在语句“cout<<'A';”中,cout 是( )。

A)类名
C)函数名
(27)有如下程序:
#include
using 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);


return 0:
}
运行时的输出结果是( )。
A)112444 B)11114444 C)121444 D)11314444
(28)有如下程序:
#include
using namespace std;
class MyClass{
public:
MyClass(int x):val(x){}
void Set(int x){val=x;}
void Print()const{cout<<"val="< 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

(29)在类声明中,紧跟在“public:”后声明的成员的访问权限是( )。

A)私有

B)公有

C)保护

D)默认

(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明
该基类成员的访问权限是( )。

A)公有或私有

B)私有

C)保护或私有

D)公有或保护


(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为( )。

A)私有继承

B)非私有继承

C)保护继承

D)公有继承

(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为( )。
A)派生类、成员对象类、基类
B)成员对象类、基类、派生类
C)基类、成员对象类、派生类
D)基类、派生类、成员对象类
(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:ut

D)ios_base:ut

(35)在一个抽象类中,一定包含有( )。
A)虚函数 B)纯虚函数

C)模板函数 D)重载函数
二、填空题(每空2分,共30分)

(1)对下列二叉树进行中序遍历的结果___________。

(2)按照软件测试的一般步骤,集成测试应在___________测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,___________支持软件开发的各个环节
的控制和管理。
(4)数据库设计包括概念设计、___________和物理设计。
(5)在二维表中,元组的___________不能再分成更小的数据项。
(6)当使用关键字___________作为函数返回类型时,该函数不返回任何值。
(7)已知数组 a 中有 n 个元素,下列语句将数组 a 中从下标 xl 开始的 k 个元素移动到从下
标 x2 开始的 k 个元素中,其中 0<=xl For (int i = xl+k-1; i>=xl; i--)
a[___________]=a;
(8)有如下程序:
#include
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< return 0:
}
程序的输出结果是___________。
(9)有如下程序:
#include
using namespace std;
class pumpkin{
public:
pumpkin(){++count;}
~pumpkin(){--count;}
static void total_count(){
cout< }
private:





static int count;
};
int pumpkin::count=0;
int main(){
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(){}
~Sample(){}
void SetData(int data) { //将 Sample 类成员变量 data 设置成形参的值
___________
}
private: int data;
};
(12)有如下类定义,请将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;
};
(13)重载加法运算符“+”,其函数名是___________。
(14)有如下程序:
#include
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:perator+(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< retun 0;
}
程序的输出结果是___________
(15)有如下程序:
#include
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)et(name){}
void call()const{cout<<"汪汪叫";}
};

class Cat:public Pet{
public:
Cat(char*name)et(name){}
void call()const{cout<<"喵喵叫";}
};

int main(){
Pet*pet1=new Dog("哈克"), *pet2=new Cat("吉米");
cout<getName();pet1->call(); cout< cout<getName();pet2->call(); cout< return 0;

2008 年 9 月二级 C++笔试试卷参考答案


一、选择题
(1)B)
(2)D)
(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
 

我来说两句

用户名          密码          验证码    

     

最新评论

  • 作者:米老鼠 (2009/9/18 13:26, 评分: 1楼 )

    我明天考二级C语言
    楼主传套题目上来
  • 作者:二月三十号 (2009/9/18 13:33, 评分: 2楼 )



      引用:
    我明天考二级C语言
    楼主传套题目上来
    米老鼠 发表于 2009-9-18 13:26

    ~~~米米也在呀~!!!
  • 作者:刘大 (2009/9/19 11:46, 评分: 3楼 )

    不晓得 你考的怎么样啦··
  • 共有3评论 首页 上一页 1 下一页 尾页

  • 长沙
  • 株洲
  • 湘潭
  • 湖南
  • 国内外

资讯

  • 要闻
  • 社会
  • 娱乐
  • 视点
  • 体育

活跃会员