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

C++考试及答案(试卷一)

2013-11-06 23:04 295 查看
三. 程序阅读题。 尤其重要,要弄懂你的c++就很不错了,尤其第5题。不会的话,有一篇博客有专讲。

一、 单选题(共20分)

1. 关于对象概念的描述中,( )是错误的。

A) 对象就是C语言中的结构体 B) 对象是状态和操作的封装体

C) 对象之间的信息传递是通过消息进行的 D) 对象是某个类的一个实例

2. 已知,int m=10,在下列表示引用的方法中正确的是( )

A)int &x=m B)int &y=10 C)int &z D)float &t=&m

3. 假设MyClass是一个类,则该类的拷贝构造函数的声明语句为( )

A) MyClass(MyClass p); B ) MyClass& (MyClass p);

C) MyClass(MyClass& p); D) MyClass(MyClass * p);

4. 已知类A是类B的友元,类B是类C的友元,则( )

A) 类A一定是类C的友元 B) 类C一定是类A的友元

C) 类C的成员函数可以访问类B的对象的任何成员

D) 类A的成员函数可以访问类B的对象的任何成员

5. 下列对继承关系的描述中,正确的是( )

A)在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的

B)在公有继承中,基类中只有公有成员对派生类的对象是可见的

C)在私有继承中,基类中只有公有成员对派生类对象是可见的

D)在私有继承中,基类中的保护成员对派生类的对象是可见的

6.模板类型参数包含关键字( )

A) class B) typename C) class或typename D) class与typename

7. 已知:print ( ) 函数是一个类的常成员函数,它无返回值,下列表示中,

( )是正确的

A) void print ( ) const ; B) const void print ( );

C) void const print ( ); D)void print (const);

8. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是( )

A)test(5); B)test(5,8); C)test(6,"#"); D)test(0,0,"*");

9. 如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是( )

A)virtual show( )=0; B)virtual void show( );

C)virtual void show( )=0; D)void show( )=0 virtual;

10. 当用户进行鼠标操作时,释放鼠标左键会发出( )消息。

A)WM_lBUTTONDOWN B)WM_lBUTTONUP

C)WM_lBUTTONBLOCK D)WM_RBUTTONUP

11.应在下列程序划线处填入的正确语句是( )

  #include

  class Base

  {  public:

   void fun(){cout<<"Base::fun"<<ENDL;}

  };

  class Derived:public Base

  {  void fun()

    {_____________ //显示调用基类的函数fun()

    cout<<"Derived::fun"<<ENDL;

    }

  };

 

A. fun(); B. Base.fun(); C. Base::fun(); D. Base->fun();

12. 在下列叙述中,不是Windows程序的特点是( )

A. Windows程序通过窗口与用户进行交互。

B. Windows程序是应用事件驱动进行编程。

C. Windows程序是利用消息进行通信。

D. Windows程序是利用过程驱动的程序。

13. 下列不是Windows绘图对象类的是( )

A. CBrush B. CPen C. CRect D. CFont

14. 在下列MFC中,不是控件类是( )

A. CListCtl B. CComboBox C. CTreeCtl D. CMenu

15. 当单文档应用框架接收到框架窗口的命令时,它将按如下次序来寻找相应的消息控制函数( )

A.视、文档、SDI主框架、应用 App

B.文档、应用 App、视、SDI主框架

C.视、文档、应用 App、SDI主框架

D.SDI主框架、文档、视、应用 App

16. 关于动态绑定(联编)的下述描述中( )是错误的。

A.动态绑定(联编)是在编绎时不确定操作数的。

B.动态绑定(联编)是以虚函数为基础的。

C.动态绑定(联编)是在继承前提下的一种多态性。

D.动态绑定(联编)是要类的继承是公有的。

17. C++中,下面设置的默认参数正确的是( )

A. void fun(int x=0,int y,int z) B. short fun(int x=0,int y=0,int z)

C. float fun(int x=0,int y,int z=0) D. double fun(int x,int y=0,int z=0)

18. 下面有关构造函数的描述正确的是( )

A.构造函数只能有一个 B.构造函数不能带参数

C.构造函数不能重载 D.构造函数不能是虚函数

19. 有关重载的描述正确的是( )

A.运算符(操作符) + new . ?:都可以重载 B.运算符(操作符)重载不改变操作数的个数

C.运算符(操作符)重载可以改变优先级数 D.运算符(操作符)重载可以改变语法结构

20. 在下列叙述中,叙述错误的是( )

A.Windows应用程序与控制台(Console)程序的入口函数不同。

B.在基于MFC编写的程序中,其类大部分都是由CObject类派生出来

C.WM_LBUTTONDOWN、WM_RBUTTONUP、WM_KEYDOWN都是鼠标消息

D.对话框、图标、菜单、光标等在VC中都可以是作为资源来处理

二. 填空题(共20分)

1. 描述命题"A小于B或小于C"的表达式为

2. 当一个成员函数被调用时,该成员函数的 指向调用它的对象。

3. 举出C++中两种用户自定义的数据类型: 、

4. 动态联编要满足两个条件,它们是 被调用的成员函数是虚函数 、 用指针或引用调用虚函数

5. 在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为 ,定义该类至少具有一个 。

6.Windows应用程序的入口函数是___ ___。

7.MFC英文名称的全称是(中文)___

三. 程序阅读题(共25分)

1. 阅读下面程序,写出运行结果

