欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C++-207及答案解析.doc

    • 资源ID:1324033       资源大小:78KB        全文页数:21页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C++-207及答案解析.doc

    1、二级 C+-207 及答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:55.00)1.已知表达式+x 中的“+”是作为成员函数重载的运算符,则与+x 等效的运算符函数调用形式为_。(分数:1.00)A.operator+(1)B.operator+(x)C.operator+()D.operator+(x)2.下列各组类型声明符中,含义相同的一组是_。(分数:1.00)A.unsigned long int 和 longB.signed short int 和 shortC.unsigned short 和 shortD.short int 和 int3.下面

    2、程序错误的语句是 # include iostreamh void main( ) int * p=new int1; p=9; cout * p endl; delete p; (分数:1.00)A.B.C.D.4.下列选项中,能用作数据常量的是_。(分数:2.50)A.o115B.o118C.1.5e1.5D.115L5.下面关于对象概念的描述中,错误的是(分数:1.00)A.C+中的对象就是 C 语言中的结构变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的6.下列关于栈的叙述正确的是_。(分数:1.00)A.栈顶

    3、元素最先被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对7.下列各组类型声明符中,含义相同的一组是_。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 shortC.unsigned short 和 shortD.short int 和 int8.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this 指针的是_。(分数:1.00)Af1Bf2Cf3Df49

    4、.下列程序的执行结果是_。 #includeiostream.h #includestdlib.h class TestClass public: int x,y; TestClass () x=y=0; TestClass (int a,int b)x=a;y=b; void disp() cout“x=“x“,y=“yend1; void main() TestClass s1(2,3); s1.disp(); (分数:2.00)A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=310.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A

    5、.MyClassB.MyClass(MyClass x);C.MyClass(MyClass D.MyClass(MyClass *x);11.下列叙述中,正确的是_。(分数:2.00)A.false 是一个字符型常量B.false 是一个字符串常量C.11 是一个逻辑型常量D.1.1 是一个 double 常量12.C+中设置虚基类的目的是_。(分数:1.00)A.简化程序B.消除二义性C.提高运行效率D.实现数据的隐藏性13.下面类的定义,有 _ 处错误。 class MyClass public: void MyClass(); MyClass(int value); private:

    6、int i=0;(分数:1.00)A.1B.2C.3D.414.一个栈的输入序列为 1,2,3,4,下面 _ 序列不可能是这个栈的输出序列(分数:2.00)A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,115.下列有关类成员的叙述中,错误的是_。(分数:2.00)A.友元函数不是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员可以是常成员16.有如下程序: #includeiostream using namespace std; class BASE public: BASE()cout“BASE“;) ; class D

    7、ERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE17.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func (int);B.void func(int)=0;C.virtual void func=0;D.virtual void flmc(int)18.有如下程序 #includeiostream using namesp

    8、ace std; class A public: virtual void func1()cout“A1“; void func2()cout“A2“; ; class B:public A public: void func1()cout“B1“; void func2()cout“B2“; ; int main() A *p=new B; p-func1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出_。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B219.关于抽象类下面说法正确的是(分数:1.00)A.抽象类就是其中有函数定义但没有实现的类

    9、B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数20.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数C.递归函数D.友元函数21.下面描述中属于软件测试目的的是(分数:2.00)A.改正程序中的错误B.发现程序中的错误C.表明程序没有错误D.验证程序的可靠性22.在深度为 7 的满二叉树中,叶子结点的个数为 _ 。(分数:2.00)A.32B.31C.64D.6323.应用数据库的主要目的是(分数:1.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题D.解决数据量大的问题24.有如下程序:

    10、int x =3; do x- =2; cout x; while(! (-x); 执行这个程序的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2D.死循环25.下面有关重载函数的说法中,正确的是 _ 。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同26.下列关于单目运算符+、-的叙述中,正确的是 _ 。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 d

    11、oule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量27.有如下类声明: class Base protected: int amount; public: Base(int n=0): amount(n) int getAmount()const return amount; ; class Derived: public Base protected: int value; public: Derived(int m, int n): vahle(m), Base(f1) int getData()const return

    12、value+amount; ; 已知 x 是一个 Derived 对象,则下列表达式中正确的是_。(分数:1.00)A.value+x. getAmount()B.getData()-x. getAmount()C.getData()-x. amountD.value+x. amount28.数据库系统的核心是_。(分数:1.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员29.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:1.00)A.5B.6C.7D.830.已知在一个类体中包含如下函数原型:VOLUME o

    13、perator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(分数:2.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值31.以下定义语句中正确的是_。(分数:2.50)A.int a=b=0;B.char A=65+1,b=“b“;C.float a=1,“b=a,“c=b;D.double a=0.0;b=1.1;32.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const33.下列运算符不能重载为友

    14、元函数的是 _ 。(分数:2.00)A.= () B.+ - + -C. = =D.+= -= *= /=34.有如下程序: #includeiostream using namespace std; class Sample public: Sample() Sample()cout“*“;) ; int main() Sample temp2,*pTemp2; return 0: 执行这个程序输出星号(*)的个数为_。(分数:3.00)A.1B.2C.3D.435.下列表达式的值为 false 的是 _ 。(分数:2.00)A.13 class planet protected: doub

    15、le distance; /行星距太阳的距离 int revolve; /行星的公转周期 public: planet(douhle d,int r) distance=d; revolve=r; ; class earth:public planet double circumference; /地球绕太阳公转的轨道周长 public: /定义构造函数 earth(double d,int r),并计算地球绕太阳公转的轨道周长。 /假定:circumference=2d3.1416 1 /定义 show()函数显示所有信息 2 ; int main() earth ob(9300000,36

    16、5); ob.show(); return 0; (分数:2.00)39.下面程序的输出结果是 _ 1_ 。 #include iostream using namespace std; int x; void funA(int void funB(int,int int main ( ) int first; int second=5; x=6; funA(first,second) ; funB(first,second) ; coutfirst“ “second“ “xend1; return 0; void funA(int first=a+b; a=2*b; b=first+4; v

    17、oid funB(int u, int second=x; v=second+4; x=u+v; (分数:1.00)40.一棵二叉树第 6 层(根结点为第一层)的结点最多为 1 个。 (分数:2.00)41.假设用一长度为 50 的数组(数组元素的下标从 0 到 49)作为栈的存储空间,栈底指针 bottom 指向栈底元素,栈顶指针 top 指向栈顶元素,如果 bottom=49,top=30(数组下标),则栈中具有 1 个元素。 (分数:2.00)42.下列程序运行时的输出结果是 1 #includeiostream using namespace std; void Xfun(int in

    18、t main() int a=3,b=4; Xfun(a,b); couta*a+bendl; return 0; void Xfun(int x=y;y=z; (分数:2.00)43.动态联编中直到 1 时才能确定调用哪个函数;而静态联编则是在 2 时进行的。 (分数:1.00)44.软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 1 测试。 (分数:2.00)45.下列程序在构造函数和析构函数中申请和释放类的数据成员 int *a,申请时使用形参 b 初始化 a,请填空。 class A public: A(int b) ; A( ); private: int *a; ;

    19、A:A(int b) 1 2_ ; A:A( ) 3 4_ ; (分数:1.00)46.下面程序的运行结果是 1 和 2。 #includeiostream.h) #define N 10 #define s(x)x*x #define f(x)(x*x) void main() int i1,i2; i11000/s(N);i21000/f(N); couti1“i2; (分数:2.00)47.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。 (分数:2.00)48.下列程序的输出结果为 Object id=0 Object id=1 请将程序补充完整。 #includeiostr

    20、eam using namespace std; class Point public: Point(int xx=0,intyy=0)X=xx;Y=yy;countP+; Point( )eountP-; int GetX( )return X; int GetY( )return Y; static void GetC( )cout“Object id=“countPendl; private: int X,Y; static int countP; ; 1/静态数据成员的初始化 int main( ) Point:GetC( ); Point A(4,5); AGetC( ); retu

    21、rn 0; (分数:2.00)49.关系操作的特点是 1 操作。 (分数:2.00)50.关系数据库管理系统能实现的专门关系运算包括选择、连接和 _ 1_ 。 (分数:2.00)二级 C+-207 答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:55.00)1.已知表达式+x 中的“+”是作为成员函数重载的运算符,则与+x 等效的运算符函数调用形式为_。(分数:1.00)A.operator+(1)B.operator+(x)C.operator+() D.operator+(x)解析:解析 本题考查的是前缀自增运算符的重载。由于题意中“+”是作为成员函数重载

    22、的运算符,所以若要显式的调用该运算符,需要使用该类的对象加上“.”运算符,即 x.operator+();又因为为了区分前缀运算符和后缀运算符,在调用后缀运算符时,需要给出一个整型实参值,而前缀运算符则不需要,所以+x 等效的运算符函数调用形式为:x.operator+(),答案为 C 选项。2.下列各组类型声明符中,含义相同的一组是_。(分数:1.00)A.unsigned long int 和 longB.signed short int 和 short C.unsigned short 和 shortD.short int 和 int解析:解析 本题考查整型变量的类型,A、C 选项中前者

    23、为无符号的,后者为有符号的,D 选项中short int 为 2 个字节,int 为 4 个字节。3.下面程序错误的语句是 # include iostreamh void main( ) int * p=new int1; p=9; cout * p endl; delete p; (分数:1.00)A.B. C.D.解析:解析:本题考查的是指针的使用,p 是指向 int 型的指针,若想给它指向的元素赋值,应使用 * 符号,直接赋值相当于改变了原来 P 存储的地址。4.下列选项中,能用作数据常量的是_。(分数:2.50)A.o115B.o118C.1.5e1.5D.115L 解析:解析 选项

    24、 A 的第一个字母是 o 而不是数字 O,所以不构成数值常量;选项 B 中,8 不是八进制数字,八进制数为 O 到 7;选项 C 中字母“e”后面的指数是小数而非整数,不合法,不是一个合法的指数形式的数值常量;在选项 D 中,可以在整型常量的后面加一个字母 L,表示这个常量在内存中占 4 字节。5.下面关于对象概念的描述中,错误的是(分数:1.00)A.C+中的对象就是 C 语言中的结构变量 B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的解析:解析 本题考核对象的概念。C+中的对象与 C 语言中的结构变量是不一样的。对象

    25、是某一类类型的变量,而结构变量是结构类型的变量。同时 C+对 C 的结构有了扩展,结构可以和类一样使用。结构除了可以包含数据成员外,还可以包含成员函数:成员也可以加上 public、private 和 protected 访问控制;结构之间也可以继承。两者惟一的不同之处是,结构中的成员默认是公有的,结构的继承默认是公有的,而类的继承默认是私有的,类的成员默认也是私有的。6.下列关于栈的叙述正确的是_。(分数:1.00)A.栈顶元素最先被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:解析 栈是限定在一端进行插入删除的先入后出的线性表数据结构,栈顶元素最后被

    26、插入到栈中但是最先被删除;而栈底元素最先被插入,最后被删除。7.下列各组类型声明符中,含义相同的一组是_。(分数:2.00)A.unsigned long int 和 longB.signed short int 和 short C.unsigned short 和 shortD.short int 和 int解析:解析 此题考查的是基本类型和派生型。C+语言中,基本类型的字长及其取值范围可以放大和缩小,改变后的类型就叫做基本类型和派生类型。本题 A 选项中,unsigned long int 的省略形式为unsigned long;选项 B 中,signed short int 的省略形式是

    27、 short;选项 C 中,unsigned short 的省略形式是 unsigned short;选项 D 中,short int 的省略形式是 short。8.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this 指针的是_。(分数:1.00)Af1Bf2Cf3 Df4解析:解析 只有类的非静态成员函数才隐含 this 指针,其作用域是类内部,当类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,

    28、而不必一定写上this。所以本题答案为 C。9.下列程序的执行结果是_。 #includeiostream.h #includestdlib.h class TestClass public: int x,y; TestClass () x=y=0; TestClass (int a,int b)x=a;y=b; void disp() cout“x=“x“,y=“yend1; void main() TestClass s1(2,3); s1.disp(); (分数:2.00)A.x=2,y=2B.x=2,y=3 C.x=3,y=2D.x=3,y=3解析:解析 由主函数入手,定义了类 Tes

    29、tClass 的对象 s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应读是调用具有参数的“TestClass(int a,int b)x=a;y=b;)”。然后引用成员函数disp(),则输出为“cout”x=“x”,y=“yend1;”。即 x=2,y=3。10.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClassB.MyClass(MyClass x);C.MyClass(MyClass D.MyClass(MyClass *x);解析:解析 本题考核拷贝构造函数的概念。声明拷贝构造函数的格式为:类名:拷贝构造函数(const类

    30、名,其中 const 是修饰符可以省略。11.下列叙述中,正确的是_。(分数:2.00)A.false 是一个字符型常量B.false 是一个字符串常量C.11 是一个逻辑型常量D.1.1 是一个 double 常量 解析:12.C+中设置虚基类的目的是_。(分数:1.00)A.简化程序B.消除二义性 C.提高运行效率D.实现数据的隐藏性解析:解析 多重继承的派生类有可能从两个或多个基类中继承同名成员,对该成员不加限定的访问就会造成二义性,虚基类就是为了解决这个二义性问题,无论该类在派生层次中作为虚基类出现多少次,都只继承一个共享的基类子对象,从而消除二义性。答案选 B 选项。13.下面类的定

    31、义,有 _ 处错误。 class MyClass public: void MyClass(); MyClass(int value); private: int i=0;(分数:1.00)A.1B.2C.3 D.4解析:解析 上述类的定义共有三处错误:类的成员变量不能在定义时进行初始化;类的构造函数不能有返回值(包括 void 类型);类的析构函数不能有参数。14.一个栈的输入序列为 1,2,3,4,下面 _ 序列不可能是这个栈的输出序列(分数:2.00)A.1,3,2,4B.2,3,4,1C.4,3,1,2 D.3,4,2,1解析:15.下列有关类成员的叙述中,错误的是_。(分数:2.00

    32、)A.友元函数不是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的 D.类的静态数据成员可以是常成员解析:16.有如下程序: #includeiostream using namespace std; class BASE public: BASE()cout“BASE“;) ; class DERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是 _ 。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERI

    33、VEDBASE 解析:解析 本题考查派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当 main 函数结束时,派生类 DERIVED 的对象 x 将被删除,那么派生类 DERIVED 的析构函数先被调用,输出 DERIVED,然后调用基类的析构函数输出 BASE。17.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func (int);B.void func(int)=0;C.v

    34、irtual void func=0; D.virtual void flmc(int)解析:解析 本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除 A 和 D。而B 中没有出现 virtual 关键词,故正确答案为 C。18.有如下程序 #includeiostream using namespace std; class A public: virtual void func1()cout“A1“; void func2()cout“A2“; ; class B:public A public: void func1()cout“B1“; void func2()co

    35、ut“B2“; ; int main() A *p=new B; p-func1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出_。(分数:2.00)A.B1B2B.A1A2C.B1A2 D.A1B2解析:解析 此题考查的是虚函数的概念。此题中,func1 是虚函数,func2 是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句 A*p=new B;定义了一个基类的指针 p,并让它指向一个派生类对象。所以通过该指针调用 func1 时,运行的是派生类的版本,而通过该指针调用 func2运行的是基类的版本。所以程序运行的最后输出是:B1A2。

    36、19.关于抽象类下面说法正确的是(分数:1.00)A.抽象类就是其中有函数定义但没有实现的类B.抽象类是可以被实例化的C.派生类不能成为抽象类D.抽象类的子类必须实现父类中的纯虚函数 解析:解析:C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。20.为了取代 C 中带参数的宏,在 C+中使用_。(分数:2.00)A.重载函数B.内联函数 C.递归函数D.友元函数解析:解析 此题考查的是内联函数。C+语言引入内联函数的原因是用它来取代 C 语言的预处理宏函数。故选项 B 正确。21.下面描述中属于软件测试目的的是(分数:2.00)A

    37、.改正程序中的错误B.发现程序中的错误 C.表明程序没有错误D.验证程序的可靠性解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。 测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。有人将测试的挑剔性总结为以下三点: 测试是程序执行的过程,目的在于发现错误; 一个好的测试在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误。 由于测试的这一特征,一般应当避免由开发者测试自己的程序。 测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,

    38、即完全测试是不可能的。 由此可知,选项 A、C、D 都不属于软件测试目的。22.在深度为 7 的满二叉树中,叶子结点的个数为 _ 。(分数:2.00)A.32B.31C.64 D.63解析:23.应用数据库的主要目的是(分数:1.00)A.解决数据保密问题B.解决数据完整性问题C.解决数据共享问题 D.解决数据量大的问题解析:解析 数据库中的数据具有“集成”与“共享”的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而使它们可以被不同应用程序所使用,故选项 C)正确。24.有如下程序: int x =3; do x- =2; cout x; while(! (-x); 执行这个程序

    39、的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2 D.死循环解析:解析 本题考查 do. while 语句,执行 do. while 语句时,先执行循环体内的语句,然后判断 while 中表达式的值,表达式为非零时,返回重新执行循环体语句。在本题中,先执行循环体内的语句,输出 2,然后判断表达式,为非零,且此时 x 为 0;再次执行循环体时,输出-2,然后判断表达式为 0,不执行,退出,所以答案为 C。25.下面有关重载函数的说法中,正确的是 _ 。(分数:1.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表 D.重载函数名可

    40、以不同解析:解析 函数重载允许用同一个函数名定义多个函数。被重载的函数必须要有不同的形参列表。不可以根据函数返回值类型来重载函数。26.下列关于单目运算符+、-的叙述中,正确的是 _ 。(分数:1.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量 解析:解析 本题考核 C+的-和+运算符。在 C+中,-和+这两种运算符是单目运算符,其运算对象可以是

    41、整型、字符型、float 型和 double 型等基本数据类型。27.有如下类声明: class Base protected: int amount; public: Base(int n=0): amount(n) int getAmount()const return amount; ; class Derived: public Base protected: int value; public: Derived(int m, int n): vahle(m), Base(f1) int getData()const return value+amount; ; 已知 x 是一个 De

    42、rived 对象,则下列表达式中正确的是_。(分数:1.00)A.value+x. getAmount()B.getData()-x. getAmount() C.getData()-x. amountD.value+x. amount解析:解析 本题考查公有继承中派生类对象对基类的访问属性。在公有继承中,派生类对象只能访问基类的公有成员,而不能访问基类的保护成员和私有成员。题中是 x 派生类的对象,只能访问基类中公有的 Base()和 getAmount()成员,而不能访问保护类型的 amount 成员,故选项 C、D 错误。而类对象对类成员的访问也存在类似的情况,即类对象只能访问类的公有成

    43、员,而 value 是 Derived 的保护成员,所以 A选项也错误。故答案为 B。28.数据库系统的核心是_。(分数:1.00)A.数据模型B.数据库管理系统 C.数据库D.数据库管理员解析:解析 数据库管理系统是数据库系统的核心。29.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:1.00)A.5B.6C.7D.8 解析:解析 根据给定的条件,在树中,各结点的分支总数为:41+22+13+41=15:树中的总结点数为:15(各结点的分支总数)+1(根结点)=16:非叶子结点总数为: 4+2+1+1=8。因此,叶子结点数为

    44、16(总结点数)-8(非叶子结点总数)=8。因此,本题的正确答案为 D。30.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(分数:2.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 二元运算符被重载为类的成员函数时,只需要定义一个参数,而另外一个参数为该对象自身。31.以下定义语句中正确的是_。(分数:2.50)A.int a=b=0;B.char A=65+1,b=“b“; C.float a=1,“b=

    45、a,“c=b;D.double a=0.0;b=1.1;解析:解析 本题考查数据类型的定义。选项 A 中是要定义变量并且赋初值,但方式不对,必须单独定义其类型。选项 C 给实型变量赋值时不用双引号,也不能将地址赋予实型变量,在选项 D 中,C 语言允许在一个类型说明符后说明多个相同类型的变量,各变量之间要用逗号隔开,而不是用分号隔开,选项 B 正确。32.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型 D.常成员函数关键字 const解析:解析 所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相

    46、同,其参数类型或个数不同,但不能出现函数返回值类型不同而参数类型和个数完全相同的重载。所以本题答案为 C。33.下列运算符不能重载为友元函数的是 _ 。(分数:2.00)A.= () B.+ - + -C. = =D.+= -= *= /=解析:解析 此题考查的是运算符重载的概念。C+语言规定,=、()、-以及所有的类型转换运算符只能作为成员函数重载,如果要重载为友元函数就必须重载为非成员函数。34.有如下程序: #includeiostream using namespace std; class Sample public: Sample() Sample()cout“*“;) ; int

    47、 main() Sample temp2,*pTemp2; return 0: 执行这个程序输出星号(*)的个数为_。(分数:3.00)A.1B.2 C.3D.4解析:解析 在 main 函数中,定义了 Sample temp2的一个包含两个对象的数组,还定义了一个*pTemp2,是包含两个指向类对象的指针的数组,故定义的指针当 main 函数结束后是不会调用析构函数的,只有包含两个对象的数组 temp2会调用析构函数,因此只输出两个*。35.下列表达式的值为 false 的是 _ 。(分数:2.00)A.13 class planet protected: double distance; /行星距太阳的距离 int revolve; /行星的公转周期 public: p


    注意事项

    本文(【计算机类职业资格】二级C++-207及答案解析.doc)为本站会员(吴艺期)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开