kl800.com省心范文网

《C#.NET程序设计案例教程》课后习题参考答案


《C#.NET 程序设计案例教程》课后习题参考答案 习题 1
一、选择题 1.在.NET 中不能使用的语言是( B

)。

A.C# B.Pascal C.VB D.VC++ 2.( A )可以帮助用户可视化的程序设计界面。 A.工具箱 B. 类视图 C.解决方案资源管理器 D.动态帮助 3.导入命名空间使用关键字是( B )。 A. Main C. System B. using D. Console

二、填空题 1.在 C#程序中,程序的执行总是从( Main )方法开始的。 2.在 C#程序中,单行注释用( // )引导。 3.在 C#程序中,注释分为单行注释和( 块注释 )。 4.关键字 class 的含义是( 类 )。 5. 要添加控件到窗体中,应该使用( Windows 窗体设计器 )设计窗口。 6. 要修改项目的属性,必须在( 解决方案资源管理器 )设计窗口中选择项目。 7. 要修改对象的属性,应该使用( 属性 )设计窗口。 三、问答题 1.简述 Visual Studio 2010 的安装过程。 答: 1、 获取 Visual Studio 2010 的安装文件 2、 启动 Visual Studio 2010 的安装程序 3、 单击第一个安装选项“安装 Visual Studio 2010”,弹出图 1-2 所示的“Visual Studio 2010 安装向导”界面。 4、 单击“下一步”按钮,弹出图 1-3 所示的“Visual Studio 2010 安装程序起始页”。 5、 选中“我已阅读并接受许可条款”按钮,单击“下一步”按钮,弹出图 1-4 所示的 “Visual Studio 2010 安装程序选项页”,用户可以选择要安装的功能及安装路径,一般使用 默认设置即可。 6、 选择好产品安装路径后, 单击 “安装” 按钮, 进入图 1-5 所示的 “Visual Studio 2010 安装程序安装页”界面,显示正在安装的组件。 7、 安装完毕后,单击“下一步”按钮,弹出图 1-6 所示的“Visual Studio 2010 安装程 序完成页”界面。 8、 单击“安装文档”按钮,可以安装 Visual Studio 的本地帮助文档 MSDN,弹出如

图 1-7 所示的“Help Library 管理器—库位置”界面。 9、 设置库位置后,单击“确定”按钮,弹出如图 1-8 所示的“Help Library 管理器— 安装内容”界面。 10、 10、根据需要点击需要安装的内容后面的“添加”按钮后,单击“更新”按钮, 开始 “更新本地库” , 更新完成后点击 “完成” 按钮, 弹出如图 1-9 所示的 “Help Library 管理器安装完成页”界面。 11、 11、单击“退出”按钮完成帮助文档库的安装,弹出如图 1-10 所示的“Visual Studio 2010 安装程序主页面”。 12、 12、单击“退出”按钮,完成 Visual Studio 开发环境和帮助文档库的安装。 2. Visual Studio 2010 开发环境的主要组成部分有哪些? 答:Visual Studio 2010 开发环境的主窗口由标题栏、菜单栏、标准工具栏、代码编辑器 /Windows 窗体设计器以及停靠或自动隐藏在左侧、右侧、底部的工具箱、解决方案资源管 理器、属性窗口等共同组成。

习题 2
一、选择题 1、以下变量命名正确的是( C A. 7str C. _stu_id 2.表达式 “100”+”88”=( A. 88100 C. 100 88 )。 B. int D. integer D) B. 188 D. 10088 )

3、Math.Sqrt(9)的结果是( B A.9 C. 09 B. 3 D. 9.0

4、把字符串 strA 中的字符?f?,都替换成?F?,正确的代码是( A. string.replace(?f?,?F?); C. strA.Replace(?f?,?F?); B.strA.replace(?f?,?F?); D. strA.Replace(?F?,?f?); )

C )

