Windows系统编程练习题参考答案_第1页
Windows系统编程练习题参考答案_第2页
Windows系统编程练习题参考答案_第3页
Windows系统编程练习题参考答案_第4页
Windows系统编程练习题参考答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 操作系统概述一、选择题1A 2D 二、填空题1程序2数据3MS-DOS4用户模式5内核模式6Win327POSIX8OS/29执行体服务10内核11硬件抽象层三、简答题1答:(1)对应用程序的用户群进行分析,有些行业的用户至今还在使用Windows 98系统。如果要为他们开发应用程序,就要考虑使用Windows 98作为开发环境。而如果应用程序的用户是普通的家庭用户,则要考虑使用Windows XP作为开发环境。(2)在经典的C/S结构应用程序中,服务器程序通常运行在Windows Server操作系统上,而客户端程序通常运行在Windows XP、Windows 7等兼顾家用和商用的

2、操作系统上。(3)从Windows XP开始,所有现在版本Windows都基于Windows NT内核。因此,Windows系列产品具有很好的向下兼容性。也就是说在低版本Windows上开发的应用程序通常可以稳定的运行在高版本Windows,而反之则不一定。因此应尽可能选择满足客户需求的低版本Windows作为卡发环境。2答:Windows操作系统的用户模式由系统支持进程、服务进程、应用程序、环境子系统和Ntdll.dll组成。3答:硬件抽象层是物理硬件与计算机之间一层,设计这一层的目的是隐藏硬件中的不同。从而为操作系统内核提供一个一致的运行平台,这样Windows就可以在不同的母板上运行而不

3、需要修改内核。第2章 使用Visual Studio 2008开发Visual C+应用程序一、选择题1B 2A 3B 4C 二、填空题1Debug2 Release3CObjct4CWinThread5CDialog 三、简答题1答:断点是程序中的一行代码,程序在运行到断点时将中断,用户可以查看变量的值,单步调试程序,对程序的运行情况进行分析。2答:在MFC中,可以采用文档/视图结构将应用程序中数据的存储和显示分离开来。“文档”可以看作是一个应用程序的数据元素的集合;“视图”是数据的用户界面,可以通过窗口显示,也可以通过打印机打印出来。视图可以为用户提供与文档中数据进行交互的功能。一般情况下

4、,采用文档/视图结构的应用程序至少应由以下对象组成:l 应用程序,是CWinApp的派生对象,它充当整个应用程序的容器。l 框架窗口,是CFrameWnd派生对象。第3章 MFC用户界面设计一、选择题1C 2A 3B二、填空题1CListBox2InsertString3CDialog:DoModal()4CDialog5GetDlgItem()6CListBox7图标视图(Icon)、8小图标视图(Small Icon)9列表视图(List)10报表视图11UPDATE_COMMAND_UI三、操作题略第4章 GDI编程一、选择题1A 2C 3B 4C 5D6A 二、填空题1WM_PAINT

5、2COLORREF3TextOut()4CFontDialog三、简答题1答:GDI是位于应用程序与不同输出设备硬件之间的中间层,这种结构让程序员从直接处理不同硬件的工作中解放出来,把硬件间的差异交给了GDI处理,使Windows应用程序能够顺畅地在Windows支持的任何图形输出设备上运行。设备环境(Device Context)是GDI内部维护的一些数据结构。它与特定的输出设备相关联。一个设备环境对应输出设备上的一块区域。设备环境中包含一些图形属性,这些属性定义了GDI绘图函数的工作方式,例如输出文字或图形的前景和背景颜色、坐标等。2答:调用CreatePen()函数创建一个画笔对象。然后

6、使用CDC: SelectObject()函数为设备环境选择画笔对象,就可以使用画笔对象绘图了。第5章 文件系统编程一、选择题1C 2B 3D 4A 5B6C 二、填空题1GetLogicalDriveStrings()2GetDiskFreeSpaceEx()3SHBrowseForFolder()4CreateDirectory ()5CFileDialog6GetFileSize()三、简答题1答在Visual C+中可以通过标准输入输出库、Windows API和MFC类文件编程。标准输入输出库的可移植性较好,既可以在Windows下使用,也可以在Linux和Unix等操作系统下使用;

