您的位置:首页 > 编程语言 > C语言/C++

C/C++_lesson9~14测试

2014-07-27 19:30 169 查看
第一大题、描述题,实现题目要求的代码或写出题目要求的解释(共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分)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: