《c#.net程序的设计案例教程》课后习题参考答案_第1页
《c#.net程序的设计案例教程》课后习题参考答案_第2页
《c#.net程序的设计案例教程》课后习题参考答案_第3页
《c#.net程序的设计案例教程》课后习题参考答案_第4页
《c#.net程序的设计案例教程》课后习题参考答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

..《C#.NET程序设计案例教程》课后习题参考答案习题1一、选择题1.在.NET中不能使用的语言是〔B。A.C# B.PascalC.VBD.VC++2.<A>可以帮助用户可视化的程序设计界面。A.工具箱 B.类视图C.解决方案资源管理器D.动态帮助3.导入命名空间使用关键字是〔B。A.MainB.usingC.SystemD.Console二、填空题1.在C#程序中,程序的执行总是从〔Main方法开始的。2.在C#程序中,单行注释用〔//引导。3.在C#程序中,注释分为单行注释和〔块注释。4.关键字class的含义是〔类。5.要添加控件到窗体中,应该使用〔Windows窗体设计器设计窗口。6.要修改项目的属性,必须在〔解决方案资源管理器设计窗口中选择项目。7.要修改对象的属性,应该使用〔属性设计窗口。三、问答题1.简述VisualStudio2010的安装过程。答:获取VisualStudio2010的安装文件启动VisualStudio2010的安装程序单击第一个安装选项"安装VisualStudio2010",弹出图1-2所示的"VisualStudio2010安装向导"界面。单击"下一步"按钮,弹出图1-3所示的"VisualStudio2010安装程序起始页"。选中"我已阅读并接受许可条款"按钮,单击"下一步"按钮,弹出图1-4所示的"VisualStudio2010安装程序选项页",用户可以选择要安装的功能及安装路径,一般使用默认设置即可。选择好产品安装路径后,单击"安装"按钮,进入图1-5所示的"VisualStudio2010安装程序安装页"界面,显示正在安装的组件。安装完毕后,单击"下一步"按钮,弹出图1-6所示的"VisualStudio2010安装程序完成页"界面。单击"安装文档"按钮,可以安装VisualStudio的本地帮助文档MSDN,弹出如图1-7所示的"HelpLibrary管理器—库位置"界面。设置库位置后,单击"确定"按钮,弹出如图1-8所示的"HelpLibrary管理器—安装内容"界面。10、根据需要点击需要安装的内容后面的"添加"按钮后,单击"更新"按钮,开始"更新本地库",更新完成后点击"完成"按钮,弹出如图1-9所示的"HelpLibrary管理器安装完成页"界面。11、单击"退出"按钮完成帮助文档库的安装,弹出如图1-10所示的"VisualStudio2010安装程序主页面"。12、单击"退出"按钮,完成VisualStudio开发环境和帮助文档库的安装。2.VisualStudio2010开发环境的主要组成部分有哪些?答:VisualStudio2010开发环境的主窗口由标题栏、菜单栏、标准工具栏、代码编辑器/Windows窗体设计器以及停靠或自动隐藏在左侧、右侧、底部的工具箱、解决方案资源管理器、属性窗口等共同组成。习题2一、选择题1、以下变量命名正确的是〔C。A.7strB.intC._stu_idD.integer2.表达式"100"+"88"=<D>A.88100B.188C.10088D.100883、Math.Sqrt<9>的结果是〔BA.9B.3C.09D.9.04、把字符串strA中的字符’f’,都替换成’F’,正确的代码是<C>A.string.replace<‘f’,’F’place<‘f’,’F’>;C.strA.Replace<‘f’,’F’>;D.strA.Replace<‘F’,’f’>;5、下列哪个转换时属于隐式转换的〔AA.inti=’f’;B.intj=20FC.inta=100LD.charc="H";二、计算题1.表达式100%3的结果是____________12.表达式a=5*<b=3>的值是____________153.表达式5>8||8>5的值是____________true4.表达式18.9%2.4的结果是____________2.15.表达式‘a’*’6’的结果是____________5238三、编程题1.开发一个windows窗体应用程序,实现以下功能:在一段给定的字符串中,查找出指定字母的位置。比如在字符串中"abcdefg",查找出字符’c’的位置是2。编程思路:利用字符串对象的的IndexOf方法2.开发一个windows窗体应用程序,实现以下功能:输入2个数,计算并显示出这2个数的最大值。编程思路:利用Math类的max方法。3.开发一个windows窗体应用程序,实现以下功能:输入以摄氏温度,输出对应的华氏温度值。摄氏温度和华氏温度的转化公式如下:5〔tºF-50=9<tºC-10º>,tºF——华氏温度,tºC——摄氏温度。编程思路:表达式计算4.开发一个windows窗体应用程序,实现以下功能:输入一个字符,检查判断输入的是数字还是字母。如果输入的是字母,则显示"您输入的是字母X,其ASCII码是XX";如果输入的是数字,则显示"您输入的是数字X,,其ASCII码是XX"。如果两者都不是则显示"输入的是既非数字也非字母!"编程思路:利用if..else语句习题3一、选择题1.假设有三个文本框textBox1、textBox2和textBox3,其中textBox3.Text值为空,textBox1.Text值为8,textBox2.Text值为10,则执行语句:"textBox3.Text=textBox1.Text+textBox2.Text;"后,textBox3.Text的值为:〔C。A.108 B.18C.810D.出错2.分析以下程序段的执行结束后,i和j的值分别为:<B>inti=1,j=1;for<;j<10;j++>{if<j>5>break;if<j%2!=0>{j+=3;continue;}j-=1;}A.2,9 B.1,9C.1,8D.1,103.将命题"z大于x,y中间的一个"用C#表达式表示为:〔B。A.z>xandz>yB.z>xorz>yC.z>x&&z>yD.z>x||z>y4.以下程序段执行后,Label1的显示结果为:〔Ainti,sum;sum=0;for<i=2;i<=10;i=i+1>{if<i%2!=0&&i%3==0>sum=sum+i;}Label1.Text=sum.ToString<>;A.12B.30C.24D.185.有以下代码段:inti=0,s=0;for<;;>{ if<i==3||i==5>continue;if<i==6>break;i=i+1;s=s+i;}循环完成后,s的值是〔DA.10B.7C.21D.程序进入死循环6.有以下代码段:intk=5,n=0;while<k>0>{ switch<k> { case1: n+=k;break; case2: break; case3: n+=k;break; default: break; } k=k-1;}则执行代码段后,n的值是〔BA.0B.4C.6D.7二、填空题1.条件"金额大于等于500,小于1000"的表达式为〔金额>=500&&金额<1000。2.在C#程序中,要设置Label控件的大小不随着内容而改变,应修改〔AutoSize属性的值为False。3.按键盘上的〔F7键可以进入代码编辑窗口。4.C#中的4种循环结构是〔for、〔while、〔do…while和〔foreach。5.专门用于集合元素访问的循环语句是〔foreach。6.VisualStudio提供的〔try方法就是专门用于人为引发异常的。。7.〔show方法用于显示消息框。8.关闭应用程序的语句是〔this.Close<>;。三、问答题1.简述if语句嵌套时,if与else的配对规则。答:else总是与其前面最近且尚未配对的在同一复合语句中的if2.多分支条件语句中的控制表达式可以是哪几种数据类型?答:表达式的结果必须是整数、字符或枚举量值3.多分支条件语句中,case子句中在什么情况下可以不使用break语句?答:break语句是用来执行完一个case分支后,然后跳出switch语句;而在一些特殊的情况下,比如多个不同的case值要执行一组相同的操作的时候,这时可以省略break语句。4.while语句和do…while语句有何区别?答:do-while循环就是先执行再判断,while循环是先判断后执行。5.异常处理有哪几种常用的语法格式?答:try语句有以下三种可能的形式:〔1try…catch语句:一个try块后接一个或多个catch块。〔2try…finally语句:一个try块后接一个finally块。〔3try…catch…finally:一个try块后接一个或多个catch块,后面再跟一个finally块。习题4一、选择题1.在关键字public后面定义的成员为类的〔B成员。A.私有B.公有C.保护 D.任何2.如果不带修饰符,C#中类成员被默认声明成<C>。A.publicB.protectedC.private D.static2.可以在一个类中定义多个同名的方法,但只有使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法,这是<D>。A.虚方法 B.运算符重载C.抽象方法 D.方法重载3.关于构造函数,下列说法错误的是〔B。A.C#中对对象进行初始化的方法叫构造函数。B.构造函数可不与类同名,可以用户自己命名。C.如果一个类没有声明任何实例构造函数,则系统会自动提供一个默认构造函数。D.构造函数在类的声明中,可以有函数名相同,但参数个数不同的多种形式。4.下列关于C#中继承的描述,错误的是〔A。A.一个子类可以有多个父类。B.通过继承可以实现代码重用。C.派生类还可以添加新的特征或者是修改已有的特征以满足特定的要求。D.继承是指基于已有类创建新类的语言能力。5.可以在一个类中定义多个同名的方法,但只有使用的参数类型或者参数个数不同,编译器便知道在何种情况下应该调用哪个方法,这是<D>。A.虚方法 B.运算符重载C.抽象方法 D.方法重载6.关于构造函数,下列说法错误的是〔D。A.默认构造函数定义了对象的默认状态。B.非默认构造函数将根据传入的参数来初始化对象的数据。C.如果没有为类定义默认构造函数,编译器将自动为类创建一个默认构造函数。D.非默认构造函数应当总是包含对象的默认状态。7.接口是一种引用类型,在接口中可以声明〔A,但不可以声明公有的域或私有的成员变量。A.方法、属性、索引器和事件B.方法、属性信息、属性C.索引器和字段D.事件和字段8.声明一个委托publicdelegateintmyCallBack<intx>;则用该委托产生的回调方法的原型应该是〔B。A.voidmyCallBack<intx>B.intreceive<intnum>C.stringreceive<intx>D.不确定的二、填空题1.面向对象程序设计具有〔封装、〔继承和〔多态等三个基本特征。2.〔字段是类定义中的数据,也叫类定义中的变量。3.〔方法实质上就是函数,通常用于对字段进行计算和操作,即对类中的数据进行操作。4.方法参数传递按性质可以分为〔按值传递和〔按引用传递两种。5.构造函数是一种特殊的方法成员,其主要作用是在创建对象时〔初始化新对象。6.声明静态成员需要使用〔static修饰符。7.在进行类定义时不需要编写代码就可以包含另一个类定义的数据成员、方法成员等的特征,称为类的〔继承。8.委托是一种引用数据类型,派生于.NETFramework中的〔Delegate类。三、问答题1.简述类与对象的关系。答:类是对象的抽象描述和概括,例如:车是一个类,自行车、汽车、火车也是类,但是自行车、汽车、火车都属于车这个类的子类,因为它们有共同的特点就是都是交通工具,都有轮子,都可以运输。而汽车有颜色、车轮、车门、发动机等特征,这是和自行车、火车所不同的地方,是汽车类自己的属性,也是所有汽车共同的属性,所以汽车也是一个类,而具体到某一辆汽车,它有具体的颜色、车轮、车门、发动机等属性值,因此某辆汽车就是一个对象。类是抽象的概念,对象是具体的概念,在软件设计中很容易区分类和对象。假设软件中的按钮是一个类,按钮类具有长度、宽度、位置、颜色等属性,具有单击、双击、移动等行为,当所设计的一个具体的按钮具有特定的长度、宽度、位置、颜色等属性值,具有单击、双击、移动时所发生的具体行为,那么这时就构成了一个按钮对象。2.属性是类的数据成员吗?什么是方法?C#允许在类定义外部声明方法吗?答:属性是类的数据成员。方法用来完成类或对象的行为,在面向对象编程语言中,类或对象是通过方法来与外界交互的,所以方法是类与外界交互的基本方式。方法通常是包含解决某一特定问题的语句块,方法必须放在类定义中,方法同样遵循先声明后使用的原则。C#不允许在类定义外部声明方法3.在方法的调用中,基本数据类型作为参数默认是按什么方式传递?类对象作为参数默认是按什么方式传递的?类对象可以按值方式传递吗?基本数据类型参数按引用传递时,应该怎么做?参数按值传递与按引用传递的区别是什么?方法的参数传递按照性质可分为按值传递与按引用传递。参数按值的方式传递是指当把实参传递给形参时,是把实参的值复制给形参,实参和形参使用的是内存中两个不同的值,所以这种参数传递方式的特点是形参的值发生改变时,不会影响到实参的值,从而保证了实参数据的安全。基本类型〔包括string与object的参数在传递时默认为按值传递。一个方法只能返回一个值,但实际应用中常常需要方法能够修改或返回多个值,这时只靠return语句显然是无能为力的。如果需要方法返回多个值,就可以使用按引用传递参数的方式实现这种功能。按引用传递是指实参传递给形参时,不是将实参的值复制给形参,而是将实参的引用传递给形参,此时,实参与形参使用的是同一个内存地址中的值。这种参数传递方式的特点是形参的值发生改变时,同时也改变实参的值。基本类型参数按引用传递时,形参实际上是实参的别名。基本类型参数按引用传递时,实参与形参前均须使用关键字ref。4.重载方法的基本要求是什么?C#中的静态方法应该怎样调用?方法重载有两点要求:〔1重载的方法名称必须相同;〔2重载方法的形参个数或类型必须不同,否则将出现"已经定义了一个具有相同类型参数的方法成员"的编译错误。静态方法属于类本身,只能使用类调用,不能使用对象调用。5.什么是类的继承?怎么定义派生类?继承就是在已有类的基础上建立新的类,新的类既具备原有类的功能和特点,又可以将这些功能在原有基础上进行拓展。由于新的类是由原来的类发展而来,所以又被称为原有类的派生类〔子类,而原有类就是新类的基类〔父类。定义一个继承于基类的派生类的语法格式如下:[访问修饰符]class派生类名称:基类名称{ //派生类的类体}其中,访问修饰符可以是public、protected和private,通常都使用public以保证类的开放性,并且public可以省略,因为类定义的访问控制默认是public。":基类名称"表示所继承的类。定义的派生类默认继承了基类的所有成员,包括变量和方法〔构造函数和析构函数除外,基类中用private访问修饰符限制的成员不能被继承。6.什么是多态性?多态性有何作用?多态性可以简单地概括为"一个接口,多种方法",它在程序运行的过程中才决定调用的方法,多态性是面向对象编程的核心概念。多态使得子类〔派生类的实例可以直接赋予基类的对象〔不需要进行强制类型转换,然后直接就可以通过这个对象调用子类〔派生类的方法。多态则是为了实现另一个目的——接口重用,因为接口是最耗费时间的资源,实质上设计一个接口要比设计一堆类要显得更有效率。习题5一、选择题1.在C#.Net中,用来创建主菜单的对象是<C>。A.MenuB.MenuItemC.MenuStripD.Item2.下面所列举的应用程序中,不是多文档应用程序的是〔DA.WordB.ExcelC.PowerPointD.记事本3.加载窗体时触发的事件是<B>。A.ClickB.LoadC.GotFoucsD.DoubleClick4..建立访问键时,需在菜单标题的字母前添加的符号是<D>。A.!B.#C.$D.&5..使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是〔B.A.Exists<>B.GetFiles<>C.GetDirectories<>D.CreateDirectory<>二、填空题1.在C#Net中,窗体父子关系通过〔MDI窗体窗口来创建。2.根据Windows窗体的显示状态,可以分为〔模式窗体和〔非模式窗体。3.将文本框设置为只读,可以通过修改〔ReadOnly属性实现。4.〔MenuStrip控件又称为菜单控件,主要用来设计程序的菜单栏。5.计时器控件每隔一定的时间间隔引发一次〔Tick事件。6.ProgressBar控件又称为〔进度条控件。7.将文本框控件设置为密码文本框,可以通过修改〔PassWordChar属性实现。三、问答题1.Windows应用程序的菜单通常由哪些部分组成?答:MenuStrip控件,又称为菜单控件,它主要用来设计程序的菜单栏,C#中的MenuStrip控件支持多文档界面、菜单合并、工具提示和溢出等功能,开发人员可以通过添加访问键、快捷键、选中标记、图像和分隔条来增强菜单的可用性和可读性。MenuStrip控件主要用于在程序窗体中显示菜单,其中菜单标题项的快捷键是通过其Text属性中的"&"字符进行设置的,当菜单处于打开状态时,可以通过按下Alt键和相应的字母打开相应的菜单项。而菜单项的快捷键通过设置菜单项的Shortcut属性进行设置,例如"红"菜单项对应的"Ctrl+D",用户无需打开菜单,直接按Ctrl+R键时,就相当于单击该菜单项。ContextMenuStrip控件,又称为快捷菜单控件,它用来表示快捷菜单。2.在实际应用中,菜单可以分为哪两种形式?在C#中设计菜单使用哪两种控件?请简述其设计步骤。答:Windows的菜单主要有下拉式菜单和弹出式快捷菜单两种类型。在C#中设计菜单时分别使用MenuStrip控件和ContextMenuStrip控件。3.简述工具栏与菜单共享代码的方法。答:程序中工具栏按钮的功能与主菜单中的命令项相对应,因此在功能实现上采用直接调用相应主菜单项单击事件代码的方式实现,例如"menuOO_Click<sender,e>;"即调用主菜单中的菜单项的单击事件。4.简述状态栏面板StatusStrip的主要属性及作用。答:StatusStrip控件,又称为状态栏控件,它通常放置在窗体的最底部,用于显示窗体上一些对象的相关信息,或者可以显示应用程序的信息。StatusStrip控件由ToolStripStatusLabel对象组成,每个这样的对象都可以显示文本、图像或同时显示这二者,另外,StatusStrip控件还可以包含ToolStripDropDownButton、ToolStripSplitButton和ToolStripProgressBar等控件。5.简述模式窗体与非模式窗体的区别。答:模式窗体就是使用ShowDialog方法显示的窗体,它在显示时,如果作为激活窗体,则其它窗体不可用。只有在将模式窗体关闭之后,其它窗体才能恢复可用状态。非模式窗体就是使用Show方法显示的窗体,一般的窗体都是非模式窗体。非模式窗体在显示时,如果有多个窗体,用户可以单击任何一个窗体,单击的窗体将立即成为激活窗体并显示在屏幕的最前面。6.简述KeyPress事件与KeyDown、KeyUp事件的主要不同点。答:C#主要为用户提供了三种键盘事件,按下某个ASCII字符键时发生KeyPress事件,按下任意键时发生KeyDown事件和释放键盘上任意键时发生KeyUp事件。只有获得焦点的对象才能够接受键盘事件。只有当窗体为活动窗体且其上所有控件均未获得焦点时,窗体才获得焦点。这种情况只有在空窗体和窗体上的控件都无效时才发生。但是,如果将窗体上的KeyPreview属性设置为True,则窗体就会在控件识别其键盘事件之前抢先接受这些键盘事件。键盘事件彼此之间并不相互排斥,按下一键时产生KeyPress和KeyDown事件,放开该键时产生一个KeyUp事件,但应注意KeyPress事件并不能识别所有的按键。习题6一、选择题1.C#Winform编程对文件夹操作,通常需要引入命名空间<C>。A.using

