您的当前位置:首页正文

c++考试题

2021-04-12 来源:个人技术集锦
VC习题1

下列对于WinMain函数的描述中,错误的是( )。 A)WinMain函数的名称是固定的

B)WinMain函数是Windows程序的入口点 C)WinMain函数不能有参数

D)窗口函数与WinMain的关联是通过窗口类的注册实现的 以下四个特性中哪一个不属于面向对象的三大特性( )。 A)封装性 B)多态性 C)抽象性 D)继承性 下列关键字中哪一个不是用于类的访问控制的( )。 A)public B)friend C)private D)protected 下面四个MFC类中哪一个是管理MFC应用程序的( )。 A)CWinApp B)CMainFrame C)CDocument D)CView 下列类中不属于MFC框架基本类的是( )。

A)CWinApp B)CFrameWnd C)CView D)CObject

传统的软件开发主要采用 过程 驱动的方法,而Windows程序的开发使用 消息 驱动模型,该模型靠事件机制来实现其功能。

主框架类 是应用程序中负责控制菜单、工具栏和状态栏等界面元素的最主要的类。命令视图类

VC习题2

VC开发环境可以生成的基于MFC appwizard的应用程序类型有单文档/视图结构、多文档/视图结构和基本对话框。

包含类定义的文件称为 头文件 ,包含类中成员函数实现代码的文件称为 源文件 ,包含资源信息的文件称为 资源文件 。

ResourceView的主要功是 编辑当前工程中的资源 。 应用程序向导的主要功能是 帮助生产应用程序 。 类向导的主要功能是 管理各个类中的消息 。

项目工作区窗口一般在开发环境的左侧,它包含工程的多个方面,分别是 classview 、 fileview 和 resource view 。 项目工作区文件的扩展名为 .dsw 。

VC习题3

下列选项中哪一个不是命令消息的触发途径:单击对话框中的按钮。

文档类

文档模板类

框架窗口类

应用程序类

Windows应用程序的消息来源主要包括 输入消息 、 控制消息 和 系统消息 、用户消息 。

发送消息可以采用的两个函数是 postmessage 和 sendmessage 。

CCmdUI类的主要功能是 主要用来更新命令用户接口的状态。如子菜单。工具栏上的按钮等 。

代码ON_UPDATE_COMMAND_UI(ID_TEST, OnUpdateTest)的功能是:

映射标记号ID为ID_TEST的CN_UPDATE_COMMAND_UI消息到OnUpdateTest函数上。 功能是:将对ID_TEST的更新命令接口消息的处理映射到OnUpdateTest函数上。

VC习题4

CString类的功能是 处理字符串 ,其Format函数的功能是 格式化字符串 。 CTime类的功能是 处理日期时间 ,其Format函数的功能是 将时间对象格式化为字符串 。

MessageBox函数的第一个参数表示 消息文字 ,第二个参数表示 标题文字 ,第三个参数表示 图标与按钮组合 。

VC习题5

在Windows中,按下一个字符键,会依次触发 WM_KEYDOWN 、WM_CHAR和 WM_KEYUP 三个消息。

当Windows窗口内部需要重新绘制时,会得到一个 WM PAINT 消息,当释放鼠标右键时,会得到一个 WM_RBUTTONUP 消息。

WM_LBUTTONDOWN表示 鼠标左键按下消息 ,WM_MOUSEMOVE表示 鼠标移动消息 。

OnMouseMove(UINT nFlag,CPoint point)消息处理函数中的point表示 鼠标移动到的坐标位置 。

OnChar(UINT nChar,UINT nRepCnt,UINT nFlags)消息处理函数中的nChar表示 当前按下的字符键 。

VC习题6

Visual C++提供的资源编辑器不能编辑下列哪个资源( C )。 A)菜单 B)工具栏 C)状态栏 D)位图

MFC应用程序框架为状态栏定义的静态数组indicators放在哪个文件中( A )。 A) B) C) D)

deletemenu 用来删除某个菜单项,如果被删除的菜单项有相关的弹出菜单,则该

弹出菜单的句柄也要被删除并释放内存。

appendmenu 用来追加某个菜单项, trackpopupmenu 用来在一个POINT结构所指定的位置显示一个上下文菜单。

