C#复习资料 联系客服

发布时间 : 星期二 文章C#复习资料更新完毕开始阅读

3.分析下面的代码,指出Digit和byte直接的转换方式,并说明原因。 using System; ??

namespace Digit {

public class Digit {

byte value;

public Digit(byte value) {

if(value<0||value>9)

throw new ArgumentException(); this.value=value; }

public static implicit operator byte(Digit d) {

return d.value; } } class Program {

static void Main(string[] args) {

Digit dig=new Dight(7); byte num=dig;

Console.WriteLine(\ Console.ReadLine(); } } }

五、编程题

1.定义描述复数的类,并实现复数的输入和输出。设计三个方法分别完成复数的加、减和乘法运算。

2.定义全班学生成绩类,包括姓名、学号、C++成绩、英语成绩、数学成绩和平均成绩。设计下列4个方法。

(1)全班成绩的输入。

(2)求出每一个同学的平均成绩。 (3)按平均成绩的升序排序。 (4)输出全班成绩。

3.定义一个描述学生基本情况的类,数据成员包括姓名、学号以及C++和数学成绩,成员函数包括输出数据、设置姓名和学号、设置三门课的成绩,求出总成绩和平均成绩。

4.设有一个描述坐标点的CPoint类,其私有变量x和y代表一个点的x、y坐标值。编写程序实现以下功能:利用构造函数传递参数,并设其默认参数值为60和75,利用成员函数display()输出这一默认值;利用公有成员函数setpoint()将坐标值修改为(80.150),并利用

成员函数输出修改后的坐标值。

5.定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入/输出的成员函数。在此基础上派生出学生类CStudent(增加成绩)和教师类(增加教龄),并实现对学生和教师信息的输入/输出。

6.把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,在派生出一个矩形类CRect。要求成员函数能求出两点间的距离、矩形的周长和面积等。设计一个测试程序,并构造完整的程序。 简答题

3.属性是类的数据成员吗?属性的作用是什么?get和set关键字的作用是什么/ 4.什么是方法?C#允许在类的外部声明方法吗? 5.简述值类型与引用类型的区别。 6.在方法调用中,参数按值传递与按引用传递的区别是什么?基本数据类型作为参数默认按什么方式传递,类对象作为参数默认按什么方式传递?类对象可以按值方式传递吗?基本数据类型参数按引用传递时,应该怎么做?关键字ref和out的区别是什么? 7.什么叫方法的重载?两个方法是重载关系时,应满足什么条件? 8.简述构造函数的作用? 实验步骤

1.设计一个简单的Windows应用程序,在文本框中输入两个点的坐标值,单击”确定”时显示两点之间的距离,如国所示. 要求定义一个Point类,包括: (1)两个私有字段表示两坐标值

(2)一个构造函数通过传入的参数对坐标值初始化 (3)两个只读属性对坐标值的读取

一个方法包含一个Point类对象作为形参该对象和自己的距离

2.自定义一个时间类.该类包含小时,分,秒字段与属性,具有将秒增加1秒的方法,如图所示.

要求定义一个Time类,包括: (1)三个私有字段表示时,分,秒

(2)两个构造函数,一个通过传入的对时间初始化,另一个获取系统当前的时间 (3)三个只读入属性实现对时,分,秒的读取 (4)一个于对秒增加1秒(注意60进位的问题). 图13

3.设计一个Windows应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号、姓名,语文、数学和英语三门课程的期末考试成绩,要求: (1)能查询每个学生的总成绩。 (2)能显示全班前三名的名单。

(3)能显示单科成绩最高分和不及格的学生名单。 (4)能统计全班学生的平均成绩。

(5)能显示各科成绩在不同分数段的学生人数百分比。 设计提示:

(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等。

(2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等。

(3)设计用户操作界面,首先让用户能输入一个学生的信息,当单击“添加”按钮时把这些信息添加到班级对象的学生数组中。当单击“完成”按钮时调用班级类的方法来显示索要来统计的统计结果。当用户在查询框中输入学生的名字后,并单击“查询”按钮时显示该学生的总成绩。 1.选择题

(1)面向对象的特点主要概括为()

A.可分解性、可组合性和可分类性 B.继承性、封装性和多态性

C.封装性、易维护性、可扩展性和可重用性 D.抽象性、继承性、封装性

(2)要使某个类能被同一个命名空间中的其他类访问,但不能被这个命名空间以外的类访问,该类可以()

A.不适用任何关键字 B.使用privat关键字 C.使用const关键字 D.使用protected关键字 (3)类的字段和方法的默认访问修饰符是() A.public B.private C.protected D.internal (4)下列关于构造函数的描述中,()选项是正确的。 A.构造函数名必须与类名相同 B.构造函数不可以重载 C.构造函数不能带参数 D.构造函数可以声明返回类型 (5)C#中TestClass为一自定义类,其中有以下属性定义: public void Property{??}

使用以下语句创建了该类的对象,并让变量obj引用该对象: TestClass obj=new TestClass();

那么,可通过()方式访问类TestClass的Property属性。

A.MyClass.Property B.obj::Property C.obj.Property D.obj.Property() 2.思考题

(1)如何理解面向对象程序设计中的类和对象?二者是什么关系? (2)面向对象的主要特点有哪些?

(3)类的声明格式中包含哪些部分?各有什么意思? (4)什么是实例方法?什么是静态方法?

(5)类可以使用哪些修饰符?各代表什么含义?

(6)简述new、this、static、ref、out、params、get、set、value这些关键字的作用。 (7)简述构造函数和析构函数的作用。 3.上机练习题

(1)构造一个类,可以分别对任意多个整数、小数或字符串进行排序。

(2)自定义一个时间类,该类包含时、分、秒字段与属性,具有将时间增加1秒、1分和1小时的方法,具有分别显示时、分、秒和同事显示时分秒的方法。

(3)创建一个Windows应用程序,输入两个正整数,单击“计算”按钮,求出这两个数的最大公约数。

要求:将求最大公约数的算法声明为一个静态方法,由“计算”按钮调用。 (4)构造一个图书类book,能记录和访问书店图书信息,包括标题、作者、价格、库存等,同时能选择不同的构造函数来初始化类的实例。 1.选择题

(1)下面有关虚方法的描述中,正确的是()

A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活 B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符 C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符 D.在重写虚方法时,需要同时带上override和virtual修饰符 (2)下列方法中,()是抽象方法。

A. static void func(){} B.virtual void func(){}C.abstract void func(){} D.override void func(){} (3)下列关于接口的说法中,()是错误的。 A.一个类可以有多个基类和多个基接口 B.抽象类和接口都不能被实例化

C.抽象类自身可以定义成员而接口不可以 D.类不可以多重继承而接口可以 (4)已知类Base,Derived的定义如下: Class Base {

Public void Hello() {

System.Console.Write(“Hello in Base!”); } }

Class Derived : Base {

Public new void Hello() {

System.Console.Write(“Hello in Derived!”); } }

则语句段”Derived x=new Derived();x.Hello();”在控制台中的输出结果为____ A.Hello in Base! B.Hello in Base!Hello in Derived! C.Hello in Derived! D.Hello in Derived!Hello in Base! 思考题

(1)什么是类的继承?怎样定义派生类? (2)简述创建派生类时,构造数的调用.

(3)怎样定义基类虚方法,并在派生类中重写基类虚方法? (4)抽象方法与虚方法有什么异同?

(5)什么是抽象类?它有什么特点?它和接口有何异同? (6)简述通过委托来调用对象方法的基本过程 上机练习题

(1)定义磁盘类Disk及派生类HardDisk(硬盘),Flash(闪盘)和CKROM(光盘)在其中定义记录磁盘容量的字段,并通过虚拟方法和重写方法来模拟对磁盘内容的写入和删除.

(2)设计并编程实现规则平面几何图形(所谓规则是指各边相等,各个内角也相等的等边图形)的继承层次,要求定义一个抽象基类Shape,同它派生出4个派生类:等边三解开,下方形,等边五边形,等边六边形,并通过抽象方法的实现来计算各种图形的面积

(3)以委托对象作为方法的参数,对学生类对象分别按照姓名,年龄和年级来比较两个学生对象,实现程序以不同的排序方法来输出学生信息.

(4)在第7章习题的设计题(4)的book类中,添加每卖出一份图书时,就触发一个事件.在订购者中处理该事件,输出销售数据信息.