C#题.docx
《C#题.docx》由会员分享,可在线阅读,更多相关《C#题.docx(15页珍藏版)》请在冰豆网上搜索。
C#题
(1)下列关于C#语言特点的描述正确的有哪些(BD)?
AC#继承于C/C++,所以C#的功能要比前两者强大。
BC#语言的跨平台性是基于.NET平台的
CC#语言对面向对象机制的支持要比C++全面
DC#语言能更好地与XML融合
(2)下列说法中不正确的是(D)?
AC#中以“;”作为一条语句的结束
BC#中注视是不参与编译的
CC#有三种不同的注释类型
Dswith语言中case标签结束可是有跳转语句,也可以没有。
(3)下列哪些标识符是合法的(ADE)?
AStudentB3_ACnewD@publicE_age
(4)下列关于变量的说法中正确的是(ABC)
AC#中变量可以划分为值类型和引用类型
B在同一行中可以申请多个变量
C可以在定义变量的同时为其赋值
D变量是用来存放数据值的
(5)下列哪些是C#的引用类型(ABD)?
A 类类型 B 接口类型 C结构类型D 字符串类型
(6)判断下列语句中哪个存在语法错误(B)。
boola=trueboolb=falseboolc=trueinti=0
Aif(a||b)Bif(i)Cif(i!
=3)Dif((i==3)==false)
(7)下列关于switch语句的表述中哪些是错误的(ACD)?
Aswitch语句的控制表达式可以是任何数据类型
Bswitch语句可以出现default标签,也可以不出现default标签
Cswitch中可以有两个或两个以上的case标签的常量与控制表达式的值相同
Dswitch语句中case标签结束可以有跳转语句,也可以没有。
(8)下列关于异常处理的表述中哪些是正确的(D)?
Atry、catch、finally三个字句必须同时出现,才能正确处理异常
Bcatch字句能且只能出现一次
Ctry字句中所抛出的异常一定能被catch字句捕获
D无论异常是否抛出,finally子句中的内容都会被执行。
(9)下面程序的执行结果为(D)
ClassMainClass
{PublicstaticvoidMain(string[]args)
{intx=10;
inttemp=0;
for(inti=0;i{Temp+=I;}Console.WriteLine(temp);Console.ReadLine();}}A45B55C66D抛出异常(10)将下面while循环语句改为for循环语句,哪些选项是正确的(A)?while(i<=100){sum=sum+i;i++;}Afor(;i<=100;)Bfor(i=0;j<101;j++){sum=sum+i;i++;}{sum=sum+i;i++;}Cfor(i=0;i<100;i++)Dfor(i=0;i<=99;i++){sum=sum+i;++i;}{sum=sum+i;++I;}(11)int[][]myArray3=newint[3][]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[3][2]的值是(D)A9B2C6D越界(12)下列关于数组与集合类的描述中,哪些是错误的(C)A数组大小固定,不能变化B集合元素的类型为ObjectC数组可以声明为只读D数组与集合都可以通过下标访问(13)下面程序的输出结果是(A)ClassMainClass{pblicstaticvoidMain(string[]args){System.Collections.Queuequ=newQueue();Foreach(intiinnewint[4]{1,2,3,4}){qu.Enqueue(i);}for(inti=0;i<4;i++){Console.WriteLine(qu.Dequeue());}Console.ReadLine();}}A1234B4321C1111D4444(14)下列关于HashTable的说法正确的(ABC)A:HashTable中key/value的值既可以是值类型数据又可以是引用类型数据B:HashTable类可以通过Add方法向其中加入一个名/值对;C:可以对HashTable对象的内容进行排序D:哈希表可以像数组一样,通过索引的方式访问其中的元素(15)下面程序输出的结果是(C)ClassPrograf{PublicstaticvoidMain(){SortedLists1=newSortedList”();Sl[“c”]=41;Sl[“a”]=42;Sl[“d”]=11;Sl[“b”]=13;Foreach(DictionaryEntryelementins1){Strings=(string)element.Key;inti=(int)element.Value;Console.WriteLine(“{0},{1}”,s,i)}}}A:c,41a,42d,11b,13B:”c”,41”a”,42”d”,11”b”,13C:a,42b,13c,41d,11D:“a”,42“b”,13“c”,41“d”,11(16)以下关于类的描述中,不正确的有(D)A;类是对自然现象或实体的程序语言描述B;类是对一组相似对象的抽象C;类是一种虚拟的概念D;对象是类的实例化,所以现有类,后有对象(17)下列关键字中哪些不能作为修饰类(C)A:sealedB:abstractC:overrideD:public(18)关于静态成员的描述,正确的是(AB)A:静态成员属于类,不属于某一个类的实例。B:不同的类实例处理类的静态域时,访问的是同一个存储空间的数据C:在静态方法中可以使用this关键字D:通过一个类的实例可以访问类的静态成员。(19)下列关于this关键字的描述,哪些是不正确的(CD)A:在类的构造函数中this表述对正在构造的对象本身的引用B:在类的方法中this表示对调用该方法的对象的引用。C:this可出现在任何地方。D:this指代的为某一个对象,故可对其进行算术运算(20)关于构造函数,下列表述正确的是(CD)A:构造函数是由编译系统自动调用,故构造函数只能由编译系统调用B:构造函数只需要完成初始化操作,故返回值类型为void。C:构造函数分为静态构造函数和实例构造函数,实现不同类型成员的初始化。D:可以在静态构造函数中初始化实例成员,也可以在实例构造函数中初始化静态成员。(21)关于静态构造函数,表述不正确的是(D)A:静态构造函数最多只运行一次且不可以被继承。B:如果没有自定义静态构造函数,翻译系统会自动生成默认构造函数。C:一个类只能有一个静态构造函数。D:静态构造函数像实例构造函数一样,可以有参数也可以无参数。(22)下列关于只读域的描述中哪些是正确的(ABD)A:只读域只能通过readonly关键自定义B:只读域只能在声明时进行初始化,不能在构造函数中初始化C:readonly与const关键字的作用是一样的D:只读域可以是C#支持的任何类型(23)下列关于属性的描述正确的是(ABD)A:属性是对现实世界中实体特征的抽象B:C#中的属性机制只是为了编程提供了便利,并没有提供新的功能C:属性不仅是对实体特征的抽象还用来存储具体实体特征值D:类似于域,属性可以分为实例属性与静态属性(24)下列关于委托机制中的描述中正确的是(ACD)A:委托是对方法的一种封装,类似于C++中的函数指针B:委托的定义和方法的定义类似,只是在前面加了一个delegate关键字,故委托不称为是方法C:实例化委托时,传入的参数可以是静态方法,也可以是实例方法D:可以用一个委托区封装另一个委托(25)声明一个委托publicdelegateintmyCallBack(intx);则用该委托长生的回调方法的原型应该是(B)A:voidmyCallBack(intx)B:intreceive(intnum)C:stringreceive(intx)D:不确定(26)关于事件的描述正确的是(ABCD)A:事件既不是值也不是引用,而是由event关键字修饰的一类特殊的委托B:事件必需是一种委托C:订阅事件就是将某个委托对象指向一个具体的方法D:当程序中满足某个条件时调用事件就是引发了事件(27)关于属性和域的描述错误的是(AC)A:都属于类的成员,用来保存类的实例的各种数据信息B:设置属性时,可以通过return来读取值,通过value来设置属性值C:进行域值的设置时,可以通过get和set访问器来进行D:进行属性值的设置时,可以通过get和set访问器来进行(28)下列关于传值方式的描述中正确的有哪些(ABD)A传值方式下,形参得到的值仅仅是实参值的一份拷贝,而不是实参本身。B传值方式下在方法中对形参的改变并不会“反应”到方法外的实参上。C传值方式下参数一定不能为引用类型,只能是值类型。D类的构造函数若包含参数,则一定是采用传值方式。(29)下列关于引用传递方式的描述中正确的是(CD)A引用传递方式下,参数一定是引用类型,而不能是值类型。B当形参本身为引用类型时,其面前不加ref关键字也是引用传递方式。C引用传递方式下,形参或实参只需一个用ref关键字修饰即可。D引用传递方式的效率较值传递低。(30)下面程序的输出结果是(B)UsingSystem;Publicclasssamp{Publicintdata=2;}PublicclassClass1{PublicstaticvoidFun1(sampd){d=newsamp();d.data=20;}PublicstaticvoidFun2(sampd){d.data=20;}PublicstaticvoidMain(string[]atgs){Sampd=newsamp();Fun1(d);Console.WriteLine(d,i);Fun2(d);Console.WriteLine(d.i);}}A2/2B2/20C20/2D20/20(31)下列关于方法重载的描述中哪些是正确的(AB)A构成重载的多个方法必须方法名完全一致。B构成重载的多个方法应完成相类似的功能。C两个方法仅有返回值类型不同也可以构成重载关系。D构成重载的多个方法,它们的参数类型和参数个数必须相同。(32)下列关于运算符重载的描述中哪些是错误的(ABC)A运算符重载实质是方法的重载。B二元运算符可以重载为类的实例方法,其中一个操作数是当前的对象。C一元运算符只能重载为类的静态方法。D重载后的运算符可以改变原有的优先级。(33)下列哪些运算符不可以被重载(C)A++B%C.D<=(34)下列关于继承机制的描述中正确的是(ABC)A提供继承机制有利于提高软件模块的可重用性及可扩充性。B继承机制能使面向对象的开发语言能够更准确的描述客观世界,使软件开发方式变简单。C继承机制使得软件开发过程效率更高。D继承机制使得软件开发的难度相对增加。(35)下列关于基类与派生类的描述中哪些的正确的(BC)A有派生类的存在一定有基类存在,反之不尽然。B基类和派生类是相对,派生类还可以作为基类派生其他派生类。CC#中一个基类可以派生出多个派生类。DC#中一个派生类可以从多个基类继承得到。(36)下列基类与派生类关系的描述中哪些是正确的(B)A派生类可以只继承基类中自己想要的成员。B在派生类中可以自定义成员。C派生类中继承基类的成员与基类的成员具有相同的存储空间。D基类的私有访问类型成员不能被派生类所继承。(37)下列关于虚方法的描述中哪些是正确的(ABC)A虚方法定义是时除virtual关键字外,其余与非虚方法一样。B定义虚方法的目的即是为了在当前类的派生类中对其进行重写。C虚方法的调用要在晕死你个时才能确定。D在派生类中重写虚方法后,基类中的该方法将被屏蔽。(38)下列关于密封机制的描述中哪些是正确的(AB)A如果一个类没有被继承的必要,可以将其定义为密封类。BSealed关键字除了修饰类外,还可以修饰方法。CSealed关键字也可以修饰一个非虚方法。DSealed修饰一个未经重写的虚方法时,编译器会查出语法错误。(39)下列关于抽象类的描述中哪些是正确的(BD)A抽象类并不是通过对一组像是对象的抽象而得到的。B定义抽象类的目的仅仅是为了让其作为基类产生不同的派生类,简化编程。C一个类既可以是抽象类又可以同时是密封类。D抽象类不可以实例化对象。(40)以下描述错误的是(A)A在C++中支持抽象类而在C#中不支持抽象类。BC++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处横名和定义类的成员。C在C#中可使用new修饰符显式隐藏从基类继承的成员。D在C#中要在派生类中重新定义基类的虚函数必须在前面加Overide.(41)下列关于继承的理解,错误的是(A)A子类可以从父类中继承其所有的成员。B无论是否声明,子类都继承自object(System.object)类。C假如,类M继承自类N,而类N又继承自类P,则类M也继承自类P。D子类应是对基类的扩展。子类可以添加新的成员,但不能出去已经继承的成员的定义。(42)在继承中,当子类的成员声明中,可以声明与父类成员同名的成员,这时,须使用的关键字是(B)AvoidBnewCbaseDstatic(43)下列哪些说法是泛型具有的优点(ABC)?A泛型机制提高可代码的质量与重用型。B泛型是类型安全的。C使用泛型有利于提高程序的性能。DC#中泛型机制是通过模板实现的。(44)泛型结束包括一下哪些类型(ABCD)?A基类约束。B接口约束。C值/引用类型约束。D构造函数约束。(45)泛型的基类约束具有如下哪些功能(AC)?A它允许在泛型类中使用指定约束类的成员。B泛型类实例化可以使用任意类型为类型参数赋值。C基类约束下类型参数的值只能是约束类及其派生类。D在与其他类型约束混合使用的情况下,基类约束应被放到最后。(46)下列关于构造函数的描述中正确的是(ABC)?A它可以与其他约束一起使用,但是必须位于约束列表的末端。B构造函数约束允许开发人员实例化一个泛型类型的对象。C构造函数约束要求类型参数必须提供一个无参数的构造函数。DOffice文件由开发人员创建。(47)下列关于泛型使用的描述中正确的是(ABCD)A使用泛型需要引用System.Collections.Generic命名空间。B泛型类型中可以定义多个参数。C可以在泛型类型中定义泛型方法、委托以及事件等。D在程序中可以定义嵌套泛型。(48)下列关于窗体的描述中那些是不正确的(c)A窗体可看作是画布,在上面可以进行绘画工具。B窗体可看作是容器,用来包含放置在其上的不同控件。C窗体的功能由Form类来实现,在窗体上放置的控件,都是某个窗体类的成员。D窗体类通常作为基类,通过派生标准窗体类添加新成员,形成一个特定的窗体。(49)开发基于C#的Windows应用程序需要引用哪个名空间(b)?ASystemBSystem.FormsCSystem.CollectionsDSystem.Data(50)RichTextBox的属性中可以获取或设置被选中的文件,但格式化信息会丢失的是(b)?ASelectedRtfBSelectedTextCSelectedProtectedDSelectedBullet(51)下列描述中哪些是错误的(c)?A一般方法名是把控件名、下划线和要处理的事件名连续在一起。B以从ListBox中一次选择一个或多个选项。CRichTextBox控件是由Text属性来设置文本格式的。DTabControl控件的属性一般用于控制TabPage容器的外观,特别是正在显示的选择卡。(52)下列不是Button控件的主要作用的是(b)。A用某种状态关闭对话框,B显示标题。C给对话框上输入的数据执行操作。D打开另一个对话框或应用程序。(53)下列哪些控件可以作为容器(bd)?ALable控件。BTabConreol控件。CButton控件。DGroupBox空间。(54)C#工具栏中的工具项不包括如下哪些类型(c)?AButtonBLabelCProgressDRichTextBox(1)floatf=-123.567F;inti=(int)f.则i的值现在是(-123)。(2)委托声明的关键字是(delegate)。(3)当整数a赋值给一个obiect对象时,整数a将会被(装箱)。(4)要想在输出中换行,可以使用(\n)转义字符。(5)引用类型的数据将被编译系统存放到(堆内存)中。(6)数据类型转换分为(隐式转换)和(显式转换)两种。(7)可以使用字符串类提供的(ToCharArray)方法将字符串转换为字符数组。(8)设a=true,b=true,c=false,d=5,下列表达式的值(编译错误:运算符“&&”无法应用于“int”和“bool”类型的操作数;True;)。?????(9)优先级最高的运算符是(())。(10)常用的程序结构包括(顺序、分支、循环)。(11)能跳出循环的语句有(break;reuturn;goto;continue)(12)有成语如下:classMainClass{publicstaticvoidMain(string[]args){intx=3;booly=false;if(x==3)if(y)Console.WriteLine(y);elseConsole.WriteLine(x);ConsoleReadLine();}}该程序输出结果为:(3)。(13)foreach循环结构中迭代变量的类型为(集合中元素的类型)。(14)C#中禅城异常的方式有(在C#语句和表达式的处理过程中激发了某个异常的条件,使得操作无法正常结束,引发异常、抛出异常)。(15)ArrayList类中将元素按从大到小的顺序排列数组的方法是(Sort())(16)ArrayListaList=newArrayList()aList.Add(“123”);aList.Add(“abc”);foreach(stringaStrinaList){if(aStr.Equals(“abc”)){aList.Remove(aStr);Console.WriteLine(aStr);}}该程序段输出结果为(抛出异常、集合已修改;)为什么会有这样的结果(可能无法执行枚举操作。)(17)Queue类的Peek()方法的作用是(获取头部元素数据)(18)stack类的Peek()方法与Pop()方法的差异(Peek方法仅获取栈顶元素数据,Pop方法删除栈顶元素)()能用foreach遍历访问的对象需要实现(System.IEnumerable)接口或声明(实现集合模式)的方法类型(19)哈希表也称(名值对)(20)HashTable与SortedList的区别是(SortedList中的Key数组排好序的)(21)面向对象理论的三大特征(封装、继承、多态)(22)下列程序的输出结果为:(编译错误,使用了未赋值的局部变量)classA{Publicinta=8;Publicvoiddisplay(){System.Console.WriteLine(a);}}classB{StaticvoidMain(){Amya;mya.display()}}(23)类的成员包括(域、属性、方法、委托、事件、接口)(24)类成员的访问限制符有(publicprivateprotectedinternal)(25)类的protected类型成员只允许在(当前类)和(其子类)被直接访问。(26)this关键字仅限于在(构造函数)、(类的方法)和(类的实例)中使用。(27)域的修饰符包括(publicprivateinternalprotectedreadonly)等(28)C#中类的域可以(定义时)初始化,也可以以在(构造函数中)初始化(29)C#中的域如果没有被显式地初始化,其初值为(该类型的默认值)(30)使用(readonly)关键字可以定义一个类的只读域(31)C#中属性可以被可以看作是对(域)的封装(32)使用(virtual)关键字可以声明一个类的虚拟属性(33)静态属性只能通过(类)类调用(34)定义一个只读属性并不需要(set)关键字,只需要实现(get)即可(35)在Set访问器中,除了对域进行赋值外,还可以进行(其他必要的操作,如判断输入是否合法)(36)方法又称为(功能、函数、服务)等,它们表达相同的意思,只是看待问题的角度不同的称呼。(37)类的方法声明中,若没有显式指定方法的访问修饰符,则默认为(private)。(38)在方法的参数列表中定义的参数成为(形参)。(39)在调用方法时们提供的实参的(实参)与(形参)要与形参一致。(40)C#支持的参数传递方式有(值传递、引用传递、输出传递、数组传递)。(41)C#中使用(extern)修饰符来声明在外部实现的方法。(42)派生类自动拥有基类的所有(属性)和(服务)。(43)base关键字指代的是(当前类的基类),但只限于在(构造函数)(示例的方法)(示例的方法)中使用。(44)可以使用(virtual)关键字声明一个方法为虚方法。(45)下面程序的输出结果为(Class1)abstractclsssBaseClass{PublicvirtualvoidMethidA(){Console.WriteLine(“BaseClass”);}PublicvirtualvoidMethodB(){}}ClassClass1:BaseClass{PublicvoidMethodA(){Console.WriteLine(“
{Temp+=I;}
Console.WriteLine(temp);
Console.ReadLine();
}}
A45B55C66D抛出异常
(10)将下面while循环语句改为for循环语句,哪些选项是正确的(A)?
while(i<=100)
{sum=sum+i;i++;}
Afor(;i<=100;)Bfor(i=0;j<101;j++)
{sum=sum+i;i++;}{sum=sum+i;i++;}
Cfor(i=0;i<100;i++)Dfor(i=0;i<=99;i++)
{sum=sum+i;++i;}{sum=sum+i;++I;}
(11)int[][]myArray3=newint[3][]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[3][2]的值是(D)
A9B2C6D越界
(12)下列关于数组与集合类的描述中,哪些是错误的(C)
A数组大小固定,不能变化
B集合元素的类型为Object
C数组可以声明为只读
D数组与集合都可以通过下标访问
(13)下面程序的输出结果是(A)
{pblicstaticvoidMain(string[]args)
{System.Collections.Queuequ=newQueue();
Foreach(intiinnewint[4]{1,2,3,4})
{qu.Enqueue(i);}
for(inti=0;i<4;i++)
{Console.WriteLine(qu.Dequeue());}
Console.ReadLine();}}
A1234
B4321
C1111
D4444
(14)下列关于HashTable的说法正确的(ABC)
A:
HashTable中key/value的值既可以是值类型数据又可以是引用类型数据
B:
HashTable类可以通过Add方法向其中加入一个名/值对;
C:
可以对HashTable对象的内容进行排序
D:
哈希表可以像数组一样,通过索引的方式访问其中的元素
(15)下面程序输出的结果是(C)
ClassPrograf
{PublicstaticvoidMain()
{SortedLists1=newSortedList”();
Sl[“c”]=41;
Sl[“a”]=42;
Sl[“d”]=11;
Sl[“b”]=13;
Foreach(DictionaryEntryelementins1)
{Strings=(string)element.Key;
inti=(int)element.Value;
Console.WriteLine(“{0},{1}”,s,i)}}}
c,41a,42d,11b,13
”c”,41”a”,42”d”,11”b”,13
a,42b,13c,41d,11
“a”,42“b”,13“c”,41“d”,11
(16)以下关于类的描述中,不正确的有(D)
A;类是对自然现象或实体的程序语言描述
B;类是对一组相似对象的抽象
C;类是一种虚拟的概念
D;对象是类的实例化,所以现有类,后有对象
(17)下列关键字中哪些不能作为修饰类(C)
A:
sealedB:
abstractC:
overrideD:
public
(18)关于静态成员的描述,正确的是(AB)
静态成员属于类,不属于某一个类的实例。
不同的类实例处理类的静态域时,访问的是同一个存储空间的数据
在静态方法中可以使用this关键字
通过一个类的实例可以访问类的静态成员。
(19)下列关于this关键字的描述,哪些是不正确的(CD)
在类的构造函数中this表述对正在构造的对象本身的引用
在类的方法中this表示对调用该方法的对象的引用。
this可出现在任何地方。
this指代的为某一个对象,故可对其进行算术运算
(20)关于构造函数,下列表述正确的是(CD)
构造函数是由编译系统自动调用,故构造函数只能由编译系统调用
构造函数只需要完成初始化操作,故返回值类型为void。
构造函数分为静态构造函数和实例构造函数,实现不同类型成员的初始化。
可以在静态构造函数中初始化实例成员,也可以在实例构造函数中初始化静态成员。
(21)关于静态构造函数,表述不正确的是(D)
静态构造函数最多只运行一次且不可以被继承。
如果没有自定义静态构造函数,翻译系统会自动生成默认构造函数。
一个类只能有一个静态构造函数。
静态构造函数像实例构造函数一样,可以有参数也可以无参数。
(22)下列关于只读域的描述中哪些是正确的(ABD)
只读域只能通过readonly关键自定义
只读域只能在声明时进行初始化,不能在构造函数中初始化
readonly与const关键字的作用是一样的
只读域可以是C#支持的任何类型
(23)下列关于属性的描述正确的是(ABD)
属性是对现实世界中实体特征的抽象
C#中的属性机制只是为了编程提供了便利,并没有提供新的功能
属性不仅是对实体特征的抽象还用来存储具体实体特征值
类似于域,属性可以分为实例属性与静态属性
(24)下列关于委托机制中的描述中正确的是(ACD)
委托是对方法的一种封装,类似于C++中的函数指针
委托的定义和方法的定义类似,只是在前面加了一个delegate关键字,故委托不称为是方法
实例化委托时,传入的参数可以是静态方法,也可以是实例方法
可以用一个委托区封装另一个委托
(25)声明一个委托publicdelegateintmyCallBack(intx);则用该委托长生的回调方法的原型应该是(B)
voidmyCallBack(intx)
intreceive(intnum)
stringreceive(intx)
不确定
(26)关于事件的描述正确的是(ABCD)
事件既不是值也不是引用,而是由event关键字修饰的一类特殊的委托
事件必需是一种委托
订阅事件就是将某个委托对象指向一个具体的方法
当程序中满足某个条件时调用事件就是引发了事件
(27)关于属性和域的描述错误的是(AC)
都属于类的成员,用来保存类的实例的各种数据信息
设置属性时,可以通过return来读取值,通过value来设置属性值
进行域值的设置时,可以通过get和set访问器来进行
进行属性值的设置时,可以通过get和set访问器来进行
(28)下列关于传值方式的描述中正确的有哪些(ABD)
A传值方式下,形参得到的值仅仅是实参值的一份拷贝,而不是实参本身。
B传值方式下在方法中对形参的改变并不会“反应”到方法外的实参上。
C传值方式下参数一定不能为引用类型,只能是值类型。
D类的构造函数若包含参数,则一定是采用传值方式。
(29)下列关于引用传递方式的描述中正确的是(CD)
A引用传递方式下,参数一定是引用类型,而不能是值类型。
B当形参本身为引用类型时,其面前不加ref关键字也是引用传递方式。
C引用传递方式下,形参或实参只需一个用ref关键字修饰即可。
D引用传递方式的效率较值传递低。
(30)下面程序的输出结果是(B)
UsingSystem;
Publicclasssamp
{Publicintdata=2;}
PublicclassClass1
{PublicstaticvoidFun1(sampd)
{d=newsamp();
d.data=20;}
PublicstaticvoidFun2(sampd)
{d.data=20;}
PublicstaticvoidMain(string[]atgs)
{Sampd=newsamp();
Fun1(d);
Console.WriteLine(d,i);
Fun2(d);
Console.WriteLine(d.i);
A2/2B2/20C20/2D20/20
(31)下列关于方法重载的描述中哪些是正确的(AB)
A构成重载的多个方法必须方法名完全一致。
B构成重载的多个方法应完成相类似的功能。
C两个方法仅有返回值类型不同也可以构成重载关系。
D构成重载的多个方法,它们的参数类型和参数个数必须相同。
(32)下列关于运算符重载的描述中哪些是错误的(ABC)
A运算符重载实质是方法的重载。
B二元运算符可以重载为类的实例方法,其中一个操作数是当前的对象。
C一元运算符只能重载为类的静态方法。
D重载后的运算符可以改变原有的优先级。
(33)下列哪些运算符不可以被重载(C)
A++B%C.D<=
(34)下列关于继承机制的描述中正确的是(ABC)
A提供继承机制有利于提高软件模块的可重用性及可扩充性。
B继承机制能使面向对象的开发语言能够更准确的描述客观世界,使软件开发方式变简单。
C继承机制使得软件开发过程效率更高。
D继承机制使得软件开发的难度相对增加。
(35)下列关于基类与派生类的描述中哪些的正确的(BC)
A有派生类的存在一定有基类存在,反之不尽然。
B基类和派生类是相对,派生类还可以作为基类派生其他派生类。
CC#中一个基类可以派生出多个派生类。
DC#中一个派生类可以从多个基类继承得到。
(36)下列基类与派生类关系的描述中哪些是正确的(B)
A派生类可以只继承基类中自己想要的成员。
B在派生类中可以自定义成员。
C派生类中继承基类的成员与基类的成员具有相同的存储空间。
D基类的私有访问类型成员不能被派生类所继承。
(37)下列关于虚方法的描述中哪些是正确的(ABC)
A虚方法定义是时除virtual关键字外,其余与非虚方法一样。
B定义虚方法的目的即是为了在当前类的派生类中对其进行重写。
C虚方法的调用要在晕死你个时才能确定。
D在派生类中重写虚方法后,基类中的该方法将被屏蔽。
(38)下列关于密封机制的描述中哪些是正确的(AB)
A如果一个类没有被继承的必要,可以将其定义为密封类。
BSealed关键字除了修饰类外,还可以修饰方法。
CSealed关键字也可以修饰一个非虚方法。
DSealed修饰一个未经重写的虚方法时,编译器会查出语法错误。
(39)下列关于抽象类的描述中哪些是正确的(BD)
A抽象类并不是通过对一组像是对象的抽象而得到的。
B定义抽象类的目的仅仅是为了让其作为基类产生不同的派生类,简化编程。
C一个类既可以是抽象类又可以同时是密封类。
D抽象类不可以实例化对象。
(40)以下描述错误的是(A)
A在C++中支持抽象类而在C#中不支持抽象类。
BC++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处横名和定义类的成员。
C在C#中可使用new修饰符显式隐藏从基类继承的成员。
D在C#中要在派生类中重新定义基类的虚函数必须在前面加Overide.
(41)下列关于继承的理解,错误的是(A)
A子类可以从父类中继承其所有的成员。
B无论是否声明,子类都继承自object(System.object)类。
C假如,类M继承自类N,而类N又继承自类P,则类M也继承自类P。
D子类应是对基类的扩展。
子类可以添加新的成员,但不能出去已经继承的成员的定义。
(42)在继承中,当子类的成员声明中,可以声明与父类成员同名的成员,这时,须使用的关键字是(B)
AvoidBnewCbaseDstatic
(43)下列哪些说法是泛型具有的优点(ABC)?
A泛型机制提高可代码的质量与重用型。
B泛型是类型安全的。
C使用泛型有利于提高程序的性能。
DC#中泛型机制是通过模板实现的。
(44)泛型结束包括一下哪些类型(ABCD)?
A基类约束。
B接口约束。
C值/引用类型约束。
D构造函数约束。
(45)泛型的基类约束具有如下哪些功能(AC)?
A它允许在泛型类中使用指定约束类的成员。
B泛型类实例化可以使用任意类型为类型参数赋值。
C基类约束下类型参数的值只能是约束类及其派生类。
D在与其他类型约束混合使用的情况下,基类约束应被放到最后。
(46)下列关于构造函数的描述中正确的是(ABC)?
A它可以与其他约束一起使用,但是必须位于约束列表的末端。
B构造函数约束允许开发人员实例化一个泛型类型的对象。
C构造函数约束要求类型参数必须提供一个无参数的构造函数。
DOffice文件由开发人员创建。
(47)下列关于泛型使用的描述中正确的是(ABCD)
A使用泛型需要引用System.Collections.Generic命名空间。
B泛型类型中可以定义多个参数。
C可以在泛型类型中定义泛型方法、委托以及事件等。
D在程序中可以定义嵌套泛型。
(48)下列关于窗体的描述中那些是不正确的(c)
A窗体可看作是画布,在上面可以进行绘画工具。
B窗体可看作是容器,用来包含放置在其上的不同控件。
C窗体的功能由Form类来实现,在窗体上放置的控件,都是某个窗体类的成员。
D窗体类通常作为基类,通过派生标准窗体类添加新成员,形成一个特定的窗体。
(49)开发基于C#的Windows应用程序需要引用哪个名空间(b)?
ASystem
BSystem.Forms
CSystem.Collections
DSystem.Data
(50)RichTextBox的属性中可以获取或设置被选中的文件,但格式化信息会丢失的是(b)?
ASelectedRtf
BSelectedText
CSelectedProtected
DSelectedBullet
(51)下列描述中哪些是错误的(c)?
A一般方法名是把控件名、下划线和要处理的事件名连续在一起。
B以从ListBox中一次选择一个或多个选项。
CRichTextBox控件是由Text属性来设置文本格式的。
DTabControl控件的属性一般用于控制TabPage容器的外观,特别是正在显示的选择卡。
(52)下列不是Button控件的主要作用的是(b)。
A用某种状态关闭对话框,
B显示标题。
C给对话框上输入的数据执行操作。
D打开另一个对话框或应用程序。
(53)下列哪些控件可以作为容器(bd)?
ALable控件。
BTabConreol控件。
CButton控件。
DGroupBox空间。
(54)C#工具栏中的工具项不包括如下哪些类型(c)?
AButton
BLabel
CProgress
DRichTextBox
(1)floatf=-123.567F;
inti=(int)f.则i的值现在是(-123)。
(2)委托声明的关键字是(delegate)。
(3)当整数a赋值给一个obiect对象时,整数a将会被(装箱)。
(4)要想在输出中换行,可以使用(\n)转义字符。
(5)引用类型的数据将被编译系统存放到(堆内存)中。
(6)数据类型转换分为(隐式转换)和(显式转换)两种。
(7)可以使用字符串类提供的(ToCharArray)方法将字符串转换为字符数组。
(8)设a=true,b=true,c=false,d=5,下列表达式的值(编译错误:
运算符“&&”无法应用于“int”和“bool”类型的操作数;True;)。
?
(9)优先级最高的运算符是(())。
(10)常用的程序结构包括(顺序、分支、循环)。
(11)能跳出循环的语句有(break;reuturn;goto;continue)
(12)有成语如下:
classMainClass
{publicstaticvoidMain(string[]args)
{intx=3;
booly=false;
if(x==3)if(y)Console.WriteLine(y);elseConsole.WriteLine(x);
ConsoleReadLine();
该程序输出结果为:
(3)。
(13)foreach循环结构中迭代变量的类型为(集合中元素的类型)。
(14)C#中禅城异常的方式有(在C#语句和表达式的处理过程中激发了某个异常的条件,使得操作无法正常结束,引发异常、抛出异常)。
(15)ArrayList类中将元素按从大到小的顺序排列数组的方法是(Sort())
(16)ArrayListaList=newArrayList()
aList.Add(“123”);
aList.Add(“abc”);
foreach(stringaStrinaList){
if(aStr.Equals(“abc”)){
aList.Remove(aStr);
Console.WriteLine(aStr);}}
该程序段输出结果为(抛出异常、集合已修改;)为什么会有这样的结果(可能无法执行枚举操作。
)
(17)Queue类的Peek()方法的作用是(获取头部元素数据)
(18)stack类的Peek()方法与Pop()方法的差异(Peek方法仅获取栈顶元素数据,Pop方法删除栈顶元素)
()能用foreach遍历访问的对象需要实现(System.IEnumerable)接口或声明(实现集合模式)的方法类型
(19)哈希表也称(名值对)
(20)HashTable与SortedList的区别是(SortedList中的Key数组排好序的)
(21)面向对象理论的三大特征(封装、继承、多态)
(22)下列程序的输出结果为:
(编译错误,使用了未赋值的局部变量)
classA
{Publicinta=8;
Publicvoiddisplay()
{System.Console.WriteLine(a);}}
classB
{StaticvoidMain()
{Amya;
mya.display()}}
(23)类的成员包括(域、属性、方法、委托、事件、接口)
(24)类成员的访问限制符有(publicprivateprotectedinternal)
(25)类的protected类型成员只允许在(当前类)和(其子类)被直接访问。
(26)this关键字仅限于在(构造函数)、(类的方法)和(类的实例)中使用。
(27)域的修饰符包括(publicprivateinternalprotectedreadonly)等
(28)C#中类的域可以(定义时)初始化,也可以以在(构造函数中)初始化
(29)C#中的域如果没有被显式地初始化,其初值为(该类型的默认值)
(30)使用(readonly)关键字可以定义一个类的只读域
(31)C#中属性可以被可以看作是对(域)的封装
(32)使用(virtual)关键字可以声明一个类的虚拟属性
(33)静态属性只能通过(类)类调用
(34)定义一个只读属性并不需要(set)关键字,只需要实现(get)即可
(35)在Set访问器中,除了对域进行赋值外,还可以进行(其他必要的操作,如判断输入是否合法)
(36)方法又称为(功能、函数、服务)等,它们表达相同的意思,只是看待问题的角度不同的称呼。
(37)类的方法声明中,若没有显式指定方法的访问修饰符,则默认为(private)。
(38)在方法的参数列表中定义的参数成为(形参)。
(39)在调用方法时们提供的实参的(实参)与(形参)要与形参一致。
(40)C#支持的参数传递方式有(值传递、引用传递、输出传递、数组传递)。
(41)C#中使用(extern)修饰符来声明在外部实现的方法。
(42)派生类自动拥有基类的所有(属性)和(服务)。
(43)base关键字指代的是(当前类的基类),但只限于在(构造函数)(示例的方法)(示例的方法)中使用。
(44)可以使用(virtual)关键字声明一个方法为虚方法。
(45)下面程序的输出结果为(Class1)
abstractclsssBaseClass
{PublicvirtualvoidMethidA()
{Console.WriteLine(“BaseClass”);}
PublicvirtualvoidMethodB()
{}}
ClassClass1:
BaseClass
{PublicvoidMethodA()
{Console.WriteLine(“
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1