全国2006年1月高等教育自学考试面向对象程序设计试题

合集下载

200601高等教育程序设计

200601高等教育程序设计

全国2006年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.面向对象程序设计中的数据隐藏指的是()A.输入数据必须输入保密口令B.数据经过加密处理C.对象内部数据和代码合并在一起D.对象内部数据结构的不可访问性2.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是()A.int Fun(int x){return x*x;}B.inline int Fun(int x){return x*x;}C.int inline Fun(int x){return x*x;}D.int Fun(int x){inline return x*x;}3.下面关于重载函数的叙述中正确的是()A.重载函数必须具有不同的返回值类型B.重载函数的形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数的函数名可以不同4.若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是()A.11B.0x11C.21D.0215.下列关于析构函数的描述中正确的是()A.析构函数可以重载B.析构函数可以是虚函数C.析构函数名与类名相同D.析构函数的返回类型为void6.下列关于纯虚函数的描述中,正确的是()A.纯虚函数是一种特殊的虚函数,它是个空函数B.具有纯虚函数的类称为虚基类C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D.具有纯虚函数的类不能创建类对象7.下列关于运算符重载的描述中,正确的是()A.可以改变运算符的目数B.可以改变运算符的优先级C.可以改变运算符的结合性D.可以改变运算符的功能8.要将类A说明是类B的虚基类,正确的描述是()A.class virtual B:public AB.class B:virtual public AC.virtual class B:public AD.class B:public A virtual9.下面关于静态成员的描述中,正确的是()A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值-第1 页共12 页D.静态数据成员不能通过类的对象访问10.假设Sample是个类,则语句“Sample a[2],*p[3];”调用构造函数的次数为()A.0 B.2C.3D.5二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

C++面向对象程序设计考试试卷(详细讲解)(1)

C++面向对象程序设计考试试卷(详细讲解)(1)

C++面向对象程序设计考试试卷(详细讲解)(1)C++面向对象程序设计考试试卷(详细讲解)一、单项选择题(共20题,每题1分,共20分)1、下列关于C++标识符的命名不合法的是 C 与C#一样A. PadB. name_1C. A#bcD. _a122、若有以下类型标识符定义:()Dint x=2; char w='a'; float y=23.45f; double z=45.6712;则表达式w*x+y-z的结果类型是A. floatB. charC. intD. double6、对重载函数形参的描述中,错误的是 D 重载是重点A. 参数的个数可能不同B. 参数的类型可能不同C. 参数的顺序可能不同D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同7、以下能正确定义数组并正确赋初值的语句是 DA. int N=5,b[N][N];B. int a[2]={{1},{3},{4},{5}};C. int c[2][]={{1,2},{3,4}};D. int d[3][2]={{1,2},{3,4}};8、下列给字符数组进行的初始化中,不正确的是 DA. char s1[]="abcd";B. char s2[3]={'x','y','\0'};C. char s3[]={'a','x','y','\0'};D. char s4[6]={"xyz","mnp"};9、通常的拷贝构造函数的参数是 CA.某个对象名 B.某个对象成员名C.某个对象的引用 D.某个对象的指针名10、关于构造函数特点的描述中,错误的是 AA. 定义构造函数必须指出类型(构造函数特点是无返回类型)B. 构造函数的名字与该类的类名相同C. 一个类中可定义0至多个构造函数(不写构造函数,系统会自动生成一个空的构造函数)D. 构造函数是一种成员函数11、下面程序的运行结果为 C#includeint add(int a,int b);void main(){extern int x,y;cout<<add(x,y)<<endl;< p="">}int x=20,y=5;int add(int a,int b){int s=a+b;return s;}A.20 B.5 C.25 D.编译会提示出错信息12、关于常成员的描述中,错误的是 BA. 常成员包含常数据成员和常成员函数两种B. 常数据成员必须是公有的C. 常数据成员要使用构造函数成员初始化列表进行初始化D. 常对象只能调用它的常成员函数,不能调用其它的成员函数13、关于友元函数的描述中,错误的是 BA. 友元函数不是成员函数B. 友元函数只能访问类中私有成员C. 友元函数破坏隐藏性,尽量少用D. 友元函数说明在类体内,使用关键字friend14、如果有int x,*p; float y,*q;则下面操作正确的是 CA.p=x B.p=qC.p=&x D.p=&y16、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 DA. 数组的长度B. 数组第一个元素的值C. 数组所有元素的值D.数组第一个元素的地址17、对于动态分配内存空间描述正确的是 DA.使用new运算符分配的内存空间的长度必需是常量B.delete运算符可以释放动态的存储空间和静态的存储空间C.由new分配的内存空间是不连续的D.delete运算符只能释放由new分配的动态存储空间18、能够释放对象所占资源的是() AA.析构函数 B.数据成员C.构造函数 D.静态成员函数19、虚函数的定义是在基类中进行的,定义时需要冠以关键字 CA.static B.frendC.virtual D.public20、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是) C A.strstream B.ostrstreamC.ofstream D.istrstream二、填空题(共9题16空,每空1分,共16分)1、函数重载时,编译系统会根据__形参的类型__ 或__形参的个数__ 来区分。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。

