1、基于C的Windows 应用程序设计(MCP 70-316)考试模拟题1. 你使用Visual Studio .NET来创建名为Request的组件。这个组件包括一个名为AcceptMyRequest的方法,用来处理新用户对服务的请求。AcceptMyRequest 调用一个名为Validate的私有函数。你必须确保 Validate遇到的任何异常传递到 Request的父窗口,由父窗口来响应处理异常。你想用最少的代码来完成这个目标,你该怎么做?A在AcceptMyRequest中使用下列代码段:this.Validate();B在AcceptMyRequest 中使用下列代码段:try th
2、is.Validate();catch(Exception ex) throw ex;C在AcceptMyRequest 中使用下列代码段:try this.Validate();catch(Exception ex) throw new Exception(“Exception in AcceptMyRequest”, ex);D使用下列代码段来创建一个名为 RequestException的自定义异常类:public class RequestException:ApplicationException public RequestException():base() public Req
3、uestException(string message):base(message) public RequestException(string message,Exception inner):base(message, inner) 另外,在AcceptMyRequest中使用下列代码段:try this.Validate();catch(Exception ex) throw new RequestException(“Exception in AcceptMyRequest”, ex);正确答案:A2. 你是一家公司的软件开发者,你要开发一个Windows 窗口来为用户提供在线帮助
4、。你希望用户按F1键后就可以获得帮助功能。获得焦点的文本框控件对应的帮助文本将会在弹出窗口中显示。为了实现这个功能,你需要调用一个名为HelpProvider 的方法来控制和传递文本框和帮助文本,你该调用哪个方法?ASetShowHelpBSetHelpStringCSetHelpKeywordDToString正确答案:B3. 你开发了一个包含Contact类的应用,Contact类定义如下:public class Contactprivate string name;public event EventHandler ContactSaved;public string Name get
5、 return name;set name = value;public void Save () / Insert Save code./ Now raise the event.OnSave();public virtual void OnSave() / Raise the event:if (ContactSaved != null) ContactSaved(this, null);你创建了个名为MyForm的窗体,这个窗体必须包括处理由Contact对象引发的ContactSaved事件的代码。Contact对象将会被名为CreateContact的程序初始化,你该采用哪个代码段?
6、Aprivate void HandleContactSaved() / Insert event handling code.private void CreateContact() Contact oContact = new Contact();oContact.ContactSaved +=new EventHandler(HandleContactSaved);oContact.Name = “CompanyA”;oContact.Save();Bprivate void HandleContactSaved(object sender, EventArgs e) / Insert
7、event handling code.private void CreateContact() Contact oContact = new Contact();oContact.Name = “CompanyA”;oContact.Save();Cprivate void HandleContactSaved(object sender, EventArgs e) / Insert event handling code.private void CreateContact() Contact oContact = new Contact();oContact.ContactSaved +
8、=new EventHandler (HandleContactSaved);oContact.Name = “CompanyA”;oContact.Save();Dprivate void HandleContactSaved(Object sender, EventArgs e) / Insert event-handling code.private void CreateContact() Contact oContact = new Contact();new EventHandler(HandleContactSaved);oContact.Name = “CompanyA”;oC
9、ontact.Save();正确答案:C4. 你负责维护公司以前同事写的一个应用系统。此应用系统对局域网中的日志文件进行读写。最初的版本为了方便维护,写了以下的调试代码:try Debug.WriteLine(“Inside Try”);throw(new IOException();catch (IOException e) Debug.WriteLine (“IOException Caught”);catch (Exception e) Debug.WriteLine(“Exception Caught”);finally Debug.WriteLine (“Inside Finally
10、”);Debug.WriteLine (“After End Try”);这段代码会产生什么输出?AInside TryException CaughtIOException CaughtInside FinallyAfter End TryBInside TryException CaughtInside FinallyAfter End TryCInside TryIOException CaughtInside FinallyAfter End TryDInside TryIOException CaughtInside Finally正确答案:C5. 你使用Visual Studio
11、.NET来创建一个控件,此控件将被你的应用程序中的多个窗体使用。这是一个客户标签(Label )控件,用来检索和显示你公司当前的股票价格。控件将在很多具有不同背景的窗体中显示。你希望控件尽可能多的显示潜在的窗体,你要确保股票价格是可见的,而这个矩形控件本身并不显示出来。你需要在控件的Load事件中添加代码来完成这些需求,你该采用哪两段代码?(选择两个正确的答案)Athis.BackColor = Color.Transparent;Bthis.ForeColor = Color.Transparent;Cthis.BackImage = null;Dthis.SetStyle(ControlS
12、tyles.UserPaint, false);Ethis.SetStyle(ControlStyles.SupportsTransparentBackColor, true);正确答案:A, E6. 你使用Visual Studio .NET创建了一个基于Windows的应用,来跟踪一家公司的销售情况。此应用的main对象名为CompanyA。通过下面的定义来创建CompanyA类:public class CompanyA你写代码来设置CompanyA类的属性,一旦CompanyA类被实例化后,该代码将被执行。现在你需要创建一个程序来安置你的代码,你该采用哪段代码?Apublic Comp
13、anyA ()Bpublic void CompanyA ()Cpublic bool CompanyA ()Dpublic New()Epublic CompanyANew()Fpublic CompanyA CompanyA ()正确答案:A7. 你用Visual Studio .NET开发了一个基于Windows的应用,此应用包括一个名为FormA的窗体和一个名为Contact的类。FormA包括一个名为cmdCreateContact的按钮。当用户点击了这个按钮,你的应用将创建一个Contact的实例。你想写出最有效的代码,你该采用哪个代码段?AContact contact = ne
14、w Object();BContact contact = new Contact;CObject contact = new Contact;DContact contact = new Object;正确答案:B8. 你创建了一个Visual Studio .NET的应用程序,包括一个名为MyUpdate的函数。为了调试,只要MyUpdate被执行,你就要在日志文件中添加一个条目。日志文件名为DebugLog.txt。为了易读,你必须保证DebugLog.txt中的每个条目显示在单独的行中,你该采用哪个代码段?AStreamWriter oWriter =new StreamWriter(
15、File.Open(”C:DebugLog.txt”, FileMode.Append);TextWriterTraceListener oListener =new TextWriterTraceListener(oWriter);Debug.Listeners.Add(oListener);Debug.WriteLine(“MyUpdate “ + DateTime.Now.ToString);BStreamWriter oWriter =new StreamWriter(File.Open(“C:DebugLog.txt”, FileMode.Append);TextWriterTrac
16、eListener oListener =new TextWriterTraceListener(oWriter);Debug.Listeners.Add(oListener);Debug.Write(“MyUpdate “ + DateTime.Now.ToString);CTextWriterTraceListener oListener =new TextWriterTraceListener();oListener.Name = “C:DebugLog.txt”;ebug.Listeners.Add(oListener);Debug.WriteLine(“MyUpdate “ + Da
17、teTime.Now.ToString);DTextWriterTraceListener oListener =new TextWriterTraceListener();oListener.Name = “C:DebugLog.txt”;ebug.Listeners.Add(oListener);Debug.Write(“My “ + DateTime.Now.ToString);正确答案:A9. 你用Visual .NET 开发了一个基于Windows 的,工程名为 Mgmt的应用。你创建了一个应用配置文件,连同Mgmt一起安装在客户机上。当 Mgmt被执行时,你必须保证配置文件的设置被
18、应用。你该怎么做?A命名配置文件为Mgmt.exe.confing并拷贝到WindowsSystem32文件夹中B命名配置文件为Mgmt.config并拷贝到WindowsSystem32文件夹中C命名配置文件为Mgmt.exe.confing并拷贝到此应用程序文件夹中D. 命名配置文件为Mgmt.config并拷贝到此应用程序文件夹中E. 命名配置文件为Mgmt.exe.confing 并拷贝到全局程序集缓存中正确答案:C10. 你使用Visual Studio .NET开发了一个基于Windows的应用程序。此应用程序将实现一个基于角色的授权方案,这个方案是基于SQL Server 数据库
19、用户名的。用户将会在名为userName的文本框和登录屏幕上输入他们的用户名。你必须确保所有的用户都默认指派为管理员和MIKE角色。你该采用哪个代码段?AWindowsIdentity identity =new WindowsIdentity.GetCurrent();string RoleArray =“Supervisor”, “MIKE”;GenericPrincipal principal =new GenericPrincipal(identity, RoleArray);BGenericIdentity identity =new GenericIdentity(userName
20、.Text);string RoleArray =“Supervisor”, “MIKE”;WindowsPrincipal principal =new WindowsPrincipal(identity);CGenericIdentity identity =new GenericIdentity(userName.Text);string RoleArray =“Supervisor”, “MIKE”;GenericPrincipal principal =new GenericPrincipal(identity, RoleArray);DWindowsIdentity identit
21、y =new WindowsIdentity.GetAnonymous();string RoleArray =“Supervisor”, “MIKE”;WindowsPrincipal principal =new GenericPrincipal(identity, RoleArray);正确答案:C11. 作为一家公司的程序员,你用Visual Studio .NET开发了几个应用,这些应用将会被部署在Internet上。你必须确保用户能够检验你的软件的真实性。你该采取那些操作?(选择所有可行答案)A用Signcode.exe签署你的可移植的执行程序B用Makecert.exe 产生一个
22、X.509证书C从认证授权中心购买一个X.509证书D从认证授权中心购买一个软件发行证书E使用Cert2spc.exe 把你的证书转换成软件发行证书正确答案:A, D12. 你创建了一个Visual Studio .NET安装工程来发布一个应用程序。你添加了一个名为MyDB.SQL的的SQL脚本。在安装过程进行时,你必须确保SQL脚本被执行。你该怎样做?A给你的安装工程添加一个定制的行为,选择 MyDB.SQL 作为源路径B. 给你的安装工程添加一个批处理文件来执行MyDB.SQL,给安装工程添加一个启动环境,设置环境属性为批处理文件C创建一个新的Visual Studio .NET 工程来执
23、行MyDB.SQL。这个新的工程包含在安装工程中。添加一个定制的行为,在安装中启动新的工程D给你的安装工程添加一个启动环境,设置环境属性为MyDB.SQL脚本正确答案:A13. 你开发了一个基于Windows 的应用程序,名为MySoftware,该程序使用SQL Server数据库来存储和检索数据。你想创建一个中央错误处理程序,来处理在MySoftware中出现的所有数据错误,你必须保证应用程序能够显示从数据库中获得的所有错误信息。你该怎么写错误处理程序?Apublic void DisplaySqlErrors(SqlException myEx) MessageBox.Show(“Err
24、or: “ + myEx.ToString();Bpublic void DisplaySqlErrors(SqlException myEx) MessageBox.Show(“Error: “ + myEx.Message);Cpublic void DisplaySqlErrors(SqlException myEx) foreach(SqlError x in myEx.Errors) MessageBox.Show(“Error: “ + x.ToString();Dpublic void DisplaySqlErrors(SqlException myEx) foreach(Exc
25、eption x in myEx.Errors) MessageBox.Show(“Error: “ + x.ToString();正确答案:C14. 你开发了一个基于Windows 的应用程序来管理商业合同,此应用程序从中心数据库MyDB中检索出一个合同列表。合同列表由一个名为contactDataSet的DataSet 对象进行本地管理。为了设置检索准则,你的用户界面必须允许用户在文本框控件中键入城市名字,和这个名字匹配的合同列表将会在DataGrid控件中显示。你该使用哪个代码段?ADataView contactDataSet = new DataView();dv.Table = c
26、ontactDataSet.Tables0;dv.RowFilter = TextBox1.Text;DataGrid1.DataSource = dv;BDataView dv = new DataView();dv.Table = contactDataSet.Tables0;dv.RowFilter =String.Format(“City = 0”, TextBox1.Text);DataGrid1.DataSource = dv;CDataView contactDataSet = new DataView();dv.Table = contactDataSet.Tables0;dv
27、.Sort = TextBox1.Text;DataGrid1.DataSource = dv;DDataView dv = new DataView();dv.Table = contactDataSet.Tables0;dv.Sort =String.Format(“City = 0”, TextBox1.Text);DataGrid1.DataSource = dv;正确答案:B15. 你计划使用Visual Studio. NET来创建一个名为BusinessRules的类,此类将被你公司的所有应用程序使用。BusinessRules定义了业务规则并基于这些规则来执行计算。你公司的其他
28、开发员不能用他们自己的定义,来覆盖定义在BusinessRules中的函数和子程序。你该采取哪两个操作来创建BusinessRules?(选择两个正确答案)A创建Windows控件库工程B创建类库工程C创建一个Windows 服务工程D使用以下的代码段来定义 BusinessRules:protected class BusinessRulesE使用以下的代码段来定义BusinessRules:public new class BusinessRulesF使用以下的代码段来定义BusinessRules:public sealed class BusinessRulesG使用以下的代码段来定义
29、 BusinessRules:public abstract class BusinessRules正确答案:B, F16. 你想开发一个使用SQL Server 数据库的客户信息应用系统MyCustom,MyCustom将被很多用户频繁使用。当访问数据库并检索大量的数据时,你的应用程序代码必须尽可能具有最快的性能。你必须用最小数量的代码来实现这个目标,你该如何设计MyCustom?A使用System.Data.OleDb命名空间中的类B使用System.Data.SqlClient 命名空间中的类C使用远程访问来连接SQL Server 计算机D使用互操作性来包含已有的基于 COM的数据访问
30、组件正确答案:B17. 你开发了一个基于Windows 的应用程序来和SQL Server数据库连接。当用户执行数据库中的存储过程时有时会出错。你需要在你的应用程序中添加错误处理代码,来捕获存储过程产生错误的详细信息。你该使用哪个代码段?Atry MyConnection.Open();catch (Exception e) / Insert error-handling code.Btry MyConnection.Open();catch (SqlException e) / Insert error-handling code.Ctry MyConnection.Open();catch
31、 (DataException e) / Insert error-handling code.Dtry MyConnection.Open();catch (DBConcurrencyException e) / Insert error-handling code.正确答案:B18. 你使用一个OleDbCommand对象来查询名为SalesDate的外部Oracle数据库。此查询使用一个Average方法来返回 inventory表中产品的平均价格值。为了能在你的ADO.NET代码中执行这个查询,你需要使用OleDbCommand对象的哪个方法?AExecuteNonQueryBExec
32、uteScalarCToStringDExecuteReader正确答案:B19. 你使用Visual Studio .NET和SQL Server开发了一个基于Windows 的名为Security 的应用程序。这个应用程序在运行时将会完成大量Assert, Deny, 和PermitOnly 安全性操作。你必须保证此应用能以最快的速度运行。你该怎么做?A执行声明安全检查B执行命令安全检查C使用SQL Server安全来执行所有安全检查D执行一个自定义的安全类来检索 SQL Server 数据库的安全信息正确答案:A20. 你使用Visual Studio .NET来创建一个程序集,它将被其
33、他Visual Studio .NET应用程序使用。如果程序集没有提出最小的权限请求,这个程序集不具有任何使用权限。你该采用哪个代码段?ABCD正确答案:D21. 你的开发小组正在为一家公司创建一个新的基于Windows的应用程序。此应用程序包括一个用户接口和几个XML Web 服务。你开发了所有的XML Web 服务并完成了单元测试。现在你准备写用户接口代码。因为你的部分服务器正在更新,提供抵押贷款利率的XML Web服务当前处于脱机状态。然而,你能够访问它的描述文件。你必须立即开始为XML Web服务写代码,你该怎么做?A使用Disco.exe为XML Web 服务产生代理类B使用Wsdl
34、.exe为XML Web 服务产生代理类C获得一个XML Web服务程序集的拷贝并在本地计算机上注册它D为你的Visual Studio .NET 工程添加一个XML Web服务的描述文件正确答案:B22. 你开发了一个基于Windows 的应用程序来跟踪电话通话。此应用程序使用SQL Server数据库进行数据的存储和检索。你使用SQL Client managed provider来连接和对数据库发送指令。你使用集成安全来鉴别用户,你的服务器名为Server30,数据库名为CustomerService。你需要设置 SQL Connection对象的连接串属性。你该采用哪段代码?A“Pro
35、vider=SQLOLEDB.1;Data Source= Server30;Initial Catalog=CustomerService“B“Provider=MSDASQL;Data Source= Server30;Initial Catalog=CustomerService“C“Data Source= Server30;Initial Catalog=Master“D“Data Source= Server30;Initial Catalog=CustomerService“正确答案:D23. 你用Visual Studio .NET开发了一个和SQL Server数据库交互的应
36、用程序。你创建了一个名为CustOrderDetails的SQL Server存储过程并把它保存在数据库中。你们团队中其他开发员经常调试其他存储过程,你需要确保你的存储过程被正确执行,你要在VisualStudio .NET的调试器中单步调试CustOrderDetails,你该怎么做?A使用Visual Studio .NET Server 浏览器来运行CustOrderDetailsB使用Visual Studio .NET Server 浏览器以“Step into”方式单步执行 CustOrderDetailsC在命令窗口, 使用Ctrl+E来运行CustOrderDetailsD把C
37、ustOrderDetails从Visual Studio .NET Server浏览窗口移到Windows窗体上,在Debug模式下运行应用程序并以“Step through” 方式单步调试CustOrderDetails.正确答案:B24. 你开发了一个基于Windows 的应用程序,包括一个名为Contact的窗体。一旦Contact实例化后,你就需要写代码来初始化所有Contact中的类级别变量。你将会把你的代码放到Contact类中的公有过程中。你会使用哪个公有过程?ACreateBInitializeCLoadDNew正确答案:C25. 你使用Visual Studio .NET来
38、创建几个基于Windows的应用程序,这些程序都使用一个名为Customers的公共类库集。你在公司局域网中的客户机上安装应用程序。随后,你修改了Customers,任何原来使用 1.0.0.0版本的应用程序现在都要升级到2.0.0.0.版本。你该怎么做?A在你的客户机上修改机器配置文件B为客户修改应用程序配置文件C修改包含客户参考说明的Publisher Policy文件D修改客户的说明补丁正确答案:C26. 你开发了一个基于Windows 的应用程序,使用几个函数来计算给定的库存数量。这个数量存储在一个名为Quantity 的变量中。当你测试你的应用程序时,你发现Quantity的值有时成
39、为负数。为了便于调试,你希望你的应用程序在这种情况下产生一个错误信息。你还希望能够浏览调用堆栈窗口,来帮助找到导致误算的函数调用。计算Quantity后,你需要插入额外的代码。你该采用下列哪个代码段?ATrace.Assert(Quantity = 0, “Inventory cannot be less than zero.”);BTrace.Assert(Quantity = 0, “Inventory cannot be less than zero.”);DTrace.WriteLineIf(Quantity 0, “Inventory cannot be less than zero
40、.”);正确答案:A27. 你使用Visual Studio .NET 开发了一个基于Windows 的应用程序App。App 使用对象SqlConnection 来进行数据库访问。你在一台内存和硬盘空间均受限制的计算机上运行App。当代码完成对SqlConnection 对象的使用后,你必须保证连接被关闭,且任何被该对象使用的资源必须立即释放。你该做什么?A调用SqlConnection对象的Finalize 方法B调用SqlConnection 对象的Dispose 方法C设置SqlConnection对象为NothingD设置SqlConnection对象为 “”正确答案:B28. 你使用Visual Studio .NET 开发了一个名为MyComponent 的组件。你打算开发一些客户端应用程序来使用MyComponent。你需要为每个应用程序配置 MyComponent。你将创建一个安装包,使其包含于每一个应用程序中。你该创建哪种类型的project?