c19考试题找的累死了.doc_第1页
c19考试题找的累死了.doc_第2页
c19考试题找的累死了.doc_第3页
c19考试题找的累死了.doc_第4页
c19考试题找的累死了.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c 1 9考试题 找的累死了一、单选题:1、C#程序设计语言属于什么类型的编程语言(A)。A.高级语言B.自然语言C.机器语言D.汇编语言2、C#中声明一个命名空间的关键字是(A)。A.namespace B.nameplace C.this D.as 3、C#的数据类型有数值类型和(D)类型两种。A.结构类型B.关系类型C.调用类型D.引用类型4、对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。如圆周率PI始终为。现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?(B)A.const float PI;PI=3.14f;B.const float PI=3.14f;C.float const PI;PI=3.14f;D.float const PI=3.14f;假设a不等于b,并且b不等于false,下列哪个表达式的运算结果为false。(C)A.a!=b B.a=b C.a=b D.a b6、下面有关虚方法的描述正确的是(C)。A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D.在重写虚方法时,需要同时带上override和virtual修饰符7、下列关于继承说法中,哪个选项是正确的?(A)A.继承是指派生类可以获取其基类特征的能力B.继承最主要的优点是提高代码性能C.派生类可以继承多个基类的方法和属性D.派生类必须通过base关键字调用基类的构造函数用关于重载,以下叙述错误的是(D)。A.重载是指在类的内部存在若干个方法名称一致但是参数列表不同的方法B.方法重载是指创建多个名称相同的方法,其中每个方法都在某些方面具有唯一性,以便编译器能够正确区别它们C.重载构造函数的方式与重载方法的方式相同D.方法的重载允许两个方法的名称和参数列表相同,而返回类型不同下列关于多态的说法中,那个是正确的?(C)A.虚方法是实现多态的唯一手段B.重写虚方法时可以为虚方法指定别称C.多态性是指以相似的手段来处理不相同的派生类D.抽象类中不可以包含虚方法11、下面是一个派生类的定义语句:public class car:vehicleprivate string model=L;private int wheelNo=4;请指出针对该定义的正确的说法(A)。A.vehicle类是car类的一个特例,因而它可以被继承B.car类是父类,vehicle类是子类C.在car类中定义的成员model和wheelNo会删除vehicle类中同名的成员D.car类是vehicle类的一个特例,它可以继承vehicle类中除构造函数和析构函数以外的所有成员14、对于trycatchfinally如下结构,下面说法中,哪项是正确的?(A)A.在finaly块中放置return语句,编译可以通过B.无论程序是否出现异常,finally块总是被执行的C.一个try块只能和一个catch块对应D.异常处理时,try块是可以省略的15、以下类MyClass的属性count属于_A_属性。class MyClassint i;int countgetreturn i;A.只读B.只写C.可读写D.不可读不可写16如有int a=11;则表达式(a+*1/3)的值是(B).A.0 B.3 C.4 D.12 17类的字段和方法的默认访问修饰符是(B)A.public B.private C.protected D.internal 18请问经过表达式a=3+3 5?0:1的运算,变量a的最终值是(C)。A.6 B.1 C.0 D.true 19下面有关虚方法的描述正确的是()。A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D.在重写虚方法时,需要同时带上override和virtual修饰符20、下列语句声明了一个委托:public delegate int myCallBack(int x);则用该委托产生的回调方法的原型应该是(B)A.void receive(int x)B.int receive(int num)C.int receive()D.不确定的21、C#中TestClass为一自定义类,其中有以下属性定义public void Property使用以下语句创建了该类的对象,并使变量obj引用该对象:TestClass obj=new TestClass();那么,可通过什么方式访问类TestClass的Property属性(C)A.TestClass.Progerty;B.TestClass.Property();C.obj.Property;D.obj.Property();22、下列关于接口的说法中,哪个选项是正确的?(C)A.一个类可以有多个基类和多个基接口B.抽象类和接口都不能被实例化C.抽象类和接口都可以对成员方法进行实现D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法下列关于构造函数的描述中,哪个选项是正确的?(A)A.构造函数必须与类名相同B.构造函数不可以用private修饰C.构造函数不能带参数D.构造函数可以声明返回类型24、引用数组元素时,数组下标的数据类型可以允许哪项类型?(C)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式在二维坐标系中,通常需要保存一组点的坐标。使用二维数组是一个解决方案。下面哪段代码正确初始化了2行2列的整数二维数组?(A)A.int,array=new int2,2;B.int array=new int22;C.int,array=new int22;D.int array=new int2,2;已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter。现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段代码?(B)A.Season currentSeason=Spring;B.currentSeason=Spring;C.currentSeason=Season.Spring;D.Season currentSeason=Season.Spring;27、_A_技术允许我们创建一个GUI,而不需要编写一行代码。A、可视化编程B、面向对象C、面向过程D、命令结构28、在C#程序中,用_D_开始和结束方法体。A、begin和end B、if和endif C、start和return D、和29、在C#程序中,每个语句必须以_B_作为语句的结束。A、句号(.)B、分号(;)C、逗号(,)D、冒号(:)30、_A_符号开始了一个单行注释。A、/B、/C、*D、note 31、_C_类可以显示消息对话框。A、Console B、WriteLine C、MessageBox D、ReadLine 32、c#在_B_方法处开始执行。A、Function B、Main C、main D、Abstract 33、符号_A_开始了一个方法的定义体。A、B、C、;D、,34、C#程序用包含_D_的方法来指明将从某个命名空间里合并类。A、Main B、main C、Using D、using 35、SOAP的含义是_A_。A、简单对象访问协议B、邮件接受发送协议C、WWW信息访问协议D、远程终端协议36、开发C#程序的集成开发环境是_A _。A、Visual Studio.Net B、IDE C、FRAM D、Common Language Runtime 37、C#的值类型包括简单类型、结构类型和_D_。A、类类型B、接口类型C、委托类型D、枚举类型38、C#的引用类型包括类类型、接口类型、委托类型和_A_。A、数组类型B、简单类型C、结构类型D、枚举类型39、简单类型包含整数类型、字符类型、浮点类型、小数类型和_B_.A、ushort B、bool(布尔类型)C、int D、long 40、对于下列程序语句:char c=x0032;Console.WriteLine(c);上述语句输出的结果是:_。A、32 B、50 C、2 D、0 41、对于下列程序语句:char c=u0032;Console.WriteLine(c);上述语句输出的结果是:_C_。A、32 B、50 C、2 D、0 42、定义枚举类型的语句是_A_。A、enum WeekDaysSun,Mon,Tue,Wed,Thu,Fri,Sat;B、struct PhoneBook;C、class Test D、public Main()43、在E.M形式的引用中,如果M被声明为静态变量,则E必须是_D_。A、对象实例B、数组元素C、值参数D、包含该变量的类44、下列变量声明中,能够在类中各个模块中起作用的变量修饰符是_B_。A、local B、public C、private D、static 45、声明常量的关键字是_D_。A、class B、struct C、const D、interface 46、C#中三元运算符是_A_。A、?:B、%C、+D、-47、下列程序语句中,变量i运算的结果是_D_。int i,a=31,b=10;i=a/b;A、3.1 B、1 C、3.0 D、3 48、下列程序语句中,变量i运算的结果是_。int i,a=32,b=10;i=a%b;A、3.2 B、2 C、3.0 D、3 49、下列程序语句中,变量i运算的结果是_C_。int i,a=10;i=a+;A、11 B、12 C、10 D、9 50、下列程序语句中,变量i运算的结果是_A_。int i,a=10;i=+a;A、11 B、12 C、10 D、9 51、下列程序语句中,变量i运算的结果是_A_。int i,a=10;i=8+a+;A、18 B、19 C、10 D、8 52、所有的程序都可以由3种控制结构组成,即(B)。A、顺序结构、判断结构、多分支结构B、顺序结构、选择结构、循环结构C、选择结构、for结构、if结构D、循环结构、判断结构、主程序结构53、(C)选择结构在条件为真时执行一个动作,而在条件为假时执行另一个动作。A、switch B、if C、ifelse D、ifelse if 54、指明特定数目的循环称为(A)循环。A、计数控制或确定次数B、次数C、计量D、数值55、能够列举集合中的每一个元素的循环语句是(D)。A、while B、do-while C、for D、foreach 56、对计算机程序中的语句将要执行的顺序的描述称为(A)。A、程序控制B、程序执行C、程序调试D、程序编译57、(A)语句可以在多个分支中进行选择。A、switch B、if C、ifelse D、ifelse if 58、能够中断当前的选择或循环,并跳出当前的选择或循环的语句是(B)。A、exit B、break C、goto D、continue 59、能够结束本次循环的语句是(D)。A、exit B、break C、goto D、continue 60、(D)是一种帮助程序员开发算法的人造的非正式语言。A、图表B、流图C、框架D、伪代码61、C#保留了(C)来实现各种特性,例如语言的控制结构。A、语句B、语法C、关键字D、程序62、一个(A)语句通过在一个语句所放置的地方放置一个分号来指明不做任何动作。A、空B、输出空行C、输入空行D、规范63、for循环结构应该用(B)值进行计数。A、浮点数B、整型C、双精度D、字符64、在下面while循环结构中本应循环20次的条件,用关系运算符代替=,将引起一个(C)错误。int i=1;while(x=20)A、逻辑B、语法C、边界D、语句65、在for循环结构中初始化一个控制变量,则该控制变量仅能在该循环体内使用。这称为变量的(D)。A、结构体B、循环体C、控制语句D、作用范围66、for循环结构中,递增发生在每次结构体执行(A)。A、后B、前C、过程中D、循环结束67、for结构头中的多个初始化应该以(D)号分隔开。A、;B、/C、:D、,68、程序代码可以通过和类对象引用一起的(A)操作符来访问该类的成员。A、.B、;C、D、69、声明为(D)的一个类成员,只有定义这些成员的类的方法能够访问。A、public B、internal C、protected D、private 70、(B)能够初始化一个类的实例变量。A、析构函数B、构造函数C、实用函数D、主函数71、属性的(C)方法用来给类的private实例变量赋值。A、get B、main C、set D、math 72、类的方法通常声明为(B),类的实例变量通常声明为()。A、internal,private B、public,private C、internal,public D、public,internal 73、属性的(C)方法用来获取类的private数据的值。A、get B、main C、set D、math 74、关键字(D)表示一个类的定义。A、using B、#define C、namespace D、class 75、类的成员声明为(A)的时候,该类的对象在范围内的任何地方都可访问。A、public B、internal C、protected D、private 76、(C)操作符动态地给指定类型的对象分配内存。A、sealed B、abstract C、new D、protected 77、M是类A中被声明为static的成员,B是类A的对象实例,则引用成员M的正确格式是(B)。A、B.M B、A.M C、M.B D、M.A 78、(A)是软件重用的一种形式。A、重载B、继承C、多态D、事件79、只有在基类的定义或在派生类的定义中,才能访问基类的(C)成员。A、abstract B、sealed C、protected D、public 80、在(B)关系中,一个类的对象也可以被看作它的基类的对象。A、重载B、继承C、多态D、事件81、一个类与它的派生类之间存在(A)关系。A、层次结构B、面向过程C、实体结构D、平面结构82、基类的(C)成员只能在同一程序集中被访问。A、public B、private C、internal D、protected 83、通过(C)引用,派生类构造函数可以调用基类构造函数。A、object B、class C、base D、system 84、将一个基类对象当作(D)可能引发错误。A、方法B、属性C、事件D、派生类对象85、多态性有助于移除不需要的(B)逻辑。A、for B、switch C、dowhile D、foreach 86、如果一个类包含一个或多个abstract方法,它是一个(A)类。A、抽象B、密封C、委托D、保护87、其对象可以被实例化的类称为(C)类。A、抽象B、密封C、实体D、保护88、使用关键字(B)声明的类不能被继承。A、abstract B、sealed C、protected D、public 89、多态性包括使用基类的引用来操纵一个(D)。A、基类B、方法C、命名空间D、派生类对象90、使用关键字(B)可以覆盖类的成员。A、sealed B、override C、abstract D、protected 91、(A)类封装了对方法的引用。A、委托B、枚举C、集合D、构造92、C#中的每个类都直接或间接地继承自(C)类。A、base B、System C、object D、windows 93、关键字(D)引用隐式或者显示地引用对象的实例变量和非static方法。A、that B、object C、class D、this 94、C#中的每个类都有一个(A)函数,它一般向系统返回资源。在垃圾回收程序回收对象占用的内存之前,该函数能够保证被调用来终结该对象上的内务处理。A、析构B、构造C、主函数D、方法95、定义为(C)类型的变量,只能共享一个特殊变量的副本。A、public B、internal C、static D、extern 96、要创建C#类的常量成员,程序员必须用关键字(B)声明。A、static或public B、const或readonly C、internal或extern D、abstract或sealed 97、类通常从该类的客户端隐藏实现细节。这称为(A)。A、信息隐藏B、类的封装C、对象细节D、类的重用98、Visual Studio.NET的(D),显示项目中所有类的变量和方法。A、属性窗口B、资源窗口C、类视图D、对象浏览器99、Visual Studio.NET的(C),列出了C#库中的所有类。A、属性窗口B、资源窗口C、类视图D、对象浏览器100、如果基类方法在派生类中被覆盖,基类方法必须被声明为(B)。A、override B、virtual C、sealed D、new 101、函数名称相同,但参数的个数不同或是参数类型不同,实现时系统会自动选择合适的类型和调用的函数相匹配。这称为方法的(C)。A、继承B、封装C、重载D、构造102、声明命名空间的关键字是(A)。A、namespace B、using C、class D、public 103、执行字符串相加操作,可以用(A)运算符。A、+B、-C、&D、#104、下列程序语句执行的结果是(C)。string str=How are you!;Console.WriteLine(str.Length);A、10 B、11 C、12 D、13 104、下列程序语句执行的结果是(D)。string str1=How are you!;string str2=how are you!;Console.WriteLine(str1=str2);A、0 B、1 C、True D、False 105、下列程序语句执行的结果是(C)。string str1=u0068ello!;string str2=h;str2+=ello!;Console.WriteLine(str1=str2);A、0 B、1 C、True D、False 106、下列程序语句执行的结果是(B)。string str1=abcd;string str2=str1.Insert(1,EE);Console.WriteLine(str2);A、aeebcd B、aEEbcd C、EEabcd D、AeeBCD 107、下列程序语句执行的结果是(A)。string str1=toachor;string str2=str1.Replace(o,e);Console.WriteLine(str2);A、teacher B、toacher C、teachor D、toachor 108、下列程序语句执行的结果是(B)。string str1=good morning;string str2=str1.Substring(9,3);Console.WriteLine(str2);A、nin B、ing C、rni D、ng 109、下列程序语句执行的结果是(C)。string str1=Hope;string str2=str1.ToUpper();Console.WriteLine(str2);A、hope B、Hope C、HOPE D、hOPE 110、下列程序语句执行的结果是(A)。string str1=Hope;string str2=str1.ToLower();Console.WriteLine(str2);A、hope B、Hope C、HOPE D、hOPE 111、可以将表和表格的值存储在(B)中。A、公共变量域B、数组C、字符串D、方法112、用来表示一个特定的数组元素的数叫做它的(D)。A、元素B、变量C、常量D、下标112、有两个或者两个以上下标的数组叫做(D)数组。A、高级B、低级C、优先D、多维113、C#提供(C)循环结构来遍历数据结构,比如数组中的值。A、while B、do C、foreach D、for 114、当出现一个无效的数组参数时,就会弹出(A)对话框A、IndexOutofRangeException B、NullReferenceException C、OverflowException D、InvalidCastException 115、枚举类型中的每个符号常量对应一个(B)。A、符号B、整数C、字符D、文字116、可以通过一个主题词访问其项目的数据类型是(A)。A、数组B、结构C、枚举D、集合117、每一个数组的第一个元素是数组的第(C)个元素。A、1 B、1或0 C、0 D、X 118、一个数组的最大下标为(B)。A、数组的长度B、数组的长度减1 C、数组的长度加1 D、数组的长度减2 119、对于定义为数字基本数据的数组,所有的元素都被初始化为(A)。A、0 B、true C、false D、null 120、对于定义为bool基本数据的数组,所有的元素都被初始化为(C)。A、0 B、true C、false D、null 121、接口的定义只包含(C)。A、类定义B、方法定义C、方法实现D、类实现122、程序模块之间可以使用(A)来定义组件的功能和行为方式。A、接口B、类C、方法D、事件123、传统的分布式应用程序大多是两层的(B)模式A、单机B、浏览器/服务器(B/S)C、客户机/服务器(C/S)D、主机124、组件接口的描述标准是(D)。A、SQL B、ASP C、CLR D、接口描述语言IDL 125、接口是组件之间通信的(C)。A、标准B、程序实现C、协议、规则D、描述126、定义接口使用关键字(A)。A、interface B、class C、delegate D、collection 127、接口可以通过(A)来实现。A、方法B、属性C、事件D、类或结构128、类必须为在基类表中列出的所有接口的成员提供具体的实现,在类中定位接口成员的实现称为(B)。A、方法B、接口映射C、函数嵌套D、属性定义129、如果一类实现了4个接口,这些接口又拥有同一个父接口,则这个父接口只允许被实现(A)次。A、1 B、2 C、3 D、4 130、所有接口成员默认都是(C)访问。A、私有B、内部C、公有D、保护131、完全有效名称是由接口名加(D)符号,再跟成员名。A、;B、C、D、.132、显示接口成员执行体只能通过(B)引用接口的成员名称来访问。A、对象的实例B、接口的实例C、类的实例D、抽象方法133、异常处理程序可以处理(A)错误。A、同步B、异步C、同步和异步D、非正常132、在方法检测到有问题发生时,该方法抛出一个(B)。A、错误B、异常C、系统类D、方法133、与try块相关的(C)块始终可以执行。A、try B、catch C、finally D、exception 134、异常对象是从(D)类派生而来的A、System B、Math C、String D、Exception 135、抛出异常的语句被称为异常的(A)。A、抛出点B、错误点C、异常语句D、中断点136、(A)块封装了可能引发异常的代码。A、try B、catch C、finally D、exception 137、如果在一个异常处理程序前声明了catch-all异常处理程序,一个(B)发生。A、逻辑错误B、语法错误C、溢出错误D、没有错误138、如果方法Convert.ToInt32的参数不是一个有效的整型值,可以抛出一个(D)异常。A、OverflowException B、DivideByZeroException C、ArithmeticException D、FormatException 139、当在选中的上下文中进行的算术操作、类型转换或转换操作导致溢出时,可以抛出一个(A)异常。A、OverflowException B、DivideByZeroException C、ArithmeticException D、FormatException 140、当试图用整数类型数据除以零时,可以抛出一个(B)异常。A、OverflowException B、DivideByZeroException C、ArithmeticException D、FormatException 141、当试图合并两个非空委托失败时,可以抛出一个(D)异常。A、InvalidCastException B、ArrayTypeMismatchException C、IndexOutOfRangeException D、MulticastNotSupportedException 142、当试图通过一个比零小或者超出数组边界的下标来引用一个数组时,可以抛出一个(C)异常。A、InvalidCastException B、ArrayTypeMismatchException C、IndexOutOfRangeException D、MulticastNotSupportedException 143、当因为存储元素的实例类型与数组的实际类型不匹配而造成数组存储失败时,可以抛出一个(C)异常。A、InvalidCastException B、ArrayTypeMismatchException C、IndexOutOfRangeException D、MulticastNotSupportedException 144、当一个从基本类型或接口到一个派生类型的转换运行失败时,可以抛出一个(A)异常。A、InvalidCastException B、ArrayTypeMismatchException C、IndexOutOfRangeException D、MulticastNotSupportedException 145、当一个静态构造函数抛出一个异常,并且没有任何catch语句来捕获它的时候,可以抛出一个(A)异常。A、TypeInitializationException B、NullReferenceException C、StackOverflowException D、OutOfMemoryException二、判断题(N)1.在C#2005编程环境中,常量的值可以在代码中被修改。(Y)2.对象与对象之间的关系可以分为三类:包含、继承和关联。(Y)3.属性就是实体特征的抽象,比如,对象猫可以有重量,身长等属性。(N)4.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。(Y)5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。(Y)6.如果在try块之后没有任何catch块,那么finally块也是可选的。(Y)7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。(Y)8.try块是不可以实现嵌套的,但是一个try块可以对应多个catch块。(Y)9.密封类不允许被继承,因而不能由密封类派生岀其他类。(N)10.方法的重载允许两个方法的名称和参数列表相同而返回类型不同。(N)11.+、-、*、/、%、+、-均属于二元运算符。(Y)12.字符串类型属性引用类型。(N)13.Visual Studio控件的属性窗口中,按钮A-Z点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。(N)14.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。(Y)15.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。(N)16.隐式类型转换就是不需要声明目标类型就可以进行的转换?(Y)17.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。(Y)18.在C#中在派生类中重新定义基类类的虚函数必须在前面加override。(Y)19.C#中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。(Y)20.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数。(N)21、在程序执行的时候,注释使得/后面的文本打印在屏幕上。(Y)22、开始于/的注释被称为单行注释。(Y)23、每个C#程序必须包含一个Main方法。(Y)24、C#应用程序从Main方法开始执行。(N)25、定义类和方法的花括号不必成对匹配。(N)26、编译器使用class语句标识C#程序中引用的命名空间。(Y)27、C#是一种面向对象语言。(N)28、公共语言运行库(CLR)要求程序员管理它们自己的内存。(N)29、C#是.NET应用程序惟一可用的语言。(Y)30、无论使用哪种.NET语言,MSIL是所有的.NET程序编译成的通用中间格式。(Y)31、所有的变量在声明它们的时候必须给出数据类型。(N)32、C#认为变量number和Number是等效的。(N)33、算术运算符*、/、%、+、-都在同一个优先级上。(N)34、包含在双引号之间的一串字符被称为短语或短语文字。(Y)35、整数除法产生一个整数商。(N)36、括号在算术表达式中不能用来强迫运算符按照程序所希望的顺序计算。(N)37、赋值表达式中赋值符号的左侧总是先行计算。(Y)38、C#中的算术表达式必须被写成直行的形式,以方便向计算机里输入数据。(Y)39、当一个值被存储到内存空间时,这个值将替换该位置原来的值。(Y)40、说运算符按照从左到右的顺序应用指的是运算符的结合。(N)41、一个变量就是用来存储一个值的计算机的外存的位置。(Y)42、像int、float、double和char这样的数据类型常被称为内置(预定义)数据类型。(N)43、C#能够在自身已有数据类型的基础上创建新的数据类型。(Y)44、可以利用枚举和结构两种值类型声明新的数据类型。(Y)45、可以通过声明接口和委托两种引用类型来生成新的引用类型。(Y)46、所有的对象都通过引用传递参数。(N)47、构造函数可以返回值。(N)48、属性必须定义get和set存取程序。(Y)49、对象的this引用是对该对象本身的引用。(Y)50、static成员即使该类型没有对象存在也可以引用。(N)51、类的static成员可以通过该类的实例来引用。(N)52、声明为const的变量,必须在声明时或在该类的构造函数中初始化。(N)53、不同的命名空间中不能有名称相同的类或方法。(N)54、程序集文件不一定必须要求定义一个入口程序Main()。(Y)55、在C#中,索引器可以返回任一类型。(Y)56、基类的构造函数不能被派生类继承。(N)57、默认情况下,所有方法都可以被覆盖。(Y)58、类System.Object方法ToString被声明为virtual。(N)59、在派生类使用相同的符号重定义基类后,称为派生类覆盖了基类的方法。(Y)60、继承能促进高质量软件重用性。(F)61、抽象基类的方法中,所有方法必须被声明为abstract。(Y)62、具有抽象方法的类必须声明为abstract。(N)63、声明为abstract的方法在它们被声明时仍必须被实现。(Y)64、使用sealed声明的类不能被派生。(Y)65、多态性允许程序员使用到基类的引用管理派生类。(Y)66、多维数组有两种类型,即方阵和参差数组。(Y)67、为确定数组元素的个数,可以用NumberOfElements来确定。(N)68、每次比较后,折半查找法可以排出数组的三分之一元素。(Y)68、每个枚举类型都自动从类System.Enum派生。(N)70、枚举类型可以使抽象的。(Y)71、在C#中,有些枚举元素的值是可以相同的。(N)72、在C#中,枚举元素的值是不能重复的。(N)73、用for语句遍历集合中的每一个元素。(Y)74、集合类型应包含一个名为Current的public实例属性。(N)75、String类没有ToString方法。(Y)76、接口的好处就在于它定义了一套协议、标准,使人们可以分工合作,每个人可以致力于自己问题的解决,从而促进生产效率的提高。(Y)77、一个接口可以从多个基本接口继承,而一个类或结构也可以实现多个接口。(N)78、接口允许直接或间接地从自身继承。(N)79、可以从private类型或internal类型的接口继承。(Y)80、所有接口成员默认都是公有访问。(Y)81、接口成员声明中包含任何修饰符都是错误的。(N)82、如果类实现了某个接口,不能表示它也必然隐式地继承了该接口的所有父接口。(N)83、如果每个成员都显示地指出了被实现的接口,以这种方式实现的接口称为隐式接口成员。(N)84、实现接口类不可以通过声明显示接口成员执行体的办法。(Y)85、只有类在声明时把接口名写在了基类列表中,而且类中声明的完全有效名称、类型和返回类型都与显示接口成员执行体完全一致时,显示接口成员执行体才是有效的。(N)86、异常始终在最初检测到异常的方法中进行处理。(N)87、程序员定义的异常类应该能够扩展类SystemException。(Y)88、访问一个超出边界的数组下标,导致CLR抛出异常。(Y)89、在try后的finally块是必选的。(Y)90、throw语句可以抛出异常对象。(Y)91、默认情况下,计算是在unchecked场景中进行。(N)92、如果在方法中出现finally块,可以保证finally块的执行。(N)93、使用关键字return返回异常的抛出点是可能的。(Y)94、可以重新抛出异常。(Y)95、运算符+、-、*、/、+、-在使用整型数据类型,可能发生溢出。在整型数据类型间直接转换也可能发生溢出。T(N)96、在发生整型算术溢出时,checked运算符引发语法错误。(N)97、属性Message返回一个字符串指明引发异常的方法。(N)98、只有在try块中显示地调用方法,才能抛出异常。(Y)99、Exception属性InnerException通常将捕获的异常对象封装到一个新的异常对象中,然后抛出新的异常类型对象。(Y)100、CLR抛出的异常信息出现在C#语言规范(Language Specification)中。三、简答题1、.C#中的委托是什么?事件是不是一种委托?答:委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的引用。是,是一种特殊的委托2.override与重载的区别答:override与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要,Override是进行基类中函数的重写。为了适应需要。3.GC是什么?为什么要有GC?答:GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()4.String s=new String(xyz);创建了几个String Object?答:两个对象,一个是xyx,一个是指向xyx的引用对像s。5.abstract class和interface有什么区别?答:声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽像类的变体。在接口中,所有方法都是抽像的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对像上调用接口的方法。由于有抽像类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。6、成员变量和成员函数前加static的作用?答:它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。分别用来反映类的状态。比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。7、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using指令和语句new创建实例new隐藏基类中方法。答:using引入名称空间或者使用非托管资源new新建实例或者隐藏父类方法8、publicprotectprivateinternal修饰符的区别public:对任何类和成员都公开,无限制访问;protected:仅仅对该类以及该类的派生类公开;private:仅仅对该类公开;internal:只能值包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案);protected internal:只能在本类,派生类或者包含该类的程序集中访问.9、解释string str=nullstring str=str=null,声明而不分内存空间,str=声明而分内存空间10、解释重载/覆盖重载是方法的名称相同参数和参数的类型不同.进行多次重载以进行不同的需要.11.接口和类的异同接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念。而类是负责功能的具体实现!在类中也有抽象类的定义,抽象类与接口的区别在于:抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。但接口是一个行为的规范,里面的所有东西都是抽象的。一个类只可以继承一个基类也就是父类,但可以实现多个接口11.using/new各自的意义using引入名称空间或者说使用非托管资源new新建实例或隐藏父类方法,12.详述.NET里class和struct的异同!class:放在?struct放在?struct值传递类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在在堆栈上或内联。细心的程序员有时可以通过聪明地使用结构来增强性能。14、详述.NET里class和struct的异同!class:放在?struct放在?struct值传递类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在在堆栈上或内联。细心的程序员有时可以通过聪明地使用结构来增强性能。13、请叙述类与结构的区别。1)、结构是值类型;2)、结构不支持继承;3)、结构不能定义默认的构造函数;4)、结构不能定义析构函数;5)、结构不能使用初始值设置域值。15、.值类型和引用类型的区别?答:值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型l。16、面向对象的三大基本原则?答:封装,继承,多态。17.在.NET中所有类的基类是?答:object。18.能用foreach遍历访问的对象需要怎样实现?答:需要实现IEnumerable接口和GetEnumerator()方法。19.Heap与Stack的差别?答:Heap是堆,空间是由手动操作分配和释放的,它的存储区是很大的自由存储区。Stack是栈,是由操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。13、11.CTS、CLS、CLR、分别作何解释?答:CTS:通用语言系统。CLS:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论