1.下列语句序列执行后,k 的值是( B )。

int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。

A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。

A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。

i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。

A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。

A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。

char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。

int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。

(完整版)面向对象程序设计试卷及答案

(完整版)面向对象程序设计试卷及答案

考试试卷A(答案)面向对象程序设计注意事项:1。

请考生按要求在试卷装订线内填写姓名、学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3。

不要在试卷上乱写乱画,不要在装订线内填写无关的内容.4。

满分100分,考试时间为120分钟。

一。

单项选择(本大题共10小题,每小题3分,共30分)1. C#中每个int类型的变量占用( B )个字节的内存。

(A)8 (B)4 (C)2 (D)12。

面向对象的特点是( A )(A)封装、继承、多态(B)抽象、封装、多态(C)抽象、继承、封装(D)抽象、多态、重载3。

C#控制台程序的主入口点是( C )(A) Page_Load函数(B)Run函数(C)Main函数(D)Form_Load函数4。

引用类型存储在( B )中。

(A)堆栈(B)堆内存(C)队列(D)列表5. 在C#中,表示一个字符串的变量应使用以下哪条语句定义( B )(A)CString str (B)string str(C)Dim str as string (D)char *str6。

在中,用来与数据源建立连接的对象是( A )。

(A)Connection对象(B)Command对象(C)DataAdapter对象(D)DataSet对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征.(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。

(A)1 (B)0 (C)2 (D)39. float类型的值可以隐式转换成( C )类型的值而保持值不被改变。

(A)char (B)long (C)double (D)int10。

在C#中,假设Class1是一个类,而IExample是一个接口,下面的( A )类声明是正确的。

(A)class Employee: Class1, IExample(B )class Employee : IExample , Class1(C )class Employee- Class1, IExample(D )class Employee: Class1/IExample二.判断题(本大题共5小题,每小题3分,共15分)1. C#中子类可以继承多个基类,也可以继承一个接口。

2006面向对象卷试题——

2006面向对象卷试题——

一、填空题(每题2分,共20分)1. 若y是x的引用,则对y的操作就是对_______的操作。

2. 执行________操作将释放由p所指向的动态分配的数组空间。

3. 以面向对象方法构造的系统,其基本单位是__________。

4. 每个对象都是所属类的一个__________。

5. 如果一个派生类只有一个惟一的基类,则这样的继承关系称为__________。

6.一个类的__________函数实现对该类对象的初始化功能。

7.一个类的__________函数通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。

8. 派生类的成员函数不能直接访问基类的 ______成员。

9. 当保护继承时,基类的公有成员和保护成员在派生类中成为保护成员,派生类对象不能直接访问基类的 ____成员。

10. 引进虚基类的根本目的是为了消除____________。

一、填空题(每题2分,共20分)1.x2. delete []p3. 对象4. 实例5. 单继承6. 构造7. 析构8.私有9任何10. 二义性二、单选题(每题2分,共20分)1. 函数重载是指()。

A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同2. 若用数组名作为函数调用的实参,传递给形参的是()。

A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数3. 采用重载函数的目的是()。

A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性4. 下列对引用的陈述中不正确的是()。

A. 每一个引用都是其所引用对象的别名,因此必须初始化B. 形式上针对引用的操作实际上作用于它所引用的对象C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行D. 不需要单独为引用分配存储空间5. 关于封装,下列说法中不正确的是()。

通信06 面向对象程序设计 考试参考答案(A卷)

通信06 面向对象程序设计 考试参考答案(A卷)
char Sex;
public:
int GetNum() { return Num;};
int GetAge() { return Age;};
Student(int Num0=1001, string Name0="张三", int Age0=20,char Sex0='1')
{
Num = Num0;
五、理解问答题(8分)
1.(3分,评分标准:前一份为1分,后一份为2分)
称为:虚函数。
作用:可以通过基类指针或引用来访问基类和派生类中的同名函数。
2.写出程序运行的结果。(3分,评分标准:正确给3分,格式不对扣1分)
25
10
3.(2分,评分标准:前一份为1分,后一份结果为1分)
程序能运行,其运行结果为:
}
int main()
{
Student s1,s2(1002,"李四",21,'1');
if (s1.GetAge()>s2.GetAge())
{
s1.display();
s2.display();
}
else
{
s2.display();
s1.display();
}
return 0;
}
2.答:三种继承的差异为:
(a)公用继承:基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。(2分)
(b)私有继承:基类的公用成员和保护成员在派生类中成了私有成员。其私有成员仍为基类私有。(3分)
(c)受保护的继承:基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。(3分)

2004级C++面向对象程序设计试题A参考答案

第 4页 共 4 页
{ hitpoint-=harm; if(hitpoint<0) hitpoint=0; } int GetHP() const {return hitpoint;} int GetDemage() const {return demage;} int GetDefense() const {return defense;} protected: int hitpoint; int demage; int defense; }; bool Monster::fight(Monster & other) { while(true) { attack(other); if(other.GetHP()<=0) return true; other.attack(*this); if(hitpoint<=0) return false; } }
一、单选题(共 10 分,每题 1 分) 1. 已知 f1 和 f2 是同一类中的两个成员函数,若 f1 的实现代码体内不能调用 f2,则最可能 的情况是: (本题有点问题,D 的情况也可能出现,如 f1 是常成员函数,而 f2 不是) (A) f1 和 f2 都是静态函数 (B) f1 是静态的,f2 不是 (C) f1 不是静态的,f2 是静态的 (D) f1 和 f2 都不是静态函数 2. 一个对象所占的内存空间中可以保存下面哪类数据? (A) 静态数据成员 (B) 内联函数代码 (C) 所有成员函数的入口地址 (D) 虚函数表的入口地址 3.下面关于 new 和 delete 操作符的说法,哪个是不正确的: (A) 使用 new 操作符,可以动态分配全局堆中的内存资源。 (B) 用 new 申请的数组,必须用 delete[] 释放。 (C) 用 new 申请的空间,即使不调用 delete 释放掉,当程序结束时也会自动释放掉。 (D) 执行语句 A * p=new A[100];时,类 A 的构造函数会被调用 100 次。 4. 下列哪种函数可以是虚函数: (A) 自定义的构造函数 (B) 拷贝构造函数 (C) 静态成员函数 (D) 析构函数 5.C++的最小编译单位是: (A) 工程中每个.cpp 和.h 文件 (B) 工程中每个.cpp 文件 (C) 工程中每个.h 文件 (D) 工程中所有文件 6.下面表达式中不可能作为左值(赋值运算符左侧)的是: (A) a=b (B) *p (C) f(a,b) (D) &a 7.在实现函数 A& f(A & obj) 时,下面的哪一个表达式可以出现在 return 语句中? (A) new A( ) (B) obj (C) &obj (D) new A(obj) 8.判断类 A 的两个对象 a1 与 a2 是否是同一个对象的方法是: (A) 利用调试器,查看 a1 与 a2 各成员数据的值是否相等 (B) 重载 == 运算符,用它来判断各成员数据的值是否相等。 (C) 判断这两个对象的地址值是否相等。 (D) 比较创建时使用的构造函数的实参是否相同。 9.已知 obj 是一个对象,下面哪一个表达式是不可能出现的? (A) obj.100 (B) !obj (C) obj++ (D) obj,100

