Windows程序设计模拟题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Windows程序设计》模拟题
一.单项选择题
1. 项目文件的扩展名是【B】。

A)exe B)dsp
C)d sw D)cpp
2. 利用ClassWizard不能【D】。

A)建立新类B)进行消息映射
C)增加类的成员变量D)插入资源
3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送【C】消息。

A)WM_CHAR B)WM_HSCROLL
C)W M_VSCROLL D)WM_CHANGE
4. 以下控件中,【C】没有Caption属性。

A)按钮B)组框
C)编辑框D)静态文本框
5. 关于工具栏、菜单和加速键的关系,正确的说法是【C】。

A)工具按钮与菜单必须一一对应B)工具栏与加速键一一对应
C)工具按钮不必与菜单一一对应D)菜单与加速键一一对应
6. 所有的控件都是【B】类的派生类,都可以作为一个特殊的窗口来处理。

A)CView B)CWnd
C)C Window D)CDialog
7. 使用GetDC()获取的设备上下文在退出时,必须调用【A】释放设备上下文。

A)ReleaseDC() B)delete
C)D eleteDC() D)Detach()
8. 希望菜单无效,应该用CCmdUI类的【A】成员函数。

A)Enable B)SetRadio
C)S etCheck D)SetText
9. 希望菜单前出现一个圆点,应该用CCmdUI类的【B】成员函数。

A)Enable B)SetRadio
C)SetCheck D)SetText
10. 下面【A】不是MFC设备环境类CDC类的派生类。

A)GDI B)CPaintDC
C)C ClientDC D)CWindowDC
11. 使用【A】通用对话框类可用打开文件。

A)CFileDialog B)CColorDialog
B)C PrintDialog D)CFontDialog
12. 列表框CListBox类的成员函数【A】用来向列表框增加列表项,成员函数【C】用来清除列表项所有项目,成员函数【F】用来返回列表框的列表项总数。

A)AddString()B)DeleteString()
C)ResetContent()D)FindString()
E)GetCurSel()F)GetCount()
13. 【C】包括键盘和鼠标的输入。

这一类消息首先放在系统消息队列中,然后由Windows 将它们送入应用程序消息队列中,由程序来处理消息;【D】用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。

当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A)系统消息B)用户消息
C)输入消息D)控制消息
14. 常用的CButton类的成员函数中:【A】获得一个按钮控件的选中、选择和聚焦状态;【D】得到一个按钮的选中状态;【C】设置一个按钮的选中状态。

A)GetState()B)SetState()
C)SetCheck()D)GetCheck()
E)GetButtonStyle()
15. 用应用程序向导创建MFC AppWizard(exe)应选择【B】选项卡。

A)Files B)Projects
C)W orkspaces D)Other Documents
16. 运行程序的快捷键是【A】。

A)Ctrl+F5 B)F7
C)C trl+F7 D)F5
17. 设置和取消断点的快捷键都是【A】。

A)F9 B)F5
C)F11 D)F10
18. 在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的【B】。

A)Separator B)Pop-up
C)Inactive D)Grayed
19.下列【C】不是MFC消息映射机制有关的宏。

A)DECLARE_MESSAGE_MAP
B)BEGIN_MESSAGE_MAP
C)DECLARE_SERIAL
D)END_MESSAGE_MAP
20. 要使鼠标箭头在按钮上暂停时能显示工具栏按钮提示,必须设置工具栏的风格为【B】。

A)CBRS_TOOLTIPS B)CBRS_FLYBY
C)C BRS_NOALIGN D)WS_VISIBLE
21. 对话框的功能被封装在【B】类中。

A)CWnd B)CDialog
C)C Object D)CCmdTarget
22. 滑动条是由滑动块和刻度线构成,按指定增量移动,CSliderCtrl类的成员函数【B】代表设置滑动块位置;【C】代表设置刻度线位置,一次只能设置一个刻度线,用于手动设置刻度线;【F】代表设置刻度线的疏密程度,配合Auto ticks属性使用,每隔一定单位自动显示一条刻度线。

A)SetRange()B)SetPos()
C)SetTic()D)SetPoint()
D)SetMark()F)SetTicFreq()
23. 所有的文档类都派生于【C】,所有的视图类都派生于【A】。

A)CView B)CWindow
C)C Document D)CFormView
24. 滚动条类CScrollBar的成员函数规定了滚动条的操作。

设置滚动条的范围使用【C】函数,设置滚动条的位置使用【E】函数,获得滚动块的当前位置使用【F】函数。

A)SetPos()B)SetRange()
C)SetScrollRange()D)GetPos()
E)SetScrollPos()F)GetScrollPos()
F)GetScrollRange()
25. 要将模式对话框在屏幕上显示需要用到【B】。

A)Create B)DoModal
C)O nOK D)构造函数
26. 类CButton不是下列【D】控件对应的类。

A)命令按钮B)单选按钮
C)复选框D)静态文本框
27. 根据对话框的行为性质,对话框可以分为两类【B】
A)对话框资源和对话框类B)模式对话框和非模式对话框
C)对话框资源和对话框模板D)消息对话框和模式对话框
二.填空题
1、用户可以通过项目工作区窗口的【ResourceView】视图来查看资源。

2、一个单文档的MFC应用程序框架一般包括5个类:应用程序类、框架窗口类、【视图
类】、【文档类】和文档模板类。

3、改变菜单项文本是使用CCmdUI类的【SetText】成员函数。

4、每个控件最多只能关联Control和Value类型成员变量各【1】个。