工具栏上的按钮能触发的消息 command 和 update_command_ui 。 状态栏上的窗格可以分为 信息行窗格 和 指示器窗格 两类。 getsubmenu 可以得到指向某列菜单的指针。

用户可以通过项目工作区窗口的 资源 视图来查看资源。 在MFC中,工具栏的功能由 CToolBar 类实现。 在MFC中,状态栏的功能由 CStatusBar 类实现。

VC习题7

下列函数中,可以实现画圆功能的是( )。 A)Rectangle B)Ellipse C)Circle D)Line

CDC类为用户提供了下列四个文本输出函数,其中,能使输出的文本呈现一个多列列表格式的是( )。

A)TextOut B)ExtTextOut C)TabbedTextOut D)DrawText 下列类中哪一个不是GDI对象类( )。 A)CPen B)CWnd C)CBrush D)CRgn 下面哪个不是CDC类的派生类( )。

A)GDI类 )CPaintDC类 C)CClientDC类 D)CWindowDC类

CDC类中实现绘制矩形功能的函数是 Rectangle ,实现绘制椭圆功能的函数是 Ellipse ,改变文本颜色的函数是 SetTextColor ,改变文本背景颜色的函数是 SetBkcolor ,在指定位置显示字符串的函数是 Textout 。

MFC绘图要素主要分为两大类,即 设备场景 和 基本绘图工具 。

Windows引入图形设备接口的目的是 屏蔽底层硬件的绘图细节,使编程更加容易 。

Windows用 COLORREF 类型的数据存放颜色,它采用3个参数表示红、绿、蓝三元基本色的分量值,这3个值的取值范围为 0~255 。

创建画笔后,必须调用CDC类的成员函数 SelectObject 将新画笔选进当前的绘图环境。

VC习题8

MFC中的CDialog类封装了对话框的显示、关闭等常用功能,其中,用来显示模态对话框的是函数( )。

A)CreateWindow B)ShowWindow C)DoModal D)UpdateWindow 对话框创建后,还没显示前就会触发( )消息。

A)WM_PAINT B)WM_INITDIALOG C)WM_CREATE D)WM_SIZE 通用对话框中,属于非模态对话框的是( )。

A)文件对话框 B)颜色对话框 C)打印对话框 D)查找对话框 要打开文件,应该使用哪个通用对话框( )。

A)CFileDialog B)CColorDialog C)CPrintDialog D)CFontDialog 通常将对话框的初始化工作放在下列哪个函数中进行( )。 A)OnOK B)OnCancel C)OnInitDialog D)DoModal

所有通用对话框都是由公共基类 CCommonDialog 派生出来的, CColorDialog实现了标准的颜色对话框。

MFC中,与属性对话框相关的两个类是 CPropertyPage 和 CPropertySheet 。

VC习题9

下列控件中不属于按钮的是( )。

A)下压按钮 B)列表框 C)单选框 D)复选框

如果在输入时采用选择的方法进行,以下哪个控件不能实现( )。 A)列表框控件 B)单选按钮 C)复选框 D)编辑框 下面对UpdateData函数的描述中错误的是( )。 A)CWnd::UpdateData函数实现对控件中数值的输入和读取 B)UpdateData只有一个为TRUE或FALSE的参数

C)当调用UpdateData(FALSE)时,数据由控件关联的变量向控件传输 D)当调用UpdateData(TRUE)时,数据由控件关联的变量向控件传输

有两种方法可以创建静态文本控件,一种是 使用资源编辑器添加 ,另一种是 使用create函数动态创建 。

ShowWindow函数的功能是 显示或隐藏窗口 。

使用滚动条控件一般要用到控件所在对话框类的 WM_HSCROLL 和 WM_VSCROLL 消息。

判断一组单选按钮中哪一个被选中了,要应用 GetCheckedRadioButton 函数。 GetScrollpos 函数可以得到滚动条的滑块位置, SetScrollpos 函数可以设置滚动条的滑块位置, Getpos 可以得到滑动条的当前位置, Setpos 函数可以设置滑动条的当前位置。

滚动条有 垂直滚动条 和 水平滚动条 两种,它们触发的滚动消息分别是 WM_VSCROLL 和 WM_HSCROLL 。

CListBox类中的 InsertString 函数可以为列表框插入一个新的字符串, ResetContent 函数可以清空所有列表项内容。 GetCheck 函数可以得到单选框的选中状态。

