c#期末考试复习题.docx
- 文档编号:23178871
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:31
- 大小:26.80KB
c#期末考试复习题.docx
《c#期末考试复习题.docx》由会员分享,可在线阅读,更多相关《c#期末考试复习题.docx(31页珍藏版)》请在冰豆网上搜索。
c#期末考试复习题
1.程序中主函数的名字为()。
A.mainB.MAIN
C.MainD.任意标识符
2.关于C#程序的书写,下列不正确的说法是____。
A.区分大小写B.一行可以写多条语句
C.一条语句可写成多行
3.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是____。
A.a>=10ora<=0B.a>=10|a<=0
C.a>=10&&a<=0D.a>=10||a<=0
4.以下叙述正确的是____。
A.do….while语句构成的循环不能用其他语句构成的循环来代替
B.do….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
5.以下关于for循环的说法不正确的是____。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先判定表达式,后执行循环体语句
C.for循环中,可以用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来。
6.若有定义:
int[]x=newint[10]{0,2,4,4,5,6,7,8,9,10};则数组x在内存中所占字节数是____。
A.6B.20C.40D.80
7.下面是几条动态初始化一维数组的语句,指出其中正确的是____。
A.int[]arr2=newint[];B.int[]arr2=newint[4];
C.int[]arr2=newint[i]{6,5,1,2,3};D.int[]arr2=newint[4]{6,5,1,2,3};
8.设a=6,b=4,则表达式b*a+3的值为()
A.3B.18
C.27D.36
9.能作为C#程序的基本单位是()。
A.字符B.语句C.函数D.源程序文件
10.可用作C#程序用户标识符的一组标识符是()。
A.voiddefine+WORD
B.a3_b3_123YN
C.for-abcCase
D.2aDOsizeof
11.哪个方法在屏幕上显示“HelloWorld”?
AConsole.WriteLine(“HelloWorld”);
BSystem.WriteLine(“HelloWorld”);
CConsole(“HelloWorld”);
DConsole.writeLine(“HelloWorld”);
12.在c#中,可以使用枚举变量来避免不合理的赋值,以下关于枚举说法正确的是( )。
A.枚举可以有构造函数
B.枚举中可以定义方法
C.枚举中可以定义属性
D.可以为枚举类型中的元素赋整数值
13.在C#中,下面关于静态方法和实例方法描述错误的是:
A.静态方法使用类名调用,实例方法需要使用类的实例来调用。
B.静态方法可以直接调用实例方法
C.实例方法可以直接调用静态方法
D.静态方法调用前初始化,实例方法实例化对象时初始化
14.关于结构与类的说法,下列错误的是:
A.结构是值类型,类是引用类型
B.结构可以不用new初始化,类需要new初始化
C.类和结构都有默认的构造函数
D.结构不能继承,类可以被继承
15.关于base关键字,下列使用方法错误的是:
A.在子类中,base可以调用父类的构造函数
B.在子类中,base关键字可以访问父类的公共属性
C.在子类中,base关键字不可以调用父类的protected成员
D.在子类中,base关键字不可以调用父类的private成员
16.下面关于抽象类的说法正确的是:
A.抽象类可以被实例化
B.含有抽象方法的类一定是抽象类
C.抽象类可以是静态类和密封类
D.抽象类中的抽象方法可以在其它类中重写
17.一下那些不是类?
A车牌是XXX的Ford汽车B水果C哺乳动物D鱼
18.下面关于虚方法说法错误的是:
A.使用virtual关键字修饰虚方法
B.虚方法必须被其子类重写
C.虚方法可以有自己的方法体
D.虚方法和抽象方法都可以实现多态性
19.在c#中new关键字的作用是_____
A.新建对象实例B.定义命名空间C.调用类D.引入命名空间
20.在C#中定义接口时,使用的关键字是()。
A.interfaceB.:
C.classD.overrides
21.数据类型转换的类是()。
A.ModB.ConvertC.ConstD.Single
22.字符串连接运算符包括&和()。
A.+B.-C.*D./
23.小数类型(decimal)和浮点类型都可以表示小数,正确说法:
()
A.两者没有任何区别
B.小数类型比浮点类型取值范围大
C.小数类型比浮点类型精度高
D.小数类型比浮点类型精度低
24.假定一个10行20列的二维整型数组,下列哪个定义语句是正确的()。
A.int[]arr=newint[10,20]
B.int[]arr=intnew[10,20]
C.int[,]arr=newint[10,20]
D.int[,]arr=newint[20;10]
25.下列语句创建了多少个string对象?
string[,]strArray=newstring[3][4];
A.0B.3C.4D.12
26.在类作用域中能够通过直接使用该类的()成员名进行访问。
A.私有B.公用
C.保护D.任何
27.在C#中,定义派生类时,指定其基类应使用的语句是()。
A.InheritsB.:
C.ClassD.Overrides
28.类的以下特性中,可以用于方便地重用已有的代码和数据的是().
A.多态B.封装C.继承D.抽象
29.在C#中,关于继承和接口,以下说法正确的是().
A.C#允许多接口实现,也允许多重继承
B.C#允许多接口实现,但不允许多重继承
C.C#不允许多接口实现,但允许多重继承
D.C#不允许多接口实现,也不允许多重继承
30.关于虚方法实现多态,下列说法错误的是()。
A.定义虚方法使用关键字virtual
B.关键字virtual可以与override一起使用
C.虚方法是实现多态的一种应用形式
D.派生类是实现多态的一种应用形式
31.考虑以下语句:
A:
继承能够减少代码冗余
B:
继承使得代码易于维护
以上说法的正确结果是:
AA对,B错BA错,B对
CAB都对DAB都错
32.在Array类中,可以对一维数组中的元素进行排序的方法是()。
A.Sort()B.Clear()C.Copy()D.Reverse()
33.以下说法正确的是()。
A.接口可以实例化B.类只能实现一个接口
C.接口的成员都必须是未实现的
D.接口的成员前面可以加访问修饰符
34.以下关于继承的说法错误的是()。
A..NET框架类库中,object类是所有类的基类
B.派生类不能直接访问基类的私有成员
C.protected修饰符既有公有成员的特点,又有私有成员的特点
D.基类对象不能引用派生类对象
35.以下正确的描述是()。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
36.在C#中,下列代码的运行结果是().
ClassTest{
publicstructpoint{
publicintx;
publicinty;
publicPoint(intx,inty){
this.x=x;
this.y=y;
}
}
staticvoidMain(){
Pointp1=newPoint(100,100);
Pointp2=p1;
p1.x=200;
Console.WriteLine(“{0},{1}”,p1.x,p2.x);
}
}
A.100,100
B.100,200
C.200,100
D.200,200
37.在C#中,下列代码的运行结果是().
classTest{
staticvoidShowArrayInfo(int[]student){
for(inti=0;i Console.Write(student[i]++); Console.Write(“”); } } staticvoidMain(){ int[]student=newint[]{1,2,3,4,5}; ShowArrayInfo(student); Console.Write(“\n”); ShowArrayInfo(student); } } A.12345 12345 B.12345 23456 C.23456 23456 D.23456 34567 38.在C#中,下列代码的运行结果是(). floatf=123.56F; objecto=f; f=789.123F; Console.WriteLine(“f={0}”,f); Console.WriteLIne(“o={0}”,o); A.f=789.123 o=123.56 B.f=123.56 o=789.123 C.f=789.123 o=789.123 D.f=123.56 o=123.56 39.以下关于C#代码的说法正确的是(). for(inti=1;i<=3;i++){ switch(i){ case1: Console.Write(i.ToString()); case2: Console.Write((i*2).ToString()); case3: Console.Write((i*3).ToString()); } } A程序将报告编译错误,提示Case标签不能贯穿到另一个标签,不能运行 B运行是输出149 C运行时输出123246369 D运行时在屏幕上没有输出 40.以下关于C#代码的说法正确的是()。 classMyAaimals{ privateintbodyTemp=98; publicintBodyTemp { get { returnbodyTemp;//1 } } } publicclassText{ staticvoidMain() { MyAnimalsa=newMyAnimals(); Console.WriteLine(a.BodyTemp);//2 a.BodyTemp=56;//3 } } A.代码1错误 B.代码2错误 C.代码3错误 D.代码无错误 41.在C#中,下列代码的运行结果是()。 HashtablehsStu=newHashtable(); hsStu.Add(3,"甲"); hsStu.Add(2,"乙"); hsStu.Add(1,"丙"); Console.WriteLine(hsStu[3]); A.3 B.甲 C.1 D.丙 42.以下关于C#中代码的说法正确的是()。 publicabstractclassAnimal { publicabstractvoidEat(); publicvoidSleep() { } } A.该代码正确 B.代码代码错误,因为类中存在非抽象方法 C.代码代码错误,因为类中方法没有实现 D.通过代码"Animalan=newAnimal();"可以创建一个Animal对象 43.在C#中,下列代码的运行结果是()。 UsingSystem; ClassTest{ StaticvoidMain(){ try{ inta=10; intb=0; intc=a/b; Console.WriteLine(c); } } catch{ Console.WriteLine(“出现错误”); } finally{ Console.WriteLine(“运行结束”); } } A.0 运行结束 B.10 运行结束 C.出现错误 运行结束 D.出现错误 44.C#中,关于构造函数的说法正确的是()。 A.在一个类中允许有多个构造函数,构造函数在创建对象时调用 B.在一个类中允许有多个不同名称的构造函数 C.一个类至少声明有一个构造函数 D.一个类只能有一个构造函数 45.关于垃圾收集的语句正确的是? A在垃圾收集中,对象没有被销毁 B在垃圾收集中,对象每次都销毁 C在垃圾收集中,仅非引用对象被销毁 D以上答案均不正确 46.关于FilesSteam操作,描述正确的是 AFilesSteam允许随机访问操作BFileStream不允许随机访问操作 CFileStream类不能用来创建文件D以上说法均不正确 47.关于异常正确的是 A异常是程序编译阶段发生的编译错误B异常是程序运行时发生的运行错误 C异常一旦发生,是不可以进行处理的D以上说法均不正确 48.以下那些关于访问区分符的语句是正确的? A访问区分符确定其他类可以访问该类的成员的机制 Bprivate是私有的,该类型的成员变量在类的内部均不可访问 Cprotected的成员在同一名称空间可以访问 D方法中声明的变量可以具备访问区分符。 49.使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是(). A.Exists()B.GetFiles()C.GetDirectories()D.CreateDirectory() 50.StreamWriter对象的下列方法,可以向文本文件写入一行带回车和换行的文本的是()。 A.WriteLine()B.Write()C.WritetoEnd()D.Read() 51.在Array类中,可以对一维数组中的元素查找的方法是()。 A.Sort()B.BinarySearch()C.Convert()D.Index() 2 一、判断题(本大题共10个小题,每小题1分,共10分) B.在同一行上可以书写多条语句,每条语句间用分号分隔。 (t ) C.在数据类型转化时,只能通过类型转换关键字或Convert类实现。 (f ) D.接口与类同样是面向对象程序设计的核心,是创建对象的模版。 (F ) E.委托是将方法作为参数传递给另一方法的一种数据类型。 事件与委托没有关系。 (F ) F.可以重写私有的虚方法。 (T ) G.使用Directory类的Move()方法可以删除文件。 (T ) H.不能指定接口中方法的修饰符。 (T ) I.在定义数组时不允许为数组中的元素赋值。 (F ) J.接口与类同样是面向对象程序设计的核心,是创建对象的模版。 ( ) K.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。 (T ) L.在C#中,所有类都是直接或间接地继承System.Object类而得来的。 (T ) M.在C#中,任何方法都不能实现多继承。 (F ) N.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。 (F ) O.可以阻止某一个类被其他类继承。 (T ) P.使用FileInfo类的Copy()方法可以复制文件。 (T ) 二、选择题(本大题共20个小题,每小题2分,共40分) B.在C#中,表示一个字符串的变量应使用以下哪条语句定义? B A.CStringstr; B.stringstr; C.Dimstrasstring D.char*str; C.C#中MyClass为一自定义类,其中有以下方法定义: A publicvoidHello(){…} 使用以下语句创建了该类的对象,并使变量obj引用该对象,那么,访问类MyClass的Hello方法正确的是: MyClassobj=newMyClass(); A.obj.Hello(); B.obj: : Hello(); C.MyClass.Hello(); D.MyClass: : Hello(); D.分析下列程序中类MyClass的定义D classBaseClass {publicinti;} classMyClass: BaseClass {publicnewinti;} 则下列语句在Console上的输出为_______. MyClassy=newMyClass(); BaseClassx=y; x.i=100; Console.WriteLine("{0},{1}",x.i,y.i);//(提示: 注意类MyClass中的new关键字) A.0,0 B.100,100 C.0,100 D.100,0 E.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_C___。 A.sealed方法 B.public方法 C.virtual方法 D.override方法 F.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句? A A.intNum=int.Parse(str); B.intNum=str.Parse(int); C.intNum=(int)str; D.intNum=int.Parse(str,Globalization.NumberStyles.AllowThousands); G.在C#语言中,下列能够作为变量名的是_C___。 A.if B.3ab C.a_3b D.a-bc H.以下程序的输出结果是_C___。 Usingsystem; ClassExample1 { PublicStaticvoidmain(){ Inta=5,b=4,c=6,d; Console.Writeline(“{0}”,d=a>b? (a>c? a: c): b); } } A.5 B.4 C.6 D.不确定 I.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是_D___。 A.a>=10ora<=0 B.a>=10|a<=0 C.a>=10&&a<=0 D.a>=10||a<=0 J.以下关于for循环的说法不正确的是__A__。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先判定表达式,后执行循环体语句 C.for循环中,可以用break语句跳出循环体 D.for循环体语句中,可以包含多条语句,但要用花括号括起来。 K.有如下程序Usingsystem;C ClassExample1 { PublicStaticvoidmain() { Intx=1,a=0,b=0; Switch(x) { Case0: b++,break; Case1: a++,break; Case2: a++,b++;break; }Console.Writeline(“a={0},b={1}”,a,b); }}的输出结果是 A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 L.关于C#语言的方法,下列叙述中正确的是_A___。 A.方法的定义不能嵌套,但方法调用可以嵌套 B.方法的定义可以嵌套,但方法调用不能嵌套 C.方法的定义和调用都不能嵌套 D.方法的定义和调用都可以嵌套 M.下列程序的结果是: B Usingsystem; ClassExample1 { Staticlongfib(intn) { If(n>2)return(fib(n-1)+fib(n-2)); Elsererurn (2); }PublicStaticvoidmain() {Console.Writeline(“{0}”,fib(3)); }} A.2 B.4 C.6 D.8 N.调用重载方法时,系统根据___B_____来选择具体的方法。 A.方法名 B.参数的个数和类型 C.参数名及参数个数 D.方法的返回值类型 O.下列的___D____不是构造函数的特征。 A.构造函数的函数名和类名相同 B.构造函数可以重载 C.构造函数可以带有参数 D.可以指定构造函数的返回值 P.已知类B是由类A继承而来,类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用____B____方法。 A.static B.new C.override D.virtual Q.下列关于try…catch…finaly语句的说明中,不正确的是____D_____。 A.catch块可以有多个 B.finaly C.catch块也是可选的 D.可以只有try块 R.以下标识符中,正确的是_A___。 A._nName B.typeof C.6b D.x5# S.下面有关运算符的说法正确的是_D___ A.算术运算符不能对布尔类型,String*(字符串类型)和Object*(对象类型)进行算术运算 B.关系运算中的”==”和赋值运算符中的”=”是相同的 C.sizeof运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字节数) D.括号在运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 期末考试 复习题