5、下列哪个转换时属于隐式转换的( A A. int i=?f?; C. int a=100L 二、计算题

B.int j=20F D. char c=”H”;

1. 2. 3. 4. 5.

表达式 100%3 的结果是____________ 1 表达式 a=5*(b=3) 的值是____________ 15 表达式 5>8||8>5 的值是____________ true 表达式 18.9%2.4 的结果是____________ 2.1 表达式‘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.18 C.810 D.出错 2.分析以下程序段的执行结束后,i 和 j 的值分别为:( B ) int i=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,9 C.1,8 D.1,10 3.将命题“z 大于 x,y 中间的一个”用 C#表达式表示为:( A. z>x and z>y B. z>x or z>y C. z>x && z>y D. z>x || z>y 4.以下程序段执行后,Label1 的显示结果为:( A ) int i,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. 12 B. 30 5.有以下代码段:

B

)。

C. 24

D. 18

int i=0,s=0; for(;;) { if(i==3||i==5) continue; if(i==6) break; i=i+1; s=s+i; } 循环完成后,s 的值是( D ) A. 10 B. 7 C. 21 6.有以下代码段: int k=5,n=0; while(k>0) { switch(k) { case 1: n+=k; break; case 2: break; case 3: n+=k; break; default: break; } k=k-1;

D. 程序进入死循环

} 则执行代码段后,n 的值是( B A. 0 B. 4

) C. 6 D. 7

二、填空题 1 . 条 件 “ 金 额 大 于 等 于 500 , 小 于 1000 ” 的 表 达 式 为 ( 金 额 >=500 && 金 额 <1000 )。 2. 在 C#程序中, 要设置 Label 控件的大小不随着内容而改变, 应修改 ( AutoSize ) 属性的值为 False。 3.按键盘上的( F7 )键可以进入代码编辑窗口。 4.C#中的 4 种循环结构是( for )、( while )、( do…while )和 ( foreach )。 5. 专门用于集合元素访问的循环语句是( foreach )。 6. Visual Studio 提供的( try )方法就是专门用于人为引发异常的。。 7. ( show )方法用于显示消息框。 8. 关闭应用程序的语句是( this.Close(); )。 三、问答题 1.简述 if 语句嵌套时,if 与 else 的配对规则。 答:else 总是与其前面最近且尚未配对的在同一复合语句中的 if 2. 多分支条件语句中的控制表达式可以是哪几种数据类型? 答:表达式的结果必须是整数、字符或枚举量值 3. 多分支条件语句中,case 子句中在什么情况下可以不使用 break 语句? 答:break 语句是用来执行完一个 case 分支后,然后跳出 switch 语句;而在一些特殊 的情况下,比如多个不同的 case 值要执行一组相同的操作的时候,这时可以省略 break 语 句。 4. while 语句和 do…while 语句有何区别? 答:do-while 循环就是先执行再判断,while 循环是先判断后执行。 5. 异常处理有哪几种常用的语法格式? 答:try 语句有以下三种可能的形式: (1)try…catch 语句:一个 try 块后接一个或多个 catch 块。 (2)try…finally 语句:一个 try 块后接一个 finally 块。 (3) try…catch…finally:一个 try 块后接一个或多个 catch 块, 后面再跟一个 finally 块。

习题 4
一、选择题 1.在关键字 public 后面定义的成员为类的( B )成员。 A.私有 B. 公有 C.保护 D. 任何 2.如果不带修饰符,C#中类成员被默认声明成( C )。 A.public B. protected C.private D. static 2.可以在一个类中定义多个同名的方法,但只有使用的参数类型或者参数个数不同, 编译器便知道在何种情况下应该调用哪个方法,这是( 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.声明一个委托 public delegate int myCallBack(int x);则用该委托产生的回调方法的原 型应该是( B )。 A. void myCallBack(int x) B. int receive(int num) C. string receive(int x) D. 不确定的

