文档库 最新最全的文档下载
当前位置:文档库 › c++多态性相关习题

c++多态性相关习题

c++多态性相关习题
c++多态性相关习题

多态性

10.2 典型例题分析与解答

例题1:指出下列对定义重载函数的要求中,哪些是错误的提法。

A.要求参数的个数不同。 B.要求参数中至少有一个类型不同。

C.求函数的返回值不同。 D. 要求参数的个数相同时,参数类型不同。答案:C

例题3:下面关于友元的描述中,错误的是()。

A. 友元函数可以访问该类的私有数据成员

B. 一个类的友元类中的成员函数都是这个类的友元函数

C. 友元可以提高程序的运行效率

D. 类与类之间的友元关系可以继承

答案:D

例题4:下述静态成员的特性中,()是错误的。

A. 静态成员函数不能利用this指针

B. 静态数据成员要在类体外进行初始化

C. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符

D. 静态数据成员不是所有对象所共有的

答案:D

例题5:关于虚函数的描述中,()是正确的。

A. 虚函数是一个静态成员函数

B. 虚函数是一个非成员函数

C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义

D. 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型

参考答案:D

例题11:分析下列程序的输出结果。

#include

class A{

public:

A() { cout<<"A's cons."<

virtual ~A() { cout<<"A's des."<

};

class B : public A{

public:

B() { f(); cout<<"B's cons."<

~B() { cout<<"B's des."<

class C : public B{

public:

C() { cout<<"C's cons."<

void f() { cout<<"C's f()."<

void main()

{ A *a=new C;

a->g();

delete a;

}

运行结果:

A's cons.

A's f().

B's cons.

C's cons.

C's f().

C's des.

B's des.

A's des.

10.3 教材习题解答

1.选择题

(1)下列关于动态联编的描述中,错误的是()。 A.动态联编是以虚函数为基础

B.动态联编是运行时确定所调用的函数代码的

C.动态联编调用函数操作是指向对象的指针或对象引用

D.动态联编是在编译时确定操作函数的

答案:D

(2)关于虚函数的描述中,正确的是()。

A.虚函数是一个静态成员函数

B.虚函数是一个非成员函数

C.虚函数即可以在函数说明定义,也可以在函数实现时定义

D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型答案:D

(3)下面4个选项中,()是用来声明虚函数的。

A.virtual B.public C.using D.false

答案:A

(4)编译时的多态性可以通过使用( )获得。

A.虚函数和指针 B.重载函数和析构函数 C.虚函数和对象 D.虚函数和引用

答案:A

(5)关于纯虚函数和抽象类的描述中,错误的是()。

A.纯虚函数是一种特殊的虚函数,它没有具体的实现

B.抽象类是指具体纯虚函数的类

C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类

D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

答案:B

(6)下列描述中,()是抽象类的特征。

A.可以说明虚函数 B.可以进行构造函数重载 C.可以定义友元函数 D.不能说明其对象答案:D

(7)以下()成员函数表示虚函数。

A.virtual int vf(int); B.void vf(int)=0;

C.virtual void vf()=0; D.virtual void vf(int) { };

答案:D

(8)如果一个类至少有一个纯虚函数,那么就称该类为( A )。

A.抽象类 B.虚函数 C.派生类 D.以上都不对

答案:A

(9)要实现动态联编,必须通过()调用虚函数。

A.对象指针 B.成员名限定 C.对象名 D.派生类名答案:A

(10)下面描述中,正确的是(A )。

A.virtual可以用来声明虚函数

B.含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类

C.即使基类的构造函数没有参数,派生类也必须建立构造函数

D.静态数据成员可以通过成员初始化列表来初始化

答案:A

2.什么叫做多态性?在C++语言中是如何实现多态的?

答:多态是指同样的消息被不同类型的对象接收时导致完全不同的行为,是对类的特定成员函数的再抽象.c十+支持的多态有多种类型.重载(包括函数重载和运算符重载)和虚函数是其中主要的方式.

3.什么叫做抽象类?抽象类有何作用?抽象类的派生类是否一定要给出纯虚函数?

答:带有纯虚函数的类是抽象类.抽象类的主要作用是通过它为一个类族建立一个公共的接口.使它们能够更有效地发挥多态特性。抽象类声明了一组派生类共同操作接口的通用语义.面接口的完整实现,即纯虚函数的函数体,要由派生类自己给出.但抽象类的派生类并非一定要给出纯虚函数的实现.如果派生类没有给出纯虚函数的实现,这个派生类仍然是一个抽象类.

4.声明一个参数为整型、无返回值、名为fun1的虚函数。

答: virtual void fnl(int);

5.在C++语言中,能否声明虚构造函数?为什么?能否声明虚析构函数?有何用途?

答:在C++-中不能声明虚构造函数.多态是不同的对象对同一消息有不同的行为特性.虚函数作为运行过程中多态的基础,主要是针对对象的,面构造函数是在对盘产生之前运行的,因此虚构造函数是没有童义的.在C++中可以声明虚析构函数.析构函数的功能是在该类对象消亡之前进行一些必要的清理工作,如果一个类的析构函数是虚函数,那么,由它派生而来的所有子类的析构函数也是虚函数.析构函数设置为虚函数之后,在使用指针引用时可以动态联编,实理运行时的多态,保证使用基类的指针就能够谓用适当的析构函数指针对不同的对象进行清理工作.

10.声明一个Shape抽象类,在此基础上派生出Rectangle和Circle类,二者都有GetArea( )函数计算对象的面积,GetPerim( )函数计算对象的周长。

解答:

#include

#include

class shape

{ public:

virtual void getarea()=0;

virtual void getperim()=0;

};

class rectangle:public shape

{ int a,b,c;

double s,p;

public:

rectangle(int a1,int b1,int c1) {a=a1;b=b1;c=c1;}

void getperim()

{ p=a+b+c; cout<<"周长 "<

void getarea()

{ p=(a+b+c)/2.0;

s=sqrt(p*(p-a)*(p-b)*(p-c));

cout<<"面积"<

}

};

class circle :public shape

{ float r,s,p;

public:

circle(float r1) {r=r1;}

void getperim() { p=2*r*3.1415926;cout<<"周长 "<

void getarea() { s=r*r*3.1415926; cout<<"面积"<

void show(shape *p)

{ p->getarea();

p->getperim();

}

void main()

{ shape *p;

rectangle a(3,4,5);

circle b(10);

p=&a; show(p);

p=&b; show(p);

}

10.4 补充习题

(6)有如下类的定义。空格处的语句是()。

class MyClass

{public:

MyClass(int a = 0, int b = 0){ X = a;Y = b; }

void Change() const {X -= 10; Y += 10; }

private:

() int X, Y;

};

A. static B. const C. mutable D.不需要填入内容

(7)编译时的多态性可以通过使用()获得。

A.虚函数和指针B.重载函数和析构函数 C.虚函数和对象 D.虚函数和引用2.填空

(1).单目运算符作为类成员函数重载时形参;双目运算符作为重载时需声明其右操作数,作为重载时需声明全部操作数。

10.根据给定的程序执行结果,将下列程序补充完整。

#include

class Base

{public:

Base(int i) {b=i;}

(1)

protected:

int b;

};

class Derive1:public Base

{public:

(2)

void Print(){cout<<"Derive1's Print() called."<

class Derive2:public Base

{(3)

};

void fun((4)){ obj->Print();}

void main()

{ (5)

fun(d1);

fun(d2);

}

程序的执行结果如下:Derive1's Print() called. Derive2's Print() called.

#include class Base

{public:

Base(int i) {b=i;}

virtual void Print(){}; protected:

int b;

};

class Derive1:public Base

{public:

Derive1():Base(1){};

void Print(){cout<<"Derive1's Print() called."<

class Derive2:public Base

{public:

Derive2():Base(1){};

void Print(){cout<<"Derive2's Print() called."<

void fun(Base *obj){obj->Print();}

void main()

{Base *d1=new Derive1;

Base *d2=new Derive2;

fun(d1); fun(d2); }

Java练习题(试卷)

Java 程序设计练习题(1) 一、单项选择题 1.下面( B )是合法的 Java 标识符。 A、#_pound B、_underscore C、5Interstate D 、 class 2.下面( D )赋值语句不会出现编译警告或错误。 A、float f=1.3; B、char c="a"; C、byte b=257; D、int i=10; 3.编译一个定义了两个类和三个方法的 Java 源程序文件,总共会产生( D )个字节码文件。 A、5 个字节码文件,以“.java”为扩展名 B、2 个字节码文件,以“.java”为扩展名 C、5 个字节码文件,以“.class”为扩展名 D、2 个字节码文件,以“.class”为扩展名4.有关类的说法,正确的是( B )。 A、类具有封装性,所以类的数据是不能被访问的 B、类具有封装性,但可以通过类的公共接口访问类中的数据 C、声明一个类时,必须使用 public 修饰符 D、每个类中必须有 main 方法,否则程序无法运行 5.执行完下面程序片段后,( B )的结论是正确的。 int a, b, c; a = 1; b = 2; c = (a + b > 3 ? a++ : b++); A、a 的值是 2,b 的值是 3 B、a 的值是 1,b 的值是 3 C、a 的值是 1,b 的值是 2 D、c 的值是 false 6.将类的成员的访问权限设置为默认的,则该成员能被( A )。 A、同一包中的类访问 B、其他包中的类访问 C、所有的类访问 D、所有的类的子类访问 7.下面的方法重载,正确的是( C )。 A、int fun(int a, float b) { } B、float fun(int a, float b) { } float fun(int a, float b) { } float fun(int x, float y) { } C、float fun(float a) { } D、float fun1(int a, float b) { } float fun(float a, float b) { } float fun2(int a, float b) { } 8.下面关于继承的说法,正确的是( D )。 A、超类的对象就是子类的对象 B、一个类可以有几个超类 C、一个类只能有一个子类 D、一个类只能有一个超类 9.下面关于多态性的说法,正确的是( C )。 A、一个类中不能有同名的方法

第八章 群体遗传学(答案)

第八章群体遗传学(答案) 一、选择题 (一)单项选择题 *1. 基因库是: A.一个体的全部遗传信息B.一孟德尔群体的全部遗传信息C.所有生物个体的全部遗传信息D.所有同种生物个体的全部遗传信息E.一细胞内的全部遗传信息 2. 一个有性生殖群体所含的全部遗传信息称为: A.基因组B.基因文库C.基因库D.基因频率 E.基因型频率 *3. 一个遗传不平衡的群体随机交配()代后可达到遗传平衡。 A.1代B.2代C.2代以上D.无数代E.以上都不对 4. 在10000人组成的群体中,M型血有3600人,N型血有l600人.MN型血有4800人,该群体是: A.非遗传平衡群体B.遗传平衡群体C.χ2检验后,才能判定 D.无法判定 E. 以上都不对 *5.遗传平衡定律适合: A.常染色体上的一对等位基因B.常染色体上的复等位基因C.X-连锁基因D.A+B E.A+B+C *6.不影响遗传平衡的因素是: A.群体的大小B.群体中个体的寿命C.群体中个体的大规模迁移 D.群体中选择性交配E.选择 7.已知群体中基因型BB、Bb和bb的频率分别为40%,50%和10%,b基因的频率为:A.0.65 B.0.45 C.0.35 D.0.30 E.0.25 8.先天性聋哑(AR)的群体发病率为0.0004,该群体中携带者的频率是: A.0.01 B.0.02 C.0.0002 D.0.04 E.0.1 9. PTC味盲为常染色体隐性性状,我国汉族人群中PTC味盲者占9%,相对味盲基因的显性基因频率是: A.0.09 B.0.49 C.0.42 D.0.7 E.0.3 *10.下列哪项不会改变群体的基因频率: A.群体变为很小B.群体内随机交配C.选择放松 D.选择系数增加E.突变率的降低 11. 最终决定一个体适合度的是: A.健康状况B.寿命C.性别D.生殖能力E.生存能力 12. 随着医疗技术的进步,某种遗传病患者经治疗,可以和正常人一样存活并生育子女,若干年后,该疾病的变化是: A.无变化 B.发病率降低 C.发病率升高D.突变率升高E.发病率下降到零 13. 选择放松使显性致病基因和隐性致病基因频率: A.同样的速度增加 B. 同样的速度降低 C. 显性致病基因频率增加快,隐性致病基因频率增加慢D.显性致病基因频率降低快,隐性基因频率降低慢 E. 二者那不变 14. 近亲婚配后代常染色体隐性遗传病的发病风险提高的倍数与致病基因频率q的关系是: A. q越大,提高的倍数越多 B. q越小,提高的倍数越多C.提高的倍数与q无关D.无论q的大小,提高的倍数都一样E.以上都不对 *15.遗传平衡群体保持不变的是: A.基因频率B.基因型频率C.群体的大小D.群体的适合范围E.A十B *16.一对夫妇表型正常,妻子的弟弟是白化病(AR)患者。假定白化病在人群中的发病率为1/10000,这对夫妇生下白化病患儿的概率是: A.1/4 B.1/100 C.1/200 D.1/300 E.1/400 17.下列处于遗传平衡状态的群体是: A.AA:0.20;Aa:0.60;aa:0.20 B.AA:0.25;Aa:0.50;aa:0.25 C.AA:0.30;Aa:0.50;aa:0.20 D.AA:0.50;Aa:0;aa:0.50 E.AA:0.75;Aa:0.25;aa:0

实验6 多态性(一)

福建农林大学实验报告 实验6 多态性(一) 一、实验目的和要求 (1)掌握虚函数的定义与使用方法,进一步理解多态性的概念和分类。 (2)了解纯虚函数和抽象类的使用方法。 二、实验内容和原理 1、分析并调试下列程序,回答以下问题:(1)指出抽象类(2)指出虚函数,并说明它的作用(3)每个类的作用是什么?整个程序的作用是什么? 2、使用虚函数编写程序求球体、圆柱体和圆锥的体积,由于球体、圆柱体和圆锥都可以看做由圆继 承而来,所以可以定义圆类作为基类。在圆类中定义数据成员半径和一个求体积的虚函数。由圆类 派生出球体类、圆柱体类和圆锥类,在派生类中对圆类中的虚函数重新定义。编写一个外部函数求 各类形状的总体积。最后在main()函数中构造若干形状,并求它们的体积和。

三、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、Visual C++ 6.0 四、算法描述及实验步骤 1、算法描述及步骤如下: (1)根据题目要求编写好程序代码并在VC环境下输入源程序。 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。本题改正后的代码如下: #include const double PI=3.1415; class Shap { public:virtual double Area()=0; }; class Triangle:public Shap { public:Triangle(double h,double w) { H=h; W=w; } double Area() { return 0.5*H*W; } private:double H,W; }; class Circle:public Shap { public:Circle(double r) { R=r; } double Area() { return PI*R*R; } private:double R; }; double Total(Shap*s[],int n) { double sum=0; for(int i=0;i

继承与多态习题

继承与多态习题 一.基本概念与基础知识自测题 8.1填空题 8.1.1 如果类α继承了类β,则类α称为(1)类,而类β称为(2)类。(3)类 的对象可作为(4)类的对象处理,反过来不行,因为(5)。如果强制转换则要注意(6)。 答案:(1)基类 (2)派生类 (3)派生类 (4)基类 (5)派生类有一些新成员 (6)只能派生类强制转换为基类 8.1.2 当用public继承从基类派生一个类时,基类的public成员成为派生类的(1)成员, protected成员成为派生类的(2)成员,对private成员是(3)。公有派生可以使其类的(4),所以公有派生是主流。 答案:(1)public成员 (2)protected成员 (3)不可访问 (4)接口不变 8.1.3 利用继承能够实现(1)。这种实现缩短了程序开发的时间,VC++中的(2)很 好地体现了这一点。 答案:(1)代码的复用 (2)MFC编程 8.1.4 一个派生类只有一个直接基类的情况称为(1),而有多个直接基类的情况称为 (2)。继承体现了类的(3)概念,这在MFC中得到了很好表现,MFC中只采用了(4)。 答案:(1)单继承 (2)多重继承 (3)层次 (4)单继承 8.1.5 C++中多态性包括两种多态性:(1)和(2)。前者是通过(3)实现的, 而后者是通过(4)和(5)来实现的。 答案:(1)编译时的 (2)运行时的 (3)函数和运算符的重载 (4)类继承关系 (5)虚函数 8.1.6 在基类中将一个成员函数说明成虚函数后,在其派生类中只要(1)、(2)和

(3)完全一样就认为是虚函数,而不必再加关键字(4)。如有任何不同,则认为是(5)而不是虚函数。除了非成员函数不能作为虚函数外,(6)、(7)和(8)也不能作为虚函数。 答案:(1)同虚函数名 (2)同参数表 (3)同返回类型。如基类中返回基类指针,而派生类中返回派生类指针是允许的 (4)virtual (5)重载 (6)静态成员函数 (7)内联函数 (8)构造函数 8.1.7 纯虚函数定义时在函数参数表后加(1),它表明程序员对函数(2),其本质 是将指向函数体的指针定为(3)。 答案:(1)=0 (2)不定义 (3)NULL 8.2简答题 8.2.1构造函数和析构函数可以继承吗?派生类构造函数各部分的执行次序是怎样的?答:构造函数和析构函数不可以继承。派生类构造函数各部分的执行次序是: 1.调用基类构造函数,按它们在派生类声明的先后顺序,依次调用。 2.调用新增成员对象的构造函数,按它们在类定义中声明的先后顺序,依次调用。 3.派生类的构造函数体中的操作。 8.2.2什么叫派生类的同名覆盖(override)? 答:如果派生类声明了一个和某个基类成员同名的新成员(当然如是成员函数,参数表也必须一样,否则是重载),派生类中的新成员就屏蔽了基类同名成员,类似函数中的局部变量屏蔽全局变量。称为同名覆盖(override)。 8.2.3派生类的析构函数中需完成什么任务?是否要编写对基数和成员对象的析构函数的 调用?为什么? 答:析构函数的功能是作善后工作,析构函数无返回类型也没有参数,情况比较简单。派生类析构函数定义格式与非派生类无任何差异,不要编写对基数和成员对象的析构函数的调用,只要在函数体内把派生类新增一般成员处理好就可以了,因为对新增的成员对象和基类的善后工作,系统会自己调用成员对象和基类的析构函数来完成。 8.2.4为什么要使用虚基类?怎样定义虚基类?用一个实例来解释虚基类在其派生类中的 存储方式。 答:在多重继承是有可能出现同一基类的两个拷贝,为避免这种情况,可使用虚基类。虚基类(virtual base class)定义方式如下: class派生类名:virtual 访问限定符基类类名{...}; class派生类名:访问限定符virtual基类类名{...}; virtual 关键字只对紧随其后的基类名起作用。

C 的封装性、继承性和多态性概念

C++的封装性、继承性和多态性概念 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。例如,在抽象的基础上,我们可以将时钟的数据和功能封装起来,构成一个时钟类。按c++的语法,时钟类的声明如下:class Clock { public: //共有成员,外部借口void SetTime(int NewH,int NewM,int NewS); void ShowTime(); private: //私有成员,外部无法访问int Hour,Minute,Second; } 可以看到通过封装使一部分成员充当类与外部的接口,而将其他的成员隐蔽起来,这样就达到了对成员访问权限的合理控制,使不同类之间的相互影响减少到最低限度,进而增强数据的安全性和简化程序的编写工作。什么是多态(Polymorphisn)?按字面的意思就是“多种形状”。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等 的技术,赋值之后,>>>父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作<<<(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function)实现的。好,接着是“虚函数”(或者是“虚方法”)。虚函数就是允许被其子类重新定

义的成员函数。而子类重新定义父类虚函数的做法,称为“覆盖”(override),或者称为“重写”。“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。 ... 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的"父亲",而这些子实体则是汽车的"孩子"。19. 多态的作用?主要是两个:1. 隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用; 2. 接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。

第八章 主要组织相容性复合体

第八章主要组织相容性复合体 学时:2 目的要求: 1.掌握:主要组织相容性复合体的概念,基因构成。HLA分子的分布,结构和功能。 2.熟悉:HLA分子表的影响因素,HLA多态性的遗传基础,HLA在医学上的意义。 3.了解:非经典HLA分子,HLA分型。 教学内容: 1.MHC的概念和基因构成:小鼠H-2复合体和人类HLA复合体。 2.HLA-I类和II类分子的分布、结构和功能。非经典HLA分子的功能。HLA分子表达的影响因子。 3.HLA多态性的遗传基础。 4.HLA在医学上的意义-与器官移植,免疫应答及疾病的关系。 [本章主要内容] 一、概述 20世纪初,不同种系小鼠间皮肤移植可以诱发移植排斥反应,对移植物的排斥反应是受体对移植细胞表面抗原的免疫应答,即供、受者组织抗原的相似程度(组织相容的程度)决定了移植物的存活。 组织相容性抗原(histocompatibility antigen):通过移植鉴定的与组织移植排斥反应有关的抗原。 主要组织相容性抗原系统(major histocompatibility antigen system, MHS):能引起较强移植排斥反应的组织细胞抗原。 主要组织相容性复合体(major histocompatibility complex, MHC):编码主要组织相容性抗原的基因群。 人类白细胞抗原(human leukocyte antigen, HLA):指人的主要组织相容性抗原系统。由于首先在人外周血白细胞表面发现,故称人类白细胞抗原。编码该抗原的基因称为HLA复合体,即人类的MHC。 H-2复合体:指小鼠的MHC,编码小鼠的主要组织相容性抗原,即H-2系统。 MHC通常指基因;MHC分子或主要组织相容性抗原指MHC基因编码的产物。对于某一动物,MHC可同时代表基因和抗原,如H-2可用于指基因和编码的分子。 不同动物的MHC的名称不同。 二、MHC的基因构成 (一)小鼠H-2复合体 定位于第17号染色体,包括K、I、S、D/L等基因。根据各基因编码分子不同分成三类:I类基因:包含K、D、L位点基因,编码I类分子的重链; Ⅱ类基因:包括I位点基因,可分为I-A和I-E亚区,编码Ⅱ类分子。Ir基因(免疫应答基因,immune response gene):位于I区,Ia抗原(I区相关抗原,I region associated antigen):Ir基因编码产物。 Ⅲ类基因:为S区基因,编码补体C4、C2、B因子及肿瘤坏死因子(TNF-α、TNF-β)等分子。 (二)人类HLA复合体 定位于第6号染色体短臂(6p21,3)。分成三类基因区: I类基因:位于HLA基因复合体远离着丝点的一端,包括经典基因HLA-B、C、A基因位点和非典型基因HLA-E、F、G位点等。

实验八 多态性

实验八多态性 1.填空 (1)关键字operator 引入了重载运算符函数定义。 (2)不能重载的C++运算符是类属关系运算符"."、成员指针运算符".*"、作用域分辨符"::" 、sizeof运算符和三目运算符"?:" 。 (3)通过重载运算符不能修改运算符的操作对象个数、优先级、和结合性。 2、选择题,先选择,然后解释选择的理由: (1) 运算符重载时不需要保持的性质是:(A ) A)操作数类型 B)操作数个数 C)优先级 D)结合性 解释:通过重载运算符不能修改运算符的操作对象个数、优先级、和结合性。但其他的可以改变。 (2) 有如下类定义和变量定义: #include class X { int a; void setX (int x) {a=x;} public: void showX() {cout<<"a="<

(3) 有如下类定义: #include class A { int xx; public: A():xx(0) {cout<<'A';} A(int n):xx(n) {cout<<'B';} }; class B:public A { int yy; public: B():yy(0){cout<

自相关性习题及答案Word文档

4 下表给出了美国1960-1995年36年间个人实际可支配收入X 和个人实际消费支出Y 的数据。 要求:(1)用普通最小二乘法估计收入—消费模型; t t u X Y ++=221ββ (2)检验收入—消费模型的自相关状况(5%显著水平); (3)用适当的方法消除模型中存在的问题。 6下表是北京市连续19年城镇居民家庭人均收入与人均支出的数据。 北京市19年来城镇居民家庭收入与支出数据表(单位:元)

要求:(1)建立居民收入—消费函数; (2)检验模型中存在的问题,并采取适当的补救措施预以处理; (3)对模型结果进行经济解释。 计量经济学题库(自相关)答案 练习题4参考解答: (1)收入—消费模型为 t t X Y 0.93594287.9?+-= Se = (2.5043) (0.0075) t = (-3.7650) (125.3411) R2 = 0.9978,F = 15710.39,d f = 34,DW = 0.5234 (2)对样本量为36、一个解释变量的模型、5%显著水平,查DW 统计表可知,dL=1.411,dU= 1.525,模型中DW

dU ,说明广义差分模型中已无自相关。同时,判定系数R2、t 、F 统计量均达到理想水平。 9366 1372855017831 31 ...?=--=β 最终的消费模型为 Y t = 13.9366+0.9484 X t 练习题6参考解答: (1)收入—消费模型为

8.第八章 群体遗传学

(一)选择题(A型选择题) 1.群体中尿黑酸尿症(AR)的杂合子频率为0.004,那么______。 A.随机婚配后代患尿黑酸尿症的风险是0.00002 B.随机婚配后代患尿黑酸尿症的风险是0.00004 C.姑表兄妹婚配后代患尿黑酸尿症的风险是0.008 D.姑表兄妹婚配后代患尿黑酸尿症的风险是0.004 E.舅甥女之间的近婚系数是1/8 2.孟德尔群体是指。 A.生活在一定空间范围内,能相互交配的同种个体 B.生活在一定空间范围内的所有生物个体 C.生活在一定空间范围内能相互交配的所有生物个体 D.生活在一定空间范围内的所有同种生物个体 E.以上都不对 3.基因库是指。 A.一个个体的全部遗传信息 B.一个孟德尔群体的全部遗传信息 C.所有生物个体的全部遗传信息 D.所有同种生物个体的全部遗传信息 E.一个细胞内的全部遗传信息 4.一个遗传不平衡的群体,随即交配多少代后可达到遗传平衡。 A.1代 B.2代 C.2代以上 D.无数代 E.以上都不对 5.一个947人的群体,M血型348人,N血型103人,MN血型496人,则。 A.M血型者占36.7% B.M基因的频率为0.66 C.N基因的频率为0.63 D.MN血型者占55.4% E.N血型者占36.7% 6.______不是影响遗传平衡的因素。 A.群体的大小 B.群体中个体的寿命 C.群体中个体的大规模迁移 D.群体中选择性交配 E.选择 7.Hardy-Weinberg平衡律不含______。 A.在一个大群体中 B.选型婚配 C.没有突变发生 D.没有大规模迁移 E.群体中基因频率和基因型频率在世代传递中保持不变 8.在一个100人的群体中,AA为60%,Aa为20%,aa为20%,那么该群体中______。 A.A基因的频率为0.3 B.a基因的频率为0.7 C.是一个遗传平衡群体 D.是一遗传不平衡群体 E.经过一代后基因频率和基因型频率都会发生变化 9.对于一种相对罕见的X连锁隐性遗传病,其男性发病率为q, ______ 。 A.人群中杂合子频率为2pq B.女性发病率是p2 C.男性患者是女性患者的两倍 D.女性患者是男性患者的两倍 E.女性发病率为q2 10.在遗传平衡的基础上,下列数据不对的是______。 A.对于一种罕见的AD病,几乎所有的受累者均为杂合子 B.对于一种罕见的AR病,杂合携带者的频率约为致病基因频率的2倍 C.对于一种罕见的XD病,男性患者是女性患者的1/2 D.对于一种罕见的XR病,男性患者为女性患者的1/q E.对于一种罕见的Y伴性遗传病,男性患者是女性患者的2倍 11.以AR为例,亲属之间的亲缘系数不对的是______。 A.姨表兄妹为1/8 B.祖孙为1/4 C.舅甥为1/2 D.同胞兄妹为1/2 E.同卵双生子兄妹为1 12.能影响遗传负荷的因素是______。

实验三多态性实验报告

浙江理工大学信息学院 实验指导书 实验名称:类的多态性的实现学时安排:3 实验类别:设计性实验实验要求:1人1组 学号:姓名:  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 一、实验目的 1.理解重载运算符的意义。 2.掌握使用成员函数、友员函数重载运算符的特点。 3.掌握重载运算符函数的调用方法。 4.掌握动态联编的概念。 5.掌握虚函数和纯虚函数的使用方法。 二、实验原理介绍 设计性实验 具体原理请见实验内容和步骤 实现对抽象类的继承,通过operator函数调用的形式,实现运算符的重载 三、实验设备介绍 软件需求: windows或linux下的c++编译器 硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。 四、实验内容 某公司的员工有经理Manager、技术人员Technicist和营销人员SalsePerson,他们的薪金计算方法如下: 经理按月计酬,方法是:基本工资+奖金;技术人员按月计酬,方法是:基本工资;营销人员按月计酬,方法是:基本工资+销售利润*5%。 每类人员都有职工编号、姓名、性别、入职时间、职位、基本工资等数据;各类人员

使用统一接口get_pay()计算各类人员的月薪,重载<<运算符实现员工信息的输出。其次,设计一个统计并输出该公司员工当月薪金情况的报表类Report,该类提供insert接口向Report类的容器中添加员工信息,并提供print接口用于展示以职位为单位的每个员工的职工编号、姓名、性别、入职时间以及当月该员工的薪酬,并统计出该职位员工薪酬的最高值和最低值。为了提供更方便的查找功能,请为Report类重载[]运算符,下标值为职位,能根据职位信息查找出所有符合该职位的员工。在主函数中对实现的类进行测试,首先,创建各类人员对象,通过Report类的insert接口向报表中添加这些人员信息,然后通过Report类的print接口输出当月员工薪酬情况报表。存储员工对象的容器请选用合适的STL容器。 五程序清单 ormat("ddd")<<"\t"; cout<<(*it)->getbasicmoney()<<"\t"<<"\t"; cout<<(*it)->getpay(month) << endl; } } void Report::insert(Employee* p) { (p); } Report::~Report(){ list::iterator it; for(it = (); it != (); it ++){ delete *it; } } double Technicist::getpay(int m){ return basicmoney; } double SalesPerson::getpay(int m){ return basicmoney + sales[m] * ;

c++多态性与虚函数习题

作业题 一、写出下列程序运行结果 1.#include using namespace std; class A { public: virtual void func( ) {cout<<”func in class A”< using namespace std; class A{ public: virtual ~A( ){ cout<<”A::~A( ) called “<

}; void fun(A *a) { delete a; } int main( ) { A *a=new B(10); fun(a); } 二、程序设计题 1有一个交通工具类vehicle,将它作为基类派生小车类car、卡车类truck和轮船类boat,定义这些类并定义一个虚函数用来显示各类信息。 5.2定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area( )。 5.5某学校对教师每月工资的计算公式如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。给出教师抽象类及主函数,补充编写程序求若干教师的月工资。 #include using namespace std; class Teacher{ protected: double salary; int workhours; public: Teacher(int wh=0){workhours=wh;} virtual void cal_salary()=0; void print(){cout<cal_salary(); prof.print(); Vice_Prof vice_prof(250); pt=&vice_prof; pt->cal_salary(); vice_prof.print(); Lecture lecture(100); pt=&lecture; pt->cal_salary(); lecture.print (); return 0; }

c多态性与虚函数习题

1.概念填空题 1.1 C++支持两种多态性,分别是静态和动态。 1.2在编译时就确定的函数调用称为静态联编,它通过使用重载函数实现。 1.3在运行时才确定的函数调用称为动态联编,它通过虚函数来实现。1.4虚函数的声明方法是在函数原型前加上关键字 virtual 。在基类中含有虚函数,在派生类中的函数没有显式写出virtual关键字,系统依据以下规则判断派生类的这个函数是否是虚函数:该函数是否和基类的虚函数参数个数相同 /同名;是否与基类的虚函数相应类型相同;是否与基类的虚函数返回值类型相同。如果满足上述3个条件,派生类的函数就是虚函数。并且该函数覆盖基类的虚函数。 1.5当通过指针或应用使用虚函数时,C++会在与对象关联的派生类中正确的选择重定义的函数。实现了运行时多态。而通过对象使用虚函数时,不能实现运行时多态。 1.6 纯虚函数是一种特别的虚函数,它没有函数的函数体部分,也没有为函数的功能提供实现的代码,它的实现版本必须由派生类给出,因此纯虚函数不能是。拥有纯虚函数的类就是抽象类,这种类不能建立对象。如果纯虚函数没有被重载,则派生类将继承此纯虚函数,即该派生类也是纯虚函数。 1.7 类的构造函数不可以(可以/不可以)是虚函数,类的析构函数可以(可以/不可以)是虚函数。当类中存在动态内存分配时经常将类的析构函数声明成虚函数。 2.简答题 2.1在C++中,能否声明虚构造函数?为什么?能否声明虚析构函数?为什么? 不可以声明纯构造函数,可以声明纯析构函数,因为C++中构造函数不能够被继承,而唇函数具有强继承性 2.2 什么是抽象类?抽象类有何作用?可以声明抽象类的对象吗?为什么? 一个类中至少有一个纯纯虚函数 抽象类中的纯虚函数可以在抽象类中定义,也可以是从它的抽象类中继承下来重订于定义 可以声明抽象类的指针和引用 2.3多态性和虚函数有何作用? 2.4是否使用了虚函数就能实现运行时的多态性?怎样才能实现运行时的多态性? 2.5为什么析构函数总是要求说明为虚函数? 3.选择题 3.1在C++中,要实现动态联编,必须使用( D )调用虚函数。 A.类名 B.派生类指针 C.对象名 D.基类指针 3.2下列函数中,不能说明为虚函数的是( )。 A.私有成员函数 B.公有成员函数 C.构造函数 D.析构函数 3.3在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )。 A.相同 B.不同 C.相容 D.部分相同 3.4当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中()。 A.都是虚函数

习题答案(第六版)

兰州交通大学《通信原理》精品课程 https://www.wendangku.net/doc/876910266.html,/txyl09/index.htm 第一章绪论 本章主要内容: (1)通信系统的模型与基本概念 (2)通信技术的现状与发展 (3)信息的度量 (4)通信系统的主要性能指标 本章重点: 1.通信系统的一般模型与数字通信系统模型 2.离散信源的信息量、熵的计算 3.数字通信系统的主要性能指标:码元传输速率与信息传输速率以及它们的关系、误码 率与误信率 本章练习题: 1-1.已知英文字母e出现的概率为0.105,x出现的概念为0.002,试求e和x的信息量。 ?查看参考答案 o 1-2.某信源符号集由A,B,C,D和E组成,设每一符号独立出现,其出现概率分别为1 4, 1 8, 1 8,3 16和 5 16。试求该信息源符号的平均信息量。 ?查看参考答案 o 1-3.设有4个符号,其中前3个符号的出现概率分别为1 4, 1 8, 1 8,且各符号的出现是相 对独立的。试计算该符号集的平均信息量。 ?查看参考答案 o

1-4.一个由字母A 、B 、C 、D 组成的字,对于传输的每一个字母用二进制脉冲编码,00代替 A ,01代替B ,10代替C ,11代替D ,每个脉冲宽度为5ms . (1)不同的字母是等可能出现时,试计算传输的平均信息速率; (2)若每个字母出现的可能性分别为 10 3,41,41,51= = = = D C B A P P P P 试计算传输的平均信息速率。 ? 查看参考答案 o 1-5.国际摩尔斯电码用“点”和“划”的序列发送英文字母,“划”用持续3单位的电流脉冲表示,“点”用持续1个单位的电流脉冲表示;且“划”出现的概率是“点”出现概率的1 3。 (1)计算“点”和“划”的信息量; (2)计算“点”和“划”的平均信息量。 ? 查看参考答案 o 1-6.设一信息源的输出由128个不同的符号组成,其中16个出现的概率为1 32,其余112个出现概率为1 224。信息源每秒发出1000个符号,且每个符号彼此独立。试计算该信息源的平 均信息速率。

第八章练习题

第八章 2χ检验 练 习 题 一、单项选择题 1. 利用2χ检验公式不适合解决的实际问题是 A. 比较两种药物的有效率 B. 检验某种疾病与基因多态性的关系 C. 两组有序试验结果的药物疗效 D. 药物三种不同剂量显效率有无差别 E. 两组病情“轻、中、重”的构成比例 2.欲比较两组阳性反应率, 在样本量非常小的情况下(如1210,10n n <<), 应采用 A. 四格表2χ检验 B. 校正四格表2χ检验 C. Fisher 确切概率法 D. 配对2χ检验 E. 校正配对2χ检验 3.进行四组样本率比较的2χ检验,如22 0.01,3χχ>,可认为 A. 四组样本率均不相同 B. 四组总体率均不相同 C. 四组样本率相差较大 D. 至少有两组样本率不相同 E. 至少有两组总体率不相同 4. 从甲、乙两文中,查到同类研究的两个率比较的2χ检验,甲文22 0.01,1χχ>,乙文22 0.05,1χχ>,可认为 A. 两文结果有矛盾 B. 两文结果完全相同 C. 甲文结果更为可信 D. 乙文结果更为可信 E. 甲文说明总体的差异较大 5. 两组有效率比较检验功效的相关因素是 A. 检验水准和样本率 B. 总体率差别和样本含量 C. 样本含量和样本率 D. 总体率差别和理论频数 E. 容许误差和检验水准 答案:C C E C B 二、计算与分析 1.某神经内科医师观察291例脑梗塞病人,其中102例病人用西医疗法,其它189 例病人采用西医疗法加中医疗法,观察一年后,单纯用西医疗法组的病人死亡13例,采用中西医疗法组的病人死亡9例,请分析两组病人的死亡率差异是否有统计学意义

uml综合练习题及答案

一、选择题 1.软件设计中的()设计指定各个组件之间的通信方式以及各组件之间如 何相互作用。 A.数据 B.接口 C.结构 D.组件 2.UML 是一种()。 A.面向对象的程序设计语言 B.面向过程的程序设计语言 C.软件系统开发方法 D.软件系统建模语言 3.面向对象中的()机制是对现实世界中遗传现象的模拟,通过该机制,基 类的属性和方法被遗传给派生类。 A.封装 B.多态C.继承 D.变异 4.下面关于类、对象和实例的叙述中,错误的是()。 A 类是创建对象的模板 B 对象是类的实例 C 类是对象的实例 D 类是一组具有共同特征的对象集合 5.下列不在UP的初始阶段中完成的 A编制简要的愿景文档 B粗略评估成本 C定义大多数的需求 D业务案例 6.下面那一种模式是不属于GRASP模式的 A 多态(Ploymorphism) B 行为对象(pure fabrication) C 中间者(Indirection) D GoF 7.类是一组具有相同属性的和相同服务的对象的抽象描述,类中的每个对象都 是这个类的一个。 9.一个对象通过发送来请求另一个对象为其服务。 A调用语句B消息C命令D口令 10.下面的述中,对迭代和增量式开发描述错误的是()。 A. 迭代是时间定量的 B. 系统是增量式增长的 C. 迭代是以循环反馈和调整为核心驱动力的 D. 当迭代无法依照时间表来集成、测试和稳定局部系统时,可以推迟完成 日期。 11.有关UP阶段的说法,不正确的是() A. UP的一个开发周期(以系统发布作为产品结束标志)由多个迭代组成; B. 初始阶段不是需求阶段,而是研究可行性的阶段。 C. 细化阶段就是需求或设计阶段; D. 细化阶段就是迭代地实现核心架构并解决高风险问题的阶段; 12.下面关于领域模型的描述,不正确的是() A. 领域模型就是软件对象图; B. 应用UML表示法,领域模型被描述为一组没有定义操作的类图; C. 创建领域模型的原因之一是帮助理解关键业务概念和词汇; D. 领域模型和领域层使用相似的命名可以减少软件表示与我们头脑中的领

随机过程习题及答案

第二章 随机过程分析 学习指导 1.1.1 要点 随机过程分析的要点主要包括随机过程的概念、分布函数、概率密度函数、数字特征、通信系统中常见的几种重要随机过程的统计特性。 1. 随机过程的概念 随机过程是一类随时间作随机变化的过程,它不能用确切的时间函数描述。可从两种不同角度理解:对应不同随机试验结果的时间过程的集合,随机过程是随机变量概念的延伸。 2. 随机过程的分布函数和概率密度函数 如果ξ(t )是一个随机过程,则其在时刻t 1取值ξ(t 1)是一个随机变量。ξ(t 1)小于或等于某一数值x 1的概率为P [ ξ(t 1) ≤ x 1 ],随机过程ξ(t )的一维分布函数为 F 1(x 1, t 1) = P [ξ(t 1) ≤ x 1] (2-1) 如果F 1(x 1, t 1)的偏导数存在,则ξ(t )的一维概率密度函数为 1111111 (,) (, ) (2 - 2)?=?F x t f x t x 对于任意时刻t 1和t 2,把ξ(t 1) ≤ x 1和ξ(t 2) ≤ x 2同时成立的概率 {}212121122(, ; , )(), () (2 - 3)F x x t t P t x t x ξξ=≤≤ 称为随机过程 (t )的二维分布函数。如果 2212122121212 (,;,) (,;,) (2 - 4)F x x t t f x x t t x x ?=??? 存在,则称f 2(x 1, x 2; t 1, t 2)为随机过程 (t )的二维概率密度函数。 对于任意时刻t 1,t 2,…,t n ,把 {}n 12n 12n 1122n n ()(),(),,() (2 - 5) =≤≤≤L L L F x x x t t t P t x t x t x ξξξ,,,;,,,称为随机过程 (t )的n 维分布函数。如果 n n 12n 12n n 12n 12n 12n (x )() (2 - 6)?=???L L L L L F x x t t t f x x x t t t x x x ,,,;,,,,,,;,,, 存在,则称f n (x 1, x 2, …, x n ; t 1, t 2, …, t n )为随机过程 (t )的n 维概率密度函数。 3. 随机过程的数字特征 随机过程的数字特征主要包括均值、方差、自相关函数、协方差函数和互相关函数。 随机过程 (t )在任意给定时刻t 的取值 (t )是一个随机变量,其均值为 []1()(, )d (2 - 7)E t xf x t x ξ∞ -∞ =?

多态练习题

1、生成表示学生的类XS,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄,并将他们全部定义为纯虚函数;生成CZS类表示初中生,包含数据成员xm、xb和nl表示学生的姓名、性别和年龄,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄;再生成类GZS表示高中生和类DXS表示大学生,同样包含相同含义的数据成员xm、xb和nl,也包括成员函数dispXM()、dispXB()和dispNL()。要求: (1)设计和实现基本类XS (2)设计和实现派生类CZS,GZS和DXS (3)分别生成CZS、GZS、DXS类对象 (4)将CZS、GZS、DXS类对象的指针赋给指针赋给XS类的指针变量。 (5)分别用XS类的指针和引用访问dispXM()、dispXB()和dispNL()函数。 (6)观察程序结果。 #include #include using namespace std; class XS{ public: virtual void dispXM()=0; virtual void dispXB()=0; virtual void dispNL()=0; }; class CZS:public XS{ public: CZS(char * m="张三",int b=1,int n=14); void dispXM(); void dispXB(); void dispNL(); protected: char xm[9]; int xb,nl; }; CZS::CZS(char *m,int b,int n) { strcpy(xm,m); xb=b,nl=n; } void CZS::dispXM() { cout<<"name:"<

相关文档