1、C#习题与答案习题与答案制作:旅行狼制作:旅行狼QQ:1505367204第1页答:C1.NET Framework不支持哪种类型用户界面?A.Web窗体B.Windows窗体C.公共语言运行库D.控制台应用程序第2页答:B2.下面哪个不是.NET Framework 类库主要特点和提供高级服务:A.跨语言继承和调试B.很轻易学习和掌握C.是面向对象D.是安全且易于扩充第3页答:A3.垃圾搜集器要求程序员().A.为对象分配内存并在使用完成后可无须释放它。B.为对象分配内存但在使用完成后要释放它。C.无须为对象分配内存但在使用完成后要释放它。D.无须为对象分配内存且在使用完成后可无须释放它。第
2、4页答:公共语言运行库(CLR)、.NET Framework类库(FCL)4.列出.NET Framework两大主要组件。第5页答:公共语言运行库(CLR)提供执行代码环境、编译器、语言独立性和轻便性、以及执行垃圾回收。5.公共语言运行库用途是什么?第6页答:公共语言规范(CLS)定义了一套全部与.NET兼容语言应该支持特征。6.公共语言规范用途是什么?第7页答:托管环境提供一些服务,如垃圾回收、安全性以及其它类似特征。7.什么是托管环境?第8页答:因为.NET Framework类库中包含数百个类,所以将这些类分组到命名空间中。全名第一部分(最右边点前面部分)是命名空间名称。全名最终一部
3、分(最右边点后面部分)是类型名称。8.怎样从某类全名中识别它命名空间名称和类型名称第9页答:因为.NET Framework类库(FCL)包含了如此众多类型定义,所以类库要以层次命名空间结构来进行组织。命名空间使用点句法命名方案将相关联类逻辑分组,方便易于对其进行搜索和引用。9.NET Framework类库(FCL)怎样组织其众多类型?第10页答:以CLR为目标代码称为托管代码,它由伪机器语言编写指令组成,这种语言也称为通用中间语言(Common Intermediate Language,CIL)。CIL指令可在运行时实时(JIT)编译为本机代码(经典x86代码)。10.解释什么叫托管代码
4、第11页答:B11.关于命名空间,下面正确说法是哪个?A.命名空间不能嵌套另一个命名空间B.在不一样命名空间中,类型能够含有相同名字C.一个命名空间不能在多个文件中定义D.单独一个源代码文件不能定义多个命名空间第12页答:System命名空间是.NET Framework中类型根命名空间。12.NET Framework中类型根命名空间名称是什么?第13页答:必须使用/reference 编译开关选项。使用/reference编译选项后,编译器使指定库中信息对当前正在编译源程序可用。/r开关等效于/reference开关。13.当编译引用程序集中类(除mscorlib.dll外)代码时,你必
5、须做什么?第14页答:Microsoft 中间语言(MSIL),有时也叫托管代码。14.NET编译器产生代码叫什么?第15页答:实时(JIT)编译器。15.哪一个.NET组件将MSIL编译成特定于CPU本机代码?第16页答:垃圾回收过程。16.NET哪个特征确保对象占用内存被回收?第17页答:全部托管代码都经过使用公共语言运行库运行,公共语言运行库提供了跨语言集成、自动内存管理、跨语言异常处理、增强安全性以及一致性和简化编程模型。17.公共语言运行库有什么优点?第18页答:B18.版本号为2.1.2.3程序集可能和下面哪个版本号程序集兼容?A.1.1.2.3B.2.2.2.3C.2.1.5.2
6、D.2.0.2.3第19页答:由一个或多个PE格式文件组成;包含用来识别程序集及其文件清单;指明导出文件和导入类(Clsss)和类型(Type);是布署、重用和版本控制单元。19.解释程序集(assembly)组成结构和作用。第20页答:程序集清单20.程序集哪一部分能够识别出它输入类型、输出类型和它版本信息?第21页答:.NET Framework公共语言运行库21.一台计算机要在当地运行一个.NET 应用程序时,需要什么软件?第22页答:把可执行文件复制到当地并引用当地计算机程序集,或从文件服务器上访问它们。22.指出运行.NET Framework应用程序两种简单方法。第23页答:在应用
7、程序目录创建配置文件,指定它privatePath属性以下:23.描述一个应用程序怎样使用位于应用程序子目录中程序集。第24页答:强名称程序集24.哪一个程序集能被放到全局程序集缓存中并能被版本化?第25页答:强名称工具(Sn.exe)能够用来生成一个公钥/私钥对,并把它们放置在一个sn k orgKey.snk文件中25.用于产生公钥/私钥对是什么命令?第26页答:gacutil-i 26.用来把一个强名称程序集安装到全局程序集缓存中是什么命令?第27页答:真正区分是:强名称程序集是用公布者公/私密钥对来签署,此公/私密钥对能够惟一识别程序集公布者。这密钥对允许程序集被唯一识别、保护以及版本
8、控制,它也允许程序集被布署到用户硬盘任何地方,甚至在Internet上。27.弱名称与强名称程序集之间区分是什么?第28页当应用程序试图绑定强名称程序集时,这种惟一地识别一个程序集能力允许CLR加强确定“知道是安全”策略。全局地布署程序集是把程序集放到一些众所周知单元,当需要查找某程序集时,CLR知道去查找它。强名称程序集能够按私有方式或全局方式布署。一个弱名称程序集只能以私有方式布署。第29页答:答:B28.关于C#中类结构函数,下面描述正确是:A.为了增强类封装性,结构函数普通被申明成Private型B.在类中能够重载结构函数,C#会依据参数匹配标准来选择执行适当结构函数C.与方法不一样是
9、结构函数只有void这一个返回类型D.结构函数如同方法一样,需要人为调用才能执行其功效第30页答:值类型被分配在栈中,使用答:值类型被分配在栈中,使用拷贝赋值拷贝赋值(assigned as copies),按值传递。,按值传递。引用型被分配在堆中,作为引用引用型被分配在堆中,作为引用赋值赋值(assigned as references),按引用传递。,按引用传递。29.值类型和引用类型区分是什么?第31页答:属性是类中值,它经过get 和 set访问器方法被访问。实际属性数据值能够存放在类实例中,或者在访问时候计算出来。30.字段和属性之间有什么不一样?第32页答:封装是经过使用访问修饰
10、符实现,如public,protected,internal,和 private。31.NET Framework是怎样支持封装?第33页答:ToString方法默认行为是返回类名。32.ToString方法默认行为是什么?第34页答:使用隐式转换能够提升可读性和可使用性。当转换可能引发数据丢失或者抛出异常时使用显式转换。33.什么时候使用隐式转换,什么时候使用显式转换?第35页答:当一个值类型被转换成Object类型时发生装箱操作。当从Object类型中重新得到值类型时发生取消装箱操作。34.装箱操作什么时候发生?第36页答:假如值类型被看成引用类型处理,必须将该值类型从栈中拷贝到堆中。装箱
11、操作为值类型在堆中分配内存,并创建一个对新内存单元引用,然后拷贝该值类型到新内存单元。35.装箱(box)和取消装箱(unbox)怎样工作?第37页假如引用类型被看成值类型处理,这个引用类型必须先被取消装箱。取消装箱操作是把一个类型从堆中拷贝到栈中变量内。第38页答答:C36 相关类静态组员与实例组员,下面描述错误是A.类静态组员是属于类本身,而实例组员则是属于类实例B.不论创建了多少个类实例,类静态组员都只有一个副本C.在C#中,类静态组员能够经过类或类实例来访问,而类实例组员只能经过类实例来访问D.类静态组员能在类范围中共享,不论类生成多少个实例,全部实例都能够共享同一个静态组员第39页答
12、答:D37 .程序集是布署基本单位,下面哪个选项不是程序集组成部分?A.元数据B.清单C.资源文件D.本机代码第40页答:答:B38 .使用.NET开发程序只有在具备.NET框架环境下才能够运行,要在目标计算机上安装.NET框架,必须运行A.Visual StudioB.netFramework.exeC.netfx.exeD.Dotnetfx.exes第41页答:答:A C39 .NET 框架中附带一套.NET 框架类库(Framework Class Library,FCL)程序集,它包含几千个类型定义,每个类型都公开某种功效,而.NET 中有另一个主要概念是命名空间(Namespace
13、s),是类型另一个组织结构,它将父类命名为命名空间,全部子类都是这个命名空间组员,同时能够在命名空间内使用子命名空间,这么做主要目标是:A.使系统类库内容层次清楚,防止类名冲突B.为了类库逻辑上完备性C.方便类名查找和使用D.方便向各命名空间添加自定义类型第42页答:答:A C40.在托管环境下:A.系统自动提供诸如垃圾回收、安全性等通用服务B.假如需要,开发人员都能够关闭代码安全验证功效C.假如需要,垃圾回收能够手动进行D.开发者不能跟踪代码执行E.运行时,代码与类库是独立第43页答:答:C41.以下关于实时(JIT,Just-In-Time)编译器JIT 叙述不正确是:A.只有方法首次被调
14、用时,才会引发性能冲突,对此方法后继调用都将直达内存块,而完全跳过JIT CompilerB.程序终止时就会放弃已编译代码,假如以后要重新运行该程序,则需要JIT Compiler再次编译C.执行程序时,需要经过两次编译,这就需要分配更多内存,需要额外CPU 时间来完成工作D.JIT Compiler 能够依据本机硬件情况来优化生成代码第44页答:答:C42.只用文件名来区分程序集是不行,这就需要强命名程序集这一机制。一个强命名程序集包含4 个自定义属性,用以唯一识别程序集,以下哪个不属于其中:A.文件名(无扩展名)B.版本号C.元数据D.区域性标识E.公钥标识第45页答:答:A43.在.NE
15、T构架中要求了.NET 语言必须含有一组特征(最小集)是哪一层?A.CLSB.BCLC.CLRD.CTS第46页答:答:A B44.下面相关类和对象关系了解正确是 A.对象是类实例B.一个类能够同时产生多个不一样对象C.同一个类产生多个对象一定是完全相同D.对象是类抽象化表现形式第47页答:答:D45.以下哪种关系不符合继承关系A.植物 牡丹B.汽车 小轿车C.饮料 可乐D.手 食指第48页答:答:B C46.以下关于值类型和引用类型说法正确是 A.对一个引用型变量操作不会影响到其它变量B.对一个值类型变量操作不会影响到其它变量C.引用型变量存放是指向实际对象数据地址D.值类型分配在托管堆中第
16、49页答:答:C47.对日常生活中各种事物提取相同属性和方法以形成类过程称为A.封装B.实例化C.抽象D.继承 第50页答:答:C48.将基类中申明一个方法在不一样派生类中能够用不一样方式实现,这个过程又叫A.继承B.封装C.多态D.抽象第51页答:答:A D49.关于结构函数说法正确是A.结构函数是在创建类实例时被执行B.结构函数是在申明对象时执行C.一个类能够有多个相同结构函数D.一个类能够有多个不一样结构函数第52页答:答:A50.在过程中执行以下代码,输出值是什么?Person为引用类型Person p1=new Person();p1.name=”Jack”;Person p2=new Person();p2=p1;p2.name=”Mary”;Console.WriteLine(p1.name)A.MaryB.JackC.Mary JackD.Jack Mary 第53页答:答:B51.下面代码运行结果是:Imports SystemClass app static void Main()Int32 x;x=5;Addval(x);Console.WriteLine(x);static void Addval(Int32 v)v=v+7;A.7B.5C.12D.程序异常第54页谢谢!谢谢!第55页






