学习-----好资料期末考试试卷课程名称:面向对象程序设计C#.NET 适用年级/专业: 081/计算机试卷类别开卷(√)闭卷()学历层次本科考试用时 120分钟《考生注意:答案要全部抄到答题纸上,做在试卷上不给分》...........................///////////////////////////////////////////////////一、单项选择题(每小题1分,共20分)1. C#不支持的注释格式是。
A. //单行注释B. -- 单行注释C. /*多行注释*/ D. ///xml注释2. 以下标识符中,正确的是。
A. _nNameB. MainC. 6PtuerD. x5#3. Microsoft .Net Framework SDK内置的C#编译器是。
A.cs.exe B.javac.exe C. csc.exe D. scs.exe4. 以下说法中,正确的是。
A.Main函数是由C#语言提供的标准函数,不需要用户编写它的内容。
B.在C#程序中,要调用的函数必须在Main函数中定义。
C.在C#程序中,必须显式调用Main函数,它才起作用。
D.一个C#程序无论包含多少个函数,C#程序总是从Main函数开始执行。
5.派生类能够直接访问的基类的成员是。
A.抽象成员 B.保护成员C.私有成员D.静态成员6.下面是几条定义类的语句,不能被继承的类是。
A.abstract class Figure B.class FigureC.public class Figure D.sealed class Figure 7.下列数组初始化语句哪些是不正确的?。
A.int[] nums = new int[]{0,1,2,3,4};B.int[] nums2 = {0,1,2,3,4,5};C.int[][] num_1 = {new int[]{0,1},new int[]{0,1,2},newint[]{0,1,2,3}};D.int[][] num_2 = {{0,1},{0,1,2},{0,1,2,3}};8. 下面有关虚方法的描述正确的是。
A. 虚方法与非虚方法相比,其优点在于:能在程序运行时,动态确定要调用的方法,因而更灵活,更方便。
B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符。
C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带new修饰符。
D.重写基类的虚方法时,需要同时带上override和virtual修饰符。
9.如果不带修饰符,C#中类成员被默认声明成。
A.public型B.protected型C.private型D.static型10.子类从父类中继承了一个方法,但此方法在子类无用,所以可以隐藏基类中的方法,只要在子类中使用关键字:。
A.overrideB.newC.virtualD.sealed11.下列类型中,那个是值类型。
A.枚举B. 类C. 接口D. 数组12. C#源程序文件的扩展名为。
A. .vb B. .c C. .cpp D. .cs13. 下面的选项中,不能用于区别重载方法的是。
A.返回类型B.参数个数 C.参数类型 D.参数顺序14. 下面对C#中类的构造函数描述正确的是。
A.与方法不同的是,构造函数只有void这一种返回类型。
B.构造函数如同方法一样,需要人为调用才能执行其功能。
C.构造函数一般被声明成private型。
D.在类中可重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数。
15. 假设变量均已正确声明,以下没有语法错误的是:。
A. if(2-3) { a=a+3; }B. switch(name){ case “li”: ShowMessage(“okli”);break;case “le”: ShowMessage(“okle”);break;default: ShowMessage(“oklo”);}C. switch(month){ case 1: dd=31; case 2: dd=28;default: ShowMessage(“oklo”);}D.foreach(Stu p at school){p.age+=1;}16. 对字符串使用正则表达式所产生的结果不可能是:。
A.字符串和正则表达式匹配。
B.返回一个子串。
C.返回一个整数表示字符串长度。
D.返回一个新字符串,表示字符串某个部分的修改。
17. 已知customers 是包含ID、FirstName、Email三个属性的列表,数据库表的名称为Customer,则下面的LINQ表达式转换成SQL语句正确的是。
Var Resut=from customer in customerswhere customer.FirstName=”Ptuer”select customerA.Select * from CustomerB.select ID,FirstName,Email from Customer where FirstName=”Puter”C.select * from Customers where FirstName=”Puter”D. select Ptuer、ID,FirstName,Email from Customerwhere FirstName=”Puter”18. 下列的术语与数据库连接无关的是。
A. ODBCB. C. LINQD.OSD19. Visual Studio 中常用的创建事件处理程序是。
A. 点击控件,然后在其属性窗口创建名事件的处理程序。
B. 双击控件。
C. 打开现存的事件处理程序下拉列表,选择要创建的时间名称。
D. 以上都可以。
20. 下列表述不是面向对象程序设计特性的是:。
A. 封装B. 继承C. 映射D. 多态二、填空题(每小题2分,共20分)1.按照后进先出(LIFO)原则存储数据项的数据结构是。
①2.C#中类的成员包括:字段、①、方法3.如果需要在C#的方法中传递数目可变的参数,则需要在参数前加上①关键字。
4.C#中所有的类都派生于①类。
5.结构体是传递给方法时,是按①传递的。
6.①与类都可以被继承,但是与类不同的是它可以被多继承。
7.C#中提供了现成的方法①可以对数组进行排序。
8..NET中包含的string类提供了很多的字符串处理方法,其中用来获取子串的方法是①。
9.LINQ表达式是延迟执行的,一般会在我们访问①时发生。
10. Windows Forms 编程中控件的属性决定其外观,①决定其行为。
三、阅读代码,写结果(每小题5分,共10分)1.当输入 e 和 q 时下列代码的输出结果是什么?namespace Answer{ class Program{static void Main(string[] args){ char c;while((c= convert.ToChar(Console.ReadLine()))!=’q’){ Console.WriteLine(“你输入的是:{0}”,c); }} } }2.分析下列程序,写出运行结果using System;public class OverAdd{ public int real;public int visual;public static OverAdd operator -(OverAdd op1, OverAdd op2){ OverAdd op = new OverAdd();op.real = op1.real - op2.real;op.visual = op1.visual - op2.visual;return op;}}class program{ public static void Main(string[] args){ OverAdd Opt = new OverAdd();OverAdd Opt1 = new OverAdd();OverAdd Opt2 = new OverAdd();Opt1.real = 6; Opt1.visual = 3; Opt2.real = 4;Opt2.visual = 7; Opt = Opt1 - Opt2;int tem = Opt1.real - 1;int m=Convert.ToInt32(tem);Console.WriteLine("({0})+({1})i", Opt.real, Opt.visual);Console.ReadKey();}}四、简答题(每小题6分,共30分)1. C#预处理命令的作用是什么?常用的预处理命令有那些?(至少写出4个)2. 什么是只读字段,如何对只读字段进行赋值?3. 简述正则表达式的组成。
4. 什么是不规则数组,声明一个二维字符型不规则数组的代码定义。
5. 使用VS中的LINQ To SQL设计器生成数据库表的映射类的一般步骤是怎样的?五、按要求写程序(每小题10分,共20分)1. 已知某个程序的类关系图如下,请按照图中的结构写出程序,方法的具体内容自定,但是Main()方法必须调用Write()方法属性属性方法方法方法2. (1)定义一个基类MyClass,其中包含虚拟的方法GetString(),这个方法返回存储在私有字段myString中的字符串,该字段可以通过只写公共属性ContainedString来赋值。
(2)然后从类MyClass中派生一个类MyDerivedClass。
重写GetString()方法,该方法的调用基类中的GetString()方法从基类中返回字符串myString,但在返回的字符串后添加“ Output from derived class”字符串。
(3)主函数实现:从键盘输入一个字符串存入myString,然后输出MyDerivedClass中GetString() 方法的返回的字符串。