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

更新时间:2023-07-18 20:11:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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<<SUM< 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="<<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

(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<X2<N,X2+K<N,请将下列语句补充完整。 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<<X<<','< return 0: }

程序的输出结果是___________。 (9)有如下程序: #include

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; }

这个程序的输出结果是___________。 (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<<END1; cout<getName();pet2->call(); cout<<END1; 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年3月计算机等级考试二级C++语言真题及参考答案 一、选择题(每小题2分,共70分)

(1)下列叙述中正确的是

A)栈是“先进先出”的线性表 B)队列是“先进后出”的线性表 C)循环队列是非线性结构

D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列

D)二叉树

(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是 A)10

B)8 C)6 D)4

(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序

(5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译程序 B)操作系统 C)教务管理系统 D)汇编程序

(6)下面叙述中错误的是

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利他哦高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度 D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护

D)数据库管理员培训 (9)有两个关系R, S如下:

由关系R通过运算得到关系S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接

(10)将E-R图转换为关系模式时,实体和联系都可以表示为 A)属性 B)键 C)关系 D)域

(11)对C++编译器区分重载函数无任何意义的信息是 A)参数类型 B)参数个数 C)返回值类型

D)常成员函数关键字coast

(12)有如下类定义和变量定义: class A{ publie:

A(){data=0;} ~A(){}

int GetData ( ) coast { return data;} void SetData(int n) {data=n;} private: int data; };

ccnst A a; A b;

下列函数调用中错误的是 A)a .GetData(); B)a .SetData(10); C)b .GetData();

D)b .SetData(10); (13)有如下类定义和变量定义: class Parents{ public:

int publicuata; private:

int privateData; };

class ChildA:public Parents{/*类体略*/}; class ChildB:private Parents{/*类体略*/); ChildA a; ChildBb;

下列语句中正确的是

A)cout<<a.publicData <<endl ; B)cout<<a.privateData <<endl ; C)cout<<b.publicData <<endl ;

D)cout<<b.privateData <<endl ; (14)运算符重载时不需要保持的性质是 A)操作数个数 B)操作数类型 C)优先级 D)结合性

(15)下列关于函数模板的描述中,错误的是

A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准 B)对于常规参数所对应的模板实参,任何情况下都不能省略

C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参 D)模板参数表不能为空

(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是 A)ifstream fin=ifstream.open(“file.dat”); B)ifstream*fir.=new ifstream(“file.dat”); C)ifstream fin; fin.open(“file.dat”);

D)ifstream *fin=new ifstream( );fin一>open(“file.dat”); (17)下列描述中,不属于面向对象思想主要特征的是 A)封装性 B)跨平台性 C)继承性 D)多态性 (18)有如下程序段: Tnt i=4;int j=l; int main(){ int i=8,j=i; cout<<i<<j<<endl; }

运行时的输出结果是 A)44 B)41 C)88 D)81

(19)有如下程序段: int i=5;

while(int i=0){cout《'*';i--;} 运行时输出“*”的个数是 A)0 B)1 C)5 D)无穷

(20)己知有数组定义 char a[3][4];

下列表达式中错误的是 A)a[2]=“WIN”

B)strcpy(a[2],“WIN”) C)a [2][3]='W'

D)a[0][1]=a[0][1]

(21)已知函数fun的原型为 int fun(int,int,int); 下列重载函数原型中错误的是 A)char fun(int,int);

B)double fun(int,int,double); C)int fun(int,char*);

D)float fun (int, int, int); (22)建立一个类对象时,系统自动调用 A)析构函数 B)构造函数 C)静态函数 D)友元函数

(23)通过派生类的对象可直接访问其 A)公有继承基类的公有成员 B)公有继承基类的私有成员 C)私有继承基类的公有成员 D)私有继承基类的私有成员

(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为

A)a .orerator++(1) B)operator++(a) C)operator++(a,l) D)a.operator++( )

(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是 A)( ) B)[ ] C)< > D){ }

(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为

A)ios_base::in

B)ios_base::in|ios_base::out C)ios_base::out

D)ios_base::in&ios_base::out

(27)有如下程序: #include<iostream> #include<cstring> using namespace std; class XCD{ char* a; int b; public:

XCD(char* aa, int bb){ a=new char[strlen(aa)+1]; strcpty(a,aa); b=bb; }

Char* Geta (){return a;) int Getb(){ return b;} };

int main(){

char *pl=“abcd”,*p2=“weirong”; int dl=6, d2=8;

XCD x(pl,dl),Y(p2,d2);

cout<<strien (x .Geta())+y. Getb()+endl; return 0; }