System.IO B.using

System.IOC.using

System.IOD.System.Data.OleDb实现递归删除文件夹目录及文件,下列程序中publicstaticvoidDeleteFolder<stringdir>{if<Directory.___2____<dir>>//如果存在这个文件夹删除之{foreach<stringdin__3___.GetFileSystemEntries<dir>>{if<File.Exists<d>>File.____4_____<d>;//直接删除其中的文件else______5_____<d>;//递归删除子文件夹}Directory.Delete<dir>;//删除已空文件夹}}A、ExistB、ExistsC、DirectoryD、DeleteE、DeleteFolderF、DeleteDirectory2、应选择〔B。3、应选择〔C。4、应选择〔D。5、应选择〔E。二、填空题1.C#文件操作,通常要引入〔System.IO命名空间。2、语句"Directory.Delete<"f:\bbs2",true>;"的作用是<将f:\bbs2及其子目录删除>.3、语句"string[]dirs=Directory.GetDirectories<"f:\","b*">;"的作用是<获取f:\下以b开头的目录存储到dirs数组中>。4、设置文件属性的方法是<File.SetAttributes<filename,FileAttributes.ReadOnly>;//把filename文件设置为只读>。5、确定文件是否存在的方法是<File.Exists<filename>>。6、File.AppendTextFileInfo.AppendText的作用是<创建一个

StreamWriter,它将

UTF-8

编码文本追加到现有文件。>。三、问答题1.请写出递归删除文件夹及文件的程序片段。privatevoidDelete<stringdir>

{foreach<stringsubdirinDirectory.GetDirectories<dir>>{this.Delete<subdir>;}foreach<stringfilesinDirectory.GetFiles<dir>>{label.Text=string.Format<"正在删除{0}",files>;File.Delete<files>;}}2.软件注册通常有哪些方法?各自的优缺点是什么?软件注册可以通过获取cpu、硬盘的序列号,进行加密,再写入注册表来实现,也可以通过用户名密码来注册。前者方式注册软件当用户更换计算机或者部件时需重新注册,但是破解较难;后者往往难以保证注册用户名、序列号不被恶意扩散。3.阅读以下程序片段,说明该方法的主要功能。publicstaticvoidCopyFolder<stringstrFromPath,stringstrToPath>{//如果源文件夹不存在,则创建if<!Directory.Exists<strFromPath>>{Directory.CreateDirectory<strFromPath>;}//取得要拷贝的文件夹名stringstrFolderName=strFromPath.Substring<strFromPath.LastIndexOf<"\\">+1,strFromPath.Length-strFromPath.LastIndexOf<"\\">-1>;//如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹if<!Directory.Exists<strToPath+"\\"+strFolderName>>{Directory.CreateDirectory<strToPath+"\\"+strFolderName>;}//创建数组保存源文件夹下的文件名string[]strFiles=Directory.GetFiles<strFromPath>;//循环拷贝文件for<inti=0;i<strFiles.Length;i++>{//取得拷贝的文件名,只取文件名,地址截掉。stringstrFileName=strFiles[i].Substring<strFiles[i].LastIndexOf<"\\">+1,strFiles[i].Length-strFiles[i].LastIndexOf<"\\">-1>;//开始拷贝文件,true表示覆盖同名文件File.Copy<strFiles[i],strToPath+"\\"+strFolderName+"\\"+strFileName,true>;}//创建DirectoryInfo实例DirectoryInfodirInfo=newDirectoryInfo<strFromPath>;//取得源文件夹下的所有子文件夹名称DirectoryInfo[]ZiPath=dirInfo.GetDirectories<>;for<intj=0;j<ZiPath.Length;j++>{//获取所有子文件夹名stringstrZiPath=strFromPath+"\\"+ZiPath[j].ToString<>;//把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝CopyFolder<strZiPath,strToPath+"\\"+strFolderName>;}}实现文件夹的拷贝功能。习题7一、选择题1、ADO.NET中数据库连接是利用哪个对象的是〔D。A.SQLCommandB.SQLDataAdapterC.QLDataReaderD.SQLConnection2.插入、删除数据可用SqlCommand对象的〔C方法A.ExecuteReaderB.ExecuteScalarC.ExecuteNonQueryD.EndExecuteNonQuery3、在ADO.NET中,为访问DataTable对象从数据源提取的数据行。可使用DataTable对象的〔A属性.A.RowsB.ColumnsC.ConstraintsD.DataSet4、SQLServer的Windows身份验证机制是指,当网络用户尝试连接到SQLServer数据库时,以下哪个说法是正确的〔CA.Windows获取用户输入的用户和密码,并提交给SQLServer进行身份验证,并决定

用户的数据库访问权限B.SQLServer根据用户输入的用户和密码,提交给Windows进行身份验证,并决定用

户的数据库访问权限C.SQLServer根据已在Windows网络中登录的用户的网络安全属性,对用户身份进行验证,并决定用户的数据库访问权限D.登录到本地Windows的用户均可无限制访问SQLServer数据库5、参考下列C#语句:SqlConnectionConn1=newSqlConnection<>;Conn1.C;Conn1.Open<>;SqlConnectionConn2=newSqlConnection<>;Conn2.C;Conn2.Open<>;请问:上述语句将创建<B>个连接池来管理这些SqlConnection对象二、填空题1、为了在程序中使用DataSet类定义数据集对象,应在文件开始处添加对命名空间__System.Data_____的引用.2、为创建在SQLServer2000中执行Select语句的Command对象,可先建立到SQLServer2000数据库的连接,然后使用连接对象的__CreateCommand_____方法创建SqlCommand对象.三、问答题〔1采用LINQ技术访问数据库与采用ADO.NET访问数据库,有什么优势?答:1、无需复杂学习过程即可上手2、编写更少代码即可创建完整应用。3、更快开发错误更少的应用程序。4、无需求助奇怪的编程技巧就可合并数据源5、让新开发者开发效率更高〔2LINQ的语法跟一般SQL语句的语法有哪些区别?答:LINQ查询语法是以from关键字开头的,而不是以select关键字开头的。简单来说,为了IDE的智能感知〔Intelisence这个功能,select关键字放在后面了。编程语言以select开头写LINQ查询语法不是没出现过,你如果使用过20XX的VB9CTP版本,那时候VB9的LINQ查询语法就是select关键字在前面,但是select关键字在前面,在做智能感知〔Intelisence时候就很头大。经过微软IDE组的权衡,确定了把from关键字放在最前面。<3>DataSet与SQLDataReader有哪些区别?答:检索数据库的数据时,DataSet取得所有的信息,并将其保存在内存中。使用这种离线数据源,可以完成随意修改数据,数据转换格式等简洁的工作。但如果需要从数据库返回大量的数据,将受到内存的限制,因为整个DataSet都保存在内存中。特别是用户很多时,由于每个用户都有自己的DataSet,将可能出现问题。OleDbDataReader每次只将一条记录保存到内存中,按要求依次从数据源取得数据,避免了使用大量内存而提高了性能,但由于数据依次取回,所以OleDbDataReader功能没有DataSet强大。而且,OleDbDataReader是只读的,并且不能查看前面的记录。如果不需要客户返回值,只需要显示而不修改,用sqldatareader效率比较高。相反用dataset。sqldatareader提供一种从数据库读取只进的行流的方式.如果用到分页或者需要有暂存数据的地方,用dataset。习题8一、选择题在C#中,MS为我们提供了〔A命名空间,里面包含了Socket类。A、B、System.NeC、System.ThreadingD、TCP最主要的特点是<A>。A、是一种基于连接的协议<类似于打>B、保证数据准确到达C、保证各数据到达的顺序与数据发出的顺序相同D、传输的数据无消息边界在同步工作方式下,TcpListener类常用的方法<B>A、AcceptTcpClient;B、Start

C、Stop

D、Play在.NET中,提供异步处理功能的有:<ABCDEFG>文件I/O、流I/O、套接字I/O。B、网络。C、远程处理信道〔HTTP、TCP和代理。D、使用ASP.NET创建的XMLWebservices。E、ASP.NETWeb窗体。F、使用MessageQueue类的消息队列。G、BackgroundWorker等组件二、填空题1、命名空间主要有<TcpClient><TcpListener><UdpClient><Socket><MulticastOption>等类。2、Socket编程中,连接创建完毕,就可以使用其〔BeginSend或〔EndSend方法将数据发送到Socket;同样使用其〔BeginReceive或〔EndReceive方法从Socket中读取数据。在Socket使用完毕后,应使用其〔Shutdown方法禁用Socket,并使用〔Close方法关闭Socket。3、Socket编程需要引入的命名空间有:〔ckets;和<usingSystem.Net;>。4、UdpClient类是提供用户数据报UDP网络服务的。UdpClient类提供了一些简单的方法,用于在阻塞同步模式下发送和接收无连接UDP数据报。因为UDP是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接。但可以选择使用下面两种方法之一来建立默认远程主机:〔1使用远程〔主机名和〔端口号作为参数创建UdpClient类的实例。〔2创建UdpClient类的实例,然后调用〔Connect方法。三、简答题1、使用同步TCP编写服务器端应用程序的一般步骤是什么?使用同步TCP编写服务器端应用程序的一般步骤是:1、创建一个socket,用函数socket<>;2、绑定IP地址、端口等信息到socket上,用函数bind<>;3、开启监听,用函数listen<>;4、接收客户端上来的连接,用函数accept<>;5、收发数据,用函数send<>和recv<>,或者read<>和write<>;6、关闭网络连接;7、关闭监听。2、TcpClient类和TcpListener类均封装了底层的套接字,并分别提供了对套接字进一步封装后的同步和异步操作的方法,降低了TCP应用编程的难度,请写出它们各自的作用。TcpClient类提供了一些简单的方法,用于在同步阻塞模式下通过网络来连接、发送和接收流数据。为使TcpClient连接并交换数据,使用TCPProtocolType创建的TcpListener或Socket必须侦听是否有传入的连接请求。可以使用下面两种方法之一连接到该侦听器:创建一个TcpClient,并调用三个可用的Connect方法之一。使用远程主机的主机名和端口号创建TcpClient。此构造函数将自动尝试一个连接。Tc

温馨提示

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

评论

0/150

提交评论