c#期末考试复习题及答案_第1页
c#期末考试复习题及答案_第2页
c#期末考试复习题及答案_第3页
c#期末考试复习题及答案_第4页
c#期末考试复习题及答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、基于C#的OOP技术课程 复习题/一、 判断题(本大题共10个小题,每小题1分,共10分)1. 在同一行上可以书写多条语句,每条语句间用分号分隔。(t)2. 在数据类型转化时,只能通过类型转换关键字或Convert类实现。(f)3. 接口与类同样是面向对象程序设计的核心,是创建对象的模版。(F)4. 委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系。(F)5. 可以重写私有的虚方法。(T)6. 使用Directory类的Move()方法可以删除文件。(T)7. 不能指定接口中方法的修饰符。(T)8. 在定义数组时不允许为数组中的元素赋值。(F)9. 接口与类同样是面向对象程

2、序设计的核心,是创建对象的模版。()10. 如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。(T)11. 在C#中,所有类都是直接或间接地继承System.Object类而得来的。(T)12. 在C#中,任何方法都不能实现多继承。(F)13. 在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。(F)14. 可以阻止某一个类被其他类继承。(T)15. 使用FileInfo类的Copy()方法可以复制文件。(T)二、选择题(本大题共20个小题,每小题2分,共40分)1. 在 C#中,表示一个字符串的变量应使用以下哪条

3、语句定义? BA.CString str;B.string str;C.Dim str as stringD.char * str;2. C#中 MyClass 为一自定义类,其中有以下方法定义:Apublic void Hello()使用以下语句创 建了该类的对象,并使变量 obj 引用该对象,那么,访问类MyClass的Hello方法正确的是:MyClass obj = new MyClass();A.obj.Hello();B.obj:Hello();C.MyClass.Hello();D.MyClass:Hello();3. 分析下列程序中类 MyClass 的定义 Dclass Ba

4、seClass public int i; class MyClass:BaseClass public new int i; 则下列语句在 Console 上的输出为_. MyClass y = new MyClass();BaseClass x = y;x.i = 100;Console.WriteLine("0, 1",x.i,y.i); /(提示:注意类 MyClass 中的 new 关键字)A.0, 0B.100, 100C.0, 100D.100, 04. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成

5、_C_A.sealed 方法B.public 方法C.virtual 方法D.override 方法5. 为了将字符串 str=“123,456”转换成整数 123456,应该使用以下哪条语句? A A.int Num = int.Parse(str);B.int Num = str.Parse(int);C.int Num = (int)str;D.int Num = int.Parse(str,Globalization.NumberStyles.AllowThousands);6. 在 C#语言中,下列能够作为变量名的是_C_A.ifB.3abC.a_3bD.a-bc7. 以下程序的输出

6、结果是_C_ Using system;Class Example1 Public Static void main() Int a=5,b=4,c=6,d; Console.Writeline(“0”,d=a>b?(a>c?a:c):b); A.5 B.4 C.6 D.不确定8. 能正确表示逻辑关系“a>=10 或 a<=0”的 C#语言表达式是_D_A.a>=10 or a<=0B.a>=10|a<=0C.a>=10&&a<=0D.a>=10|a<=09. 以下关于 for 循环的说法不正确的是_A_A

7、.for 循环只能用于循环次数已经确定的情况B.for 循环是先判定表达式,后执行循环体语句C.for 循环中,可以用 break语句跳出循环体D.for 循环体语句中,可以包含多条语句,但要用花括号括起来10. 有如下程序 Using system; C Class Example1 Public Static void main() Int x=1,a=0,b=0; Switch(x) Case 0:b+,break; Case 1:a+,break; Case 2:a+,b+;break; Console.Writeline(“a=0,b=1”,a,b); 的输出结果是 A.a=2,b=

8、1B.a=1,b=1C.a=1,b=0D.a=2,b=211. 关于 C#语言的方法,下列叙述中正确的是_A_A.方法的定义不能嵌套,但方法调用可以嵌套B.方法的定义可以嵌套,但方法调用不能嵌套C.方法的定义和调用都不能嵌套D.方法的定义和调用都可以嵌套12. 下列程序的结果是: B Using system; Class Example1 Static long fib(int n) If(n>2) return(fib(n-1)+fib(n-2); Else rerurn(2); Public Static void main() Console.Writeline(“0”,fib(