运行时的输出结果是 A)12 B)16 C)14 D)11

(28)有如下程序: #include<iostream> #include<cstring>

using namespace std; class XCF{ int a; public:

XCF(int aa=0):a (aa){cout<<“1”;} XCF(XCF& x){a=x .a; cout<<“2”;) ~XCF(){cout<<a;}

int Geta(){return a;} };

int main(){

XCF dl(5),d7 (dl); XCF *pd=new XCF(8); cout<<pd一>Geta(); delete pd; return 0; }

运行时的输出结果是 A)121SS88 B)12188SS C)12185

D)128512

(29)已知类MyClass声明如下: class MyClass{ int n; public;

MyClass(int k):n(k){}

int getValue()const{return n;} };

在下列数组定义中正确的是 A)MyClass x1[2];

B)MyClass x2[2]={new MyClass(1),new MyClass(2)}; C)MyClass *x3[2];

D)MyClass *x4[2]={MyClass(1),MyClass(2)}; (30)有如下程序: #include<iostream> using namespace std; class AA{ lilt k; protected: int n;

void setK(int k){ this->k=k;} public:

void setN(int n){ this->n=n;}

};

class BB: public }{/*类体略*/}; int main(){

BB x_ ; //1 x .n=1; //2 x.setN (2); //3 x.k=3; //4 x .setK(4); return 0; }

在标注号码的四条语句中正确的是 A)1 B)2 C)3 D)4

(31)有如下类定义: class XX{ int xx; public:

XX():xx(0){cout<<' A';}

XX(int n):xx ( n){tout<<' B';} };

Class YY:public XX{ Int yy; public:

YY():yy ( 0){cout+yy;}

YY(int n):XX(n+1),yy(n){cout<<yy;}

YY (int m, int n):XX (m),yy(n){cout<<yy;} };

下列选项中,输出结果为A0的语句是 A)YY y1(0,0); B)YY y2(1); C)YY y3(0); D)YY y4;

(32)有如下程序: #include<iostream> Using namespace std; class A{ public:

virtual void f(){cout+1;} void g(){cout<<2;} };

class B:public A{

public:

virtual void f(){cout<<3;} void g(){ecut<<4;} };

void show(A &a){a.f();a.g( );} int main(){ B b;

show(b); return 0; }

运行时的输出结果是 A)12 B)34 C)14 D)32

(33)有如下程序: #include<iostream> using namespace std; class Pair{ int m; int n; public:

Pair(int i,int j):m(i),n(j){}

boot operator >(pair p)const; //须在类体外给出定义 };

int main(){

Pair Al(3,4),p2(4,3);p3(4,5);

Cout<<(pl>p2)<<(P2>P1)<<(p2>p3)<<(p3>p2); return 0; }

运算符函数。operator>的功能是比较两个Pair对象的大小,当左边对象大时,返回true,否则返回false。比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较n,n大者为大。程序输出0101,下列对运算符重载函数的正确定义是 A)bool Pair::operator>(Pair p)const

{if (m!=p.m) return m>p.m; return n>p.n;} B)bool Pair:;operator>(Pair p)

{if (m!=p.m) return m>p.m; return n>p.n;} C)bool Pair::operator>(Pair p)const {if (m>p.m) return true; return n>p.n;} D)bool Pair:;operator>(Pair p)

{if (m>p.m) return true; return n>p.n;}

(34)假定下列语句都是程序运行后首次执行的输出语句,其中输出结果与另外三条语句不同的语句是

A)cout<<setfill('*’)<<123<<setw(9)<<321;

B)cout<<setfill(‘*’)<<setw(6)<<left<<123<<setw(6)<<right<<321; C)cout<<123<<setfill(‘*’)<<setw(6)<<321;

D)cout<<setfill(‘*’)<<SetW(9)<<left<<123<<321; (35)有如下程序: #include<iostream> using namespace std; class ONE{ int c; public:

ONE():c(0){cout<<1;}

ONE(int n):c (n){cout<<2;} };

class TWO{ ONE onel; ONE one2; public:

TWO(int m):one2(m){cout<<3;} };

int main()t TWO t(4) return 0 }

运行时的输出结果是 A)3 B)23 C)123 D)213

二、填空题(每空2分,共30分)

(1)假设用一个长度为50的数组(数组元索的下标从0到49)作为栈的存化空间,栈底指针bottom指间 栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有【1】 个元素。

(2)软件测试可分为白盒测试和黑盒测试。基本路径测试属于【2】测试。 (3)符合结构化原则的三种基本控制结构是:选择结构、循环结构和【3】。 (4)数据库系统的核心是【4】。