当程序需要与界面交换数据时,应该调用 UpdataData 函数。

VC习题10

有两种类型的文档/视结构程序: 单文档 应用程序和 多文档 应用程序。 GetDocument 是视图类的成员函数,调用它可以得到指向与之关联的文档对象的指针,文档的串行化在 Serialize 函数中进行。

在程序的任何一个类中访问应用程序类的函数为 AfxGetApp ,在程序的任何一个类中访问框架窗口类的函数为 AfxGetMainWnd() 。

基于单文档/视图结构的框架程序中包含的类有 CWinApp 、 CFrameWnd 、 CDocument 和 CView 。

VC习题11

ODBC体系结构中不包括下列哪个组件( )。

A)ODBC管理器 B)数据源 C)驱动程序管理器 D)数据库管理系统DBMS 记录集可以分为 Dynaset(动态集) 和 Snapshot(快照) 两种。

MFC的ODBC类主要包括5个类,分别是 CDatabase 、 CRecordset 、 CRecordView 、 CDBException 和 CFieldExchange 。

可以利用CRecordset类的 AddNew 函数添加一条新记录,利用CRecordset类的 MoveFirst 函数将记录指针移动到第一条记录上,利用CRecordset类的 Update 函数实现数据库记录的保存。

VC习题12

1、下列说法中错误的是(B)

A) 一个windows应用程序通常有许多源代码文件以及菜单等资源文件,这些文件都将纳入应用程序的项目中,通过对项目工作区的操作,可以编辑这些文件。项目工作区可以管理多个项目。

B) 控制台应用程序是指那些需要与传统的dos操作系统保持兼容,同时又需要为用户提供完善界面的程序。

C) 是Visual C++为每个项目配置的用来预编译的文件。 D) Window总是要求每个应用程序都要有WinMain函数。 2、下列说法中错误的是(C)

A) 在文档/视图结构中,视图可以看作一个窗口,能将文档的某个局部显示出来。 B) 视图类的OnDraw函数是个非常有用的虚函数,当应用程序中的窗口状态或大小发生改变时,系统会调用此函数重新绘制文档窗口的客户区。

C) 状态栏中的ID_SEPARATOR表示指示器窗格,是Visual C内部已经定义好的。 D) 主框架是应用程序中负责创建和控制菜单、工具栏和状态栏等界面元素的最主要的类。

3、MFC中的CDialog类封装了用于对话框的显示、关闭等常用的功能函数,其中用于显示模式对话框的是(C)

a)CreateWindow b)ShowWindow c)DoModal d)UpdateWindow 4、对话框创建后,还没显示前就会发出(B)消息

a)WM_PAINT b)WM_INITDIALOG c)WM_CREATE d)WM_SIZE 5、下列控件不属于按钮的是(A)

a)命令按钮 b)组框 c)单选框 d)复选框 6、通用对话框中,属于非模式对话框的是(D)

a)文件对话框 b)颜色对话框 c)打印对话框 d)查找对话框 7、下列函数中,能为状态栏第二个信息格设定文字的是(A) a)SetPaneText b)SetWindowText c)SetPaneInfo d)SetText 8、下列函数中,可以实现画圆功能的是(B) a)Rectangel b)Ellipse c)Circle d)Line 9、下列对UpdateData的描述错误的是(D)

a)CWnd::UpdateData函数实现对控件中数值的输入和读取。 b)UpdateData只有一个为TRUE或FALSE的参数。

c)当调用UpdateData(FALSE)时,数据由控件关联的成员变量向控件传输。 d)当调用UpdateData(TRUE)时,数据由控件关联的成员变量向控件传输。

10、CDC为用户提供了下列四个输出文本的函数,其中能使输出的文本呈现一个多列列表格式的是(C)

a)TextOut b)ExtTextOut c)TabbedTextOut d)DrawText 简答题:

1、定义和使用消息映射表的步骤 :

① 在头文件的类声明中添加DECLARE_MESSAGE_MAP宏声明消息映射;

② 在类的定义文件(.cpp)定义消息映射表,方法是在 文件的开始处添加BEIGN_MESSAGE_MAP和END_MESSAGE_MAP 这一对宏,在它们之间放置消息映射宏,定义并初始化消息映射表,在消息与处理消息的函数之间建立联系; ③ 在类的定义文件(.cpp)中添加消息处理函数。

