C#题.docx

上传人:b****5 文档编号:8298939 上传时间:2023-01-30 格式:DOCX 页数:15 大小:24.67KB
下载 相关 举报
C#题.docx_第1页
第1页 / 共15页
C#题.docx_第2页
第2页 / 共15页
C#题.docx_第3页
第3页 / 共15页
C#题.docx_第4页
第4页 / 共15页
C#题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C#题.docx

《C#题.docx》由会员分享,可在线阅读,更多相关《C#题.docx(15页珍藏版)》请在冰豆网上搜索。

C#题.docx

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集合元素的类型为Object

C数组可以声明为只读

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();}}

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)}}}

A:

c,41a,42d,11b,13

B:

”c”,41”a”,42”d”,11”b”,13

C:

a,42b,13c,41d,11

D:

“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)?

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