[计算机类试卷]国家二级C++机试(选择题)模拟试卷110及答案与解析.doc
《[计算机类试卷]国家二级C++机试(选择题)模拟试卷110及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(选择题)模拟试卷110及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C机试(选择题)模拟试卷 110及答案与解析 一、选择题 1 有如下程序: #include using namespace std; class A public: A()cout using namespace std; class Base public: void fun0coutfun(); 3 下列关于虚基类的描述中,错误的是 ( )。 ( A)使用虚基类可以消除由多继承产生的二义性 ( B)构造派生类对象时,虚基类的构造函数只被调用一次 ( C)声明 “class B: virtual public A”说明类 B为虚基类 ( D)建立派生类对象时,首先调用虚基类的构造
2、函数 4 有如下程序: #include using namespace std; class Mountain int height; public: Mountain(int 0): height(h) virtual char*GetNarne() constreturn“山 “; int GetHeight() constreturn, height; ; class Lushan: public Mountain Public: Lushan(int d): Mountain(d) Char*GetName() constreturn“庐山 “; ; int main() Mount
3、ain*p new Lushan(1000); coutGetName0GetHeight0 ( A)庐山海拔 1000米 ( B)庐山海拔 0米 ( C)山海拔 1000米 ( D)山海拔 0米 5 在 C中,用于实现运行时多态性的是 ( )。 ( A)内联函数 ( B)重载函数 ( C)模板函数 ( D)虚函数 6 下列关于虚函数的说明中,正确的是 ( )。 ( A)从虚基类继承的函数都是虚函数 ( B)虚函数不得是静态成员函数 ( C)只能通过指针或引用调用虚函数 ( D)抽象类中的成员函数都是虚函数 7 有如下程序: #include using namespace std; clas
4、s Base public: void fun1 ()coutfunc1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) A182 9 如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #include using namespace std; class Base int a, b; public: Base(int x, int y)a x; b: y; void show()cout*pb; Derived
5、 D1(10, 20, 30, 40); pb D1; return 0; return(); 运行时输出的结果是 ( )。 ( A) 10, 20 ( B) 30, 40 ( C) 20, 30 ( D) 50, 50 10 虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。有如下程序: #include using namespace std; class Base public: virtual void f()cout*p d; P-fi(); P-g(); return 0; 运行时
6、输出的结果是( )。 ( A) f g ( B) f0 g ( C) f g0 ( D) f0 g0 11 有如下程序; #include using namespace std; class Base public: void output0cout*ptr new Derived; ptr-output(); ptr-Print(); delete ptr; return 0 程序的输出结果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 12 有如下程序; #include using namespace std; class B public: virtua
7、l void show()cout*ptr)ptr-show(); void fun2(B&ref)ref show(); void fun3(B b)b show(); int main() B b, *p new D; D d; fun1(p); fun2(b); fun3(d); return 0; 程序的输出结果是 ( )。 ( A) BBB ( B) BBD ( C) DBB ( D) DBD 13 下列有关抽象类和纯虚函数的叙述中,错误的是 ( )。 ( A)拥有纯虚函数的类是抽象类,不能用来定义对象 ( B)抽象类的派生类若不实现纯虚函数,它也是抽象类 ( C)纯虚函数的声明以
8、“ 0; ”结束 ( D)纯虚函数都不能有函数体 14 有如下程序: #include using namespace std; class GA public; virtual hat f()retum 1; ; class GB: public GA public; virtual int f0return 2; ); void show(GA g)cout using namespace std; class A public: virtual void f()coutname,name); const char*getName()constreturn name; virtual co
9、nst char*getType()constreturn“未知类型 “; ; class Book: public Publication 书类 public: Book(char*name): Publication(name) virtual const char*getType()constreturn“书 “; ; void showPublication(Publication &p) cout ( A)未知类型:未知名称 ( B)未知类型:精彩人生 ( C)书:未知名称 ( D)书:精彩人生 19 下面是类 shape的定义: class Shape public: Virtua
10、l void Draw() 0; ; 下列关于 Shape类的描述中,正确的是 ( )。 ( A)类 Shape是虚基类 ( B)类 Shape是抽象类 ( C) 类 Shape中的 Draw函数声明有误 ( D)语句 “Shape s; ”能够建立 Shape的一个对象 S 20 有如下程序: #include using namespace std; class B public: B(int xx):x(xx) count; x 10; virtual void show()const cout*ptr new D(10, 20); ptr-show(); delete ptr; ret
11、urn 0; 运行时的输出结果是 ( )。 ( A) 1_120 ( B) 2_120 ( C) 1_20 ( D) 2_20 21 有如下程序: #include using namespace std; class Instrument public: virtual void Display() 0; ; class Piano: public Instrument public: void Display() *函数体程序略 * ; int main() Instrument s; Instrument*p 0; ; return 0; 下列叙述中正确的是 ( )。 ( A)语句 “I
12、nsturment*p 0; ”编译时出错 ( B)语句 “Instrument s; ”编译时出错 ( C)类 Piano中的 Display函数不是虚函数 ( D)类 Instrument是一个虚基类 22 有如下程序: #include using namespace std; class Book public: Book(char*t“)strcpy(title, t); _ private: char title40; ; class Novel: public Book public: Novel(char*t “): Book(t) char*Category()constre
13、turn“文学 “; ; int main() Book*pb; pb newNove1(); coutCategory(); return 0; 若程序运行时输出结果是 “文学 ”,则划线处缺失的语句是 ( )。 ( A) char*Category(); ( B) char*Category()const; ( C) virtual char*Category()const; ( D) virtual char*Category()const 0; 23 有如下程序: #include using narnespace std; class Base public: virtual voi
14、d function1()rout*P new Derived(); p-function1(); P-function2(); return 0; ; 运行时的输出结果是 ( )。 ( A) 01 ( B) 21 ( C) 03 ( D) 23 24 有如下程序: #include using namespace std; class Base public: virtual void Show()tout*p 1 new Derived; Derived*p2 new Derived; p1-Show(); p2-Show(); delete p1; delete p2; return 0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 选择题 模拟 110 答案 解析 DOC
