部分c、c++笔试题集锦(19)

2021-01-20 20:35

网上收集的c/c++的笔试题,将部分整理成节,上传后大家方便。不是很全,但是可以作为笔试的参考吧。

请回答下列问题:

(1)执行该程序后,输出结果是什么? (2)该程序中哪些语句采用了动态联编? (3)去掉virtual void Print( )中的关键字virtual后,该程序的输出结果是什么? 九、分析下列程序,并回答后面的问题。(分) 程序内容如下:

#include <iostream.h> class A {

public: A(int i){ a=i;

cout<<”a=”<<a<<endl; } ~A(){ cout<<”A’s destructor “<<a<<endl; } int a; };

class B: virtual public A {

public: B(int i, int j): A(i) { cout<<”B:”<<j<<endl; } };

class C: virtual public A {

public:

C(int i, int j): A(i)

{ cout<<”C:”<<i+j<<endl; } };

class D: public B, public C {

public:

D(int k1, int k2, int k3, int k4): B(k1,k2), C(k4,k3), A(k1) {

cout<<”D:”<<k4<<endl; } };

void main() { D d(1,2,3,4); A a(5); a=A(6);

cout<<”a.a=”<<a.a<<endl; cout<<”d.a=”<<d.a<<endl; }

请回答下列问题:

(1)执行该程序后,输出结果是什么? (2)去掉class B: virtual public A 和class C: virtual public A中的关键字virtual后,该程序的哪个语句的执行会出现二义性?

(3)将class D: public B, public C修改成class D: public C, public B后,输出结果是否有变化?

(4)将B(k1,k2), C(k4,k3), A(k1) 修改成C(k4,k3), B(k1,k2), A(k1)后,输出结果是否有变化? 整理之c++笔试2

一、 填空题(25小题,共50分) (以下每小题1分,共10分) 1. 在C++中,函数的参数有两种传递方式,它们是值传递和 地址或指针或引用传递 。 2. 当一个成员函数被调用时,该成员函数的 this指针 指向调用它的对象。

3. 在基类和派生类中,派生类可以定义其基类中不具备的数据和操作。对两个有相同名字的数据成员进行访问时,如果没有 作用域分隔符限定时 ,对此数据成员的访问将出现歧义。 4. 拷贝构造函数使用 引用 作为参数初始化创建中的对象。

5. 在公有继承的情况下,基类数据成员在派生类中的访问权限 保持不变 。

6. 描述命题”A小于B或小于C”的表达式为 A<B||A<C 。 7. 用new申请某一个类的动态对象数组时,在该类中必须能够匹配到 没有形参的或缺省参数 构造函数,否则应用程序会产生一个编译错误。

8. 静态数据成员在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象 共享 。

9. 为了避免可能出现的歧义,C++对if else语句配对规则规定为:else总是与 与最近的if 配对。


部分c、c++笔试题集锦(19).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:混凝土结构设计2_复习题及答案2011_2012年

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: