Board logo

标题: 2008年9月全国计算机等级考试二级C++真题试卷及答案 [打印本页]

作者: 刘大    时间: 2009-9-18 12:56     标题: 2008年9月全国计算机等级考试二级C++真题试卷及答案

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< 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="<=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=xl; i--) a[___________]=a[i]; (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< using namespace std; class pumpkin{ public: pumpkin(){++count;} ~pumpkin(){--count;} static void total_count(){ cout< 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< 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<getName();pet2->call(); cout< 作者: 米老鼠    时间: 2009-9-18 13:26

我明天考二级C语言
楼主传套题目上来
作者: 二月三十号    时间: 2009-9-18 13:33

我明天考二级C语言
楼主传套题目上来
米老鼠 发表于 2009-9-18 13:26
~~~米米也在呀~!!!
作者: 刘大    时间: 2009-9-19 11:46

不晓得 你考的怎么样啦··




欢迎光临 长株潭论坛 (http://bbs.changzhutan.com/) Powered by Discuz! 7.0.0