所谓消息映射,简单地讲,就是让程序员指定要某个MFC类(有消息处理能力的类)处理某个消息。MFC提供了工具ClassWizard来帮助实现消息映射,在处理消息的类中添加一些有关消息映射的内容和处理消息的成员函数。程序员将完成消息处理函数,实现所希望的消息处理能力。

如果派生类要覆盖基类的消息处理函数,就用ClassWizard在派生类中添加一个消息映射条目,用同样的原型定义一个函数,然后实现该函数。这个函数覆盖派生类的任何基类的同名处理函数。

2、创建一个完整的窗口需要经过下面四个操作步骤: 设计一个窗口类; 注册窗口类; 创建窗口; 显示及更新窗口。 3、什么是模态对话框

所谓“模态对话框”是指对话框被弹出后用户必须在对话框中作出相应的操作;在退出对话框之前,会阻止其他应用程序的运行(包括它所在的应用程序)。 4、什么是非模态对话框

所谓“非模态对话框”是指当对话框被弹出后,将一直保留在屏幕上,但不影响其他应用程序的运行,用户可以继续在对话框所在的应用程序中进行其他操作;当需要使用对话框时,只需像激活一般窗口一样单击对话框所在的区域即可。例如在Microsoft Word中的“查找”和“替换”对话框。 5、文档/视图结构的工作机制

视图通过GetDocument成员函数获得指向相关联的文档对象的指针 通过该指针调用文档类的成员函数来从文档中读取数据 视图把数据显示于计算机屏幕上

用户通过与视图的交互来查看数据并对数据进行修改

视图通过相关联的文档类的成员函数将经过修改的数据传递给文档对象 文档对象获得修改过的数据之后,对其进行必要的修改,最后保存到永久介质(如磁盘文件)中

6、从CDocument类派生新的文档类的一般过程如下: 为每一个文档类型从CDocument类派生一个相应的文档类。

为文档类添加成员变量,这些变量主要用来保存文档的数据,并使其它的对象(如视图对象)可以访问这些成员变量,从而实现文档和视图的相互搭配使用。 重载Serialize成员函数,实现文档数据的串行化。

7、使用串行化的好处:是不需要重载文件打开、文件保存之类的方法,MFC框架会

自动完成这些任务,并自动调用文档类的Serialize方法来完成串行化过程。

如果文档的抽象数据只有一个字符串,那么你只需要在Serialize中添加相映语句就可以完成串行化过程。

8、简述在MFC Windows应用程序中使用CBrush对象的基本步骤。 创建画刷(可调用画刷创建函数CreateSolidBrush、CreateHatchBrush) 将画刷选入设备环境(调用SelectObject) 使用该刷子进行绘画 删除画刷

9、简述文档/视图结构中包含的主要的类及各个类之间的相互关系。

包括 CWinApp、 CDocument 、CView、 CDocTemplate 、 CFrameWnd 类 一个 App可以包含多个文档模版( CDocTemplate ),但是 MFC AppWizard (无论是 SDI 还是 MDI )都只是默认生成一个。但是在实际开发中一个文档模版不够,需要自己手工添加。这个结构是通过 MFC 中 CWinApp 的成员变量 CDocManager * m_pDocManager 实现的。

CDocTemplate 拥有 3 个成员变量,分别保存着 Document 、 View 、 Frame 的 CRuntimeClass 指针,另外持有成员变量 m_nIDResource ,用来指定这个 Document 显示时候采用的菜单资源。

一个文档可以有多个视图,由Document中成员变量 CPtrList m_ViewList 维护。 CFrameWnd拥有一个成员变量CView* m_pActiveView 指向当前活动的View。 CView 中拥有一个成员变量CDocument* m_pDocument指向该视图相关的Document。

10、写出按钮Show和Show the Age响应单击消息的函数OnEnable()、OnShow()和OnShowage()。函数OnShow()使编辑框IDC_EDIT1和IDC_EDIT2处于显示状态,函数OnShowage()要能够判断出单选按钮IDC_RADIO1、IDC_RADIO2和IDC_RADIO3哪个被选中,并将被选中单选按钮的标题添加到组合框IDC_COMBO1中,设为组合框的默认选项。 CMyDialog::OnEnable() {

GetDlgItem(IDC_EDIT1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT2)->ShowWindow(SW_HIDE); }

CMyDialog::OnShow() {

GetDlgItem(IDC_EDIT1)->ShowWindow(SW_SHOW);

GetDlgItem(IDC_EDIT2)->ShowWindow(SW_SHOW); }

CMyDialog::Onshowage() {

CString strText; int i=-1;

i=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO3); if(i==IDC_RADIO1)

strText=\">20\"; else if(i==IDC_RADIO2)

strText=\"15-20\"; else if(i==IDC_RADIO3)

strText=\"<15\";

GetDlgItem(IDC_COMBO1)->SetWindowText(strText); }

11、下面左图为菜单结构,右图为运行结果,写出弹出菜单的代码。 void CPopupmenuView::OnContextMenu(CWnd* pWnd, CPoint point) {

CMenu menuPopup ; if(IDR_MAINFRAME))

(4)->TrackPopupMenu (TPM_LEFTALIGN | TPM_RIGHTBUTTON , , , this);

}

VC习题13

1.将MFC应用程序的命令处理路径补充完整:命令—(视图类)—(文档类)—文档模板类—(框架窗口类)—应用程序类

2.传统的软件开发主要采用(过程)驱动的方法,而WINDOWS程序的开发使用(消息)驱动模型,该模型靠(事件)机制来实现其功能。

3.(主框架类)是应用程序中负责控制菜单、工具栏和状态栏等界面元素的最主要的类。

++开发环境可以生成的基于MFC AppWizard exe的应用程序类型有(对话框)(单文档/视图结构)和(多文档/视图结构)。

5.包含类定义的文件称为(头文件),包含类中成员函数的实现代码的文件称为(源文件),包含资源信息的文件称为(资源文件)。

View的主要功能是(编辑当前工程中的资源)。 7.应用程序向导的主要功能是(帮助生成应用程序)。 8.导的主要功能是(管理各个类中的消息)。

9.工作区窗口一般在开发环境的左侧,它包含工程的多各方面,分别是(ClassView)、(ResourceView)和(FileView)。 10.项目工作区的文件扩展名为(dsw)。

11. WINDOWS应用程序的消息来源主要包括(输入消息)、(控制消息)、(系统消息)和(用户消息)。

12.发送消息可以采用的两个函数是(PostMessage)和(SendMessage)。 类的主要功能是(主要用来更新命令用户接口的状态,如子菜单、工具栏上的按钮等)。

14.代码ON_UPDATE_COMMAND_UI(ID_TEST,OnUpdateTest)的主要功能是(将对ID_TEST的更新命令接口消息的处理映射到OnUpdateTest函数上)。 类的功能是(处理字符串),其Format函数的功能是(格式化字符串)。 类的功能是(处理日期时间),其Format函数的功能是(将时间对象格式化为字符串)。

函数的第一个参数表示(消息文字),第二个参数表示(标题文字),第三个参数表示(图标与按钮组合).

18.在windows中,按下一个字符键,会依次触发(WM_KEYDOWN)、(WM_CHAR)和(WM_KEYUP)3个消息

窗口内部需要重新绘制时,会得到一个(WM_PAINT)消息,当释放鼠标右键时,会得到一个(WM_RBUTTONUP)消息。

表示(鼠标左键按下消息),WM_MOUSEMOVE表示(鼠标移动消息)。 (UINTnFlag,CPinto point)消息处理函数中的point表示(鼠标当前坐标)。 (UNIT nPepCnt nFlags)消息处理函数中的nChar表示(当前按下的字符键)。 X1.下列函数中,能为状态栏的第二个窗格设置文字的是(SetPaneText) ++提供的资源编辑器不能编辑下列哪个资源(状态栏)

应用程序框架为状态栏定义的静态数组indicators放在哪个文件中()。

23.(DeleteMenu)用来删除某个菜单项,如果被删除的菜单项有相关的弹出菜单,则该弹出菜单的句柄也要被删除并释放内存。

24.(AppendMenu)用来追加某个菜单项,(TrackPopupMenu)用来在一个POINT结构所指定的位置上显示一个上下文菜单。

25.工具栏上的按钮能触发的消息有(COMMAND)和(UPDATE_COMMAND_UI)。 状态栏上的窗格可以分为(信息行窗格)和(指示器窗格)两类。

26.(GetSubMenu)可以得到指向某列菜单的指针。