9、3); A.2 B.4 C.6 D.813. 调用重载方法时,系统根据_B_来选择具体的方法A.方法名B.参数的个数和类型C.参数名及参数个数D.方法的返回值类型14. 下列的_D_不是构造函数的特征A.构造函数的函数名和类名相同B.构造函数可以重载C.构造函数可以带有参数D.可以指定构造函数的返回值15. 已知类 B 是由类 A继承而来,类 A 中有一个为 M 的非虚方法,现在希望在类 B 中也 定义一个名为 M 的方法,若希望编译时不出现警告信息,则在类 B中声明该方法时,应使 用_B_方法A.staticB.newC.overrideD.virtual16. 下列关于 trycatchf

10、inaly语句的说明中,不正确的是_D_A.catch块可以有多个B.finalyC.catch块也是可选的D.可以只有 try块17. 以下标识符中,正确的是_A_A._nNameB.typeofC.6bD.x5# 18. 下面有关运算符的说法正确的是_D_A.算术运算符不能对布尔类型,String*(字符串类型)和 Object*(对象类型) 进行算术运算B.关系运算中的”= =”和赋值运算符中的”=”是相同的C.sizeof 运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字 节数)D.括号在运算符中的优先级中是最高的,它可以改变表达式的运算顺序19. 下面对抽象类描

11、述不正确的是_C_A.抽象类只能作为基类使用B.抽象类不能定义对象C.抽象类可以实例对象D.可以实现多态20. 下面对异常说法不正确的是_D_A.try/catch块为基本引发异常的组合B.在捕获异常时,可以有多个 catch块C.无论异常是否发生,finally块总会执行D.try块和 finally 不能连用1. C#中,新建一字符串变量 str,并将字符串"Tom's Living Room"保存到串中,则应该使用下列哪条语句? AA.string str = "Tom's Living Room"B.string str = &q

12、uot;Tom's Living Room"C.string str("Tom's Living Room");D.string str("Tom"s Living Room");2. 分析下列程序: A public class class4 private string _sData = "" public string sDataset_sData = value; 在 Main 函数中,在成功创建该类的对象 obj 后,下列哪些语句是合法的? A.obj.sData = "It i

13、s funny!"B.Console.WriteLine(obj.sData);C.obj._sData = 100;D.obj.set(obj.sData);3. 分析下列程序中类 MyClass 的定义 class BaseClass public int i; class MyClass:BaseClass public new int i; 则下列语句在 Console 上的输出为_D_. MyClass y = new MyClass();BaseClass x = y;x.i = 100;Console.WriteLine("0, 1",x.i,y.i

14、); /(提示:注意类 MyClass 中的 new 关键字)A.0, 0B.100, 100C.0, 100D.100, 04. 在类的定义中,类的_B_描述了该类的对象的行为特征A.类名B.方法C.所属的名字空间D.私有域5. 关于 C#程序的书写,下列不正确的说法是_D_A.区分大小写B.一行可以写多条语句C.一条语句可写成多行D.一个类中只能有一个 Main()方法,因此多个类中可以有多个 Main()方法6. 能正确表示逻辑关系“a>=10 或 a<=0”的 C#语言表达式是_D_A.a>=10 or a<=0B.a>=10|a<=0C.a>

15、=10&&a<=0D.a>=10|a<=07. if语句后面的表达式应该是_B_A.逻辑表达式B.条件表达式C.算术表达式D.任意表达式8. 以下叙述正确的是_D_A.do.while语句构成的循环不能用其他语句构成的循环来代替B.do.while语句构成的循环只能用 break语句退出C.用 do.while语句构成的循环,在 while后的表达式为 true时结束循环D.用 do.while语句构成的循环,在 while后的表达式应为关系表达式或逻辑表达式9. 以下程序的输出结果是: CClass Example1 Public Static void m

16、ain() Int I; Int a=new int10; For(i=9;i>=0;i-) ai=10-I;Console.Writeline(“0,12”,a2,a5,a8); A.258 B.741 C.852 D.36910. 关于 C#语言的方法,下列叙述中正确的是_A_A.方法的定义不能嵌套,但方法调用可以嵌套B.方法的定义可以嵌套,但方法调用不能嵌套C.方法的定义和调用都不能嵌套D.方法的定义和调用都可以嵌套11. 下列程序的结果是: BUsing system;Class Example1 Static long fib(int n) If(n>2) return(

