计算机语言(VC)考试题和答案

下列对继承关系的描述中,正确的是()。

A、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;

B、在公有继承中,基类中只有公有成员对派生类的对象是可见的;

C、在私有继承中,基类中只有公有成员对派生类是可见的;

D、在私有继承中,基类中的保护成员对派生类的对象是可见的;


参考答案:D


下列对继承关系的描述中,()是正确的。

A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;

B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;

C.在私有继承中,基类中只有公有成员对派生类是可见的;

D.在私有继承中,基类中的保护成员对派生类的对象是可见的;


参考答案:D


以下关于派生机制的描述中,不正确的是

A.派生类不仅可以继承基类的成员,也可以添加自己的成员

B.设置protected成员是为派生类访问基类成员之用

C.采用不同的继承方式,将限制派生类对基类成员的访问

D.采用私有继承,派生类只能得到基类的公有成员


正确答案:D
解析:继承方式不同,派生类能够访问的基类的成员数量也不同。继承方式有三种:公有继承,私有继承和保护继承,每种继承方式结合成员函数的类型可以组合成不同的访问级别,从而提供了灵活多样的派生类访问基类的权限。


以下有关继承的叙述正确的是()。

A、构造函数和析构函数都能被继承

B、派生类是基类的组合

C、派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员

D、基类的公有成员一定能被派生类的对象访问


参考答案:B


以下有关继承正确的是

A: 构造函数和析构函数都能被继承

B: 派生类是基类的组合

C: 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员

D: 基类的公有成员一定能被派生类对象访问


正确答案: D


