admin 管理员组

文章数量: 887021


2023年12月22日发(作者:知识答题类小程序源码下载)

1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( 3)

2、对于类中定义的成员,其隐含访问权限为(private )

3、一个类的友元函数或友元类能够通过成员操作符访问该类的(B所有成员 )

4、下面说法正确的是( A、构造函数可以重载,析构函数不能重载。)

5、下列语句的运行结果为( D 6)

#include

srtuct COMPLEX

{int x;int y;

} cNum[2]={1,3,2,7};

void main()

{cout<< cNum[0].y*cNum[1] x<

6、类AB的缺省构造函数和析构函数是( AB( )和~AB( ) )

7、在C++中,若对函数未加说明,则函数的隐含类型是(A int )

8、已知类A是类B的友元,类B是类C的友元,则(类A的成员函数可以访问类B的对象的任何成员)

9、下列说法中正确的是( B )

A、类定义中只能说明函数成员的函数头,不能定义函数体

B、类中的函数成员可以在类体中定义,也可以在类体之外定义

C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中

D、在类体之外定义的函数成员不能操作该类的私有数据成员

10、以下不属于成员函数的是( B )

A、静态成员函数 B、友元函数C、构造函数

D、析构函数

11、对于消息队列的描述正确的是( D )

A、在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。

B、系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。

C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。

- 1 -

D、以上都正确

13、MFC类库中的类按层次关系可知,CStatic 的直接父类为( B

CWnd )

14、可以利用控件的( Group )属性和Tab键顺序来为控件分组。

15、根据对话框的行为性质,对话框可以分为两类:(模式对话框和非模式对话框 )

16、以下控件中,( C )没有Caption属性。

A、按钮 B、群组框 C、编辑控件 D、静态控件

18、更新菜单状态的消息是( ON_UPDATE_COMMAND_UI )。

19、关于工具栏、菜单和加速键的关系,正确的说法是( C )。

A、工具按钮与菜单必须一一对应 B、工具按钮与加速键一一对应

C、工具按钮不必与菜单一一对应 D、菜单与加速键一一对应

20、使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用( A )释放设备上下文。

A、ReleaseDC( ) B、delete( ) C、DeleteDC( ) D、Detach( )

1、int占4个字节,short int占2个字节,long int 占_4个字节。

2、若for循环的“头”为“for(int i=1;i<10;i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行_9次后结束。

3、两个函数的函数名_相同,但参数的个数或对应参数的类型_不同时,则称为重载函数。

4、若ch为char型变量,n为int型变量,则下列语句

ch = ’a’; n = 3; ch = ch + n; cout<<” ch = ”<<

ch;___ch=d__。

5、C++中函数的参数传递一种是按值传递,另一种是地址传递或__引用_传递。

6、C++运行时的多态性通过_虚函数来实现,而编译时的多态性通过函数重载__

7 只读成员函数用_const_关键字标识,内联成员函数用_inline_关键字标识。

8、 class test{public: static int x;};test t1,t2; t1.x = 25;

- 2 -

程序运行到这里时,t2.x的值为__25__________。

9、所有的文档类都派生于Cdocument所有的视图类都派生于:

_CView______。

10、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了____虚基类____机制。将公共基类声明为它以后,它在派生类中只产生一个实例。

11、在代码中,使用CWnd::_UpdateData__函数可实现控件与其成员变量之间的数据的传输。

12、列表框ClistBox类的成员函数__AddString____用来向列表框增加列表项,成员函数__ResetContent__用来清除列表项所有项目。

13、:串行化是指将对象写入永久存储介或将对象从永久存储介质中读出的过程。

14、Windows程序中的消息有窗口消息、命令消息和___控件通知消息三种类型。

15、MFC中的集合类包括 数组 、列表(链表)、映射 。

16、在进行绘图时,画刷用于指定图形的填充样式画笔用于指定图形的边框样式。

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 A 的构造函数,接着执行 C的构造函数,然后执行__ B_的构造函数,最后才执行 D 的构造函数。

A、基类的对象成员 B、派生类的对象成员 C、基类 D、派生类

2、B [5] 代表窗口客户区的显示设备上下文, C [6] 代表整个窗口的显示设备上下文。A、CPaintDC B、CClientDCC、CWindowDC D、CMetaFileDC

3、消息循环的处理过程如下:

A ⑺ 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后, B ⑻ 把来自键盘的命令翻译成WM_XXX消息命令形式。 E ⑼ 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows

- 3 -

根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A、GetMessage( ) B、translateMessage( ) C、PostMessage( )

D、SendMessage( ) E、DispatchMessage( )

4、常用的CButton类的成员函数中: A ⑽ 获得一个按钮控件的选中、选择和 聚焦状态; D ⑾ 得到一个按钮的选中状态; C ⑿ 设置一个按钮的选中状态。

A、GetState( ) B、SetState( ) C、SetCheck( )

D、GetCheck( ) E、GetButtonStyle( )

5、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 C ⒀ 函数,设置滚动块的位置使用

E ⒁ 函数,获取滚动块的当前位置使用 F ⒂ 函数。

A、SetPos B、SetRange C、SetScrollRange D、GetPos

E、SetScrollPos F、GetScrollPos G、 GetScrollRange

1、 .#include *a = 3 *a = 5

class A{ int *a;public:

A(int x){ a=new int(x); cout<<"*a="<<*a<

a; }};

void main()

{ A x(3), *p; p=new A (5); delete p; }

2、class test{

private:int num;

public:test();int GetNum() { return num;}~test();};

test::test(){ num=0; }

test::~test()

{ cout<<″Destructor is active″<

void main()

{ test x[3];

cout<<″Exiting main″<

}

Exiting main

Destructor is active

Destructor is active

Destructor is active

3、 #include

- 4 -

class A {

public:virtual void fun()

{ cout<<"I'm class A"<

class B: public A{

public:void fun() { cout<<"I'm class B"<

class C: public B{

public:void fun() { cout<<"I'm class C"<

void main()

{A a,*pA=&a;pA->fun();B b; pA=&b;pA->fun();C

c;a=c;();

A &aRef=c;();}

I'm class A

I'm class B

I'm class A

I'm class C

1、在下面程序的横线处填上适当字句,使该程序执行结果为6。

#include

class base{ int X;

public: _ void init(int i ) { X=i;}为X置值 _ int GetNum()

{ return X;}

};

void main()

{ base test; (6); cout<<();}

2、一个类的头文件如下所示,主程序中产生对象T,且=10,并使用Print()函数输出这个对象的值。

class test{

private:int num;

public: test(int);void Print();};

test::test(int n){ num=n; }

void test::Print(){ cout<

#include

void main()

{ _ test T ( 10 );_ ( );}

3、在下面横线处填上适当字句,完成类中成员函数的定义。

class A{ int * a;

public: A(int x=0) {a=__ new int(x);}

- 5 -

~A(){_ delete a ;} };

1、简单的计算程序界面如下图所示,操作数1对应编辑框控件的ID为 IDC_EDIT1,对应值类型的成员变量m_op1(int);操作数2对应编辑框控件的ID为IDC_EDIT2,对应值类型的成员变量m_op2(int);计算结果对应的编辑框控件的ID 为IDC_EDIT3,对应值类型的成员变量m_result(int)。 假设输入的数为整数,加法按钮的功能是将两操作数相加,并将结果在对应的编辑框IDC_EDIT3显示出来。写出加法按钮对应的代码。

void CExDlg::OnButton1()

{

UpdateDate(TRUE); 1分

m_result = m_op1 + m_op2; 2分

UpdateDate(FALSE); 1分

}

2、为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和文件的内容

//CStudent.h

class CStudent :public CObject { 1分

public:

CString Num;

CString Name;

CTime Birth;

CString Address;

CString Grade; 2分

DECLARE_SERIAL(CStudent) // 使对象可串行化

1分

virtual void Serialize( CArchive & ar ); //重载串行化函数 1分

- 6 -

};

LEMENT_SERIAL(CStudent ,CObject, 0)

1分

void CStudent:Serialize(CArchive & ar)

{ CObject::Serialize(ar); 1分

if ( ing() )

{ ar<

}

else

{ ar>>Num>>Name>>

}

}

>>Address>>Grade;

- 7 -

1Birth

1、假定AB为一个类,则执行“”AB a(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为( B )A、2 B、3 C、4 D、5

2、对于结构中定义的成员,其隐含访问权限为( C )

A、protected B、private C、public D、 static

3、在面向对象编程中,对象的抽象集合称为( C )。

A、对象 B、集合 C、类 D、实例

4、下面说法正确的是( A )

A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、实现运行时的多态性,必须通过( A )来完成。

A、虚函数 B、重载函数 C、构造函数 D、析构函数

6、类CNum的缺省构造函数和析构函数是(A )

A、CNum ( )和~CNum ( ) B、CNum (int)和~CNum( )

C、CNum ( )和~CNum (delete ) D、CNum ( )和int~CNum ( )

7、在类外定义类的成员函数时,应当使用( B )来标识该函数为特定类的成员。A、 : B、 :: C、-> D、this

8、已知类A是类B的友元,类B是类C的友元,则( D )

A、类A一定是类C的友元

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

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

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

9、下面( A )是函数重载。

A、void play(int) 和void play(float)

B、play( ) 和 ~play()

C、void play(int) 和int play(int)

D、void play( ) 和int play( )

10、下列说法中正确的是( B )

A.类定义中只能说明函数成员的函数头,不能定义函数体。

B.类中的函数成员可以在类体中定义,也可以在类体之外定义。

C.类中的函数成员在类体之外定义时必须要与类声明在同一

- 8 -

文件中。

D.在类体之外定义的函数成员不能操作该类的私有数据成员。

11、Windows操作系统主要基本内核元件中,_______支持与操作系统密切相关的功能:如进程加载、文本切换、文件I/O以及内存管理、线程管理等。( B )A、GDI B、KERNEL C、USER D、以上都不是。

13、所有的控件都是 ( B ) 类的派生类,都可以作为一个特殊的窗口来处理。

A、CView B、CWnd C、CWindow D、CDialog

14、设置编辑控件的文本内容,可使用函数 ( A )

A、SetWindowText( ) B、SetSel( )C、ReplaceSel( ) D、GetWindowText( )

15、根据对话框的行为性质,对话框可以分为两类:( B )

A、对话框资源和对话框类 B、模式对话框和非模式对话框

C、对话框资源和对话框模板 D、消息对话框和模式对话框

16、以下控件中,( C )没有Caption属性。

A、按钮 B、群组框 C、编辑控件 D、静态控件

17、菜单项助记符前用(B)引导。A、% B、& C、#D、$

18、MFC中的集合类包括( C )。A、对象、列表和映射 B、数组、列表和对象C、数组、列表和映射 D、数组、列表和链表

19、文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为( B )。A、文件访问B、串行化C文件读写D格式化

20、下列对模板的声明,正确的是( D )。

A、template B、template

C、template D、template

1、VC++开发环境中,char型数据占1字节,int型数据占4 double占8个字节。

2、若for循环的“头”为“for(int i=1;i<10;i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行9_次后结束。

3、两个函数的函数名相同,但参数的个数或对应参数的类型不同时,则称为 函数重载 。4、若ch为char型变量,n为

- 9 -

int型变量,则下列语句

n = 65; ch = n+3; cout<<” ch = ”<< ch;执行的结果是__

ch=D 。

5、组合框与列表框用途类似,它是由_列表框、编辑框__功能组合而成。

6DC(设备上下文是Windows应用程序与设备驱动程序和输出设备之间的接口。

7、如果一个类中含有纯虚函数,则称该类为__抽象基类__________

8、如果类的所有对象共享一个成员,则称该成员为__静态成员___________

9、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为__私有、______ _;如果类中的成员能够被类外的函数访问,则这些成员的访问权限为:____ 公有(或者private 、public __ ____。

10、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了虚基类________机制。将公共基类声明为它以后,它在派生类中只产生一个实例。

11、Windows程序中的消息有__窗口消息、命令消息、控件通知消息(顺序可变)。

11、用户按下键盘按键并放开的过程中,将产生至少三条消息:_ WM_KEYDOWN,WM_CHAR,WM_KEYUP 。

13、单选按钮初始化要使用函数如下:

void CheckRadioButton(IDC_RADIO1, IDC_RADIOn ,

IDC_RADIOm)

其功能的具体描述为:______从IDC_RADIO1到IDC_RADIOn,中设置IDC_RADIOm为默认

14、列表框分为单选列表框 和 多选列表框 两种,单选列表框

中任一时刻只能选择一项, 多选列表框 则可以选取多项。

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执A的构造函数,接着执行 C的构造函数,然后执行__ _⑶B_的构造函数,最后才执行 D 的构造函数。

A、基类的对象成员 B、派生类的对象成员 C、基类D、派生类

2、所有的文档类都派生于 C,所有的视图类都派生于 A。

- 10 -

A、CView B、CWindow C、CDocument D、CFormView

3、C 包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息; D 用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A、系统消息 B、用户消息 C、输入消息 D、控制消息

4、使用 B获取的设备上下文在退出时,必须调用ReleaseDC( )释放设备上下文。

A、GetWindowRect( ) B、GetDC( )

C、BeginPaint() D、GetClientRect( )

5、常用的CButton类的成员函数中: A 获得一个按钮控件的选中、选择和 聚焦状态; D 得到一个按钮的选中状态; C设置一个按钮的选中状态。

A、GetState( ) B、SetState( ) C、SetCheck( )

D、GetCheck( ) E、GetButtonStyle( )

6、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 C 函数,设置滚动块的位置使用 E 函数,获取滚动块的当前位置使用F 函数。

A、SetPos B、SetRange C、SetScrollRange D、GetPos

E、SetScrollPos F、GetScrollPos G、 GetScrollRange

四 写出下列程序的运行结果(每小题5分,共20分)

1、 #include 100 125

class B{public: static int num;};

int B:: num=100;

void main()

{ B b1, b2; cout<<

<<’ ’;+=25;cout<< <

2、 #include I'm class A I'm class B

class A { I'm class A I'm class C

public:virtual void fun()

{ cout<<"I'm class A"<

class B: public A{

- 11 -

public:void fun() { cout<<"I'm class B"<

class C: public B{

public:void fun() { cout<<"I'm class C"<

void main()

{A a,*pA=&a;pA->fun();B b; pA=&b;pA->fun();C

c;a=c;();

A &aRef=c;();}

3、 class test{ private: int num; float fl;

public: test( ); int getInt( ){ return num; }

float getFloat( ){ return fl; } ~test( );};

test ∷ test( )

{ cout << "Initalizing default" << endl;

num=0; fl=0.0;

}

test ∷ ~test( )

{ cout << "Desdtructor is active" << endl;}

int main( )

{ test array[2];

cout<

<

return 0;

} Initalizing default

Initalizing default

0 0

Desdtructor is active

Desdtructor is active

4. int main( ) int num=50;int & ref=num; ref=ref+10

cout << "num=" << num << endl; num=num+40; cont <<

"ref=" << ref << endl; return 0;

} num=60 ref=100

五、程序设计题(每题10 分,共20分)

1、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。

- 12 -

class shape{

public: virtual float area( )=0 };

float total(shape *s[ ],int n)

{ float sum=0.0;

for(int i=0; i

sum=sum+( );

return sum;

} #include 1分

class triangle:public shape{ 1分

public: virtual float area( ){float s=(a+b+c)/2;

return sqrt(s*(s-a)*(s-b)*(s-c)); 3分}

private:float a,b,c; 1分};

class rectangle:public shape{ 1分

public: virtual float area( )return a*b; 2分}

private:float a,b; 1分};

2、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的CAddrlist.h和文件的内容

//Addrlist.h文件内容:

class CAddrlist : public CObject { 1分

public:CString Name;CString Address;CString Tel;CTime

Birth;CAddrlist();

DECLARE_SERIAL(CAddrlist) // 使对象可串行化 1分

virtual void Serialize( CArchive & ar ); //重载串行化函数

1分};

文件内容:IMPLEMENT_SERIAL(CAddrlist,CObject, 0) 1分

void CAddrlist::Serialize(CArchive & ar)

{ CObject::Serialize(ar); 1分

if ( ing() )

{ ar<

else{ ar>>Name>>Tel>>Address>>Birth; 1分}

- 13 -

1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( )A、2 B、3C4D、5

2、对于类中定义的成员,其隐含访问权限为( )

A、protected B、private C、public D、 static

3、一个类的友元函数或友元类能够通过成员操作符访问该类的( )

A、私有成员 B、所有成员 C、公用成员 D、保护成员

4、下面说法正确的是( )

A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、下列语句的运行结果为( )

#include

srtuct COMPLEX

{int x;int y;} cNum[2]={1,3,2,7};

void main()

{cout<< cNum[0].y*cNum[1] x<

A、6 B、2 C、21 D、3

6、类AB的缺省构造函数和析构函数是( )

A、AB( )和~AB( ) B、AB(int)和~AB( )

C、AB( )和~AB(delete ) D、AB( )和int~AB( )

7、在C++中,若对函数未加说明,则函数的隐含类型是( )

A、int B、double C、void D、char

8、已知类A是类B的友元,类B是类C的友元,则( )

A、类A一定是类C的友元

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

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

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

9、下列说法中正确的是( )

A、类定义中只能说明函数成员的函数头,不能定义函数体

B、类中的函数成员可以在类体中定义,也可以在类体之外定义

C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中

- 14 -

D、在类体之外定义的函数成员不能操作该类的私有数据成员

10、以下不属于成员函数的是( )

A、静态成员函数B、友元函数C、构造函数 D、析构函数

11、对于消息队列的描述正确的是( )

A、在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。

B、系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。

C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。

D、以上都正确

12、一个视图对象能连接()文档对象,一个文档对象能连接( )视图对象。

A、多个,多个B、多个,一个 C、一个,一个D、一个,多个

13、MFC类库中的类按层次关系可知,CStatic 的直接父类为( )

A、CObject B、CWnd C、CCmdTarget D、CFrameWnd

14、可以利用控件的( )属性和Tab键顺序来为控件分组。

A、ID B、Group C、Tab stop D、Caption

15、根据对话框的行为性质,对话框可以分为两类:( )

A、对话框资源和对话框类 B、模式对话框和非模式对话框

C、对话框资源和对话框模板 D、消息对话框和模式对话框

16、以下控件中,( )没有Caption属性。

A、按钮 B、群组框 C、编辑控件 D、静态控件

18、更新菜单状态的消息是( )。

A、WM_COMMAND B、UPDATE

C、ON_UPDATE_COMMAND_UI D、INVALIDATE

19、关于工具栏、菜单和加速键的关系,正确的说法是( )。

A、工具按钮与菜单必须一一对应 B、工具按钮与加速键一一对应

C、工具按钮不必与菜单一一对应 D、菜单与加速键一一对应

- 15 -

20、使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用( )释放设备上下文。

A、DeleteDC( ) B、delete( ) C、ReleaseDC( ) D、Detach( )

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 [1] 的构造函数,接着执行 [2] 的构造函数,然后执行___[3]___的构造函数,最后才执行 [4] 的构造函数。

A、基类的对象成员 B、派生类的对象成员 C、基类D、派生类

2、 [5] 代表窗口客户区的显示设备上下文, [6] 代表整个窗口的显示设备上下文。A、CPaintDC B、CClientDCC、CWindowDC D、CMetaFileDC

3、消息循环的处理过程如下:

[7] 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后, [8] 把来自键盘的命令翻译成WM_XXX消息命令形式。 [9] 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A、GetMessage( ) B、translateMessage( ) C、PostMessage( )

D、SendMessage( ) E、DispatchMessage( )

4、常用的CButton类的成员函数中: [10] 获得一个按钮控件的选中、选择和 聚焦状态; [11] 得到一个按钮的选中状态; [12] 设置一个按钮的选中状态。

A、GetState( ) B、SetState( )C、SetCheck( )D、GetCheck( ) E、GetButtonStyle( )

5、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 [13] 函数,设置滚动块的位置使用

[14] 函数,获取滚动块的当前位置使用 [15] 函数。

A、SetPos B、SetRange C、SetScrollRange D、GetPos

E、SetScrollPos F、GetScrollPos G、 GetScrollRange

6、在进行绘图时, [16] 用于指定图形的填充样式,

- 16 -

___[17]___用于指定图形的边框样式。A、画笔 B、画刷 C、区域D、位图

7、列表框ClistBox类的成员函数___[18]__用来向列表框增加列表项,成员函数___[19]__用来清除列表项所有项目,成员函数___[20]__用来返回列表框的列表项的总数。

A、AddString B、DeleteString C、ResetContent

D、FindString E、GetCurSel F、GetCount

1、 (10分)已知点类的定义如下:class Point{……private:double x,y;};

分别用成员函数和友元函数实现计算两点间的距离,函数名为distance。

2、(15分)要求计算立方体和圆柱2个几何体的表面积和体积。可以抽象出一个公共的基类Base,把它作为抽象类,在该类内定义求表面积和体积的纯虚函数(抽象类本身是没有表面积和体积可言的)。由这个抽象类派生出描述立方体和圆柱的2个具体类,在这2个类中都有计算表面积和体积的函数的自己版本。请用C++语言定义上述类等级。

3、(10分)简单计算程序界面如下图所示,x对应编辑框控件的ID为 IDC_EDIT1,对应值类型的成员变量m_x(double);y对应编辑框控件的ID为IDC_EDIT2,对应值类型的成员变量m_y(double);z对应的编辑框控件的ID 为IDC_EDIT3,对应值类型的成员变量m_z(double)。乘法按钮的功能是将x,y相乘,除法按钮的功能是将x,y相除,并将结果在z对应的编辑框IDC_EDIT3显示出来。写出乘法按钮和除法按钮对应的代码。(10分)

void CExDlg::OnButtonMul( ) // 乘法按钮{}

void CExDlg::OnButtondIV( ) // 除法按钮{}

4、(10分)设计一个基于对话框的应用程序,如下图所示。要求:单击Color按钮,能弹出通用颜色对话框选取颜色,并用该颜色显示:This is a color example。

已知:Example组合框的ID为:IDC_DISPLAY。

写出Color按钮的BN_CLICKED消息处理函数。

void CXT6_4Dlg::OnColor()

{}5、(10分)为学员信息设计一

- 17 -

个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和文件的内容。

6、如何定义ODBC的数据源?试叙述其过程。(5分)

- 18 -

1、假定AB为一个类,则执行“”AB a(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为( )A、2B、3 C、4 D、5

2、对于结构中定义的成员,其隐含访问权限为( )

A、protected B、private C、public D、 static

3、在面向对象编程中,对象的抽象集合称为( )。

A、对象 B、集合 C、类 D、实例

4、下面说法正确的是( )

A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、实现运行时的多态性,必须通过( )来完成。

A、虚函数 B、重载函数 C、构造函数 D、析构函数

6、类CNum的缺省构造函数和析构函数是( )

A、CNum ( )和~CNum ( ) B、CNum (int)和~CNum( )

C、CNum ( )和~CNum (delete ) D、CNum ( )和int~CNum ( )

7、在类外定义类的成员函数时,应当使用( )来标识该函数为特定类的成员。A、 : B、 :: C、-> D、this

8、已知类A是类B的友元,类B是类C的友元,则( )

A、类A一定是类C的友元

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

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

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

9、下面( )是函数重载。

A、void play(int) 和void play(float)

B、play( ) 和 ~play()

C、void play(int) 和int play(int)

D、void play( ) 和int play( )

10、下列说法中正确的是( )

A.类定义中只能说明函数成员的函数头,不能定义函数体。

B.类中的函数成员可以在类体中定义,也可以在类体之外定义。

C.类中的函数成员在类体之外定义时必须要与类声明在同一

- 19 -

文件中。

D.在类体之外定义的函数成员不能操作该类的私有数据成员。

11、Windows操作系统主要基本内核元件中,_______支持与操作系统密切相关的功能:如进程加载、文本切换、文件I/O以及内存管理、线程管理等。( )

A、GDI B、KERNEL C、USER D、以上都不是。

13、所有的控件都是 ( ) 类的派生类,都可以作为一个特殊的窗口来处理。

A、CView B、CWnd C、CWindow D、CDialog

14、设置编辑控件的文本内容,可使用函数 ( )

A、SetWindowText( )B、SetSel( )C、ReplaceSel( )D、GetWindowText( )

15、根据对话框的行为性质,对话框可以分为两类:( )

A、对话框资源和对话框类 B、模式对话框和非模式对话框

C、对话框资源和对话框模板 D、消息对话框和模式对话框

16、以下控件中,( )没有Caption属性。

A、按钮 B、群组框 C、编辑控件 D、静态控件

17、菜单项助记符前用( )引导。A、% B、& C、#D、$

18、MFC中的集合类包括( )。A、对象、列表和映射 B、数组、列表和对C、数组、列表和映射 D、数组、列表和链表

19、文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为( )。A、文件访问 B、串行化 C、文件读写 D、格式化

20、下列对模板的声明,正确的是( )。

A、template B、template

C、template D、template

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 ⑴ 的构造函数,接着执行 ⑵ 的构造函数,然后执行__ _⑶___的构造函数,最后才执行 ⑷ 的构造函数。

A、基类的对象成员 B、派生类的对象成员 C、基类 D、派生类

2、所有的文档类都派生于 [5] ,所有的视图类都派生于

- 20 -

[6] 。

A、CView B、CWindow C、CDocument D、CFormView

3、 [7] 包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息; [8] 用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A、系统消息 B、用户消息 C、输入消息 D、控制消息

4、使用 [9]获取的设备上下文在退出时,必须调用ReleaseDC( )释放设备上下文。

A、GetWindowRect( )B、GetDC( ) C、BeginPaint() D、GetClientRect( )

5、常用的CButton类的成员函数中: ⑽ 获得一个按钮控件的选中、选择和 聚焦状态; ⑾ 得到一个按钮的选中状态; ⑿ 设置一个按钮的选中状态。A、GetState( ) B、SetState( ) C、SetCheck( )

D、GetCheck( ) E、GetButtonStyle( )

6、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 ⒀ 函数,设置滚动块的位置使用

⒁ 函数,获取滚动块的当前位置使用 ⒂ 函数。

A、SetPos B、SetRange C、SetScrollRange D、GetPos

E、SetScrollPos F、GetScrollPos G、 GetScrollRange

7、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为___[16] _;如果类中的成员能够被类外的函数访问,则这些成员的访问权限为:___[17]__。

A、protected B、private C、public D、static

8、列表框分为 [18] 和 [19] 两种, [20] 中任一时刻只能选择一项。

A、组合框 B、单选列表框 C、多选列表框 D、编辑框

1、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。 (10分)

- 21 -

class shape{ public: virtual float area( )=0 };

float total(shape *s[ ],int n)

{ float sum=0.0; for(int i=0; i

i++)um=sum+( );

return sum; }

2、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的CAddrlist.h和文件的内容。(10分)

3、(20分)该应用有4个命令按钮,作为增加项目、删除项目和全部删除项目以及退出程序的按键。另外,还有一个编辑框作为新项目名称输入框IDC_NAME_EDIT对应控件变量为m_Name(类型为CString),1个静态文本用于显示项目数目,列表框用于项目列表对应控件变量为m_List1,1个静态文本用于显示标题。界面下图所示。

根据要求写出代码:

(1)对话框初始化消息处理函数OnInitDialog()里,向列表框添加“China”,“Germany”两项内容。

BOOL CEx6_3Dlg::OnInitDialog()

{return TRUE; }

(2) “增加”命令按钮的单击消息处理函数OnAdd() 将新项目名称输入框的内容增加到列表框中。

void CEx6_3Dlg::OnAdd() {}

(3)“删除”按钮的单击消息处理函数OnDel() 将当前列表框中选中的项删除void CEx6_3Dlg::OnDel() {}

4、下面是一个基于对话框的应用程序,用来求解一元二次方程的根。当用户在A、B、C 三个编辑框中输入3个参数后,单击【计算】按钮,将显示出该方程的根。(10分)

员变量见下表:各控件对应的成

变量控件ID号

类型

IDC_A_EDint m_a

变量名

- 22 -

IT

IDC_B_EDIT

IDC_C_EDIT

IDC_X1_EDIT

IDC_X2_EDIT g

ng

Cstrinint m_b

int

CStrim_c

m_x1

m_x2

试写出计算按钮的单击消息处理函数。

void CEx3_4Dlg::OnButton1()

{}

5、简述用MFC进行ODBC的编程过程。(10分)

- 23 -


本文标签: 函数 成员 消息 按钮 对象