#include <iostream.h>

class Test

{private:

int i;

static int k;

public:

Test();

void Display();

};

int Test::k=0;

Test::Test()

{

i=0;

k++;

}

void Test::Display()

{ cout<<"i="<<i<<",k="<<k<<endl; }

void main()

{

Test a,b;

a.Display();

b.Display();

}

2. 阅读下面程序,写出运行结果

#include <iostream.h>

class B {

int y;

public:

friend class A;

};

class A{

int x;

public:

A(int a, B &r, int b) {x=a; r.y=b;}

void Display( B & );

};

void A::Display(B &r)

{cout<<x<<" "<<r.y<<endl;}

void main( )

{ B Obj2;

A Obj1(33,Obj2,88);

Obj1.Display(Obj2);

}

3.阅读下面程序,写出运行结果

#include <iostream.h>

class base

{ public:

virtual void f1()

{ cout<<“f1 function of base! \n”; }

virtual void f2()

{ cout<<“f2 function of base! \n”; }

virtual void f3()

{ cout<<“f3 function of base! \n”; }

void f4()

{ cout<<“f4 function of base! \n”; }

};

class derive: public base

{ public:

void f1()

{ cout<<“f1 function of derive! \n”; }

void f2(int x)

{ cout<<“f2 function of derive! \n”; }

void f4()

{ cout<<“f4 function of derive! \n”; }

};

main()

{

base obj1,*ptr;

derive obj2;

ptr = &obj1;

ptr->f1();

ptr->f2();

ptr->f3();

ptr = &obj2;

ptr->f1();

ptr->f2();

ptr->f4();

return 1;

}

4.阅读下面程序,写出运行结果

#include <iostream.h>

class A

{

public:

A( ){cout << “A Constructor” << endl;}

virtual ~A( ){cout << “A Destructor” << endl;}

virtual void f( ){cout << “A::f( )” << endl;}

void g( ){ f( ); }

};

class B:public A

{

public:

B( ){f();cout << “B Constructor” << endl;}

~B( ){cout << “B Destructor” << endl;}

};

class C:public B

{

public:

C( ){f( ); cout << “C Constructor” << endl;}

~C( ){cout << “C Destructor” << endl;}

void f( ){cout << “C::f( )” << endl;}

};

void main()

{

A *p=new C;

p->g( );

delete p;

}

5.阅读下面程序,写出运行结果:



#include <iostream.h>

class CSample{

char ch1,ch2;

public:

friend void set(CSample &s,char c1,char c2);

CSample(char a, char b){

ch1=a; ch2=b;

cout<<"CSample Constructor"<<endl; }

CSample(const CSample & rhs){

ch1=rhs.ch1;

ch2=rhs.ch2;

cout<<"CSample Copy-constructor"<<endl; };

CSample & operator=(const CSample& rhs){

ch1=rhs.ch1;

ch2=rhs.ch2;

cout<<"CSample Operator ="<<endl;

return *this; }

~ CSample() {

cout << "ch1=" << ch1 << ",ch2=" << ch2<< endl;}

};

void set(CSample &s,char c1,char c2)

{ s.ch1=c1; s.ch2=c2;}

CSample fun(CSample obj)

{ set(obj,'7','9'); return obj;}

void main()

{

CSample obj1('7','8');

CSample obj2=obj1;

obj2=fun(obj1);

}

四、 名词解释(共15分)

1.多态性 2. 深拷贝 3. 友元 4. GDI 5. 句柄

五.综合题(共20分)

1.解释下列代码,说明其完成的功能是什么?

点击鼠标左键,绘画画一个矩形,矩形大小为边长为40的正方形,填充色为红色,边看绿色。

void CTest2View::OnLButtonDown(UINT nFlags, CPoint point)

{

CClientDC dc(this);

CPen pen(PS_SOLID,2,RGB(0,255,0));

CBrush brush(RGB(244,0,0));

dc.SelectObject(&pen);

dc.SelectObject(&brush);

dc.Rectangle(point.x-20,point.y-20,point.x+20,point.y+20);

CView::OnLButtonDown(nFlags, point);

}

2.下面是应用AppWizard生成的单文档程序One中的视图类的实现文件OneView.cpp中的OnDraw函数,试填写划线空白处。,

void COneView::OnDraw(__CDC*______ pDC)

{

COneDoc* pDoc = _GetDocument()____________________;

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

一.选择题

AACDB AACCB CDCDA ADDBC

二.填空题

1.A<B||A<C

2.this指针

3.类 、 枚举

4.被调用的成员函数是虚函数 、 用指针或引用调用虚函数

5.抽象类,纯虚函数

6.WinMain()

7.微软基础类

三.程序阅读

1. i=0,k=2

i=0,k=2

2.33 88

3.f1 function of base!

f2 function of base!

f3 function of base!

f1 function of derive!

f2 function of base!

f4 function of base!

4.

A Constructor

A::f()

B Constructor

C::f()

C Constructor

C::f()

C Destructor

B Destructor

A Destructor

5.

CSample Constructor

CSample Copy-constructor

CSample Copy-constructor

CSample Copy-constructor

ch1=7,ch2=9

CSample Operator =

ch1=7,ch2=9

ch1=7,ch2=9

ch1=7,ch2=8

四.名词解释

参见课本相关章节

五.

1. 在客户区点击鼠标左键后,如下(正方形边长40)

2. CDC*,GetDocument()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: