1、NET复习题.NET Framework Class Library 的作用 ( b )。A是.NET 托管程序的执行引擎 B供.NET 托管程序使用的类型集合C.NET 托管程序的编译程序 D支持.NET 托管程序的操作系统.NET Common Language Runtime 的作用 ( a )。A. 是.NET 托管程序的执行引擎 B. 供.NET 托管程序调用的API 集合C. .NET 托管程序的编译程序 D. 支持.NET 托管程序的操作系统在命令行下使用CSC 命令编译C#源程序时,可使用( c )参数来说明生成库文件。A/target:exe B/target:winexe
2、C/target:library D/target:module在命令行下使用CSC 命令编译C#源程序时,可使用 ( d )参数来说明程序中引用的其他程序集。A/target B/out C/linkresource D/reference因内存不够引发的垃圾回收过程中,下列哪种情形的对象占用的内存将被回收 ( d )A. 实现了析构方法的类的对象 B处于0 代的对象C. 处于2 代的对象 D. 无法从某个根引用抵达的对象已知委托类型DoSomething 定义如下:public delegate void DoSomething(); 则该类型派生自.NETFramework 提供的 (
3、a ) 抽象类。A B C D ( d) 是.NET 类型中唯一没有继承 的类型。A. 类 B结构 C. 枚举 D. 接口.NET 类型系统中所有的引用类型都继承自 且不继承自 ( c )类型。A B C Dfloat 类型的值可以隐式转换成 ( d )类型的值而保持值不被改变。Aint Blong Cdecimal DdoubleC#中的类型int 对应 .NET 类库中的 ( b )。A B32 C D为了将字符串str123456 转换成整数123456,应该使用以下哪条语句 ( a )Aint Num(str); Bint Num(int);C. int Num(int) str; D
4、int Num();对于不同的流,可以使用 ( a ) 属性来查询流是否支持查找操作。ACanSeek BPosition CCanRead DCanWrite下列Stream 类中,(a )类用来向其他流提供缓冲区读写支持。ABufferedStream BMemoryStream CFileStream DCryptoStream下列哪个Stream 类不存在于 命名空间中 ( d )AFileStream BMemoryStream C. BufferedStream DNetWorkStream在托管环境中创建线程后、调用start 之前,该线程处于 ( a )状态。AUnstarte
5、d BRunning CWaitSleepJoin DStopped为了设置线程t1 的执行优先级,需访问t1 的 ( a )属性。APriority BIsAlive CIsBackgroud DThreadStatex,y 都是类MyClass 的变量。为了测试这两个变量是否引用同一个对象,应使用类MyClass 的下列哪个方法进行判断 ( c )AGetHashCode BEquals CReferenceEquals DToString若程序集 的配置文件存在,则应起名为 ( a )。A B C D.NET 程序集的配置文件使用 ( c )格式书写。AVB 源程序 BC#源程序 CXM
6、L DHTML下列哪个数据类型在从托管代码环境传送到非托管代码环境时,不需要使用Interop 封送拆收器进行特殊处理 ( b )A B C D在webServer中,属性是(a)符号表示的A. B. C.() D.”关于.NET中使用Attribute 属性,以下除 _外全部错误。AAttribute是类中的成员 BAttribute只在Main方法内使用CAttribute写在中括号内 DAttribute是MSIL的一部分已知int n=100; 以下语句中只有_执行了“装箱”。A: int k=n; B: object o=n; C: n=200; D: string s=();如果要
7、对一个集合以foreach方式执行遍历,则该集合所属的类型至少要实现_接口。A: CollectionBase B: ICloneable C: IEnumerable D: List假定当前程序中对象myobj是被有效引用的第二代对象。此时若执行(),并在随后立即调用方法(myobj),其返回值等于_。A: 0 B: 3 C: 1 D: 2简答题1. 哈希表有什么用途 .NET环境下如何使用哈希表答:哈希表是一种很有用的但是也是相对复杂的数据结构。在哈希表集合的每一个元素中都是以键、值对的形式保存数据的。其中,键和值都是字符串,这些都是存在内存中的。由于使用独特的地址算法,对其插入,查找和其
8、他的操作的速度都很快,在数据量较大的情形下之一点更明显。哈希表的查找方式主要为通过已知的键找出其对应的值。、NET的Hashtable实现了哈希表。2. 什么是 MSIL .NET环境下如何产生MSIL 的代码答:MSIL即微软的中间语言,它与编程语言无关。MSIL和元数据都存储在标准的Windows可移植可执行文件中。此文件可以是DLL和EXE文件。基于CLR的高级编程语言编写的源代码在编译时,将生成两种内容:以MSIL表示的指令和元数据。 3什么是.NET 环境下的自动“垃圾回收”简述“垃圾回收”所采用的策略。答:、NET下收集废弃的内存空间使其重新可用的过程成为垃圾回收。垃圾回收工作是在
9、、NET下自动执行的。CLR垃圾回收器首先检查终于最新的一代的对象,回收由垃圾所占有的任何空间。、NET判断每个对象可以当作垃圾被回收的依据就是不再存在对该对象的有效引用。GC是、NET框架提供的用于管理垃圾回收的一个类。3. 什么是事件事件与委托有什么关系答:委托用来处理在某些编程语言中需要用到函数指针来处理的情况。事件是一个类通知另一个类的一种途径。、NET中的事件是一种特殊的委托,这种委托没有返回值,也不允许在其所属的类的外部被调用。普通的委托是即可以在内部也可在外部被调用的。4. Web服务是什么它有哪些特点答:Web服务是一套崭新的技术标准,定义了应用程序如何在web上实现互操作性。
10、Web服务的标准是建立在以XML为主的,开发的web规范技术基础上,因此与上一代的对象技术相比具有更好的开放性,是建立客户操作的分布式程序的新平台。特点:(1)良好的封装性(2)松散耦合(3)使用标准协议规范(4)高度可集成能力(5)可跨越通信的防火墙与Web Server有关的协有什么 (1)SOAP 用于提供标准的RPC方法调用Web 服务。(2)WSDL 是基于XML的用于定义Web 服务的接口即方法名、参数和返回值等有关的属性的语言。(3)UDDI 用于在网上查找Web 服务。 6. 什么是线程一个.NET应用程序中包含几个线程 线程是一个执行单元。每一个进程至少要包含一个线程。什么是
11、线程池,使用线程池有什么优点线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。每个进程仅具有一个用于执行各种方法的线程池,由ThreadPool类管理一组在线程池中运行的线程。由于不需要在每次启动线程时都进行资源分配,因此会提高性能。 有些情况下不适合使用线程池,例如:1) 需要在前台运行的线程 2)需要线程具有特定的优先级 3)线程中含有会引起一段时间阻塞的任务 4)需要将某些线程放置在单线程的单元中 5)需要有与线程关联的稳定的标识,或需要将某个线程专用于某
12、个任务 6)需要根据运行情况,动态的对线程进行干涉和控制。什么情况下使用线程池 在需要使用大量短命线程的情况下,CLR分配内存及创建线程所花费的时间可能会降低应用程序的整体性能。在这些情况下,可以使用ThreadPool类。在无需对每个独立的线程进行完全控制的情况下,也可以使用该类。 7. 什么是装箱和拆箱它们的实质是什么 答:装箱是将值类型转换为引用类型。拆箱是将引用类型转换为值类型。在装箱时,系统会先从堆中配置一块内存,然后将值类型数据复制到这块内存,最后再使用引用类型数据指向这块内存。拆箱过程与之相反。 8. Directory类DirectoryInfo类各有什么特点 你认为哪个比较好
13、用 答:Directory类没有属性,他的方法都是静态方法。并且该类不能被继承。 DirectoryInfo类的基类是抽象类FileSystemInfo。DirectoryInfo类是有属性的。实际使用中DirectoryInfo类比Directory类更常用。9. 什么是泛型泛型有什么用泛型是、NET中特有的类型,定义泛型用list语句表示。泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是累、结构、接口和方法所存储或使用的一个或多个类型的占位符。泛型的作用就是提高代码的重用性,避免强制类型转换,减少装箱和拆箱,提高性能,减少错误。代码参考。1 垃圾回收using System
14、;namespace GCCollectIntExample class MyGCCollectClass private const long maxGarbage = 1000; static void Main() MyGCCollectClass myGCCol = new MyGCCollectClass(); (The highest generation is 0, );IO ;public class FileSystemWatchCherDemo static void Main(string args) FileSystemWatcher watcher = new Fil
15、eSystemWatcher(C:); = | | | ; += new FileSystemEventHandler(OnChanged); += new FileSystemEventHandler(OnChanged); += new RenamedEventHandler(OnRenamed); watcher. Error += new ErrorEventHandler(OnError); = true ; (Press Enter to exit); (); private static void OnRenamed(object source, RenamedEventArgs
16、 e) WatcherChangeTypes changeType = ; (The file 0 2 to 1, e. OldFullPath , private static void OnChanged (object source, FileSystemEventArgs e) (The file 0 1, , private static void OnError(object source, ErrorEventArgs e) ( An error has occurred ); 2 IEnumerable接口的实现using System;using ;using ;using
17、;namespace _3_10public class Contractor0,; public class Contractors : IEnumerable private ArrayList AL = new ArrayList(); public IEnumerator GetEnumerator()ext ); catch (您输入的IP地址格式不正确。请重新输入。); try MyServer = new IPEndPoint(myIP ,Int32 .Parse (textBox2 .Text ); sock = new Socket , ,ProtocolType .Tcp
18、); (MyServer ); (1);ext + 端口+textBox2 .Text +开始监听.; = false; = true; = false; = false; = true ; sock = ();.; = false; = false; = false; = true; = true; sock .Connect(MyServer); = 与主机+textBox1 .Text + 端口+textBox2 .Text +连接成功!; threadHalt = false; = 已与客户端建立连接; Thread thread = new Thread(new ThreadStar
19、t(targett); (); catch(Exception ex) ); private void button4_Click(object sender, EventArgs e) try threadHalt = true; (); = 与主机的连接已断开; = true; = false; = true; = false; = false; catch private void button5_Click(object sender, EventArgs e) try string msg = + - + + rn; Byte bya = (); (bya, ,; catch (连接
20、尚未建立!无法发送!); private void button6_Click(object sender, EventArgs e) (); private void Form1_Load(object sender, EventArgs e) = false; private void Form1_FormClosing(object sender, FormClosingEventArgs e) if = 正在关闭连接。; threadHalt = true; (); 3 线程池 请按以下要求建立C#的控制台应用程序。(1) 该程序应完成子任务甲、乙、丙、丁、戊、己、庚、辛、壬。这些子任务之间存在的前趋关系如图1所示。(2) 为了提高运行效率,要求该程序使用多线程技术,除主线程外,另加入一至二个分线程。这些线程应尽可能提高子任务间并发性,但需要适当进行同步性控制,以满足图1中规定的关系。(3) 程序中可适当使用Thread类的Join方法或AutoResetEvent类对象WaitOne方法解决同步性问题。并且当用Join方法能解决问题时就不要使用WaitOne方法。(4) 为了突出重点,可将子任务 甲、乙、丙、丁、戊、己、庚、辛、壬 分别以简单输出语句代替,如(“甲”);等。图1
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2