




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单选题(每个2分,共10分)一、运行下面程序using System;namespace test abstract class BaseClass public virtual void MethodA() Console.WriteLine(BaseClass); public virtual void MethodB() class Class1 : BaseClass public void MethodA() Console.WriteLine(Class1); public override void MethodB() class Class2 : Class1 new public void MethodB() class MainClass public static void Main(string args) Class2 o = new Class2(); o.MethodA(); 请问,此程序输出结果是:1. BaseClass2. BassClass Class13. Class14. Class1 BassClass这个程序的运行结果是“Class1”,原因如下:o为class2的实例对象,调用的是methodA()这个方法,而这个方法在class2的类体里面没有重写,所以会执行其基类class1里面的methodA()方法,输出“Class1”。二、运行下面程序public static void Main(string args)int i = 2000;object o = i;i = 2001;int j =(int) o;Console.WriteLine(i=0,o=1, j=2,i,o,j);请问,程序输出结果:1. i=2001,o=2000,j=20002. i=2001,o=2001,j=20013. i=2000,o=2001,j=20004. i=2001,o=2000,j=2001这个题的运行结果为:i=2001,o=2000,j=2000,原因如下:i的初值为2000,然后将i进行装箱操作,这个o的值为2000,再将i重新赋值为2001,再进行拆箱操作,这样j的值为2000,所以最后i=2001,o=2000,j=2000三、如下程序的运行结果是:using System;namespace test public abstract class A public A() Console.WriteLine(A); public virtual void Fun() Console.WriteLine(A.Fun(); public class B : A public B() Console.WriteLine(B); public new void Fun() Console.WriteLine(B.Fun(); public static void Main() A a = new B(); a.Fun(); Console.ReadLine(); 1. A B A.Fun() 2. A B B.Fun()3. B A A.Fun()4. B A B.Fun()这个题的结果是A B A.Fun(),原因如下:B继承于A,所以这行语句“A a = new B();”表示将子类转换为基类,会先执行基类的构造函数,即A 类的构造函数,再执行B的构造函数,这样会先打印“A”,再输出“B”,然后执行这条语句:a.Fun();,因为B里面的改写的方法Fun(),是用NEW作标记的,这样的在调用的时候,会调用其基类的Fun(),输出“A.Fun()”。四、 Which of these string definitions will prevent escaping on backslashes in C#?*1. string s = #”n Test string”;2. string s = “n Test string”;3. string s = ”n Test string”; 4. string s = “n Test string”;答案是3 ,任何字符串前加符号都表示里面内容原样输出,不转义。五、声明一个委托public delegate int myCallBack(int x); 则用该委托产生的回调方法的原型应该是1. void myCallBack(int x)2. int receive(int num)3. string receive(int x)4. 不确定的 答案是是2分析如下:委托的原型为public delegate int myCallBack(int x);则表示回调方法的返回类型应该是int型的,还应带有一个int 型的参数,根据这个分析,只有int receive(int num)这个原型最符合。填空题(每个空1分,共10分)1.float f=-123.567F; int i=(int)f;i的值现在是_123_? 2.面向对象的语言具有_继承_性、_封装_性、_多态_性3.类成员有_种可访问形式?this.;new Class().Method;静态4.委托声明的关键字是_delegate_?5.在.Net托管代码中我们不用担心内存漏洞,这是因为有了_垃圾收集器_?6.当类T只声明了私有实例构造函数时,则在T的程序文本外部,_不可以_(可以 or 不可以)从T派生出新的类,_不可以_(可以 or 不可以)直接创建T的任何实例。7.能用foreach遍历访问的对象需要实现 _IEnumerable_接口。指错题(每个2分,共6分)1.下面这段代码有两处错误,请指出。 switch (i) case():/这个地方必须有一个整数或是枚举值 CaseZero(); break; case 1: CaseOne(); break; case 2: dufault;/对于default而言,写法应该是这样的default: CaseTwo(); break; 2.下面的代码中有什么错误吗? using System; class A public virtual void F() Console.WriteLine(A.F); abstract class B:A public abstract override void F();/重写基类的方法,应该用override或是new / new public abstract void F();解析如下:就针对代码而言没有什么错误,但是一个抽象类,派生于一个非抽象类,这听起来就有点不习惯,在抽象类中,可以有抽象方法,也可以有非抽象方法,对于抽象方法而言,本身没有具体的实现代码,有的只是签名而已,因为抽象类本就是用来被派生的,而不是派生于别的类。而且抽象类不能被实例化,所以上面的类B,就其应用而言是个废类,没有用处。3.public static const int A=1;这段代码有错误么?是什么?static 和const不能同时修饰一个变量。简答题(每个2分,共62分)1.什么叫应用程序域?什么是强类型系统?什么是重载?CTS、CLS和CLR分别作何解释?答:应用程序域:操作系统和运行库环境通常会在应用程序间提供某种形式的隔离。例如,Microsoft Windows 使用进程来隔离应用程序。为确保在一个应用程序中运行的代码不会对其他不相关的应用程序产生不良影响,这种隔离是必需的。应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。应用程序域通常由运行库宿主创建,运行库宿主负责在运行应用程序之前引导公共语言运行库。托管代码:使用基于公共语言运行库的语言编译器开发的代码称为托管代码。强类型系统:所有的变量都清晰地标记为属于某个特定的数据类型,不允许对模糊的数据类型执行任何操作。装箱和拆箱:装箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储到堆中。拆箱将从对象从堆中转换为栈值类型。重载:成员的签名包含成员的名称和参数列表。每个成员签名在类型中必须是唯一的。只要成员的参数列表不同,成员的名称可以相同。如果类型的两个或多个成员是同类成员(方法、属性、构造函数等),它们具有相同的名称和不同的参数列表,则称该同类成员进行了重载。CTS:通用类型系统,common type systemCLS:通用语言规范common language specificationCLR:通用语言运行时common language runtime 2.什么是装箱和拆箱?答案:装箱和拆箱:装箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储到堆中。拆箱将从对象从堆中转换为栈值类型。重载:成员的签名包含成员的名称和参数列表。每个成员签名在类型中必须是唯一的。只要成员的参数列表不同,成员的名称可以相同。如果类型的两个或多个成员是同类成员(方法、属性、构造函数等),它们具有相同的名称和不同的参数列表,则称该同类成员进行了重载。3.什么是受管制的代码?答案:托管代码:使用基于公共语言运行库的语言编译器开发的代码称为托管代码。4.值类型和引用类型的区别?写出C#的样例代码。对于值类型,变量直接保存其数据,而对于引用类型,栈变量仅保存地址,对应的数据可以在该地址中找到。值类型:int a=100;引用类型:Class AA AA newAA=new AA();5、请指出C#中是否有下列关键字?答案:virtual、sealed、abstract、import、as、in、goto、final、Const、signed、String(提示,仅指出C#中没有的即可)。C#中没有的有:import,final,signed6、在循环:for( int i = 0; i 100; i+ ) Console.WriteLine( i );中,请指出i+的执行时机。i+的执行时机为:当输出i的值后。7、试说明continue关键字的用处。continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。比如:for( int i=1;i=10;i+)if(i100?b-100:b);9,&和&的区别。&是位运算符。&是布尔运算符。&也可以用于逻辑运算,但是效率没有&高10.用sealed修饰的类有什么特点?这样的类不能被继承。11.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。Using指令可以在变量超出作用域时,即使出现异常,也会自动调用其Dispose()方法。new 创建实例 new 隐藏基类中方法。例子:Using(AA newAA=new AA().Public BBPublic void DoSomething()Public AA:BBPublic new void DoSomething()12.详述.NET里class和struct的异同!答案:1,类和结构都是创建对象的模板,都可以使用new来声时实例,并对其进行初始化。但是一般结构都自动实例化。2,但类是引用类型,所以性能相比之下比较差。而结构是值类型,具有很高的性能。3,在结构中不能对字段进行初始化,而在类中可以。4,类可以被继承,而结构则不行。5,类和结构都能继承接口。13.如何理解委托?答案:相当于C+里面的函数指针,可以传递方法或是一个代码段(匿名委托)。14.C#中的接口和抽象类有什么异同。答案:接口永远是公共的,而且里面只能有方法,属性和索引器,不能在接口里面写出方法或属性的实现代码。而抽象类里面可以拥有字段,抽象方法,非抽象方法。如果一个类继承接口和抽象类的抽象成员,则使用效果一样,区别在于对于抽象类的抽象成员要用override重写。15、delegate是引用类型还是值类型?enum、int和string呢?答案:Dellegate就是一个类,所以是引用类型。枚举是值类值数组和string都是引用类型。16、base这个关键字有哪几种语法?override呢?答案:Base主要是用来调用基类的函数成员。Override是用来改写基类中用virtual或者抽象类中的抽象成员标记了的方法。17、object是C#的关键字吗?请指出C#中有哪些类型关键字,如int、float。(提示,写得越多越好)。Object是c#的关键字。在c#里面还有:abstract,do ,in true,else.if ,implicit,override等等。18、简述 private、 protected、 public、 internal 修饰符的访问权限。Private权限最低,仅供类成员访问,但外面不能进行访问。Protected对于在外面的权限和private是一样的,但对于在继承类里面的访问和pullic又是一样的。Public是公共的,在哪里都能访问。Internal对于程序集而言就是公共的,但是在别的程序集就不能访问了。19.C#中的委托是什么?事件是不是一种委托?委托就是用来传递方法的,是一个方法指针。事件不是一种委拖,但事件要指定委拖。20.重载与重写的区别重载是指在方法名相同,但参数不同的的方法,有的可能返回值也不一样。而重写是指在子类里面改写基类的方法。21.abstract class和interface有什么区别?Abstract class是抽象类,不能被实例化,里面的抽象方法只能有方法签名,不能有具体实现,这个接口是一样的。但是抽象类里面可以有非虚的方法,可以有具体实现,也可以有其它的函数成员(比如:字段)。22. 两个对象值相同(x.equals(y) = true),但却可有不同的hash code,这句话对不对?答案:对。23.利用operator声明且仅声明了=,有什么错误么?还要声明!24. 在C中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。String型的是引用类型,如果string str=null表示这个对象存在,只是他的值是null。而如果string str=”,表示这个对象不存在。 25.net的错误处理机制是什么?TryCatchFinally26.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?Public class aa private double abc;Public double thisuint iGetReturn Abci;SetAbci=value;只要定义好之后,可以根据很多东西来索引,比如字符串。等等。27.GC是什么? 为什么要有GC?GC控制系统垃圾回收器(一种自动回收未使用内存的服务)。因为没有引用的对象存放在堆中,需要进行垃圾回收。28.C#可否对内存进行直接的操作?可以,但是要声明为unsafe。29.C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?Property和attribute都是讲属性,但attribute翻译为特性,而且特性一旦与程序实体关联,便能在运行时使用一种叫“反射”的技术对特性进行查询,这种attribute使得对于类成员的描述更加细致,可以在程序运行时对它进行读取,以便下一步的操作,反映了反射是一种动态自我描述,自我检测,自我完善的一种技术。30.进程和线程分别怎么理解?一个进程可是包含多个线程。31. sleep() 和 wait() 有什么区别?sleep()方法是使线程停止一段时间的方法。Sleep是线程自我调用的一种方式,而wait是用于线程并发的时候的一种处理机制。Wait是通过monitor对象自动调用的,如果线程对一个同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年度自考公共课通关题库及答案详解(全优)
- 2025年中共广西委员会党校(广西行政学院)招聘24人笔试备考题库带答案详解
- 2024辅警招聘考试试卷【夺冠】附答案详解
- 自考专业(汉语言文学)练习题及完整答案详解(有一套)
- 2025自考专业(工商企业管理)考试历年机考真题集(综合题)附答案详解
- 2025年医保政策调整与民生福祉关系考试题库
- 2025年心理咨询师基础理论心理测量试题卷
- 2025年美容师高级护理技能测试卷:美容师美容护理市场营销试题
- 2025年小学英语毕业考试模拟卷-语法专项突破同步辅导试题
- 2025年初中学业水平考试地理模拟卷:地理信息技术应用难点解析试题卷
- “趣”破“蛐蛐”小妙招社交魔法课主题班会
- 《数据分析与决策》课件
- 海洋空间资源开发与国家安全教学课件-2024-2025学年人教版(2019)高中地理选择性必修三
- YY/T 1686-2024采用机器人技术的医用电气设备术语、定义、分类
- 职业素养 课件 专题七 主动 给自己创造机会
- 住宅小区保洁服务合同范本
- 《护士输血流程》课件
- 小学英语“have”和“has”的用法(附练习题)
- 《股骨干骨折骨折》课件
- 生产车间5S样板蓝图规划
- 一年级行为好习惯养成教育课件
评论
0/150
提交评论