《高级C开发技术》习题答案.docx
- 文档编号:24117780
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:10
- 大小:20.57KB
《高级C开发技术》习题答案.docx
《《高级C开发技术》习题答案.docx》由会员分享,可在线阅读,更多相关《《高级C开发技术》习题答案.docx(10页珍藏版)》请在冰豆网上搜索。
《高级C开发技术》习题答案
《高级C#开发技术》复习题
习题2
1.选择题
(1)关于线程和进程,下列说法哪些是正确的是()
A.线程是操作系统分配处理器时间的基本单位;
B.进程是操作系统分配处理器时间的基本单位;
C.一个线程可以属于多个进程;
D.一个进程可以有多个线程;
(2)多线程C#程序中,类MyClass定义如下:
classMyClass{
ReaderWriterLockrwl=newReaderWriterLock();
privateinti;
publicvoidRead(){
rwl.AcquireReaderLock(Timeout.Infinite);
Interlocked.Increment(refi);
Thread.Sleep(1000);
rwl.ReleaseReaderLock();
}
publicvoidWrite(){
rwl.AcquireWriterLock(Timeout.Infinite);
Interlocked.Decrement(refi);Thread.Sleep(1000);
rwl.ReleaseWriterLock();
}
}
请问,可以有多少个线程同时调用Read()并将i的值加1?
()
A.0个B.1个C.多个D.没有
2.填空题
(1)使用System.Diagnostics命名空间提供的进程类Process,用户可以查看和管理大部分Windows进程任务,包括启动和____停止_____进程,以及___检索______进程信息。
启动一个外部程序可以使用Process类的_____start()______方法。
(2)使用System.Threading命名空间提供的线程类Thread的___start()__________方法,可以启动多线程,要实现等待该线程结束的任务可以使用Thread的____join()_______方法。
(3)线程同步可以采用以下四种方法:
_lock()________、__monitor()_______、__interlocked()_______、____mutex()、readerwriterlock()____。
3.简答题
(5)线程同步有几种方法?
每种方法之间有什么区别?
五种,
Lock()语句可以把某一段代码定义为互斥,这互斥的程序段在某一时间段只允许一个线程进行。
其余线程必须等待这个线程执行完毕之后才执行。
Monitor()类不仅可以完全取代lock语句,还可以设置锁定超时,避免死锁
Interlocked()类提供了同步对多个线程共享带的变量访问的方法,是一类原子锁,如果该变量位于共享内存中,则不同进程的线程的线程就可以使用该机制
Mutex()类与monitor类似,它防止多个线程在某一时间同时执行某个代码块,mutex没有唤醒功能,与监视器不同的是mutex可以用来使跨进程的线程同步,因此可以在同一台机器甚至远程机器上的多个进程上使用同一个互斥体
Readerwriterlock()实现多用户读/单用户写的同步访问机制,在进行资源访问时,如果在某一时刻资源并没有获取写的独占权,那么可以获得多个读的访问权,单个写入的独占权,如果某一时刻已经获取了写入的独占权,那么其他读取的访问权必须进行等待
习题3
1.选择题
(1)使用StringReader类和Stringwriter类的作用是()
A.使用StringReader类读取文件中的字符串,而使用StringWriter类向文件中写入字符串。
B.使用StringReader类读取顺序文件中的数据信息,而使用StringWriter类可以实现顺序文件的写操作。
C.使用StringReader类可以从字符串的介质流中读取数据,而使用StringWriter类向以StringBuilder为存储介质的流中写入数据。
D.使用StringReader类读取二进制文件中的数据信息,而使用StringWriter类可以实现二进制文件的写操作。
(2)在使用FileStream打开一个文件时,通过使用FileMode枚举类型的()成员,来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。
A.AppendB.Create(删除,新建)C.CreateNew(抛出异常)D.Truncate(清楚内容,指向文件开头,保留文件创建日期)
(3)下列()选项Stream类不支持查找操作?
A.FileStreamB.MemoryStreamC.BufferedStreamD.NetworkStream
(4)整型数组MyIntArray的定义和初始化如下。
为了将数组MyIntArray的所有元素值写入FileStream流,可创建()类的实例对该流进行写入。
int[]MyIntArray=newint[400];
for(inti=0;i<400;i++)
MyIntArray[i]=i;
A.BinaryWriterB.StreamWriterC.TextWriterD.StringWriter
(6)下列()选项不是XML文档所必须具备的要素。
A.XML声明B.文档类型说明C.元素D.文档元素
(7)下列()是XML的基本组成部分
A.元素B.属性C.注释D.指针
(8)以下按XML标记名的命名规则是()
A.标记名不能包含冒号B.标记名可以包含实体
C.标记名必须以字母或下划线开始D.后继字符可以是任意字符
(9)下列不符合元素类型声明的作用是()
A.设置元素的类型B.设置元素出现的次数
C.设置元素如何嵌套子元素D.设置文档的结构
(10)下面不是XSL用到的节点是()
A.文本节点B.根节点C.叶子节点D.注释节点
2.填空题
(1)一个XML元素由__开始标记____,___结束标记___以及位于开始标记、结束标记之间的__数据内容_____构成。
(2)构成XML文档最基本的单位是______元素________。
(3)不想XML处理器和XML应用程序对一段文本数据进行解释,需要使用___CDATA标记______标记对该段文本进行标记一个XML文档如果需要符合有效性的要求,则它必须___遵照一定类型的文本说明书_______________
(4)文档类型定义(DTD)是一类用于__定义xml文档具体格式___________的文本,它规定XML文档的____格式_____、__内容______。
3.简答题
(2)如何创建FileStream对象?
最简单的构造函数仅仅带有两个参数,即文件名和FileMode枚举值。
FileStreamaFile=newFileStream(filename,FileMode.Member);
FileMode枚举有几个成员,规定了如何打开或创建文件。
另一个常用的构造函数如下:
FileStreamaFile=newFileStream(filename,FileMode.Member,FileAccess.Member);
第三个参数是FileAccess枚举的一个成员,它指定了流的作用。
File和FileInfo类都提供了OpenRead()和OpenWrite()方法,更易于创建FileStream对象。
前者打开了只读访问的文件,后者只允许写入文件。
这些都提供了快捷方式,因此不必以FileStream构造函数的参数形式提供前面所有的信息。
习题5
1.简答题
(1)什么是LINQ查询分析技术?
引入了标准的、易于学习的查询和更新数据模式,将数据和语言联系在一起,使查询成为编程语言的一部分
(2)LINQ技术的体系架构是什么?
LINQtoobjects,(linqtodatasets,linqtosql,linqtoentities)(用于LINQ的ADO.NET),LINQtoXML
(3)LINQ和ADO.NET相比较有什么特点?
1.linq查询语法比较简单,容易书写,在创建查询表达式时VS2010集成开发环境还提供了智能感知
2.由于查询表达式被嵌入到编程语言中,因此,编译器将检查表达式的语法错误和查询数据的类型安全
3.linq自身提供了强大的过滤,排序,数据分区,分组等处理数据的功能
4.linq可以直接处理XML元素,并为内存中的XML文档提供强大的处理功能
5.linq可以从容地处理多数据源和多数据格式的数据
2.填空题
(1)LINQ包含4种组件,其中______linqtosql______________组件提供查询基于关系数据库数据的一套机制;LinqtoDataSet组件的作用是___可以轻松地对dataset中的数据进行操作____________________;LinqtoObject组件可以查询_IEnumerable或IEnumerable
(2)System.Linq命名空间提供支持使用语言集成查询LINQ进行查询的类和接口。
________Enumerable_______类包含LINQ标准查询运算符,这些运算符对实现__IEnumerable<(of<(t>)>)____________________的对象进行操作。
Queryable类包含LINQ标准查询运算符,这些运算符对实现_____IQueryable<(of<(t>)>)_______________的对象进行操作。
习题7
1.选择题
(1)下列不是图像的格式的是()
A.BMPB.JPEGC.GIFD.OCX
(2)下列用于显示图像的方法是()
A.DrawimageB.ShowimageC.DrawD.Paint
(3)下列用于复制图像的方法是()
A.CopyB.CloneC.CutD.Drawimage
(4)下列能实现图像水平旋转的是()
A.Rorate
B.Copy
C.RotateFlip(RotateFlipType.Rotate180FlipY)
D.bitmap.RotateFlip(RotateFlipType.Rotate90FlipNone);
(5)下面给出的图像格式中不是GDI+所支持的是()
A.BMPB.GIFC.JPEGD.以上格式都支持
2.填空题
(1)GDI是_____Graphicaldeviceinterface________的英文缩写。
(2)GDI是____图形图像_______开发接口,它主要负责_____通过屏幕和打印输出_________有关信息,它是一组通过类实现的应用程序编程接口。
(3)___System.Drawing____________命名空间提供了对GDI+基本图形功能的访问。
(4)Graphics类提供将___图像图形____________绘制到显示设备的方法。
大多数绘图工作都是调用Graphics实例的方法完成的。
(5)在C#中的图像编程中,最常用的命名空间是____System.Drawing_________。
(6)要使pictureBox中显示的图片刚好填满整个图片框,应把它的____SizeMode_________属性值设置为pictureBoxSizeMode.StretchImage。
3.简答题
(1)建立Graphics对象的方式有哪些?
三种
1.通过视窗中的paint事件的painteventargs直接引用视窗的graphics对象
Privatevoidform_paint(objectsender,system.windows.forms.painteventargsp)
{graphicsdc=p.graphics;}
2.使用窗体的creategraphics()方法创建graphics对象
Graphicsdc=this.creategraphics();
3.通过图像对象创建一个graphics对象
Graphicsg=graphics.formimage(image);
习题8
1.选择题
(1)在GDI+的所有类中,()类是核心,在绘制任何图形之前,一定要先用它创建一个对象。
A.GraphicsB.PenC.BrushD.Font
(2)要设置Pen对象绘制线条的宽度,应使用它的()属性。
A.ColorB.WidthC.DashStyleD.PenType
(3)通过HatchBush对象的()属性可设置HatchBush对象的阴影样式。
A.BackgroundColorB.ForegroundColorC.HatchStyleD.ColorStyle
(4)下面对FontDialog控件说法正确的是()
A.可以使用它来设置字体颜色
B.使用FontDialog必须在窗体中添加控件
C.完全可以不添加控件,使用代码来完成它的添加
D.显示FontDialog时,使用Show()方法
(5)下面对ColorDialog说法正确的是()
A.设置Report属性为true,然后处理Click事件
B.设置DetectUrls属性为true,然后创建LinkClicked事件的处理程序
C.创建URLClick事件程序
D.创建URLSelection事件的处理
(6)在System.Drawing命名空间中,有几个常用的结构,下列选项中()不是其命名空间中的结构。
A.ColorB.FontC.RectangleD.Point
(7)画刷可用来填充区域,其中()可用指定的Image图像或图像的一部分填充区域。
A.纹理画刷(TextureBrush)B.单色画刷(SolidBrush)
C.阴影画刷(HatchBrush)D.线性渐变画刷(LinearGradientBrush)
(8)下列不是Pen的属性的是()
A.hatchstyleB.StartCapC.EndCapD.DashStyle
(9)下列不是用于设置虚线类型的是()
A.DashB.DotC.DashDotDotD.StartCap
(10)下列用设置直线起始端点类型的是()
A.EndStartB.StartCapC.EndCapD.Dash
(11)下列用于设置的阴影画笔的是()
A.HatchBrushB.SolidBrushC.LinearGradientBrushD.PathGradientBrush
(12)下列用于设置的渐变画笔的是()
A.HatchBrushB.SolidBrushC.LinearGradientBrushD.PathGradientBrush
(13)下列用于设置的纹理画笔的是()
A.HatchBrushB.SolidBrushC.TextureBrushD.PathGradientBrush
(14)绘制文本需要使用Graphics.DrawString方法,下列不是使用该方法时必须有的参数是()
A.要绘制的字符串B.绘制字符串所使用的字体
C.输出文本的格式化属性D.绘制字符串所使用的画刷
(15)多媒体技术的最重要的特点是()。
A.娱乐性B.智能性C.多样性D.交互性
2.填空题
(1)每种画笔都由一个派生自抽象类___Graphics_________________的类实例来表示。
(2)最简单的画笔为_____solidbrush___________。
它是单色画笔,用于___填充图形形状__________________。
(3)钢笔用一个类______system.drawing.pen_____________来表示。
(4)创建一个画线颜色为兰色,像素宽度为100的画笔,画笔名为MyPen,使用的语句是___penmypen=newpen(color.blue,100);___________________。
(5)画多边形时应使用Graphics对象的__drawpolygon_____________方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级C开发技术 高级 开发 技术 习题 答案