27.用户可以通过项目工作区窗口的(资源)试图来查看资源。 28.在MFC中,工具栏的功能由(CToolBar)类实现。 29.在MFC中,状态栏的功能由(CStatusBar)类实现。 X4.在下列函数中,可以实现画圆功能的是(Ellipse)。

类为用户提供了下列4个文本输出函数,其中,能使输出文本呈现一个多列列表格式的是(TabbedTexOut)

X6.下列类中哪一个不是GDI对象类(CWnd) X7.下面哪一个不是CDC类的派生类(GDI类)。

类实现绘制矩形功能的函数是(Rectangle),实现绘制椭圆功能的函数是(Ellipse)。改变文本颜色的函数是(SetTextColor),改变文本背景颜色的函数是(SetBkColor),在指定位置显示字符串的函数是(TextOut)。

绘图要素主要分为两大类,即(设备场景)和(基本绘图工具)。

引入图形设备接口的目的是(屏蔽底层硬件的绘图细节,使编程更加容易)。 用(COLORREF)类型的数据存放颜色,它采用3个参数表示红、绿、蓝三元基本色的分量值,这3个值的取值范围是(0-255)。

34.创建画笔后,必须调用CDC类的成员函数(SelectObject)将新画笔选进当前的绘图环境。

中的CDialog类封装了对话框的显示、关闭等常用功能,其中,用来显示模态对话框的是函数(DoModal)。

X9.对话框创建后,还没显示前就会触发(WM_INITDIALOG)消息。 X10.通用对话框中,属于非模态对话框的是(查找对话框)。 X11.要打开文件,应该使用哪个通用对话框(CFileDialog)。

X12.通常将对话框的初始化工作放在下列哪个函数中进行(OnInitDialog)。 35.所有通用对话框都是由公共基类(CCommonDialog)派生出来的,(CColorDialog)实现了标准的颜色对话框。

中。与属性对话框相关的两个类是(CPropertySheet)和(CPropertyPage)。 X13.下列控件不属于按钮的是(列表框)。

X14.如果在输入时采用选择的方法进行,以下哪个控件不能实现(编辑框) X15.下面对UpdateData的描述中错误的是(当调用UpdateData(TRUE)时,数据由控件关联的变量向空间传输)。

37.有两种方法可以创建静态文本控件,一种是(使用资源编辑器添加),另一种是(使用Create函数动态创建)。 函数的功能是(显示或隐藏窗口)。

39.使用滚动条控件一般要用到控件所在的对话框类的(WM_HSCROLL)和(WM_VSCROLL)消息。

40.判断一组单选按钮中哪一个被选中了,要应用(GetCheckedRadioButton)函数 41.(GetScrollPos)函数可以得到滚动条的滑块位置,(SetScrollPos)函数可以设置滚动条的滑块位置,(GetPos)可以得到滑动条的当前位置,(SetPos)函数可以设置滑动条的当前位置。

42.滑动条有(垂直滚动条)和(水平滚动条)两种,它们触发的滚动消息分别是(WM_VSCROLL)和(WM_HSCROLL)。

类中的(InsertString)函数可以为列表框插入一个新的字符串,(ResetContent)函数可以清空所有的列表项内容。

44.(GetCheck)函数可以得到单选框的选中状态。

45.当程序需要与界面交换数据时,应该调用(UpdateData)函数。

46.有两种类型的文档/视图结构程序:(单文档(SDI))应用程序和(多文档(MDI))应用程序。

47.(GetDocument)是视图类的成员函数,调用它可以的到指向与之相关的文档对象的指针,文档的串行化在(Serialize)函数中进行。

48.在程序的任何一个类中访问应用程序类的函数为(AfxGetApp),在程序的任何一个类中访问框架窗口的函数为(AfxGetMainWnd())。

49.基于单文档/视图结构的而框架程序中包含的类有(CWinApp)、(CFrameWnd)、(CDocument)和(CView)。

体系结构中不包括下列哪个组建(数据库管理系统DBMS)。

50.记录集可以分为(Dynaset(动态集))和(Snapshot(快照))两种。

的ODBC主要包括5个类,分别是(CDatabase)、(CRecordset)、(CRecordView)、(CDBException)和(CFieldExchange)。

