C#程序设计期末A卷以及答案.pdf_第1页
C#程序设计期末A卷以及答案.pdf_第2页
C#程序设计期末A卷以及答案.pdf_第3页
C#程序设计期末A卷以及答案.pdf_第4页
C#程序设计期末A卷以及答案.pdf_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 10 页 洛阳理工学院洛阳理工学院 2010/2011 学年学年 第第一一学期学期 面向对象程序设计面向对象程序设计 期末考试试题卷(期末考试试题卷(A) 适用班级:适用班级:B100513/14/15/16考试时间:考试时间:120 分钟分钟 注意:看清题目要求,书写整洁!注意:看清题目要求,书写整洁! 一、一、选择题选择题(每小题每小题 2 分,分,30 题共计题共计 60 分分) 1.1. C#中每个中每个 int 类型的变量占用类型的变量占用()个字节的内存。个字节的内存。 A. 1B. 2C. 4D. 8 2.2. 在在 C#中,表示一个字符串的变量应使用以下哪条语句定义?中,表示一个字符串的变量应使用以下哪条语句定义?() A. CString str;B. string str;C. Dim str as stringD. char * str; 3.3. 在在 C#编制的财务程序中编制的财务程序中, 需要创建一个存储流动资金金额的临时变量需要创建一个存储流动资金金额的临时变量, 则应使用下列哪条语句?则应使用下列哪条语句?() A. decimal theMoney;B. int theMoney;C. string theMoney;D. Dim theMoney as double 4.4. C#中,新建一字符串变量中,新建一字符串变量 str,并将字符串,并将字符串“Toms Living Room“保存到串中,保存到串中, 则应该使用下列哪条语句?则应该使用下列哪条语句?() A. string str = “Toms Living Room“;B. string str = “Toms Living Room“; C. string str(“Toms Living Room“);D. string str(“Tom“s Living Room“); 5.5. C#中中 MyClass 为一自定义类,其中定义了以下方法为一自定义类,其中定义了以下方法 public void Hello() 使用以下语句创建了该类的对象,并使变量使用以下语句创建了该类的对象,并使变量 obj 引用该对象:引用该对象: MyClass obj = new MyClass(); 那么,可如何访问类那么,可如何访问类 MyClass 的的 Hello 方法?方法?() A. obj.Hello();B. obj:Hello();C. MyClass.Hello();D. MyClass:Hello(); 6.6. 分析下列分析下列 C#语句,注意类语句,注意类 MyClass 没有访问修饰符:没有访问修饰符: namespace ClassLibrary1 class MyClass public class subclass int i; 若必须为类若必须为类 MyClass 添加访问修饰符,并使添加访问修饰符,并使 MyClass 的可访问域保持不变,则应选择的可访问域保持不变,则应选择()。 A. privateB. protectedC. internalD. public 7.7. 分析下列程序:分析下列程序: public class class4 private string_sData = “; public string sData set _sData = value; 在在 Main 函数中,在成功创建该类的对象函数中,在成功创建该类的对象 obj 后,下列哪些语句是合法的?后,下列哪些语句是合法的?() A. obj.sData = “It is funny!“;B. Console.WriteLine(obj.sData); 第 2 页 共 10 页 C. obj._sData = 100;D. obj.set(obj.sData); 8.8. 在定义类时在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要以处理不同的派生类的需要,则应将该则应将该 方法声明成方法声明成()。 A. sealed 方法方法B. public 方法方法C. virtual 方法方法D. override 方法方法 9.9. 类类 MyClass 中有下列方法定义:中有下列方法定义: public void testParams(params int arr) Console.Write (“使用使用 Params 参数!参数!“); public void testParams(int x,int y) Console.Write (“使用两个整型参数!使用两个整型参数!“); 请问上述方法重载有无二义性?若没有,则下列语句的输出为请问上述方法重载有无二义性?若没有,则下列语句的输出为(). MyClass x = new MyClass(); x.testParams(0); x.testParams(0,1); x.testParams(0,1,2); A. 有语义二义性;有语义二义性;B. 使用使用 Params 参数!使用两个整型参数!使用参数!使用两个整型参数!使用 Params 参数!参数! C. 使用使用 Params 参数!使用参数!使用 Params 参数!使用参数!使用 Params 参数!参数! D. 使用使用 Params 参数!使用两个整型参数!使用两个整型参数!参数!使用两个整型参数!使用两个整型参数! 10.10. C#程序中,可使用程序中,可使用 trycatch 机制来处理程序出现的机制来处理程序出现的()错误。错误。 A. 语法语法B. 运行运行C. 逻辑逻辑 D. 拼写拼写 11.11. 下列语句创建了多少个下列语句创建了多少个 string 对象?对象?() string , strArray = new string 3, 4; A. 0B. 3C. 4D. 12 12.12. 接口接口 Animal 定义如下:定义如下: public interface Animal void Move(); 则下列抽象类的定义中,哪些是不合法的?则下列抽象类的定义中,哪些是不合法的?() A. abstract class Cat: Animal abstract public void Move(); B. abstract class Cat: Animal virtual public void Move() Console.Write(“Move!“); C. abstract class Cat: Animal public void Move() 第 3 页 共 10 页 Console.Write(“Move!“); D. abstract class Cat: Animal public void Eat() Console.Write(“Eat!“); 13.13. 在使用在使用 FileStream 打开一个文件时,通过使用打开一个文件时,通过使用 FileMode 枚举类型的枚举类型的()成员,来指定操作系成员,来指定操作系 统打开一个现有文件并把文件读写指针定位在文件尾部。统打开一个现有文件并把文件读写指针定位在文件尾部。 A. AppendB. CreateC. CreateNewD. Truncate 14.14. 在类的定义中,类的在类的定义中,类的()描述了该类的对象的行为特征。描述了该类的对象的行为特征。 A. 类名类名B. 方法方法C. 所属的名字空间所属的名字空间D. 私有域私有域 15.15. 以下类以下类 MyClass 的属性的属性 count 属于属于()属性属性. class MyClass int i; int count get return i; A. 只读只读B. 只写只写C. 可读写可读写D. 不可读不可写不可读不可写 16.16. 已知类已知类 MyClass 中事件中事件 MouseClicked 定义如下:定义如下: public static event MouseClickedListener MouseClicked; 执行下列语句:执行下列语句: MouseClicked += new MouseClickedListener(obj.DoSomething); MouseClicked += new MouseClickedListener(obj.DoSomething); 然后引发该然后引发该 MouseClicked 事件,其结果为:事件,其结果为:() A. obj.DoSomething 方法被调用方法被调用 4 次次B. obj.DoSomething 方法被调用方法被调用 2 次次 C. obj.DoSomething 方法被调用方法被调用 1 次次D. obj. DoSomething 方法不会被调用方法不会被调用 17.17. 假设变量假设变量 x 的值为的值为 25,要输出,要输出 x 的值,下列正确的语句是的值,下列正确的语句是()。 A. System.Console.writeline(“x”);B. System.Console.WriteLine(“x”); C. System.Console.WriteLine(“x=0”, x);D. System.Console.WriteLine(“x=x”); 18.18. 关于关于 C#程序的书写,下列不正确的说法是程序的书写,下列不正确的说法是()。 A. 区分大小写区分大小写B. 一行可以写多条语句一行可以写多条语句 C. 一条语句可写成多行一条语句可写成多行D. 一个类中只能有一个一个类中只能有一个 Main()方法,因此多个类中可以有多个方法,因此多个类中可以有多个 Main()方法方法 19.19. 在在 C#语言中,下列能够作为变量名的是语言中,下列能够作为变量名的是()。 A. ifB. 3abC. a_3bD. a-bc 20.20. 在在 C#语言中,下面的运算符中,优先级最高的是语言中,下面的运算符中,优先级最高的是()。 A. %B. +C. /=D. 21.21. 能正确表示逻辑关系能正确表示逻辑关系“a = 10 或或 a = 10 or a = 10 | a = 10 A.5B.4C.6D.不确定不确定 23.23. 有如下程序:有如下程序: using System; 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 = 1B. a = 1, b = 1C. a = 1, b = 0D. a = 2, b = 2 24.24. 以下关于以下关于 for 循环的说法不正确的是循环的说法不正确的是()。 A. for 循环只能用于循环次数已经确定的情况循环只能用于循环次数已经确定的情况B. for 循环是先判定表达式,后执行循环体语句循环是先判定表达式,后执行循环体语句 C. for 循环体语句中,可以用循环体语句中,可以用 break 语句跳出循环体语句跳出循环体 D. for 循环体语句中,可以包含多条语句,但要用花括号括起来循环体语句中,可以包含多条语句,但要用花括号括起来 25.25. 关于关于 C#语言的方法,下列叙述中正确的是语言的方法,下列叙述中正确的是()。 A. 方法的定义不能嵌套,但方法调用可以嵌套方法的定义不能嵌套,但方法调用可以嵌套B. 方法的定义可以嵌套,但方法调用不能嵌套方法的定义可以嵌套,但方法调用不能嵌套 C. 方法的定义和调用都不能嵌套方法的定义和调用都不能嵌套D. 方法的定义和调用都可以嵌套方法的定义和调用都可以嵌套 26.26. 以下所列的各个方法头中,正确的是以下所列的各个方法头中,正确的是()。 A. void play(var a: Integer, var b: Integer)B. void play(int a,b) 第 5 页 共 10 页 C. void play(int a, int b)D. Sub play(a as integer, b as integer) 27.27. 下列程序的输出结果是下列程序的输出结果是()。 using System; class Example1 static long sub(int x, int y) int z; z = x * x + y * y; return z; public static void Main() int a = 30; sub(5, 2); Console.WriteLine(“0”, a); A. 0B. 29C. 30D. 无定值无定值 28.28. 以下对枚举的定义,正确的是以下对枚举的定义,正确的是()。 A. enum a = one, two, threeB. enum a a1, a2, a3; C. enum a = 1,2,3;D. enum a “one”,”two”,”three”; 29.29. 调用重载方法时,系统根据调用重载方法时,系统根据()来选择具体的方法。来选择具体的方法。 A. 方法名方法名B. 参数的个数和类型参数的个数和类型C. 参数名及参数个数参数名及参数个数D. 方法的返回值类型方法的返回值类型 30.30. 下列的下列的()不是构造函数的特征。不是构造函数的特征。 A. 构造函数的函数名和类名相同构造函数的函数名和类名相同B. 构造函数可以重载构造函数可以重载 C. 构造函数可以带有参数构造函数可以带有参数D. 可以指定构造函数的返回值可以指定构造函数的返回值 二、二、程序填空题程序填空题 (每空每空 2 分分,10 空空共计共计 20 分分) 1.1. 请补充程序,使输出结果为请补充程序,使输出结果为:a=20,b=10 class Program static void Main() int a = 10, b = 20; Swap(1,2); Console.WriteLine(“引用传递引用传递: a = 0, b = 1“, a, b); Console.ReadLine(); public static void Swap(3,4) int z = x; x = y; y = z; 2.2. 定义一个抽象类定义一个抽象类 Vehicle, 然后再定义它的一个派生类然后再定义它的一个派生类 Truck, Truck 类实现类实现 Vehicle 类抽象方法和虚拟方法类抽象方法和虚拟方法。 请把程序补充完整。请把程序补充完整。 public5class Vehicle private float speed; public float Speed 第 6 页 共 10 页 get return speed; set speed = value; public Vehicle(float speed) this.speed = speed; public virtual float Run(float distance) return distance / speed; public abstract void Speak(); public class Truck : Vehicle private float weight; public float Weight get return weight; private float load; public float Load get return load; public Truck(int weight, int load) : base(50) this.weight = weight; this.load = load; public6float Run(float distance) return (1 + load / Weight / 2) * base.Run(distance); public7void Speak() Console.WriteLine(“叭叭.叭叭.“); 3.3. 下面这段程序的功能是:把数列下面这段程序的功能是:把数列 a1=1,a2=1, 21 nnn aaa(n2)的每一项求出来写到文件的每一项求出来写到文件 C:num.txt 文件文件 中去,然后我们根据要求的数列项从文件中把该项读出来。请把程序补充完整。中去,然后我们根据要求的数列项从文件中把该项读出来。请把程序补充完整。 static void Main() FileStream fs1 = new FileStream(8, FileMode.Create); for (ushort a = 1, b = 1; a = 10000;9) ushort t = b; b = a; a = t; fs1.WriteByte(byte)(a / 256); /写入前写入前 8 位位 fs1.WriteByte(byte)(a % 256); /写入后写入后 8 位位 fs1.Position = 0; Console.Write(“请输入要读取的数列项请输入要读取的数列项: “); int i = int.Parse(Console.ReadLine(); fs1.Position = 2 * i; int x =10; 第 7 页 共 10 页 Console.WriteLine(“数列项为数列项为: “ + x); fs1.Close(); Console.ReadLine(); 三、三、编程题编程题(每题每题 10 分分,2 题共计题共计 20 分分) 1.1. 编写一个矩形类,私有数据成员为矩形的长(编写一个矩形类,私有数据成员为矩形的长(len)和宽)和宽(wid),无参构造函数将,无参构造函数将 len 和和 wid 设置为设置为 0,有参,有参 构造函数设置长(构造函数设置长(len)和宽)和宽(wid)的值。另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取的值。另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取 矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。 2.2. 编写出一个通用的人员类(编写出一个通用的人员类(Person) ,该类具有姓名(,该类具有姓名(Name) 、性别(、性别(Sex) 、年龄(、年龄(Age)等域。然后)等域。然后对对 Person 类的继承得到一个学生类类的继承得到一个学生类(Student) ,该类能够存放学生的该类能够存放学生的 5 门课的成绩门课的成绩,并能求出平均成绩并能求出平均成绩,要要 求对该类的构造函数进行重载,至少给出三个形式。最后编程对求对该类的构造函数进行重载,至少给出三个形式。最后编程对 Student 类的功能进行验证类的功能进行验证。 洛阳理工学院洛阳理工学院 2010/2011 学年学年 第第一一学期学期 面向对象程序设计面向对象程序设计 期末考试评分标准(期末考试评分标准(A) 适用班级:适用班级:B100513/14/15/16考试时间:考试时间:120 分钟分钟 注意:看清题目要求,书写整洁!注意:看清题目要求,书写整洁! 四、四、选择题选择题(每小题每小题 2 分,分,30 题共题共 60 分分) 1-5:CBAAA6-10: CACBB 11-15:DDABA16-20: BCDCB 21-25:DCCAA26-30:CCBBD 五、五、程序填空题程序填空题 (每空每空 2 分,分,10 空共计空共计 20 分分) 1. ref a2. ref b3. ref int x4. ref int y 5.abstract6. override7. override 8. “C:num.txt“或或“C:num.txt“9. a += b 或或 a=a+b10. 256 * fs1.ReadByte() + fs1.ReadByte() 六、六、编程题编程题(每题每题 10 分,分,2 题共计题共计 20 分分) 1.1. 编写一个矩形类,私有数据成员为矩形的长(编写一个矩形类,私有数据成员为矩形的长(len)和宽)和宽(wid),无参构造函数将,无参构造函数将 len 和和 wid 设置为设置为 0,有参,有参 构造函数设置长(构造函数设置长(len)和宽)和宽(wid)的值。另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取的值。另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取 矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。 参考答案参考答案: class Rectangle。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 private float len;/长 private float wid;/宽。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 /无参构造函数 public Rectangle()。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 this.len = 0; this.wid = 0; /有参构造函数 public Rectangle(float length, float width)。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 this.len = length; this.wid = width; /取矩形的长度 public float GetLength()。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 return this.len; /取矩形的宽度 public float GetWidth()。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 return this.wid; 第 8 页 共 10 页 /修改矩形的长度 public void SetLegth(float length)。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 this.len = length; /修改矩形的宽度 public void SetWidth(float width)。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 this.wid = width; /求矩形的周长 public float GetGirth()。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 return (this.len + this.wid) * 2; /求矩形的面积 public float GetArea()。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 return this.len * this.wid; 2.2. 编写出一个通用的人员类(编写出一个通用的人员类(Person) ,该类具有姓名(,该类具有姓名(Name) 、性别(、性别(Sex) 、年龄(、年龄(Age)等域。然后)等域。然后对对 Person 类的继承得到一个学生类类的继承得到一个学生类(Student) ,该类能够存放学生的该类能够存放学生的 5 门课的成绩门课的成绩,并能求出平均成绩并能求出平均成绩,要要 求对该类的构造函数进行重载,至少给出三个形式。最后编程对求对该类的构造函数进行重载,至少给出三个形式。最后编程对 Student 类的功能进行验证类的功能进行验证。 参考答案:参考答案: /通用的人员类:Person class Person。 。 。 。 。 。 。 。 。 。 。 。 。 。2分分 protected string Name; protected string Sex; protected int Age; public Person() public Person(string name, string sex, int age) this.Name = name; this.Sex = sex; this.Age = age; /继承自人员类的学生类:Student class Student : Person。 。 。 。 。 。 。 。 。 。 。 。 。 。1分分 /用于存储5门课成绩的整型数组 priva

温馨提示

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

评论

0/150

提交评论