二、填空题 1.面向对象程序设计具有( 封装 )、( 继承 )和( 多态 )等三个 基本特征。 2.( 字段 )是类定义中的数据,也叫类定义中的变量。 3.( 方法 )实质上就是函数,通常用于对字段进行计算和操作,即对类中的数 据进行操作。 4. 方法参数传递按性质可以分为 ( 按值传递 ) 和 ( 按引用传递 ) 两种。 5. 构造函数是一种特殊的方法成员,其主要作用是在创建对象时( 初始化新对 象 )。 6. 声明静态成员需要使用( static )修饰符。 7. 在进行类定义时不需要编写代码就可以包含另一个类定义的数据成员、方法成员等 的特征,称为类的( 继承 )。 8. 委托是一种引用数据类型,派生于.NET Framework 中的( 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. Menu B.MenuItem C.MenuStrip D.Item

2.下面所列举的应用程序中,不是多文档应用程序的是( D A.Word B.Excel C.PowerPoint B )。 D.记事本



3.加载窗体时触发的事件是(

A. Click B. Load C. GotFoucs D. DoubleClick 4. .建立访问键时,需在菜单标题的字母前添加的符号是( 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 C. using System.IO B. using System.IO D. System.Data.OleDb

)。

实现递归删除文件夹目录及文件,下列程序中
public static void DeleteFolder(string dir) { if (Directory.___2____ (dir)) // 如果存在这个文件夹删除之 { foreach (string d in { if (File.Exists(d)) File.____4_____(d); //直接删除其中的文件 else ______5_____(d); //递归删除子文件夹 } Directory.Delete(dir); //删除已空文件夹 __3___.GetFileSystemEntries(dir))

} }

A、Exist D、Delete 2、应选择(B 3、应选择( C 4、应选择( D 5、应选择( E

B、Exists E、DeleteFolder )。 )。 )。 )。

C、Directory F、DeleteDirectory

二、填空题 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) )。 1. 6 、 File.AppendText FileInfo.AppendText 的作用是 ( 创建一个 StreamWriter ,它 将 UTF-8 编码文本追加到现有文件。 )。 三、问答题 1. 请写出递归删除文件夹及文件的程序片段。 private void Delete(string dir) { foreach (string subdir in Directory.GetDirectories(dir)) { this.Delete(subdir); } foreach (string files in Directory.GetFiles(dir)) { label.Text = string.Format("正在删除{0}",files); File.Delete(files); } } 2. 软件注册通常有哪些方法?各自的优缺点是什么? 软件注册可以通过获取 cpu、硬盘的序列号,进行加密,再写入注册表来实现,也可以 通过用户名密码来注册。 前者方式注册软件当用户更换计算机或者部件时需重新注册, 但是 破解较难;后者往往难以保证注册用户名、序列号不被恶意扩散。 3. 阅读以下程序片段,说明该方法的主要功能。
public static void CopyFolder(string strFromPath,string strToPath) {

//如果源文件夹不存在,则创建 if (!Directory.Exists(strFromPath)) { Directory.CreateDirectory(strFromPath); } //取得要拷贝的文件夹名 string strFolderName = 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(int i = 0;i < strFiles.Length;i++) { //取得拷贝的文件名,只取文件名,地址截掉。 string strFileName = strFiles[i].Substring(strFiles[i].LastIndexOf("\\") + 1,strFiles[i].Length - strFiles[i].LastIndexOf("\\") - 1); //开始拷贝文件,true 表示覆盖同名文件 File.Copy(strFiles[i],strToPath + "\\" + strFolderName + "\\" + strFileName,true); } //创建 DirectoryInfo 实例 DirectoryInfo dirInfo = new DirectoryInfo(strFromPath); //取得源文件夹下的所有子文件夹名称 DirectoryInfo[] ZiPath = dirInfo.GetDirectories(); for (int j = 0;j < ZiPath.Length;j++) { //获取所有子文件夹名 string strZiPath = strFromPath + "\\" + ZiPath[j].ToString(); //把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝 CopyFolder(strZiPath,strToPath + "\\" + strFolderName); } }

实现文件夹的拷贝功能。

习题 7
一、选择题 1、ADO.NET 中数据库连接是利用哪个对象的是( D )。

A. SQLCommand C. QLDataReader

B. SQLDataAdapter D. SQLConnection )方法