5、MCF的【CProgressCtrl】类封装了进度条控件的各种操作,该类的成员函数【SetRange】
用来设置进度条的范围。

6、与DOS字符方式下的输出不同,Windows是按【图形】方式输出的。

7、Windows是一个基于【消息】的消息驱动系统。

8、项目工作区文件的扩展名是【dsw】。

9、【MessageBox】函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返
回给调用者。

10、弹出快捷菜单使用的是CMenu类的【TrackPopupMenu】函数。

11、可以利用CGdiObject类的成员函数【CreateStockObject】将GDI对象设置成指定的库
存对象。

12、一个旋转按钮控件通常是一个相伴的控件一起使用的,该控件的Tab键次序必须【小于】
旋转按钮。

13、调用【Create】成员函数创建动态分割窗口,而静态分割窗口是调用【CreateStatic】成
员函数创建的。

14、在通常情况下,视图派生类的成员函数中通过调用【GetDocument】函数得到当前文档
对象的指针。

三.判断题
1、打开一个项目,只需打开对应的项目工作区文件。

【√】
2、窗口是Windows应用程序的基本操作单元,是应用程序与用户之间交互的接口环境,
也是系统管理应用程序的基本单位。

【√】3、给菜单项定义快捷键,只需在菜单项属性设置对话框的Caption文本框中说明即可。

【×】
4、状态栏的功能由CToolBar类实现。

【×】
5、DDB又称GDI位图,它依赖于具体设备,只能存在于内存中。

【√】
6、基于对话框的应用程序,也有文档类和视图类。

【×】
7、UpdateData(true) 函数完成成员变量的值传递给控件的操作。

【×】
8、调用DestroyWindow函数完成非模态对话框的销毁工作。

【√】
9、通过AppWizard建立的程序不能被立即执行。

【×】
10、所有的Windows应用程序都是消息驱动的。

【√】
11、COMMAND是更新命令用户接口消息。

【×】
12、删除CPen对象可调用CPen对象的DeleteObject函数。

【×】
13、CBrush是GDI对象。

【√】
14、在同一项目中,Visual C++在内部用来标识资源的资源符号不能重复。

【√】
15、Windows应用程序的入口也是main函数。

【×】
四.简答题
1、简述创建自定义工具栏的基本步骤。

参考答案:
(1)创建工具栏资源;
(2)构建一个CToolBar对象;
(3)调用CToolBar::Create或CreateEx函数创建工具栏窗口;
(4)调用CToolBar::LoadToolBar载入工具栏资源。

2、运行程序后单击鼠标右键弹出对话框提示“您按下了鼠标右键”对话框。

简要说明设计
步骤。

参考答案:
(1)新建基于单文档的应用程序;
(2)用类向导映射鼠标右键消息;
(3)在消息函数中添加代码:MessageBox(“您按下了鼠标右键”);
3、简述采用MFC方法编程时,显示一个DDB位图的步骤。

参考答案:
(1)声明一个CBitmap类的对象,使用LoadBitmap函数将位数装入内存。

(2分)(2)声明一个CDC类的对象,使用CreateCompatibleDC函数创建一个与显示设备环境兼容的内存设备环境。

(2分)
(3)使用CDC::SelectObject函数将位图对象选入设备环境中,并保存原来设备环境的指针。

(1分)
4、如何给组合框添加初始的列表项?
参考答案:
可以通过组合框控件属性对话框的Data选项卡给组合框添加初始的列表项。

五、程序设计题
1、在一个对话框中,设置三个编辑框,前两个用于输入被除数和除数,点击“除法”按钮
后,将前两个数的商输出到第三个编辑框中。

(1)要求单击“除法”按钮,将前两个编辑框中值相除结果显示在第三个编辑框中,并且使“除法”按钮变得不可用,请写出“除法”按钮的单击消息处理函数。

void CDivDlg::OnDiv()
{
// TODO: Add your control notification handler code here
}
(2)当第二个编辑框的内容发生变化,使“除法”按钮变得可用,并且判断该编辑框的值如果为0,则弹出对话框提示“除数不能为0!”,并且将光标放在该编辑框内。

void CDivDlg:: OnChangeNum2()
{
// TODO: Add your control notification handler code here
}
参考答案:
(1)
void CAddDlg::OnAddButton()
{
// TODO: Add your control notification handler code here
UpdateData();
m_result=m_num1/m_num2;
U pdateData(false);
G etDlgItem(IDC_DIV)->EnableWindow(false);
}
(2)
void CAddDlg:: OnChangeNum2()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_DIV)->EnableWindow(true);
UpdateData();
if(m_num2==0)
{
MessageBox("除数不能为0!");
GetDlgItem(IDC_NUM2)->SetFocus();
}
}
2、已经在视图类中映射了单击鼠标右键的消息,在该函数中完成绘图,要求以鼠标点击位
置为圆心、半径为100的绿色蓝边的圆。

CEx4_2View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CView::OnRButtonDown(nFlags, point);
}
参考答案
CEx4_2View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
CRect r(point.x-100,point.y-100,point.x+100,point.y+100);
CBrush brush(RGB(0,255,0)),*pOldBrush;
pOldBrush=dc.SelectObject(&brush);
CPen pen(PS_SOLID,1,RGB(0,0,255)),*pOldPen;
pOldPen=dc.SelectObject(&pen);
dc.Ellipse(r);
dc.SelectObject(pOldBrush);
dc.SelectObject(pOldPen);
CView::OnRButtonDown(nFlags, point);
}。

相关文档
最新文档