1、高级 C#习题 - 1 - 高级 C#开发技术 复习题 习题 2 1. 选择题 ( 1)关于线程和进程,下列说法哪些是正确的 是( ) A. 线程是操作系统分配处理器时间的基本单位; B. 进程是操作系统分配处理器时间的基本单位; C. 一个线程可以属于多个进程; D. 一个进程可以有多个线程; ( 2)多线程 C#程序中,类 MyClass 定义如下: class MyClass ReaderWriterLock rwl = new ReaderWriterLock(); private int i; public void Read() rwl.AcquireReaderLock(Time
2、out.Infinite); Interlocked.Increment(ref i); Thread.Sleep(1000); rwl.ReleaseReaderLock(); public void Write() rwl.AcquireWriterLock(Timeout.Infinite); Interlocked.Decrement(ref i); Thread.Sleep(1000); rwl.ReleaseWriterLock(); 高级 C#习题 - 2 - 请问,可以有多少个线程同时调用 Read()并将 i 的值加 1? ( ) A. 0个 B. 1个 C. 多个 D. 没
3、有 2. 填空题 ( 1) 使用 System.Diagnostics 命名空间提供的进程类 Process, 用户可以查看和管理大部分 Windows 进程任务,包括 启动 和 _停止_进程, 以及 _检索 _进程信息 。 启动一个 外部程序可以使用 Process类 的 _start() _方法。 ( 2) 使用 System.Threading命名空间提供的线程类 Thread 的 _start() _方法,可以启动 多线程,要实现等待该线程结束 的 任务可以 使用 Thread 的 _join() _方法。 ( 3) 线程同步可以采用以下四种方法: _lock() _、 _monito
4、r() _ 、 _interlocked () _ 、 _mutex ()、readerwriterlock()_。 3. 简答题 ( 5)线程同步有几种方法?每种方法之间有什么区别? 五种, Lock()语句可以把某一 段代码定义为互斥,这互斥的程序段在某一时间段只允许一个线程进行。其余线程必须等待这个线程执行完毕之后才执行。 Monitor()类不仅可以完全取代 lock 语句,还可以设置锁定超时,避免死锁 Interlocked()类 提供了同步对多个线程共享带的变量访问的方法,是一类原子锁,如果该变量位于共享内存中,则不同进程的线程的线高级 C#习题 - 3 - 程就可以使用该机制 M
5、utex()类与 monitor 类似,它防止多个线程在某一时间同时执行某个代码块, mutex没有唤醒功能,与监视器不同的是 mutex可以用来使跨进程的线程同步,因此可以在 同一台机器甚至远程机器上的多个进程上使用同一个互斥体 Readerwriterlock()实现多用户读 /单用户写的同步访问机制,在进行资源访问时,如果在某一时刻资源并没有获取写的独占权,那么可以获得多个读的访问权,单个写入的独占权,如果某一时刻已经获取了写入的独占权,那么其他读取的访问权必须进行等待 习题 3 1. 选择题 ( 1) 使用 StringReader类和 Stringwriter类的作用是 ( ) A.
6、 使用 StringReader类读取文件中的字符串,而使用 StringWriter类向文件中写入字符 串 。 B. 使用 StringReader 类读取顺序文件中的数据信息,而使用StringWriter类可以实现顺序文件的写操作 。 C. 使用 StringReader 类可以从字符串的介质流中读取数据,而使用 StringWriter类向以 StringBuilder为存储介质的流中写入数据 。 D. 使用 StringReader 类读取二进制文件中的数据信息,而使用StringWriter类可以实现二进制文件的写操作。 ( 2) 在使用 FileStream 打开一个文件时,通过
7、使用 FileMode 枚举高级 C#习题 - 4 - 类型的 ( ) 成员, 来指定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。 A. Append B. Create (删除,新建) C. CreateNew(抛出异常) D. Truncate (清楚内容,指向文件开头,保留文件创建日期) ( 3) 下列 ( ) 选项 Stream 类不支持查找操作? A. FileStream B. MemoryStream C. BufferedStream D. NetworkStream ( 4) 整型数组 MyIntArray 的定义和初 始化如下。为了将数组MyIntArray 的
8、所有元素值写入 FileStream 流,可创建 ( ) 类的实例对该流进行写入。 int MyIntArray = new int400; for(int i = 0;i_ 集合; _linq to xml_组件可以查询或操作 XML 结构的数据,并提供修改文档对象模型的内存文档和支持 Linq 查询表达式功能,以及处理XML文档的全新的编程接口。 ( 2) System.Linq 命名空间提供支持使用语言集成查询 LINQ 进行查询的类和接口。 _Enumerable_类包含 LINQ 标准查询运 算 符 , 这 些 运 算 符 对 实 现_IEnumerable)_的对象进行操作。Que
9、ryable 类包含 LINQ 标准查询运算符,这些运算符对实现 _ IQueryable)_的对象进行操作。 习题 7 1. 选择题 ( 1) 下列不是图像的格式的是( ) A. BMP B. JPEG C. GIF 高级 C#习题 - 8 - D. OCX ( 2) 下列用于显示图像的方法是( ) A. Drawimage B. Showimage C. Draw D. Paint ( 3) 下列用于复制图像的方法是 ( ) A. Copy B. Clone C. Cut D. Drawimage ( 4) 下列能实现图像水平旋转的是 ( ) A. Rorate B. Copy C. Ro
10、tateFlip(RotateFlipType.Rotate180FlipY) D. bitmap.RotateFlip(RotateFlipType. Rotate90FlipNone); ( 5) 下面给出的图像格式中不是 GDI所支持的是( ) A. BMP B. GIF C. JPEG D. 以上格式都支持 2. 填空题 ( 1) GDI是 _Graphical device interface_的英文缩写。 ( 2) GDI 是 _图形图像 _开发接口,它主要负责 _通过屏幕和打印输出 _有关信息,它是一组通过类 实现的应用程序编程接口。 ( 3) _System.Drawing_命
11、名空间提供了对 GDI+ 基本图形功能的访问。 ( 4) Graphics 类提供将 _图像图形 _绘制到显示设备的方法。大多数绘图工作都是调用 Graphics 实例的方法完成的。 ( 5) 在 C# 中的图像编程中,最常用的命名空间是 _ System.Drawing _。 ( 6) 要使 pictureBox 中显示的图片刚好填满整个图片框,应把它的_SizeMode_ 属 性 值 设 置 为pictureBoxSizeMode.StretchImage。 3. 简 答 题 ( 1) 建立 Graphics 对象的方式有哪些? 三种 1.通过视窗中的 paint 事件的 painteve
12、ntargs 直接引用视窗的 graphics对象 Private void form_paint(object sender,system.windows.forms.painteventargs p) graphics dc=p.graphics; 2.使用窗体的 creategraphics()方法创建 graphics 对象 高级 C#习题 - 9 - Graphics dc=this.creategraphics(); 3.通过图像对象创建一个 graphics 对象 Graphics g=graphics.formimage( image); 习题 8 1. 选择题 ( 1) 在
13、GDI+的所有类中, ( ) 类是核心,在绘制任何图形之前,一定要先用它创建一个对象。 A. Graphics B. Pen C. Brush D. Font ( 2) 要设置 Pen对象绘制线条的宽度,应使用它的 ( ) 属性。 A. Color B. Width C. DashStyle D. PenType ( 3) 通过 HatchBush对象的 ( ) 属性可设置 HatchBush对象的阴影样式。 A. BackgroundColor B. ForegroundColor C. HatchStyle D. ColorStyle ( 4) 下面对 FontDialog控件说法正确的是
14、 ( ) A 可以使用它来设置字体颜色 B使用 FontDialog必须在窗体中添加控件 C完全可以不添加控件,使用代码来完成它的添加 D显示 FontDialog时,使用 Show()方法 ( 5) 下面对 ColorDialog说法正确的是( ) A 设置 Report属性为 true, 然后处理 Click事件 高级 C#习题 - 10 - B 设置 DetectUrls 属性为 true, 然后创建 LinkClicked 事件的处理程序 C 创建 URLClick事件程序 D 创建 URLSelection事件的处理 ( 6) 在 System.Drawing命名空间中,有几个常用的
15、结构,下列选项中( )不是其 命名空间中的结构。 A Color B Font C Rectangle D Point ( 7) 画刷可用来填充区域,其中( )可用指定的 Image图像或图像的一部分填充区域。 A纹理画刷( TextureBrush) B单色画刷 (SolidBrush) C阴影画刷 (HatchBrush) D线性渐变画刷(LinearGradientBrush) ( 8) 下列不是 Pen的属性的是( ) A. hatchstyle B. StartCap C. EndCap D. DashStyle ( 9) 下列不是用于设置虚线类型的是 ( ) A. Dash B.
16、Dot C. DashDotDot D. StartCap ( 10) 下列用设置直线起始端点类型的是( ) A. EndStart B. StartCap C. EndCap D. Dash ( 11) 下列用于设置的阴影画笔的是 ( ) A. HatchBrush B. SolidBrush C. LinearGradientBrush D. PathGradientBrush ( 12) 下列用于设置的渐变画笔的是 ( ) A. HatchBrush B. SolidBrush C. LinearGradientBrush D. PathGradientBrush ( 13) 下列用于设置的纹理画笔的是 ( ) A. HatchBrush B. SolidBrush C. TextureBrush