计06 面向对象程序设计 考试参考答案(A卷)

2.在修改了程序的错误以后,回答以下问题:
(1)写出程序运行的结果。(3分,评分标准:正确给3分)
c1<c2
(2)如果删除程序中的第11、17、18、19行,则程序编译时,在什么位置会出错?为什么?(3分,评分标准:答对前一份给2分,答对后一份给1分)
在24行会出错。
因为:if (c1>c2)中c1和c2是两个对象,要进行运算,必须重载运算符“>”。
Box(float L=1.0, float W=1.0, float H=1.0)
{
Length = L;
Width = W;
Height = H;
}
};
int main()
{
Bo b1.GetVolume();
v2 = b2.GetVolume();
if (v1>v2)
cout<<v1<<" "<<v2<<endl;
else
cout<<v2<<" "<<v1<<endl;
return 0;
}
六、编程题(18分,评分标准:写出类Box得8分,编出main()函数得10分,注意:程序的所有等价写法同样给分)
#include <iostream.h>
class Box
{
private:
float Length,Width,Height;
public:
float GetVolume() { return Length*Width*Height;};
60
25
60
25
3.程序3(10分,评分标准:前面con和后面des的输出每行0.5分,中间数字输出每行1分)

c++_面向对象程序设计考试试题1

考试试题纸(B 卷)《面向对象程序设计》课程计算机院(系)网络工程、计算机科学与技术班级考试时量 100分钟学生人数命题教师系主任交题时间:年月日考试时间:年月日1.一、简答题(每小题5分,共20分)1.什么是类?什么是对象?对象与类的关系是什么?2.构造函数和析构函数的主要作用是什么?他们各有什么特性?3.派生类构造函数和析构函数的执行顺序是怎样的?4.什么是虚函数?虚函数与函数重载有哪些相同点和不同点?2.二、选择题(每小题2分,共20分)1.假设已经有定义char *const pName=”Student”;下面的语句正确的是。

A.pName[3]=’t’; B. pName=”score”;C. pName=new char[5];D. pName=new char(‘p’);2.在下面有关对构造函数的描述中,正确的是。

A. 构造函数可以带有返回值B. 构造函数的名字与类名完全相同C. 构造函数必须带有参数4.构造函数必须定义,不能缺省3.在下面有关析构函数特征的描述中,错误的是。

A. 一个类中只能定义一个析构函数B. 析构函数名与类名完全相同C. 析构函数不能指定返回类型D. 析构函数不能带有参数4.假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为。

A. 3B. 4C. 6D. 95. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为。

A. AB operator+(AB &a,AB &b)B. AB operator+(AB &a)C. operator+(AB a)D. AB & operator+( )6. 假设定义了函数模版:template<class T>T max(T x, T y){ return (x>y)?x:y; }并定义了:int i;char c;那么下列错误的调用该模版的是。

面向对象程序设计复习题及参考答案

网络教育课程考试复习题及参考答案面向对象程序设计一、填空题:1.创建类的对象时,使用运算符___________给对象分配内存空间。

2.Java通过来区分重载函数。

3.在子类中使用保留字_ _可调用被子类覆盖的父类中的方法。

4.使用保留字可以从一个构造方法中调用同一个类的另一个构造方法。

5.抽象类用修饰符定义。

6.类的数据成员的访问权限修饰符一般为7.访问权限修饰符按照访问权限的大小从大到小分别为、、、。

8.定义类的构造方法不能有,其名称与名相同。

9.抽象方法是的特征是。

10.Java中的所有异常都是从继承来的。

11.对象引用中存储的内容是。

12.下列程序段执行后,String str1 = new String("Java");String str2 = new String("Java");if (str1.equals(str2)) {System.out.println("They are equal");} else {System.out.println("They are not equal");}输出结果为:。

13.下面循环执行后的sun值为int count =0, sum = 0;while ( count <10 ) {sum += count;count ++;}14.Java语言中关键字_ _表示双精度类型。

15.保留字_ _用于导入包中的类到程序中,供程序中使用。

16.Java语言中继承是用保留字表示。

17.面向对象程序设计中,类是指。

18.对象包含和。

19.若有类定义:class B extends A{…}则类B是类A的_ 。

20.Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_ 块来捕获和处理异常。

21.多态是指。

22.声明常量时使用修饰符。

23.Java中异常抛出使用保留字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国2006年1月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.面向对象程序设计中的数据隐藏指的是()A.输入数据必须输入保密口令B.数据经过加密处理C.对象内部数据和代码合并在一起D.对象内部数据结构的不可访问性2.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是()A.int Fun(int x){return x*x;}B.inline int Fun(int x){return x*x;}C.int inline Fun(int x){return x*x;}D.int Fun(int x){inline return x*x;}3.下面关于重载函数的叙述中正确的是()A.重载函数必须具有不同的返回值类型B.重载函数的形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数的函数名可以不同4.若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是()A.11B.0x11C.21D.0215.下列关于析构函数的描述中正确的是()A.析构函数可以重载B.析构函数可以是虚函数C.析构函数名与类名相同D.析构函数的返回类型为void6.下列关于纯虚函数的描述中,正确的是()A.纯虚函数是一种特殊的虚函数,它是个空函数B.具有纯虚函数的类称为虚基类C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D.具有纯虚函数的类不能创建类对象7.下列关于运算符重载的描述中,正确的是()A.可以改变运算符的目数B.可以改变运算符的优先级C.可以改变运算符的结合性D.可以改变运算符的功能8.要将类A说明是类B的虚基类,正确的描述是()A.class virtual B:public AB.class B:virtual public AC.virtual class B:public AD.class B:public A virtual9.下面关于静态成员的描述中,正确的是()A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象访问10.假设Sample是个类,则语句“Sample a[2],*p[3];”调用构造函数的次数为()A.0 B.2C.3D.5二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

错填、不填均无分。

11.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成________________。

12.在C++中要创建一个文件输入流对象fin,同时该对象打开文件“Test.txt”用于输入,则正确的声明语句是________________。

13.如果要把类B的成员函数void fun( )说明为类A的友元函数,则应在类A中加入语句________________。

14.A是一个类,已有语句“A* p;p=new A[10];”。

要释放由p指向的动态空间,正确的语句应该是________________。

15.如果一个引用不是用作函数参数或返回值,则在说明该引用时必须对它进行________________。

16.如果要把PI声明为值为 3.14159类型为双精度实数的符号常量,该声明语句是________________。

17.在C++中函数原型不但要标识一个函数的返回类型,同时还要标识该函数的________________。

18.类A的后置自增运算符++以成员函数的形式进行重载,其在类内的函数声明是________________。

19.动态联编是通过基类类型的指针或引用调用________________函数来完成。

20.基类的保护成员通过私有派生其在派生类中的访问权限是________________。

三、改错题(本大题共5小题,每小题2分,共10分)21.下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。

class Sample{private:int data;Sample( ){data=10;}public:Sample(int d){data=d;}int operator int( ){return data;}};22.下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。

#include<iostream.h>class Point{int X,Y;public:Point( ){X=0;Y=0;}Point(int x=0,int y=0){X=x;Y=y;}void display( ){cout<<X<<","<<Y<<endl;}};23.下面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。

#include<iostream.h>template<class T>void Swap(T& a,T& b){T t;t=a,a=b,b=t;}void main( ){int a=3,b=4;char str1[5]=”abcd”,str2[5]=”hijk”;Swap(a,b);Swap(str1,str2);cout<<”a=”<<a<<”,b=”<<b<<endl;cout<<”str1=”<<str1<<”,str2=”<<str2<<endl;}24.下面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。

#include<iostream.h>class Base{public:virtual void fun( ){cout<<"Base function"<<endl;}};class Derived:public Base{public:void fun( ){cout<<"Derived function"<<endl;}};void main( ){Base b;Derived* p=&b;b.fun( );p->fun( );}25.下面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。

#include<iostream.h>class A{int x;protected:int y;public:A(int xx,int yy){x=xx; y=yy;}};class B:public A{public:B(int a,int b):A(a,b){}void display( ){cout<<x<<′,′<<y<<endl;}};void main( ){B b(5,10);b.display( );}四、完成程序题(本大题共5小题,每小题4分,共20分)根据题目要求,完成程序填空。

26.请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为: 2,14,3#include<iostream.h>class A{int a;public:A(int i=0){a=i;}int Geta( ){return a;}};class B{A a;int b;public:B(int i=0,int j=0): ①{}void display( ){cout<<a.Geta()<<′,′<<b<<endl;}};void main( ){B b[2]={B(1,2),B(3,4)};for(int i=0;i<2;i++)②;}27.下面程序中A是抽象类。

请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:B1 calledB2 called#include<iostream.h>class A{public:①;};class B1:public A{public:void display( ){cout<<”B1 called”<<endl;}};class B2:public A{public:void display( ){cout<<”B2 called”<<endl;}};void show(②){p->display( );}void main( ){B1 b1;B2 b2;A* p[2]={&b1,&b2};for(int i=0;i<2;i++)show(p[i]);}28.请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:Name:王小明Grade:90#include<iostream.h>#include<string.h>class Person{char name[20];public:Person(char* s){strcpy(name,s);}void display( ){cout<<”Name:”<<name<<endl;}};class Student:public Person{int grade;public:Student(char* s, int g): ①{grade=g;}void display( ){②;cout<<”Grade:”<<grade<<endl;}};void main( ){Student s(“王小明”,90);s.display( );}29.请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为5。

#include<iostream.h>class Integer{int x;public:Integer(int a=0){x=a;}void display( ){cout<<x<<endl;}①;};Integer Max(Integer a,Integer b){if(②)return a;return b;}void main( ){Integer a(3),b(5),c;c=Max(a,b);c.display( );}30.请在下面的横线处填上适当内容,以使类的定义完整。

相关文档
最新文档