17、fib(n-1)+fib(n-2); Else rerurn(2); Public Static void main() Console.Writeline(“0”,fib(3); A.2 B.4 C.6 D.812. 调用重载方法时,系统根据_B_来选择具体的方法A.方法名B.参数的个数和类型C.参数名及参数个数D.方法的返回值类型13. 下列的_D_不是构造函数的特征A.构造函数的函数名和类名相同B.构造函数可以重载C.构造函数可以带有参数D.可以指定构造函数的返回值14. 类 Class A有一个名为M1 的方法,在程序中有如下一段代码,假设该段代码是可以执 行的,则修饰 M1 方法时一

18、定使用了_B_修饰符 ClassA obj=new Class A(); ClassA.M1();A.publicB.staticC.privateD.virtual15. 为了能够在程序中捕获所有的异常,在 catch语句的括号中使用的类名为_A_A.ExceptionB.DivideByZeroExceptionC.FormatExceptionD.以上三个均可16. 关于异常,下列的说法中不正确的是_D_A.用户可以根据需要抛出异常B.在被调用方法可通过 throw语句把异常传回给调用方法C.用户可以自己定义异常D.在 C#中有的异常不能被捕获17. 以下类型中,不属于值类型的是_D_A

19、.整数类型B.布尔类型C.字符类型D.类类型18. 下列给出的变量名正确的是_A_.A.int NO.1B.char useC.float MainD.char use19. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_C_A.sealed 方法B.public 方法C.virtual 方法D.override 方法20. 为了将字符串 str=“123,456”转换成整数 123456,应该使用以下哪条语句?A A.int Num = int.Parse(str);B.int Num = str.Parse(int);C.int

20、 Num = (int)str;D.int Num = int.Parse(str,Globalization.NumberStyles.AllowThousands);三、程序阅读题(本大题共5个小题,每小题5,共251. 写出以下程序的运行结果。using System;class Test public static void Main() int x = 5; int y = x+; Console.WriteLine(y); y=+x; Console.WriteLine(y); 2. 写出下列函数的功能。static float FH()     fl

21、oat y=0,n=0;    int x = Convert.ToInt32(Console.ReadLine(); /从键盘读入整型数据赋给x    while (x!=-1)            n+; y+=x;           x = Convert.ToInt32(Console.ReadLine(); 

22、60;  if (n=0) return y; else return y/n;3. 写出以下程序的功能。static void f2(ref double a, int n) int i; double sum=0; for(i=0;i<n;i+) sum+=ai; sum/=n; for(i=0;i<n;i+) if(ai>=sum) Console.write( ai + “ “ ); Console.writeLine ();4. 写出以下程序运行结果。using System;class Teststatic void LE(ref int a, ref

23、int b)        int x = a;       a = b;  b = x;       Console.writeLine (a + “ “ +b);public static void Main ()    int x=10, y=25;LE(ref x, ref y);   Console.writeLine (x + “ “ +y);5. 写出以

24、下程序的运行结果。using System;class Test public static void Main ()       int a =2,4,6,8,10,12,14,16,18;       for (int i=0; i<9; i+)               Console.write(“ ”+ai); 

25、0;            if (i+1)%3=0) Console.writeLine();       6. 写出下列函数的功能。static int SA(int a,int b)       if (a>b) return 1;      else if (a=b) return 0; 

26、60;     else return -1;7写出以下程序运行结果。using System;class Test static int a = 1, 2, 3, 4, 5, 6, 7, 8 ; public static void Main() int s0, s1, s2; s0 = s1 = s2 = 0; for (int i = 0; i < 8; i+) switch (ai % 3) case 0: s0 += Test.ai; break; case 1: s1 += Test.ai; break; case 2: s2 += T

27、est.ai; break; Console.WriteLine(s0 + " " + s1 + " " + s2); 8写出以下程序运行结果。using System;class Testconst int N=5;public static void Main () int a = 0;for(int i=1; i<N; i+) int c=0, b=2; a+=3; c=a+b; Console.write (c + “ “ ); 9写出以下程序的功能。static void WA(ref int a, int n) for(int i=0;i<n-1;i+) int k=i; for(int j=i+1;j<n;j+) if(aj<ak) k=j; int x=ai; ai=ak; ak=x; 10. 写出以下程序运行结果。using System;class Test public static void Main () &#

温馨提示

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

评论

0/150

提交评论