52.可以利用CRecordset类的(AddNew)函数添加一条新记录,利用CRecordset类的(MoveFirst)函数将记录指针移动到第一条记录上,利用CRecordset类的(Update)函数实现数据库记录的保存。 VC习题14

一、单项选择题(每题2分,共15×2=30分) 1、下列字符串中,正确的C++标识符是(A)。

(A) foo_1 (B) 2b (C) new (D) 256_1 2、下列关于类和对象的叙述中,错误的是(A)。

(A) 一个类只能有一个对象 (B) 对象是类的具体实例

(C) 类是对某一类对象的抽象

(D) 类和对象的关系是一种数据类型与变量的关系 3、下列语句中错误的是(D)。

(A) int *p = new int(100); (C) int *p = new int;

4、下列(D)是引用调用。

(A) 形参是指针,实参是地址值 (B) 形参和实参都是变量 (C) 形参是数组名,实参是数组名 (D) 形参是引用,实参是变量

5、下列关于this指针的叙述中,正确的是(D)。

(A) 任何与类相关的函数都有this指针 (B) 类的成员函数都有this指针 (C) 类的友元函数都有this指针 (D) 类的非静态成员函数才有this指针 6、有关运算符重载正确的描述是(D)。

(A) C++语言允许在重载运算符时改变运算符的操作数个数 (B) C++语言允许在重载运算符时改变运算符的优先级 (C) C++语言允许在重载运算符时改变运算符的结合性 (D) C++语言允许在重载运算符时改变运算符的原来的功能

7、要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是(A)。

(A) int vect[ ]={30,50,-88}; (B) int vect[ ]={30,50,-88,0,0}; (C) int vect[5]={30,50,-88}; (D) int vect[5]={30,50,-88,0,0};

8、执行语句序列int i=0; while(i < 25) i+=3; cout<(A) 24 (B) 25 (C) 27 (D) 28 9、分析下列程序的运行结果为(C)。

#include <> class Sample { int x; public:

Sample(){};

(B) int *p = new int[100];

(D) int *p = new int[40](0);

Sample(int a){x=a;}

Sample(Sample &a){x=++ +10;} void disp(){cout<<\"x=\"<void main()

{ Sample s1(3),s2(s1);

(); (); }

(A) x=3;x=13; (B) x=3;x=14; (C) x=4;x=13; (D) x=4;x=14; 10、有如下程序:执行后的输出结果是(B)。

#include <>

void fun(int& x, int y) { int t = x; x = y; y = t; } void main( )

{ int a[2] = {50, 60};

fun(a[1], a[0]);

cout << a[0] << \ }

(A) 60,60 (B) 50,50 (C) 50,60 (D) 60,50

11、当在使用类模板时,类模板本身被实例化成了一个具体的(D)。

(A) 对象 (B) 实例 (C) 模板类 (D) 类 12、下列程序的输出结果是(C)。

#include void main( ) { int x=6,y=8;

if(x++<6)

cout<<++y<6)

cout<<――y<cout<< y++<}

(A) 8 (B) 9 (C) 7 (D) 编译不成功

13、假定A类已经定义,对于以A类为基类的单一继承类B类,以下定义中正确的是(A)。