7、而Windows API则只能在Windows平图台下使用;MFC类只能用于支持MFC的应用程序。第6章 Windows注册表编程一、选择题1A 2B 3C 4B 二、填空题1键2值3regedit.exe4RegEnumKey()三、简答题1答HKEY_LOCAL_MACHINE、HKEY_CURRENT_CONFIG、HKEY_CLASSES_ROOT、HKEY_USERS、HKEY_CURRENT_USER第7章 进程编程一、选择题1A 2D 3B 二、填空题1被创建(created)2就绪(ready)3运行(running)4阻塞(blocked)5挂起(suspend)6终止(te

8、rminated)7CreateProcess()8EnumProcess()三、问答题1答:进程是正在运行的程序的实例。每个运行的Visual C+项目都对应一个进程,每个进程至少包含一个线程,它从main()函数开始执行,直到执行return语句返回,主线程结束,该进程也被从内存中卸载。主线程在运行过程中还可以创建新的线程,实现多线程的功能。计算机程序是由指令(代码)组成的,而进程则是这些指令的实际运行体。如果多次运行一个程序,则该程序也能对应多个进程。2答:进程由如下几个部分组成。l 与程序相关联的可执行代码的映像;l 内存空间(通常是虚拟内存中的一些区域),其中保存可执行代码、进程的特

9、定数据、用于记录活动例程和其他事件的调用栈、用于保存实时产生的中间计算结果的堆(heap)。l 分配给进程的资源的操作系统描述符(比如文件句柄)以及其他数据资源。l 安全属性,比如进程的所有者和权限。l 处理器的状态,比如寄存器的个内容、物理内存地址等。操作系统在叫做进程控制块(Process control block,PCB)的数据结构中保存活动进程的上述信息。3答:互斥体(mutex)是保证一个资源被互斥访问的机制。所谓互斥访问即指同一时间只能有一个线程(进程)访问资源。在进程通讯中通常使用互斥体防止运行一个应用程序的多个实例。调用CreateMutex()函数可以创建或打开一个互斥体对

10、象。四、练习题略第8章 多线程编程一、选择题1A 2D 二、填空题1CONTEXT2CreateThread()3WaitForMultipleObjects()4CRITICAL_SECTION5未受信(nonsignaled)6受信(signaled)三、简答题1答:线程是操作系统可以调度的最小执行单位,通常是将程序拆分成2个或多个并发运行的任务。一个线程就是一段顺序程序。但是线程不能独立运行,只能在程序中运行。不同的操作系统实现进程和线程的方法也不同,但大多数是在进程中包含线程,Windows就是这样。一个进程中可以存在多个线程,并且可以共享进程的资源(比如内存)。而不同的进程之间则是不

11、能共享资源的。2答:线程与进程的对比如下:l 进程通常可用独立运行,而线程则是进程的子集,只能在进程运行的基础上运行。l 进程拥有独立的私有内存空间,一个进程不能访问其他进程的内存空间;而一个进程中的线程则可以共享内存空间。l 进程之间只能通过系统提供的进程间通信的机制进行通信;而现场间的通信则简单得多。l 一个进程中的线程之间切换上下文比不同进程之间切换上下文要高效得多。第9章 Windows服务编程一、选择题1B 2D 3B 4B 二、填空题1Services.msc2CreateService()3StartService()4ATL三、简答题1答服务控制器(Service Contro

12、l Manager ,SCM)是Windows NT家族操作系统中的一个系统进程,它可以启动、停止Windows服务,并与Windows服务交流。服务控制器对应的可执行文件是%SystemRoot%services.exe,它以Windows控制台程序的形式运行。在系统启动时,由Wininit进程加载。SCM的主函数是SvcCtrlMain(),它将加载被配置为自动启动的服务列表。第11章 动态链接库编程一、选择题1A 2A 二、填空题1DllMain()2LoadLibrary()3GetProcAddress()三、简答题1答:导入库的扩展名是*.lib,它与DLL文件同时生成,它们的名字

13、相同,只有扩展名不同。导入库中包含一个导入地址表(IAT,import address table)。DLL中的每个函数都在导入地址表有一个记录。如果在项目中引用了DLL文件,则在生成和链接可执行文件时,链接到动态链接库通常被处理为链接到导入库。这样,可执行文件就可以通过导入库中的导入地址表知道如何调用DLL中的函数。导入库就像一本书的目录和索引,而DLL则是书的正文。在生成可执行文件时,可执行文件中已经包含了导入库中的导入地址表。在运行时,还必须找到DLL文件。可执行文件会根据导入地址表在DLL文件中调用函数。第11章 Windows钩子编程一、选择题1A 2B 二、填空题1WH_KEYBOARD2SetWindowsHookEx3UnhookWindowsHookEx()三、简答题1答:钩子是Windows中可以拦截事件的一种机制。可以指定一个函数作为特定类型的被拦截事件的钩子过程。钩子过程可以对拦截的每个事件进行处理。2答:nCode,是钩子过程用于决定采取什么动作的钩子编码,它取决于钩子的类型。不同类型的钩子都有相对应的一组钩子编码。第12章 WMI编程一、选择题1A 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论