1、(C)卷2008-2009第一学期 第 1 页 C#程序设计试卷 共 6 页班级: 姓名: 学号: 题 号一二三四总 分得分一、 选择题:(2X15=30,非单选题)、构建桌面应用程序需要.NET提供的类库是:A、ADO.NETB、Windows.FormC、XMLD、ASP.NET2、C#语言的核心是面向对象编程(OOP),所有OOP语言都应至少具有三个特性:A、封装、继承和多态B、类、对象和方法C、封装、继承和派生D、封装、继承和接口3、以下标识符中,正确的是:A、_nName B typeof C 6b Dx54、以下类型中,不属于值类型的是:A、整数类型 B、布尔类型 C、字符类型 D
2、、类类型5、已知a、b、c的值分别是4、5、6,执行下面的程序段后,判断变量n的值为:int a,b,c,n; if (c b) n = a + b + c; else if (a + b c) n = c - a - b; else n = a + b;A、3 B、-3 C、9 D、156、下面有关for语句的描述有错的是:A、使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式B、在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号C、在for语句的表达式中,可以直接定义循环变量,以简化代码D、for语句的表达式可以全部省略7、下
3、面是几条动态初始化二维数组的语句,指出其中正确的:A、int arr5=new int4,5;B、int arr6 = new int4, 5;C、int arr7,=new int4,5;D、int, arr8=new int4,5;第 2 页共 6 页8、下面有关静态方法的描述中,错误的是:A、静态方法属于类,不属于实例B、静态方法可以直接用类名调用C、静态方法中,可以定义非静态的局部变量D、静态方法中,可以访问实例方法9、以下关于类和对象的说法中,不正确的是:A、类包含了数据和对数据的操作B、一个对象一定属于某个类C、密封类不能被继承D、可由抽象类生成对象10、C#实现了完全意义上的面向
4、对象,所以它没有_,任何数据域和方法都必须封装在类体中。A、全局变量B、全局常数C、全局方法D、全局变量、全局常数和全局方法11、让控件不可见的属性是以下哪一个?A、Cursor B、EnabledC、Dock D、Visible 12、窗口打开时触发的事件是以下哪一个?A、Click B、MenuStartC、Load D、MouseMove13、数据库连接中的参数设置Connection Timeout=10表示A、设置数据库连接超时为10秒钟 B、设置数据库连接超时为10毫秒C、设置数据库连接的用户最多为10个D、设置数据库连接的次数不能超过10次14、 下列说法哪个正确?A、 不需要定
5、义类,就能创建对象 B、 属性可以定义为抽象的C、 对象中必须有属性和方法D、 常量不能作为类成员15、 下列说法哪个正确?A、允许一个子类有多个父类B、某个类是一个类的子类,它仍有可能成为另一个类的父类C、一个父类只能有一个子类D、继承关系最多不能超过4层二、 填空题:(每空1分,1X15=15)1、要使Lable控件显示给定的文字“您好”,应在设计状态下设置它的_属性值。2、要在控制台程序运行时输入信息,可使用Console类的_方法。3、在switch语句中,在分支的最后应有一条_语句。4、数组定义与赋值语句如下:int a=1,2,3,4,5;则a2的值是_。第 3 页共 6 页5、定
6、义方法时使用的参数是_,调用方法时使用的参数是_。6、下列方法的作用是求两个数的较大数,并把较大的数作为返回值,请填空 Float max_v(_)float max;max=a;If(maxb) max=b;_;7、已知某类的类名为ClassName,则该类的析构函数名为_。8、在声明类时,在类名前_修饰符,则声明的类只能作为其他类的基类,不能被实例化。9、表示是否显示控件的属性是_。10、表示控件是否可以对用户交互作出响应的属性是_。11、按钮控件的常用事件是_。12、如果TextBox控件中显示的文本发生了变化将会发生_事件。13、要给属性对应的数据成员赋值,通常要使用set访问器,se
7、t访问器始终使用_来设置属性的值。三、简答题:(5 X 5 = 25)1、如何为程序添加注释?2、什么是数据集(DataSet)?第 4 页共 6 页3、对于等式:y=ax3+7,下面哪个表达式是正确的?(1)y=a*x*x*x+7(2)y=a*x*x*(x+7)(3)y=(a*x)*x*(x+7)(4)y=(a*x)*x*x+7(5)y=a*(x*x*x)+7(6)y=a*x*(x*x+7)并请写出此等式的另外正确表达式。4、C#中的接口和类有什么异同?5、比较模态对话框和非模态对话框的区别。第 5 页共 6 页四、编程题:(5X6=30)1、编写一个控制台程序,输入一个圆的半径,打印该圆的
8、直径、周长和面积。2、写一条for语句,计数条件为n从100200,步长为2;然后再用while语句实现同样的循环。3、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。第 6 页共 6 页4、编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2,实现乘、除两种运算。5、编写一个程序,输入梯形的上底,下底和高,输出梯形的面积。要求编写成Window应用程序。 C#程序设计试卷考查评分标准及参考答案一、选择题:(2X15=30,非单选题)1、D2、A3、A4、D5、D6、A7、D8、D9、D10、D11、D12、C13、B14、B15、B二、填空题:(1X15=15
9、)1、Text2、ReadLine()或Read()3、Default4、35、形参、实参6、float a, float b; return max;7、public ClassName()8、abstract9、Visible10、Enabled11、Click12、TextChanged13、value三、简答题:(5 X 5 = 25)1、在C#语言中,提供了两种注释方法:()每一行中“/”的内容作为注释内容,该方式只对本行生效。()需要多行注释的时候,在第一行之前使用“/*”,在末尾一行之后使用“*/”,也就是说被“/*”与“*/”所包含的内容都作为注释内容。2、DataSet是AD
10、O.NET的核心,是一个数据集,主要用来存放从数据库中取回的数据,用于支持ADO.NET中的离线数据访问。DataSet对象是一种非连接的数据缓存,就像是一个被复制到内存中的小关系数据库。它的结构与真正的数据库十分相似,可以把子DataSet想像成内存中的数据库,DataSet对象表示了数据库中完整的数据,包括表和表之间的关系等。当使用DataAdapter的Fill方法,将所连接数据库中数据放入DataSet对象之后,与数据库的连接即断开。此时,在应用程序中将直接从DataSet对象中读取数,不再依赖于数据库了。当在DataSet上完成所有的处理操作后,再将数据的更改传回数据源。这样,在多用
11、户共同存取的网络系统中,可有效降低数据库服务器的负担,提高数据存取的效率。3、正确的表达式为:(1)、(4)、(5)另外正确表达式为:y=a*(Math.Pow(x,3.0)+7;4、一个接口定义了一个协议。一个实现了某个接口的类或结构必须符合它的协议。一个接口可以从多个基本接口继承,而一个类或结构也可以实现多个接口。接口可以包含方法、属性、事件和索引。接口自己不为它所定义的成员提供具体实现。接口只是指定类中必须被实现的成员。也可以说,接口是一组包含了函数原型的数据结构,通过这组数据结构,客户代码可以调用组件对象的功能。接口具有不变性,但这不意味着接口不再发展。类似于类的继承性,接口也可以继承
12、和发展。接口可以从零个或多个接口中继承。而一个类至多只能直接继承一个类。5、所谓模态对话框,就是指当个对话框弹出的时候,鼠标不能够单击对话框以外的区域。这种对话框通常不会总是出现在屏幕上,往往是在用户进行了某些操作以后才出现的。非模态对话框通常用于显示用户需要经常访问的控件和数据,并且在使用这个对话框的过程中需要访问其他窗体的情况,很多应用程序例如Word和记事本的查找对话框就是非模态对话框。四、编程题:(6 X 5= 30)1、static void Main() Console.WriteLine(请输入圆的半径:); double dblR = Convert.ToDouble(Cons
13、ole.ReadLine(); double S, Area; Console.WriteLine(直径为0, 2 * dblR); S = 2 * Math.PI * dblR; Area = Math.PI * dblR * dblR; Console.WriteLine(周长为0, S); Console.WriteLine(面积为0, Area); 2、for (int i = 100; i = 200; i += 2) int i = 100; while (i = 200) i += 2;3、class class1 int a=0,b=0; public class1() pub
14、lic class1(int nA) a = nA; public class1(int nA, int nB) a = nA; b = nB; 4、class Cal1 public double nA, nB; public double Add() return nA + nB; public double Sub() return nA - nB; class Cal2 : Cal1 public double Mul() return nA * nB; public double Div() return nA / nB; 5、private void button1_Click(o
15、bject sender, EventArgs e) if (txtUp.Text = & txtBottom.Text = & txtHeight.Text = ) MessageBox.Show(请将数据输入完整); else double dblUp, dblBottom, dblHeight; dblUp = Convert.ToDouble(txtUp.Text); dblBottom = Convert.ToDouble(txtBottom.Text); dblHeight = Convert.ToDouble(txtHeight.Text); double dblArea; dblArea = dblHeight * (dblUp + dblBottom) / 2; txtArea.Text = Convert.ToString(dblArea);