2. 插入、删除数据可用 SqlCommand 对象的( C A. ExecuteReader C. ExecuteNonQuery

B. ExecuteScalar D. EndExecuteNonQuery

3、 在ADO.NET 中, 为访问DataTable对象从数据源提取的数据行。 可使用DataTable 对 象的( A )属性. A. Rows B. Columns C. Constraints D. DataSet 4、SQL Server 的Windows 身份验证机制是指,当网络用户尝试连接到SQL Server 数据 库时,以下哪个说法是正确的( C ) A. Windows 获取用户输入的用户和密码,并提交给SQL Server 进行身份验证,并决定 用户的数据库访问权限 B. SQL Server 根据用户输入的用户和密码,提交给Windows 进行身份验证,并决定用 户的数据库访问权限 C. SQL Server 根据已在Windows 网络中登录的用户的网络安全属性,对用户身份进行 验证,并决定用户的数据库访问权限 D. 登录到本地Windows 的用户均可无限制访问SQL Server 数据库 5、参考下列C#语句: SqlConnection Conn1 = new SqlConnection( ); Conn1.C; Conn1.Open( ); SqlConnection Conn2 = new SqlConnection( ); Conn2.C; Conn2.Open( ); 请问:上述语句将创建( B )个连接池来管理这些SqlConnection 对象 A.1 B.2 C.0 D.0.5

二、填空题 1、为了在程序中使用DataSet 类定义数据集对象,应在文件开始处添加对命名空间 __System.Data_____的引用. 2、为创建在SQL Server 2000 中执行Select 语句的Command 对象,可先建立到SQL Server2000 数据库的连接,然后使用连接对象的__CreateCommand_____方法创建 SqlCommand 对象. 三、问答题 (1)采用LINQ技术访问数据库与采用ADO.NET访问数据库,有什么优势? 答:1、无需复杂学习过程即可上手

2、编写更少代码即可创建完整应用。 3、更快开发错误更少的应用程序。 4、无需求助奇怪的编程技巧就可合并数据源 5、让新开发者开发效率更高 (2)LINQ的语法跟一般SQL语句的语法有哪些区别? 答:LINQ 查询语法是以 from 关键字开头的,而不是以 select 关键字开头的。简单 来说,为了IDE的智能感知(Intelisence)这个功能,select 关键字放在后面了。编程语言以 select 开头写LINQ查询语法不是没出现过,你如果使用过2005年的VB9 CTP 版本,那时候 VB9的LINQ查询语法就是 select 关键字在前面,但是 select 关键字在前面,在做智能感知 (Intelisence)时候就很头大。经过微软IDE组的权衡,确定了把 from 关键字放在最前面。 (3) DataSet与SQLDataReader有哪些区别? 答:检索数据库的数据时,DataSet 取得所有的信息,并将其保存在内存中。使用这种 离线数据源,可以完成随意修改数据,数据转换格式等简洁的工作。但如果需要从数据库返 回大量的数据, 将受到内存的限制, 因为整个 DataSet 都保存在内存中。 特别是用户很多时, 由于每个用户都有自己的 DataSet,将可能出现问题。 OleDbDataReader 每次只将一条记录 保存到内存中,按要求依次从数据源取得数据,避免 了使用大量内存而提高了性能,但由 于数据依次取回,所以 OleDbDataReader 功能没有 Da taSet 强大。而且,OleDbDataReader 是只读的,并且不能查看前面的记录。如果不需要客户返回值,只需要显示而不修改,用 sqldatareader 效率比较高。 相反用 dataset。 sqldatareader 提供一种从数据库读取只进的行流 的方式. 如果用到分页或者需要有暂存数据的地方,用 dataset。

习题 8
一、选择题 1、 在 C#中,MS 为我们提供了( A )命名空间,里面包含了 Socket 类。 A、System.Net.Sockets B、System.Ne C、System.Threading D、System.Collections.Specialized 2、 TCP 最主要的特点是( A )。 A、是一种基于连接的协议(类似于打电话) B、保证数据准确到达 C、保证各数据到达的顺序与数据发出的顺序相同 D、传输的数据无消息边界 3、 在同步工作方式下, TcpListener 类常用的方法( B ) A、AcceptTcpClient; B、Start C、Stop D、Play 4、 在.NET 中,提供异步处理功能的有:(ABCDEFG ) A、 文件 I/O、流 I/O、套接字 I/O。

B、网络。 C、远程处理信道(HTTP、TCP)和代理。 D、使用 ASP.NET 创建的 XML Web services。 E、ASP.NET Web 窗体。 F、使用 MessageQueue 类的消息队列。 G、BackgroundWorker 等组件 二、填空题 1 、 System.Net.Sockets 命 名 空 间 主 要 有 ( TcpClient )( TcpListener )( UdpClient )( Socket )( MulticastOption )等类。 2 、 Socket 编 程 中 , 连 接 创 建 完 毕 , 就 可 以 使 用 其 ( BeginSend )或 ( EndSend )方法将数据发送到 Socket ;同样使用其( BeginReceive )或 ( EndReceive )方法 从 Socket 中读取数 据。 在 Socket 使用完毕 后,应 使用其 ( Shutdown )方法禁用 Socket,并使用( Close )方法关闭 Socket。 3、 Socket 编程需要引入的命名空间有: ( using System.Net.Sockets; ) 和( using System.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 连接并交换数据,使用 TCP ProtocolType 创建的 TcpListener 或 Socket 必须侦听是否有传入的连接请求。可以使用下面两种方法之一连接到该侦听器: 创建一个 TcpClient,并调用三个可用的 Connect 方法之一。使用远程主机的主机名和端口 号创建 TcpClient。此构造函数将自动尝试一个连接。 TcpListener 类从 TCP 网络客户端侦听连接。TcpListener 类提供一些简单方法,用于 在 阻 塞 同 步 模 式 下 侦 听 和 接 受 传 入 连 接 请 求 。 可 使 用 TcpClient 或 Socket 来 连 接 TcpListener 。可使用 IPEndPoint 、本地 IP 地址及端口号或者仅使用 端口号,来创建 TcpListener。可以将本地 IP 地址指定为 Any,将本地端口号指定为 0(如果希望基础服务 提供程序为您分配这些值) 。 如果选择这样做, 可使用 LocalEndpoint 来标识已指定的信息。 3、 TcpClient 类的常用属性有哪些?在同步工作方式下, TcpClient 类常用方法有哪些? TcpClient 类常用的属性有: Active、 Available、 Client、 Connected、 ExclusiveAddressUse、

LingerState 、 NoDelay、 ReceiveBufferSize 、 ReceiveTimeout、 SendBufferSize 、 SendTimeout 等。 TcpClient 类的常用方法有: Close 释放 TcpClient 实例, 而不关闭基础连接; Connect,用 指定的主机名和端口号将客户端连接到 TCP 主机;BeginConnect , 开始一个远程主机连 接的异步请求;GetStream , 获取能够发送和接收数据的 NetworkStream 对象。 4、网络通信的方式有哪些? 网络通信的方式:主要有以下三大类:(一)SERVER/CLIENT 方式;(二)连接方式;(三) 发送接收方式。 5.使用 Mutex 同步技术改写多线程代码实例。(略)

习题 9
一、选择题 1、Windows Media Player 控件可以播放 Windows 中多种格式多媒体文件,包括(D)。 A、MIDI B、MP3 C、AVI D、MIDI、MP3 和 AVI 等。 2 、 关 于 Windows Media Player 的 各 种 属 性 与 方 法 设 置 , MediaPlayer.Play() 、 MediaPlayer.Pause()、 MediaPlayer.SetCurrentEntry(lWhichEntry)、 MediaPlayer.Next() MediaPlayer.Previous()、 MediaPlayer.PlayCount = 0、 MediaPlayer.Stop()中,表示循环 播放的是( D )。 A、MediaPlayer.Play() C、MediaPlayer.Next() B、MediaPlayer.SetCurrentEntry(lWhichEntry) D、MediaPlayer.PlayCount = 0

二、填空题 1 、在 .NET 框架中,使用 ( Graphics ) 对象可以动态的绘制图形图像;利用 ( ImageList )对象可以设计制作 GIF 动画效果;利用( DrawImage )控件 也可以制作不同的动画效果。 2 、利用 ActiveX 控件可以设计制作( AVI 动画播放器 )、 ( Flash 动画播放器 )、( MP3 音乐播放器 )播放器和 屏幕保护程序。 3 、 ImageAnimator 对 象 常 用 方 法 有 ( Animate )、 ( CanAnimate )、( Equals )和( GetHashCode )。 三、问答题 1、程序中 Application.StartupPath 的含义是什么,在本程序中,如果要求实现用户自定 义播放动画功能,该如何改进? 答:当前运行的这个程序的路径,程序改进代码略。 2、 以加载 Windows Media Player 为例,写出 C#项目中添加 ActiveX 控件的用法。 答:第一步:注册控件,第二步:打开 VS2010,在项目文件中添加引用,点击浏览标 签,找到放置 DLL 文件的位置,添加引用。

3、 c#面向对象编程中方法如何重载? 答:方法的重载:提供了创建同名的多个方法的能力,但是这些方法需要使用不同的参 数类型,方法重载时,两个方法名必须要相同,但是参数类型或个数必须有所不同。


Visual C#.NET 程序设计教程(第2版)罗福强 白忠建 杨剑...

Visual C#.NET 程序设计教程(第2版)罗福强 白忠建 杨剑著 课后习题答案_理学_高等教育_教育专区。习题一答案 一、选择题 1~5: C D A B A 6~8: C C ...

《Visual C#.NET程序设计(第二版)》课后习题答案

《Visual C#.NET程序设计(第二版)》课后习题答案_工学_高等教育_教育专区。《Visual C#.NET程序设计(第二版)》 课后习题答案 人民邮电出版社 杨剑主编 ...

Visual C#.NET 程序设计教程(第2版)罗福强 白忠建 杨剑...

Visual C#.NET 程序设计教程(第2版)罗福强 白忠建 杨剑著 课后习题部分答案_理学_高等教育_教育专区。Visual C#.NET 程序设计教程(第2版)罗福强 白忠建 杨剑...

visual c#.NET程序设计课后习题部分答案

visual c#.NET程序设计课后习题部分答案_理学_高等教育_教育专区。visual c#.NET...visual c#.net 程序设计... 277页 ¥5.00 《Visual C++程序设计... ...

C#程序设计案例教程习题解答

关于c#的程序设计课后习题答案第1章 绪论 第1章...1-3. 参考附录 A,安装 MSDN。 1-4.定制 Visual...《C#.NET程序设计案例教... 暂无评价 17页 免费喜欢...

第四版 c#程序设计教程(课后习题答案代码)

第四版 c#程序设计教程(课后习题答案代码)_理学_高等教育_教育专区。判断是否是...《C语言程序设计》课后习... 112页 免费 C程序设计(第四版)谭浩强... 112...

C#程序设计及应用教程(第2版)课后答案 人民邮电出版社 ...

C#程序设计及应用教程(第 2 版)课后答案 人民邮电...习题 1 参考解答 1、可以用 C#编写哪些类型的应用...一级建造师《建设工程项目管理》 《建设工程经济》计算...

《C#程序设计基础教程与实训》习题答案

《C#程序设计基础教程与实训》习题答案_总结/汇报_应用文书。c#的答案附录Ⅰ 各章习题答案第 1 章 C#语言概述 语言概述一、判断题 1、√ 2、× 3、√ 4、×...

C#习题参考答案 《c#面向对象程序设计》 郑宇军

C#习题参考答案 《c#面向对象程序设计》 郑宇军_工学_高等教育_教育专区。《c#面向对象程序设计》 郑宇军 课后习题答案 习题参考答案 Chapter 1 1_1 对象 客观...

.net程序设计课后习题-简答题答案(考试版)

.net程序设计课后习题-简答题答案(考试版)_工学_高等教育_教育专区。纯属个人收集,整理资料,仅供考试参考第一章 4. (1)一个学校有多个分院,每个分院有各自的网...