C++面向对象程序设计模拟试题七一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下列语句中,错误的是()。A)constintbuffer=168;B)constintnum;C)constdouble*p;D)double*constp=newdouble;2.C++中的模板包括()。A)对象模板和函数模板B)对象模板和类模板C)函数模板和类模板D)变量模板和对象模板3.对于常对象,C++遵循()。A)通过常对象可以调用常成员函数B)通过常对象可以所有成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数4.以下关键字不能用来声明类的访问权限的是()。A)publicB)staticC)protectedD)private5.下列关于this指针的叙述中,正确的是()。A)与类相关的所有函数都含有this指针B)所有类的成员函数都有this指针C)所有函数都有this指针D)只有类的非静态成员函数才有this指针6.派生类的成员函数不能直接访问基类的()。A)保护成员B)公有成员C)私有成员D)前面各选项都正确7.在下列函数原型中,可以作为类Test构造函数的是()。A)voidTest(int);B)intTest();C)~Test(int);D)Test(int);8.在下面4个关键字中,用于说明虚基类的是()。A)virtualB)publicC)protectedD)private9.在C++中,用于实现编译时多态性的是()。A)友元函数B)重载函数C)静态成员函数D)虚函数10.下列关于C++函数的说明中,正确的是()。A)内置函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)C++标准要求在调用一个函数之前,如果没定义函数,则必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1.一个函数名为Show,返回值类型为void,没有参数的纯虚常成员函数可以声明为()。2.若将一个二元运算符重载为类的友员函数,其形参个数应该是()个。3.采用struct定义的类中数据成员和成员函数的默认访问权限是()。4.在面向对象方法中,()描述的是具有相同属性与操作的一组对象。5.模板类型形参表使用的关键字为()。三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1.阅读下面程序,写出输出结果。#include
usingnamespacestd;classTest{private:intn;public:Test(inti=16){n=i;}intGet(){returnn;}intGet()const{returnn-2;}};intmain(){Testa;constTestb(18);cout<usingnamespacestd;classA{public:A(){cout<<"A"<usingnamespacestd;intf(inta){returna*a+8;}templateTf(constT&a){returna*a;}intmain(){cout<usingnamespacestd;namespacens{intx=18;}intx=5;intmain(){intx=10;cout<usingnamespacestd;classA{public:virtualvoidShow()const{cout<<"A::Show()"<usingnamespacestd;classA{protected:inta;public:A(intx):a(x){}voidShow()const{cout<