MFCWindows应用程序设计复习题2.docx
《MFCWindows应用程序设计复习题2.docx》由会员分享,可在线阅读,更多相关《MFCWindows应用程序设计复习题2.docx(15页珍藏版)》请在冰豆网上搜索。
MFCWindows应用程序设计复习题2
第9章MFC的文件处理机制
1)文档负责将数据存储到磁盘中,存取过程称为(D)。
A.文件访问B.格式化
C.文件读写D.串行化
2)一个CArchive类对象必须与一个(C)对象相关联。
A.CObjectB.C
C.CFile类D.CDocument
3)不能将Newfile文件的文件指针定位在文件头的方法是(B)。
A.New("My",C)
B.New(0L,C)
C.New()
D.New(0L,C)
4)(A)函数用于获取指定文件的文件名。
A.Get()B.GetStatus()
C.Get()D.Get()
5)当应用程序读取或写入文件时,文档对象的()函数被调用,并将()对象作为参数传递。
6)(CArchive)类是一个对象数组类,它可以存放任何从CObject派生出的对象,还可以根据元素的数量动态地调整自己的大小。
7)在VisualC++中,数据文件的操作通常按照( 打开)、(操作)、(关闭)的步骤进行。
8)写出以读写方式打开文件student.txt的语句序列(
File.Open(“student.txt”,C);)。
10)什么是序列化?
答:
序列化是面向对象程序设计中应对象这种数据的存储和恢复的要求而产生的一种文件读写机制。
第11章对话框
1.在对话框的编辑器中,最左边的按键的作用是(B)。
A.激活对话框编辑功能B.测试对话框
C.控件左对齐D.控件垂直居中
2.在MFC类中,访问对话框的编辑框中的文本的函数是(C)。
A.GetTextB.GetItem
C.GetDlgItemTextD.GetDlgText
3.MFC编程中,模式对话框的创建函数是(B)。
A.CreateB.DoModal
C.CreateDialogD.Initilize
4.在Windows操作系统中,最常见的系统错误提示对话框属于(A)。
A.模式对话框B.无模式对话框
C.通用对话框D.固定对话框
5 CDialog类的成员函数UpdateData()的功能是(A)。
A.在调用UpdateData()函数时,令参数为FALSE,可以根据程序更新文本,即按成员变量的值来更新对话框的显示值;
B.在调用UpdateData()函数时,令参数为TRUE,成员变量的值就会被屏幕上显示的值更新;
C.用对话框中的数据更新数据库中的数据;
D.用数据库中的数据更新对话框中的数据;
6.下列关于对话框中数据交换的说法正确的是(C)。
A.只能交换基本数据类型,不能交换类类型的对象数据
B.可以交换任何C++中合法的数据类型
C.可以交换基本数据类型和一些特定的类类型的数据
D.可以对所有的数据的大小范围进行限制
7.在MFC编程中,从对话框中取得数据的系统函数是(A)。
A.DoDataExchangeB.InitDialog
C.CreateD.DoModal
8.下列哪种功能没有被封装为通用对话框?
(C)
A.颜色选择B.字体选择
C.时间选择D.文件打开保存
9.关于颜色对话框,以下说法错误的是(B)。
A.颜色对话框是模式对话框
B.颜色对话框的DoModal函数能够返回1个选择的颜色值
C.颜色对话框设定颜色后,程序需要调用窗口重绘消息来更新颜色
D.颜色对话框可以自定义颜色
10.在创建了颜色对话框后,调用设定的颜色需要使用函数(D)。
A.GetColorB.OnColorOK
C.SetCurrentColorD.SetColor
11.如果要文件对话框只能显示文件夹中的bmp文件,则建立对话框时应该设置的参数是(B)。
A.lpszB.lpszFilter
C.lpszDefExtD.dwFlags
12.关于文件对话框,以下说法正确的是(C)。
A.文件对话框只能打开单个文件
B.文件对话框可以设置默认的打开文件
C.文件对话框可以限制访问的文件类型
D.文件对话框是无模式对话框
13.在窗口中添加一个仅仅用于显示文字提示的控件,这个控件的类为:
(A)
A.CStaticB.CButton
C.CEditD.CComboBox
14.在MFC编程中,所有基于窗口的控件类的基类是(A)。
A.CWndB.CView
C.CWindowsD.CFrame
15.在MFC编程中,可编辑文本框的控件类是(A)。
A.CEditB.CButton
C.CStaticD.CComboBox
16.已知以下语句:
GetDlgItem(IDC_CONVERT)->EnableWindow(FALSE);
则下列说法正确的是(A)。
A.该语句禁用了对话框中ID号为IDC_CONVERT的控件
B.该语句将显示ID号为IDC_CONVERT的对话框
C.该语句使ID号为IDC_CONVERT的控件变为可见
D.该语句使ID号为IDC_CONVERT的的控件友灰色变为可用
17.如果1个单选按钮的Group属性被设置为“TRUE”,则说明(A)。
A.该单选按钮是1组单选按钮的第1个
B.该单选按钮独自作为1个按钮组
C.该单选按钮的消息响应属于1个组框
D.该单选按钮一定是默认的单选按钮
18.要设置某个单选按钮的状态,使用的函数是(B)。
A.SetButtonB.SetCheck
C.SetRadioD.SetGroup
19.关于列表框(ListBox)控件,以下说法错误的是(D)。
A.列表框控件可以列出一系列供用户从中选择的项
B.列表框控件中的选项可以使用字符串
C.列表框控件中的选项可以使用滚动条
D.列表框中只能一次选择1个选项
20.要在列表框中添加字符串,可以使用的系统函数是(A)。
A.AddStringB.AddText
C.SelectStringD.SetSel
21.MFC提供了一些公用对话框类,其中:
用于选择颜色的公用对话框类为:
(CColor);选择文件名的对话框类为:
(CFile),设置字体的对话框类为:
(CDialog)。
22. 对话框分为(模态)对话框和(非模态)对话框两种类型。
23. 选择按钮包括(单选)按钮和(复选)按钮;
24. 组合控件集成了()控件和()控件的功能;
25.CDialog类是从(CWnd)类中派生出来的
27.试简述Windows编程中,对话框的数据交换机制。
答:
CWnd成员函数UpdateData()调用DoDataExchange()来实现对话框的数据交换,其中DoDataExchange()是MFC自动生成的,DoDataExchange()函数通过调用DDX_Custom()来将对话框控件与对话框类中的成员变量相对应。
在具体实现时,调用Update(true)实现对话框的数据输入功能,将数据从控件传送到对应的数据成员;调用Update(false)实现对话框的输出功能,将数据从数据成员变量传送给对应的控件。
28.什么是对话框模板资源描述文件?
答:
用来描述对话框外观及对话框上控件布局的文本文件叫做对话框模板资源文件。
29.用户定义的对话框类派生自哪个类?
答:
Cdialog。
30.通常在什么地方进行对话框的初始化?
答:
通常在类CDialog的OnInitDig成员函数中进行对话框的初始化。
这个函数在对话框启动后,且还没有显示的时候被调用。
31.Windows有哪两类对话框?
它们的区别是什么?
答:
模式对话框和非模式对话框。
它们的区别为模式对话框直到退出对话框才返回应用程序,非模式对话框可以与应用程序同时工作。
32.对话框创建后,还没显示前就会触发(B)消息。
A)WM_PAINTB)WM_INITDIALOG
C)WM_CREATED)WM_SIZE
33.MFC中,与属性对话框相关的两个类是(CPropertyPage)和(CPropertySheet)。
34.判断一组单选按钮中哪一个被选中了,要使用(GetCheckedRadioButton)函数。
35.(GetCheck)函数可以得到单选或复选框的选中状态。
第12章进程与线程的管理
1. 每一个进程至少有(A)个线程。
A.1 B.2 D.3 D.4
2. 当使用函数AfxBeginThread创建一个工作者线程时,参数dwCreateFlags指定了线程的初始状态,通常为____0_____,那么线程在创建后立即执行,如果为CREATE_SUSPENDED,则线程在启动后就被挂起。
3. 在创建CWinThread对象的AfxBeginThread函数声明中,参数intnPriority是线程的(B)。
A函数名B优先级C初始状态D堆栈尺寸
4.在创建CWinThread对象的AfxBeginThread函数声明中,参数nStackSize是线程的(D)。
A函数名B优先级C初始状态D堆栈尺寸
5.在创建CWinThread对象的AfxBeginThread函数声明中,参数dwCreateFlags是线程的(C)。
A函数名B优先级C初始状态D堆栈尺寸
6.在CWinThread类的成员函数中,查询指向线程主窗口指针的函数是(A)。
AGetMainWndBGetThreadPriority
CResumeThreadDSuspendThread
7. 在CWinThread类的成员函数中,获取当前线程优先级的函数是(B)。
AGetMainWndBGetThreadPriority
CResumeThreadDSuspendThread
8. 在CWinThread类的成员函数中,增加一个线程的挂起记数的函数是(D)。
AGetMainWndBGetThreadPriority
CResumeThreadDSuspendThread
9. 在CWinThread类的成员函数中,减少一个线程的挂起记数的函数是(C)。
AGetMainWndBGetThreadPriority
CResumeThreadDSuspendThread
10.线程的哪一种优先级最高?
(A)
A.THREAD_PRIORITY_TIME_CRITICAL
B.THREAD_PRIORITY_ABOVE_NORMAL
C.THREAD_PRIORITY_HIGHEST
D.THREAD_PRIORITY_IDLE
11.对工作线程和用户界面线程的功能叙述正确的是(C).
A.工作者线程有收发消息的功能,用户界面线程也有收发消息的功能.
B.用户界面线程没有收发消息的功能,工作者线程有收发消息的功能.
C.用户界面线程有收发消息的功能,工作者线程没有收发消息的功能.
D.用户界面线程和工作者线程都没有收发消息的功能.
12.线程启动时,参数dwcreateFlage指示其运行状态,若为(D),线程立即执行.
A,1B,TC,FD,0
13.工作线程的函数原型正确的是(C)
A.staticintMyWorkThreadFunction(LPVOIDpParam)
B.INTMyWorkThreadFunction(LPVOIDpParam)
C.UINTMyWorkThreadFunction(LPVOIDpParam)
D.staticintMyWorkThreadFunction(VOIDpParam)
14.以下哪个不是关于线程类的函数(C)。
A、GetMainWndB、AfxBeginThread
C、MessageBoxD、CreateThread
15.限制访问共享资源的线程数量的同步对象是下面的那一个(D)
A、EventB、CriticalSection
C、MutexD、Semaphore
16.MFC中线程类的名称(CWinThread)
17.进程就是应用程序的(运行)实例,每个进程都有自己私有的虚拟空间,每个进程都有有一个(主进程),但可以建立另外的线程。
18.进程中的线程是(系统)执行的,每个线程占用CPU的时间由(优先权)来划分。
19.所有进程都可以访问进程的全局变量和资源,这样,一方面为编程带来了方便,但另一方面也容易在线程之间造成(数据冲突)
20.线程分(用户界面)线程和(工作)线程两种.
21.MFC应用程序的线程由对象CWinThread表示,在多数情况下,程序不需要自己创建CWinThread对象,调用()函数时会自动创建一个CwinThread对象.
22.工作线程()收发消息的功能,用户界面线程()-收发消息的功能.
23. 实现线程同步的不同功能需要用到支持多线程的同步类,MFC支持的4个多线程的同步类包括(事件)、(临界段)、(互斥体)类和(信号计数器)类。
24. 线程是如何分类的?
各有何特点?
25. 在MFC中有哪些同步类?
各有什么特点?
26.说明Mutex(互斥量)的用途和特点?
第16章用MFC设计数据库应用程序
1.ODBC体系结构中不包括下列哪个组件(DD)。
A)ODBC管理器B)数据源
C)驱动程序管理器D)数据库管理系统DBMS
2.记录集可以分为(dynaset动态集)和(snapshot快照)两种。
3.MFC的ODBC类主要包括5个类,分别是CDatabase、CRecordset、CRecordView、CDBException和CFieldExchange。
4.可以利用CRecordset类的(AddNew)函数添加一条新记录,利用(MoveFirst)函数将记录指针移动到第一条记录上,利用(Update)函数实现数据库记录的保存。
5.在实际应用中,如果需要列表视图控件显示1张3×3数据表中的全部数据,则应该选用的列表视图控件风格是(D)。
A.图标(Icon)B.小图标(SmallIcon)
C.列表(List)D.报告(Report)
6. 下面的SQL语句中,可以用于查询学生表s中,学号大于等于10并且小于等于30的学生的姓名的是(A)。
A.SELECTstuNameFROM s WHEREstuNo>=10ANDstuNo<=30
B.SELECTstuNameFROM s WHEREstuNo>10ANDstuNo<30
C.SELECTstuNameFROM s WHEREstuNoBETWEEN10and30
D.SELECTstuNameFROM s WHEREstuNoBETWEEN9and31
7. 在MFC的ODBC中,针对某个数据库,负责连接数据源的类是(A)。
ACDatabaseBCRecordset
CCRecordViewDCFieldExchange
8. 在MFC的ODBC中,针对数据源中记录集,负责记录操作的类是(B)。
ACDatabaseBCRecordset
CCRecordViewDCFieldExchange
9. 在MFC的ODBC中,负责界面的类是(C)。
ACDatabaseBCRecordset
CCRecordViewDCFieldExchange
10. 在MFC的ODBC中,负责记录集与数据源进行数据交换的类是(D)。
ACDatabaseBCRecordset
CCRecordViewDCFieldExchange
11. MFC的ODBC默认的记录集的类型是(A)。
A表型记录集B动态记录集
C静态记录集D快照型记录集
13.记录集类CRecordset有一个成员函数:
DoFieldExchange。
它的作用是(B)。
A.记录集和视图之间进行数据交换 B.记录集和数据源之间进行数据交换
C.记录集和对话框之间进行数据交换 D.数据源和视图之间进行数据交换
14.现声明一个记录集对象为set,则过滤条件“姓名为张三”的正确写法是(D)。
A.set.m_strFilter=”WHEREName=张三”
B.set.m_strFilter=”WHEREName=’张三’”
C.set.m_strFilter=”Name=”张三””
D.set.m_strFilter=”Name=’张三’”
15.现声明一个记录集对象为set。
若要对查询结果按姓名的拼音顺序从小到大排列,则正确的设置方法是(C)。
A.set.m_strFilter=”ORDERBYName”
B.set.m_strSort=”ORDERBYName”
C.set.m_strSort=” Name”
D.set.m_strFilter=” Name”
16.现声明一个记录集对象为set。
当对某记录内容修改后,欲把修改的结果保存到磁盘,正确的做法是(A)。
A.set.Update() B.set.UpdateData(A)
C.set.ReQuery() D.set.AddNew()
17. 在MFC的ODBC类中Cdatabase负责连接(数据源),CRecordset负责(记录)操作,CrecordView负责(界面),CFieldExchange负责与数据源的(数据交换)。
18.在MFCODBC中,要创建一个与数据源StudentDB的连接,使用的语句序列为CDatabasedb;________________________。
19.向记录集中插入记录可以使用CDatebase的__________________,也可以使用CRerordeset的________________________。
20.CRecordset类中的函数MovePrev()的功能______________________
Update()函数的功能是__________________________。
21.ODBC提供了几种不同的记录集类型?
各有何特点?
动态集型记录是一个查询结果,可以包含可更新的记录,这种记录集是一组记录,可以用它从一个或多个基本数据库表中检查、添加、改变或删除记录,。
动态集型记录集包含来自一个数据库中一个或多个表的字段。
快照型记录集一组记录的一个静态拷贝,可以用它查找数据或生成报表。
这些记录集可以包含来自一个数据库中一个或多个表的记录字段,不过记录不可更新。
22.简述用MFC进行ODBC编程的过程。
23.简述如何使用ODBC修改数据库记录?
【判断题】
1.所谓的WindowsAPI就是独立于C语言的一套全新的程序设计语言。
(×)
2.在Windows编程约定中,代表窗口句柄的数据类型是HWND。
(√)
3.在Windows编程中,使用窗口句柄来操作具体的窗口。
(√)
4.在Windows的消息结构中,键盘的按键字符信息被保存在lParam中。
(×)
5.所有的Windows程序,其入口函数必须名为WinMain。
(×)
6.在Windows编程中,菜单可以在资源视图中设计,一旦载入程序,就不能再被更改。
(×)
7.在Windows编程中,键盘按键弹起时,会返回消息WM_KEYDOWN。
(×)
8.每个进程至少有一个线程。
(√)
9.系统中运行着的线程,在时间上是平行的,它们每一刻都在同时执行不同的任务。
(×)
10.线程的入口函数原型是确定的,线程函数必须严格符合这个原型。
(√)
11.C++程序编写的多线程应用程序,必须等所有线程结束后,进程才终止。
(×)
12.进入临界区的函数为Lock,离开临界区Unlock。
(√)
13.在MFC下不能再调用系统的底层函数。
(×)
14.在MFC和Windows编程中,很多函数既有MFC形式的,也有系统API形式的。
(√)
15.MFC是微软开发的C++编译器。
(×)
16.CObject类是1个抽象类。
(√)
17.在Windows编程中,输出设备就是显示器,设备上下文支持显示器,不支持打印机。
(×)
18.在MFC编程中,文档类用于在窗口区域显示内容。
(×)
19.所有的MFC应用程序都必须有一个应用对象。
(√)
20.MFCAppWizzard只能自动生成MFC框架的程序。
(×)
21.使用MFCAppWizzard可以自动生成带有数据库连接的程序框架(√)
22.在MFC编程中,后缀名为rc的资源文件中,存储了位图的数据。
(×)
23.在MFC编程中,资源的ID取值范围为0~65535,在这个范围内,资源可以取任意值。
(×)
24.在MFC消息机制中,任何1个类都可以收到消息。
(×)
25.在MFC消息机制中,如果在文档类和对应的视图类中同时定义了1个菜单命令消息,则处理该消息的类是视图类。
(√)
26.在MFC编程中,Windows消息处理被定义为函数的形式。
(√)
27.在书写C++的宏时,如果一行写不完,可以使用连字符从下一行接着写,例如MFC的消息映射宏,在第一行末尾表示下一行是前一行的后续的符号是“\”。
(√)
28.在菜单资源编辑界面中,为菜单项添加热键的符号是"&"。
(√)
29.在实现菜单功能时,只能在视图类中实现。
(×)
30.在MFC编程中,封装对话栏的类