C/C++_lesson9~14测试

第一大题、描述题,实现题目要求的代码或写出题目要求的解释(共70分)

1. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。

2. 用变量a给出下面的定义

a) 一个整型数

b) 一个指向整型数的指针

c) 一个指向指针的的指针,它指向的指针是指向一个整型数

d) 一个有10个整型数的数组

e) 一个有10个指针的数组,该指针是指向一个整型数的

f) 一个指向有10个整型数数组的指针

g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数

h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

3.写出下面const写法的作用

const int a;

int const a;

const int *a;

int * const a;

int const * a const;

4.下面的写法是否合法,结果是什么?

int a = 5, b = 7, c;

c = a+++b;

5. 引用与指针有什么区别?

6. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别?

7. 写出float x 与“零值”比较的if语句。

8.不能当做switch()的参数类型有哪些?

9.语句for(;1;)有什么问题?它是什么意思?

10.对于一个频繁使用的短小函数,在C语言中应该用什么实现,在C++中应用什么实现?

11.面向对象的三个基本特征,并简单叙述之?

12.当一个类A 中没有声明任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。

 

13.比较C++中的4种类型转换方式的主要用处?

14.main 主函数执行完毕后,是否可能会再执行一段代码,给出说明或实现?

 

第二大题、看代码写出结果(共20分)

1: 请写出输出结果【5分】

class A{

public:

    A(){

        printf("A::A()\n");

        fun();

    }

    void fun(){

        printf("A::fun()\n");

    }

};

class B:public A{

public:

    B(){

        printf("B::B()\n");

        fun();

    }

    void fun(){

        printf("B::fun()\n");

    }

};

int main(intargc,char* argv[])

{

    A b;

    B* pb=&b;

    pb->fun();

    return 0;

}

2:写出下列程序运行结果【5分】

class A

{

Public:

    virtual void fun()

    {

        cout<<"A::fun"<<endl;

    }

};

class B:public A

{

Public:

    virtual void fun()

    {

        cout<<"B::fun"<<endl;

    }

};

void test( A* a )

{

a->fun();

}

class C : public A

{

    virtual void fun()

    {

        cout<<"C::fun"<<endl;

    }

};

int main(intargc,char* argv[])

{      

 B* b = new B;

 C* c = new C;

 test(b);

 test(c);

}

3写出运行结果【5分】

class A

{

Public:

    virtual void fun()

    {

        cout<<"A::fun"<<endl;

    }

};

class B:public A

{

Public:

    void fun()

    {

        cout<<"B::fun"<<endl;

    }

   

    void fun0()

    {   

        cout<<"B::fun0()"<<endl;      

    }

};

int main(intargc,char* argv[])

{

    A* a = new A;

    B* b = new B;

    A* a;

    B* Pb;

    Pb = static_cast<B>(a);

    Pb-> fun0();

    Pb-> fun();

}

4.写出下列程序运行结果【5分】

    class A

    { public:

        virtual void fun()

        {  

             cout<<"A::fun()"<<endl;     

        }

        void Show()

        {    

             fun();

        }

    };

   

    class B:public A

    { public:

virtual void fun()

{  

 cout<<"B::fun()"<<endl;

}

        voidShow()

{ fun();}

};

   

    int main(int argc,char* argv[])

    {

        A* pa = new A;

        B* pb = new B;

        pa->Show();

        ((A*)pb)->Show();

    }

第三大题、代码实现(共30分)

1.给定一个整型变量a,写两个函数,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。(10分)

2.写程序,要求实现字符串类MyString,至少可以实现以下应用(10分)

MyString str ="hello";

str = "tom";

printf( str );

3.写程序实现栈结构(10分)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值