一.单选题(共13题,35.1分)1编写C+程序一般需经过的几个步骤依次是 。   A编辑、调试、编译、连接   B编辑、编译、连接、运行   C编译、调试、编辑、连接   D编译、编辑、连接、运行正确答案: B2决定C+语言中函数的返回值类型的是 。   Areturn语句中的表达式类型   B调用该函数时系统随机产生的类型   C调用该函数时的主调用函数类型   D在定义该函数时所指定的数据类型正确答案: D3下面叙述不正确的是 。   A派生类一般都用公有派生   B对基类成员的访问必须是无二义性的   C赋值兼容规则也适用于多重继承的组合   D基类的公有成员在派生类中仍然是公有的正确答案: D4所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是 。  &nbsp;A类   B对象   C函数体   D数据块正确答案: A5对基类和派生类的关系描述中,错误的是 。   A派生类是基类的具体化   B基类继承了派生类的属性   C派生类是基类定义的延续   D派生类是基类的特殊化正确答案: B6假定一个类的构造函数为A(int aa,int bb) a=aa-;b=a*bb;,则执行A x(4,5);语句后 ,x.a和x.b的值分别为 。   A3和15   B5和4   C4和20   D20和5正确答案: C7在类中说明的成员可以使用关键字的是 。   Apublic   Bextern   Ccpu   DRegister正确答案: A8下列字符串中可以用作C+标识符的是 。   A_123   Bfoobar   Ccase   D3var正确答案: A9字符串”student”占用 个字节的空间。   A7   B6   C5   D8正确答案: D10在类中说明的成员可以使用关键字 进行修饰。   Aprivate   Bextern   Cauto   Dregister正确答案: A11在C+语言中,对函数参数默认值描述正确的是:   A函数参数的默认值只能设定一个   B一个函数的参数若有多个,则参数默认值的设定可以不连续   C函数参数必须设定默认值   D在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值正确答案: D12假定 AB 为一个类,则执行 AB x ;语句时将自动调用该类的 。  &nbsp;A有参构造函数   B无参构造函数   C拷贝构造函数   D赋值构造函数正确答案: B13下列给字符数组进行初始化中, 是正确的。   Achar s1 ="12345abcd"   Bchar s23="xyz"   Cchar s33= a, x, y;   Dchar s423="xyz","mnp"正确答案: A二.填空题(共7题,18.9分)1C+语言中如果调用函数时,需要改变实参或者返回多个值,应该采取_或者_方式。切换到文本模式切换到文本模式正确答案:第一空: 传地址第二空: 引用2若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_语句。切换到文本模式正确答案:第一空: 声明3若要使用string类,需要引入的头文件是_。在函数前面用_保留字修饰时,则表示该函数表为内联函数。切换到文本模式切换到文本模式正确答案:第一空: string.h第二空: inline4编译时的多态性通过_函数实现。切换到文本模式正确答案:第一空: 重载5C+程序中,一个基本语句的最后一个字符是_ 。切换到文本模式正确答案:第一空: 分号(; )6假定用户没有给一个名为MyClass的类定义构造函数和析构函数,则系统为其定义的默认构造函数形式为_,默认析构函数形式为_。切换到文本模式切换到文本模式正确答案:第一空: MyClass()第二空: MyClass() 7在类中定义和实现的函数称为_。切换到文本模式正确答案:第一空: 内联函数三.判断题(共11题,29.7分)1函数体内声明的静态变量,至多只会被初始化一次。正确答案:2对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同。正确答案:3将类A所有构造函数的可访问性都限制为私有的,那么在main函数中不可能得到类A的实例对象。正确答案:4虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体。正确答案:5构造函数的初始化列表中的内容,不会影响构造对象中成员数据的初始化顺序。正确答案:6C+的继承性允许派生类继承基类的部分特性,并允许增加新的特性或重定义基类的特性。正确答案:7C+中允许对数组进行动态定义。正确答案:8返回值类型、参数个数和参数类型都相同的函数也可以重载。正确答案:9友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。正确答案:10析构函数是函数体为空的函数。正确答案:11就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。正确答案:四.程序阅读题(共2题,5.4分)1【程序阅读题】写出下列程序的运行结果。#include#include#includebool fun(long n);void main()long a=10,b=30,l=0;if(a%2=0) a+;for(long m=a;m<=b;m+=2) if(fun(m)if(l+%10=0)cout <<endl;cout <<setw(5) <<m;bool fun(long n)int sqrtm=(int)sqrt(n); for(int i=2;i<=sqrtm;i+)if(n%i=0)return false;return true; 填写答案正确答案:11 13 17 19 23 292【程序阅读题】写出下列程序的运行结果。#includevoid main() int x=3,y=3;switch(x%2)case 1:  switch (y)    case 0:cout<<"Firstt"              case 1:cout<<"Secondt"break; default: cout<<"Hellowt" case 2:cout<<"Thirdn" 填写答案正确答案:Hellow  Third五.程序设计题(共4题,10.9分)1程序设计题 :           已定义一个Shape抽象类,在此基础上派生出矩形Rectangle和圆形Circle类,二者都有 GetPerim()函数计算对象的周长,并编写测试main()函数。 class Shapepublic:Shape()Shape()virtual float GetPerim()=0; 填写答案正确答案:class Rectangle:public Shapepublic:Rectangle(float i,float j):L(i),W(j) Rectangle()float GetPerim()return 2*(L+W);private:float L,W;class Circle:public Shapepublic:Circle(float r):R(r)float GetPerim()return 3.14*2*R; private:float R;void main()Shape * sp;sp=new Circle(10);cout<GetPerim ()<<endl;sp=new Rectangle(6,4);cout<GetPerim()<<endl;2程序设计题 :  求n(n=3)个学生的最高分和最低分及姓名,下面已经给出student类声明和main函数,请写出下面的student类的实现部分的三个函数: student(char na,int d),* getname(),compare(student &s1,student &s2)。#include#includeclass studentchar name,10,;int deg;public:student(char na,="",int d=0);char * getname();friend int compare(student &s1,student &s2);int getdeg();void main()student st,=student("王强",74),student("李刚",68),student("张雪",84);int i=0,min=0,max=0;for(i=1;i<3;i+)if(compare(st,max,st,i,)=-1)max=i;if(compare(st,min,st,i,)=1)min=i;cout<<"最高分:"<<st,max,.getdeg()<<"姓名:"<<st,max,.getname()<<endl;cout<<"最低分:"<<(*(st+min).getdeg()<<"姓名:"<st,max,.getname()s2.deg)return 1;else!-最低分:(*(st+min).getdeg()姓名:st,max,.getname()/st,max,.getname()!-!-

下列关于派生类和基类的描述中,正确的是( )。

A.派生类成员函数只能访问基类的公有成员

B.派生类成员函数只能访问基类的公有和保护成员

C.派生类成员函数可以访问基类的所有成员

D.派生类对基类的默认继承方式是公有继承


正确答案:B
B。【解析】派生类成员函数不能访问基类的private成员,只能由基类的对象来访问。这才体现了C++的数据封装特性。


下列有关继承和派生的叙述中,正确的是( )。

A.如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员

B.派生类的成员函数可以访问基类的所有成员

C.基类对象可以赋值给派生类对象

D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类


正确答案:D
私有继承方式为基类的公用成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有,但派生类对象可以访问基类的保护成员,所以基类对象不能赋值给派生类对象。抽象类是指含有纯虚拟函数的类,所以选项D正确。


下列描述中,错误的是( )。

A) 公有继承时基类中的公有成员在派生类中仍是公有成员

B) 公有继承时基类中的保护成员在派生类中仍是保护成员

C) 保护继承时基类中的公有成员在派生类中仍是公有成员

D) 保护继承时基类中的保护成员在派生类中仍是保护成员

A.

B.

C.

D.


正确答案:C


下列关于派生类和基类的描述中,正确的是( )。

A) 派生类成员函数只能访问基类的公有成员

B) 派生类成员函数只能访问基类的公有和保护成员

C) 派生类成员函数可以访问基类的所有成员

D) 派生类对基类的默认继承方式是公有继承

A.

B.

C.

D.


正确答案:B


下面关于继承机制的描述中,不正确的是( )。

A.派生类不仅可以继承基类的成员,也可以添加自己的成员

B.设置protected成员是为派生类访问基类成员之用

C.采用不同的继承方式,将限制派生类对基类成员的访问

D.采用私有继承,派生类只能得到基类的公有成员


正确答案:D
解析:本题主要考察C++中继承机制的特点。C++中允许利用已有的数据类型来定义新的数据类型,这种机制称为继承机制,并称已存在的用来派生新类的类称为基类,由已存在的类派生出的新类称为派生类。派生类有3种继承方式可以采用,即public、private和protected方式。派生类除了继承基类中的数据成员和成员函数外,还可以添加具有自身特点的成员,这是继承机制的真正用意所在。因此选项A的叙述正确。采用不同的继承方式,将限制派生类对基类成员的访问权限,因此选项C的叙述正确。对于类本身,protected成员和private成员对外的访问权限是相同的,即外界函数都无法直接访问这两类成员。对于类作为基类被继承产生派生类时,protected成员又和public成员性质相同,即在所有继承方式下都可以被派生类所继承,在public继承时可以被派生类对象访问,在protected和private继承方式下无法被派生类的子类访问。这也正是C++设置protected访问权限成员的真正用途,即为派生类继承基类隐蔽成员之用途。因此选项B的叙述正确。

更多 “计算机语言(VC)考试题和答案” 相关考题
考题 单选题下面叙述不正确的是()A 派生类一般都用公有派生B 对基类成员的访问必须是无二义性的C 赋值兼容规则也适用于多重继承的组合D 基类的公有成员在派生类中仍然是公有的正确答案:C解析:暂无解析

考题 下面关于派生类的描述中错误的是( )。A)派生类中至少有一个基类B)一个派生类可以作为另一个派生类的基类C)派生类只继承了基类中的公有成员和保护成员D)派生类的缺省继承方式是私有正确答案:C

考题 单选题关于保护继承,下列说法错误的是()。A 保护继承的特点是基类的所有公用成员和保护成员都成为派生类的保护成员。B 派生类对象不能访问基类中的任何成员。C 派生类的对象可以访问基类的公有成员。D 保护继承的派生类和私有继承的派生类,对基类成员访问属性是相同的。正确答案:A解析:暂无解析

考题 下列叙述中,错误的是( )。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合正确答案:C解析:在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对基类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类中的访问属性。所以本题选择选项C)。

考题 关于保护继承,下列说法错误的是()。A、保护继承的特点是基类的所有公用成员和保护成员都成为派生类的保护成员。B、派生类对象不能访问基类中的任何成员。C、派生类的对象可以访问基类的公有成员。D、保护继承的派生类和私有继承的派生类,对基类成员访问属性是相同的。正确答案:C

考题 下面叙述错误的是( )。A.派生类可以使用private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合正确答案:C

考题 单选题下列对继承关系的描述中,()是对的。A 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的B 在公有继承中,基类中只有公有成员对派生类的对象是可见的C 在私有继承中,基类中只有公有成员对派生类是可见的D 在私有继承中,基类中的保护成员对派生类的对象是可见的正确答案:B解析:暂无解析

考题 关于基类和派生类的描述中,错误的是()A、基类和派生类间是包含关系B、派生类中可以定义自己的成员C、基类成员在派生类中的访问权限与继承方式有关D、一个派生类可以从一个基类派生,也可以从多个基类派生正确答案:A

考题 下列对继承关系的描述中,()是对的。A、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的B、在公有继承中,基类中只有公有成员对派生类的对象是可见的C、在私有继承中,基类中只有公有成员对派生类是可见的D、在私有继承中,基类中的保护成员对派生类的对象是可见的正确答案:D

考题 下列关于类的继承描述中,正确的是()A、派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。B、派生类也是基类,所以它们是等价的。C、派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。D、一个基类可以有多个派生类,一个派生类可以有多个基类。正确答案:D