(5)在E-K图中,图形包括矩形框、菱形框、椭圆框。其中表示实体联系的是【5】框。

(6)有如下程序段: int x=1,Y=2,z=3; x=x^z; y=y^z; z=x^y;

cout<<x<<y<<z;

执行这个程序段的输出是【6】。 (7)有如下程序段:

fer(int i=1; i<=50;i++){ if(i%3 != 0) continue; else

if(i%5!=0) continue;

tout<<i<<“,”; }

执行这个程序段的输出是【7】。 (8)有如下程序段:

Char c [20]=“examination”; c[4]=0;

cout<<c<<endl;

执行这个程序段的输出是【8】。

(9)下面的函数利用递归实现了求1+2+3+ +n的功能: int sum(int n){ if(n==0) return 0; else

return n+sum(n-1); }

在执行sum(10)的过程中,递归调用sum函数的次数是【9】。 (10)非成员函数应该声明为类【10】函数才能访问该类的私有成员。 (11)有如下程序: #include<iostream> using namespace std; class Monitor{ public:

Monitor(char t):type (t){} void print( ) const

{cout<<“The type of monitor is”<<type<<endl;} private: char type;

};

class Computer{ public:

Computer(int i,char c): 【11】{} void Print()const

{cout<<“The computer is”<<id<<endl;mon.Print();} private: int id;

Monitor mon; };

const Computer myComputer(101,'B‘); myComputer .Print(); return 0; }

请将程序补充完整,使程序在运行时输出: The computer is 101

'The type of monitor i.s 8

(12)有如下程序: #include <iostream> using namespace std class Animal{ public:

virtual char* getType()const { return “Animal”;} virtual char* getVoice()const { return “Voice”;} };

Class Dog : public Animal { public:

char* getType ( ) const {return “Dog”;} char* getVoice ( ) const {return “Woof”} };

void type(Animal& a) {cout<<a.getType();} void speak(Animal a) {cout<<a.getVoice();} int main( ) {

Dog d; type (d);cout<<“ speak”;speak(d);cout<<endi; return 0; }

运行时的输出结果是【12】。 (13)补充完整下面的类定义: const double PI=3 .14;

class Circle{ //圆形物体的抽象基类 protected:

double r; //半径 public:

Circle(double radius=0):r(radius){} 【13】;//计算圆形物体表面积的纯虚函数声明 };

class Cylinder:public Circle { //圆柱体类 double h; //高度 public:

Cylindr(double radius=0, doubli height=0): Circle(radius),h (height){}

Virtual double Area() { //计算圆柱体的表面积 return 2*PI*r*(r+h); }

};

(14)补充完整下面的类定义: class XCH{ char* a; public:

XCH(char* as) { //构造函数 a=new char[strlen(aa)+1]; strcpy(a,aa); }

XCH& operator=(const XCH& x) //重载赋值函数 Delele []a;

A=new char[strlen(x.a)+l]; strcpy(a, x .a) 【14】; }

~XCH() {delete []a;} };

(15)补充完整下面的模板定义:

template<class Type> //Type为类型参数

class Xtwo{ //由两个Type类型的数据成员构成的模板类 Type a; Type b; public:

Xtwe(Type aa=0, Type bb=0):a(aa),b(bb){} int Ccmpare (){//比较a和b的大小 if (a>b)returm 1;

else if(a==b) return 0; else return -1; }

Type Snm() {return a+b;} //返回a和b之和

Type Mult(); //函数声明,返回a和b之乘积 };

Template<class Type>

【15】::Mult(){return a*b;} //Mult 函数的类外定义

参考 答案 一、 选择题:

(1)D (2)A (3)C (4)D (5)C (6)A (7)B (8)A (9)B (10)C (11)A (12)D (13)B (14)B (15)C (16)D (17)A (18)B (19) B (20)C (21)B (22)B (23)A (24)D (25)B (26)A (27)A (28)A (29)C (30)D (31)C (32)A (33)A (34)C (35)D

二、填空题 (1)19 (2)白盒 (3)顺序结构 (4)数据库管理系统 (5)菱形 (6)100

(7)Line1.x1 或 Line1.x2 (8)Image1.Left (9)KeyAscii (10)Combo1.Text

(11)Input (12)ch

(13)Len(mystr) (14)1 (15)a(k)

2010年3月计算机等级考试二级C++笔试试题

一、选择题(每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是

A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n) (2)算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量

C)算法程序中的语句或指令条数

D)算法在执行过程中所需要的基本运算次数

(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是 A)编辑软件 B)操作系统 C)教务管理系统

本文来源:https://www.bwwdw.com/article/0vp1.html

Top