(A) class B: public A{->。(T)

5、构造函数可以被继承,析构函数不能被继承。(F) 四、简答题(共10分)

1、滚动条编程的主要步骤。(4分)

2、模态对话框与非模态对话框定义。(6分) 五、程序分析题(共15分)

1、下面程序的运行结果是 。(5分) #include <> class BASE {public:

~BASE( ){ cout<<\"BASE\\n\"; } };

class DERIVED: public BASE {public:

~DERIVED( ){ cout<<\"DERIVED\\n\"; } };

void main( ) { DERIVED x; }

2、下面程序的运行结果是 。(5分) #include <> class A {public:

A(){cout<<\"A\";} ~A(){cout<<\"~A\";} };

class B:public A {

A *p;

B(){cout<<\"B\";p=new A();} ~B(){cout<<\"~B\";delete p;} };

void main(){ B obj; }

3、下面程序的运行结果是 。(5分) public:

#include <> #include <> void fun(char *s); void main() { }

void fun(char *s) { strcpy(s, \"look\"); } 六、程序填空题(每空2分,共2×10=20分)

1、编写程序实现以下显示功能。其中单选按钮所对应的变量为m_color(整型),复选框所对应的变量分别为m_red(布尔型)和m_yellow(布尔型),编辑框所对应的变量位m_edit(字符串类型)。点击“显示”按钮可产生以下显示结果。

char array[80]; char *p; p = array; fun( p ); cout << p;

void CMy6_1Dlg::OnShow() {

UpdateData(); m_edit=\"你选择了\";

}

if(m_color==1) { }

UpdateData(false);

if(m_red)

m_edit+=\"红色\"; m_edit+=\"黄色\"; if(m_yellow) m_edit+=\"单色\"; else

2、编写程序实现以下功能:在单文档应用程序中画圆,其中圆的边框为红色虚线(PS_DASH),线宽为10个像素。

void CMy5_3View::OnDraw( ⑥ ) { }

七、编程题(共10分)

实现一个简单的大学学生管理系统。学生包括本科生、研究生,要求可以对本科生简单的个人信息(学号、姓名、性别)进行录入并显示,研究生与本科生不同的是研究生有指导教师,要求利用单继承实现对研究生信息的录入和显示。 一、单项选择题(每题2分,共2×15=30分) 1、A 6、D 11、D 2、A 7、A 12、C 3、D 8、C 13、A 4、D 9、C 14、C 5、D 10、B 15、D CMy5_3Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc);

// TODO: add draw code for native data here CBrush *pPenOld, PenNew; ⑦ ; ⑧ ; pDC->Ellipse(100,100,200,200); ⑨ ; ⑩ ; 二、填空题(每空1分,共1×10=10分)

① delete ③ 运行时多态 ⑤ 弹出式菜单 ⑦ 单选按钮 ⑨ SDI类型 三、判断题(每题1分,共1×5=5分) 1、√ 2、× 3、× ② 编译时多态(②和③可交换) ④ 下拉式菜单 ⑥ CWnd ⑧ 复选框 ⑩ MDI类型 4、√ 5、× 四、简答题(共10分)(酌情给分)

1、 答:滚动条编成的主要步骤是:(1)向对话框模板资源添加滚动条控件;(2)为滚动条映射成员变量;(3)在对话框的OnInitDialog()函数中通过滚动条控件成员变量调用MFC类CScrollBar的成员变量,设置滚动条的滚动范围和滚动块位置;(4)利用ClassWizard类向导添加滚动消息处理寒暑,根据传递给函数的消息通知码参数nSBCode、滚动块位置参数nPos和其他参数进行相应的处理,实现具体的程序功能。

2、 答:模态对话框在关闭之前,不允许用户切换到程序的其他窗口,而只能与该对话框进行交互。无模式对话框弹出后,用户不需要关闭它就可以在非模态对话框和应用程序其他窗口之间进行切换。 五、程序分析题(共15分)

1、 DERIVED 2、ABA~B~A~A 3、look

BASE

CDC *pDC (PS_DASH,10,RGB(255,0,0)); pPenOld=pDC->SelectObject(&PenNew); pDC->SelectObject(pPenOld); (); 六、程序填空题(每空2分,共2×10=20分) UpdateData(); m_color==1 m_red m_edit+=\"黄色\"; UpdateData(false); 七、编程题(共10分) 第一种: #include <> #include <> class CStudent {

char id[20]; char name[20];

};

char sex;

CStudent(char *sid, char *sname, char ssex ) { }

void print() { }

cout<<\"学号:\"<public:

class CGraduate : public CStudent { };

void main() {

CStudent s(\"10001\ ();

CGraduate g(\"10002\ ();

char Tname[20];

CGraduate(char *sid, char *sname, char ssex, char *sTname):CStudent(sid, sname, { }

void print() { }

CStudent::print();

cout<<\"指导教师:\"<public: ssex )

} 第二种: #include <> #include <> class CStudent { };

class CGraduate : public CStudent { };

void main() { }

CStudent s(\"10001\

CGraduate g(\"10002\ char Tname[20];

CGraduate(char *sid, char *sname, char ssex, char *sTname):CStudent(sid, sname, { }

strcpy(Tname, sTname );

cout<<\"指导教师:\"<public: ssex )

char id[20]; char name[20]; char sex;

CStudent(char *sid, char *sname, char ssex ) { }

strcpy(id,sid); strcpy(name,sname); sex=ssex;

cout<<\"学号:\"<public:

因篇幅问题不能全部显示,请点此查看更多更全内容