C#复习习题.doc
《C#复习习题.doc》由会员分享,可在线阅读,更多相关《C#复习习题.doc(10页珍藏版)》请在咨信网上搜索。
面向对象程序设计 1.描述new有两种用法 第一种:new Class():创建对象 第二种:覆盖方法 public new XXXX(){} 2.类成员有( )种可访问控制权限 可访问性:public ,protected ,private,internal 3.用sealed修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 4.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. 5.C#中的实现多继承的是什么 答:接口 6.传入某个属性的set方法的隐含参数的名称是什么? value,它的类型和属性所声名的类型相同。 7.委托声明的关键字是___ delegate ___ 8.下面的代码中有什么错误吗?_______ using System; class A { public virtual void F(){ Console.WriteLine("A.F"); } } abstract class B:A { public abstract override void F(); 答:abstract override 是不可以一起修饰. } // new public abstract void F(); 的错误处理机制是什么? 答:.net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。 10.如何在C#中实现继承?也就是继承的格式 在类名后加上一个冒号,再加上基类的名称。 11.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是。可以用任意类型 12.被protected修饰的属性/方法在何处可以访问? 在继承或间接继承与这个类的子类中可以访问。 13.私有成员会被继承么? 会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。 14.请描述一下修饰符protected internal. 被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。 15.C#提供一个默认的无参数构造函数,当实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样应该写几个构造函数? 两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。 16.C#中所有对象共同的基类是什么? System.Object. 17.重载和覆写有什么区别? 重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。 18.在方法定义中,virtual有什么含意? 被virtual修饰的方法可以被子类覆写。 19.能够将非静态的方法覆写成静态方法么? 不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override. 19.可以覆写私有的虚方法么? 不可以,甚至子类中无法访问父类中的私有方法。 20.能够阻止某一个类被其他类继承么? 可以,使用关键字sealed. 21.能够实现允许某个类被继承,但不允许其中的某个方法被覆写么? 可以,标记这个类为public,并标记这个方法为sealed. 22.什么是抽象类(abstract class)? 一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。 23.接口(interface)是什么? 只含有公有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 24. 以下关于C#中方法重载的说法正确的是(CD)。(选择二项) A.如两个方法名字不同,而参数的数量不同,那么它们可以构成方法重载 B.如两个方法名字相同,而返回值的数据类型不同,那么它们可以构成方法重载 C.如两个方法名字相同,而参数的数据类型不同,那么它们可以构成方法重载 D.如两个方法名字相同,而参数的数量不同,那么它们可以构成方法重载 25. 在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用(A)关键字。(选择一项) A.override B.new C.static D.virtual 26. C#中关于委托,下面说法正确的是(ACD)。(选择两项) A.委托是一种类的成员 B.委托必须定义在类中 C.定义委托需要使用delegate关键字 D.委托是一种数据类型 27.下列关于C#的异常处理的说发法,错误的是(BC)。(选择二项) A.Try块必须跟catch块组合使用,不能单独使用 B.一个try块可以跟随多个catch块 C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常 D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行 28. 在C#中,接口与抽象基类的区别在于(D)。(选择一项) A.抽象基类可以包含非抽象方法,而接口只能包含抽象方法 B.抽象基类可以被实例化,而接口不能被实例化 C.抽象基类不能被实例化,而接口可以被实例化 D.抽象类可以包括数据成员,接口只包括抽象函数、抽象属性和抽象索引等,没有数据。 29. 在C#中,(C)访问修饰符修饰的变量只能由当前程序集访问。 A.public B.protected C.internal D.private 分析程序输出结果可以有以下知识点出: 30.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是。可以用任意类型。 31.在下面的例子里 using System; class A { public A() { PrintFields(); } public virtual void PrintFields(){} } class B:A { int x=1; int y; public B() { PrintFields(); y=-1; } public override void PrintFields() { Console.WriteLine("x={0},y={1}",x,y); } 当使用new B()创建B的实例时,产生什么输出? 答:x=1,y=0;x= 1 y = -1 32.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。 33.构造器Constructor是否可被override? 答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。 34.是否可以继承String类? 答:String类是final类故不可以继承。 35.数组有没有length()这个方法? String有没有length()这个方法? 答:数组没有length()这个方法,有length的属性。String有length()这个方法。 36.谈谈finally的作用 答: finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会 执行,然后控制就会进入 finally 块(如果有的话)。 37.成员变量和成员函数前加static的作用? 答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。 38.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法。 答:using 引入名称空间或者使用非托管资源 new 新建实例或者隐藏父类方法 39.什么是虚函数?什么是抽象函数? 答:虚函数:没有实现的,可由子类继承并重写的函数。抽象函数:规定其非虚子类必须实现的函数,必须被重写。 40.c#中的三元运算符是? 答:?:。 41.public static const int A=1;这段代码有错误么?是什么? 答:const不能用static修饰。 42. C#中导入某一命名空间的关键字是(using) 43. C#程序的如口方法名是(main) 45.下列哪些不属于Path类的方法(记住path类的方法或者File类等) 46.Ref参数是引用调用,out参数是输入调用 47. 定义常量的格式 48. C# 中的所有数据类型都派生自(C)类。 A.String B.Int64 C.Object D.Int32 49.对于不返回任何值的方法,其返回类型为(D)。 A.char B.float C.int D.void 50.如果 ALPHA 类继承自 BETA 类,则 ALPHA 类称为(A ),BETA 类称为( )。 A.基类,派生类 B.密封类,基类 C.派生类,基类 D.该表述有误 51.在 C# 中,假设 Person 是一个类,而ITeller 是一个接口,下面的(A)类声明是正确的。 A.class Employee : Person,ITeller B.class Employee : ITeller,Person C.class Employee - Person,ITeller D.class Employee : Person / ITeller 52.已经定义好一个类Person: public class Person { public Person( stirng name, uint age) { } } 在Person的一个派生类Employee里调用Person类的构造函数正确方式为(B)。 A.base.Person (name, age); B.base (name, age); C.Person (name, age); D.this (name, age); 53.(B)关键字用于定义事件。 A.delegate B.event C.this D.Public 54.所有 C# 异常都派生自(D)类。 A.Windows B.Exception C.Common.Exception D.System.Exception 55.用来获取集合类中元素个数的属性是(B) A. Length B. Count C. Capacity D. Number 56.属性的(B)访问器用于将值赋给类的私有实例变量。 A.get B.set C.this D.Value 57.在Person的一个派生类Employee里调用Person类的构造函数正确方式为(B)。 A.base.Person (name, age); B.base (name, age); C.Person (name, age); D.this (name, age); 58.如果未显式赋值,则将整型值(A)赋给枚举中的第一个元素。 A.0 B.1 C.2 D.3 59.对文件进行操作和编程,一般需要引入(C)命名空间 A.System.Data B.System.collections C.System.IO D.System.NET 60.下列关于C#语法规则说法不正确的是(D) A.字母区分大小写 B.同一行可以书写多条语句,但语句之间必须用分号分隔 C.// 用于注释语句,被注释的语句不会被编译 D.值类型变量在使用之前必须先声明,一旦声明后,就具有初始值 61.以下描述错误的是(3) 1. 在C++中支持抽象类而在C#中不支持抽象类。 2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。 3. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。 4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。 61. 传入某个属性的set方法的隐含参数的名称是什么? value,它的类型和属性所声名的类型相同。 62.如何在C#中实现继承? 在类名后加上一个冒号,再加上基类的名称。 63.C#支持多重继承么? 类之间不支持,接口之间支持。类对接口叫做实现,不叫继承。 64. 被protected修饰的属性/方法在何处可以访问? 在继承或间接继承与这个类的子类中可以访问。 65.私有成员会被继承么? 会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。 66. 请描述一下修饰符protected internal。 在同一个Assembly中,他的访问级别和public一样,而跨Assembly访问时,他的访问级别同protected一样。即protected的范围 + internal的范围。 67. C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数? 两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。 68.C#中所有对象共同的基类是什么? System.Object 69. 重载和覆写有什么区别? 重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。 70. 在方法定义中,virtual有什么含意? 被virtual修饰的方法可以被子类覆写。 71. 能够将非静态的方法覆写成静态方法么? 不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。 72. 可以覆写私有的虚方法么? 不可以,甚至子类中无法访问父类中的私有方法。 73. 能够阻止某一个类被其他类继承么? 可以,使用关键字sealed。 74. 能够实现允许某个类被继承,但不允许其中的某个方法被覆写么? 可以,标记这个类为public,并标记这个方法为sealed。 75. 什么是抽象类(abstract class)? 一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。 76. 何时必须声明一个类为抽象类? 当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。 77. 接口(interface)是什么? 只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。 78. 为什么不能指定接口中方法的修饰符? 接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。 79. 可以继承多个接口么? 当然。 80. 那么如果这些接口中有重复的方法名称呢? 这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。 81. 接口和抽象类的区别是什么? 接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。 82. 如何区别重载方法? 不同的参数类型,不同的参数个数,不同的参数顺序。 83. const和readonly有什么区别? const可以用于局部常量,而readonly,实际是类的initonly字段,显然不能是局部的。 84. System.String 和System.StringBuilder有什么区别? System.String是不可变的字符串。System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法 85.用sealed修饰的类有什么特点: sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。 密封类不能同时为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永 远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 86.虚函数的用法: 答: 1)virtual指明一成员函数为虚函数,而virtual仅用于类的定义里,在类外可不加此关键字. 2)一个类的成员函数被定义为虚函数时,子类该函数仍保持虚函数特征. 3)子类覆盖此函数时,定义里可不加virtual关键字,但函数声明要和基类的完全一致!且此声明是必须的. 4)不是纯虚函数时,父类的虚函数必须要实现; 而若将父类的虚函数设定为纯虚函数时,子类必需要覆盖之而且必须要实现之! 87.解释virtual、sealed、override和abstract的区别 virtual申明虚方法的关键字,说明该方法可以被重写 sealed说明该类不可被继承 override重写基类的方法 abstract申明抽象类和抽象方法的关键字,抽象方法不提供实现,由子类实现,抽象类不可实例化。 (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的配合和支持) 编辑版word- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 复习 习题
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文