《C#复习题(11页).doc》由会员分享,可在线阅读,更多相关《C#复习题(11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C#复习题-第 11 页1、简述private、protected、public、internal修饰符的作用private只有在声明他们的类和结构体中才可访问Protected在它的类中或派生类中访问Public对访问成员没有限制Internal对同一项目的文件中,内部类型或成员才是可访问的2、 值类型和引用类型的区别,结构体与类的区别值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型。,类属于引用类型的数据类型,结构体属于值
2、类型的数据类型,这两种数据类型的本质区别主要是各自指向的内存位置不同3、C#中的接口、类、抽象类的有什么不同接口是一种契约,是不可实例化的,并且可以继承多个接口,类可以继承多个接口,类只能单继承类,接口中不可有方法体,并且不能指定修饰符。抽象类是类的一种特殊形式 抽象类中可以有方法的实现,也可以指定方法的访问修饰符。但不能实例化4、简述一下static修饰符的有关功能被static修饰的成员不能通过实例来访问a、修饰字段,表示只有一个副本 b、修饰方法,表示此方法于实例无关的,应该是线程安全的 c、修饰类,表示此类是静态类,此类不能实例化d、修饰构造函数,表示此构造函数在实例化,或第一此调用静
3、态成员时调用,只调用一次。5、说明一下new修饰符有关用处?1、实例化如:New Class()2、public new 隐藏基类的方法3、在泛型类申明中的任何类型参数都必须有公共的无参构造函数6、使用sealed、virtual、override、abstract修饰的类有什么特点?sealed表示不可继承的virtual表示虚方法,可被覆盖override,覆盖基类方法abstract表示抽象方法,该类不可实例化7、如何区别重载方法?不同的参数类型,不同的参数个数,不同的参数顺序8、.override与重载的区别 重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Ov
4、erride 是进行基类中函数的重写。为了适应需要。9、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?uusing 引入名称空间或者使用非托管资源 new 新建实例或者隐藏父类方法 10、请列出c中几种循环的方法,并指出他们的不同A:4种:For :使用于确定次数的循环Foreach:使用于遍历的元素 只读Dowhile: 次数不确定条件随机变化但至少要保证能被执行一次While:次数不确定 条件随机 变化11、有哪些主要的数据类型?它们之间是怎样进行相互转换的?值类型包括整数类型、字符类型、浮点类型、布尔类型、结构类型和枚举类型。引用类型包括类、接口、委托、数组、字
5、符串等。C#中提供了隐式类型转换和显式类型转换。12、 类和对象的区别和关系是什么?类是对象的抽象,它为属于该类的全部对象提供了统一的抽象描述。关系类是对象的模板,对象是类的实例。13、 静态字段与非静态字段有什么区别?加static修饰字段时,则该字段为静态字段,静态字段不属于某个实例对象,只与类相关联,因此,对静态字段的访问只与类关联,访问时使用类名.字段,实例字段的访问与实例对象关联,访问时使用对象名.字段。14、 接口声明主要由几部分组成,各部分的作用是什么?接口声明形式:访问修饰符 interface 接口名其中:接口的访问修饰符有new、public、protected、inter
6、nal和private,各个修饰符都代表不同的访问权限。new修饰符仅允许在类中定义的接口内使用,它指定接口隐藏同名的继承成员。public、protected、private和internal修饰符用于控制接口的可访问性,与前面所介绍的意义相同。接口名称通常以I开头。要实现该接口,必须有类继承该接口。15、在某些场合中,使用接口继承而不是类继承,为什么?程序需要许多彼此无关的对象类型来提供特定功能,此时更适合使用接口 接口可以在基类不同的类之间实现多态性接口比基类更加灵活,因为可以定义实现多个接口的单个实现 若不需要从基类继承实现,则接口是更好的选择 若不能使用类继承,则可以使用接口16、C
7、#中处理异常采用的结构化异常处理语句有哪些?并简要说明。C#中共包含3种结构化异常处理语句:trycatch语句,tryfinally语句和trycatchfinally语句。其中:try块语句中用来指明有可能出现异常的代码;catch块内指明对所出现的异常的处理,若没有异常,则catch块不执行;finally块是无论是否发生异常均要执行的代码,主要用来清理资源或执行要在try块末尾执行的其它操作,或不需要清理代码,则可以不使用该块。17、 什么是继承?继承是这样的一种能力,它可以使用现有类的所有功能,并且在无须重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或子类
8、,被继承的类称为基类或父类。18、什么是多态性?继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。C#中的多态包括两类:编译时多态性和运行时的多态性。1、完下列语句后,x和y各为何值? int x=20; int y=+x; X=_21_,y=_21_ int x=- 10; int y=(x=1)? 100:10;X=_-10_,y=_10_ int x=100; int y=(x= =1)?+x:x+; X=_100_,y=_101_2、执行以下程序段后,变量x的值是 6 ,变量y的值是 20
9、 。int x = 5, y = 10;if (x = 10) x+; y += 10;else x-; y-;3、分析下面这段代码,执行后count的值为_15_。int i, j ,count=0;for(i=3;i0;i-) for(j=0;j5;j+) count+; 4、 执行下面的程序段后,变量a、b的值分别为_1_1_ 。int x = 2, a = 0, b = 0;switch (x) case 0: b+; break; case 1: a+; break; case 2: a+; b+; break;5、有循环控制程序段如下:执行该程序后,输出结果是_6 3 2_ 。 i
10、nt x=5,y=4,z=1; while(x+!=(y-=1)z+=1;if(yx) break;MessageBox.Show(x=+x.ToString()+,+y=+y.ToString()+,+z=+ z.ToString()6、写出以下程序运行结果_45 29 42_。using System;class Test 0 1 2 3 4 5 6 7 static int a = 11, 12, 13,14, 15, 16, 17, 18 ; public static void Main() int s0, s1, s2; s0 = s1 = s2 = 0; for (int i =
11、 0; i 8; i+) switch (ai % 3) case 0: s0 += Test.ai; break;12+15+18 case 1: s1 += Test.ai; break; 13+16 case 2: s2 += Test.ai; break;11+14+17 Console.WriteLine(s0 + + s1 + + s2);7、有以下程序段:inti=0,s=0;do if(i%2=1) i+; continue; i+; s +=i;while(i5);MessageBox.Show(s =+ s.ToString();执行后输出结果是 _9_。8、该程序的运行结
12、果为:_100_101_20_101_20_。 public class A public int a = 100; public void m() a+; Console.WriteLine(a); class B : A new public int a = 20; new public void m() base.m( ); Console.WriteLine(a); public static void Main() A x = new A(); Console.WriteLine(x.a); x.m(); B y = new B(); Console.WriteLine(y.a);
13、y.m(); 9、写出以下程序运行结果为_8_11_14_17_.using System;class Testconst int N=5;public static void Main () int a = 0;for(int i=1; i10) break; if (i%2=0) s+=i; Console.writeLine (i, s= + i + , + s);1、编写Test类,包含name、age和addr,创建一个Test t=new Test(“张三”,22,”抚顺”);使用Display方法,将姓名、年龄和住址输出,并在Main中调用显示。class Test public
14、 string name; public int age; public string addr; public Test(string name,int age,string addr) this.name = name; this.age = age; this.addr = addr; public void Display() Console.WriteLine(姓名是 + name); Console.WriteLine(年龄是 + age); Console.WriteLine(住址是 + addr); static void Main(string args) Test t =
15、new Test(张三,22,抚顺); t.Display();2、根据如下界面,写出程序:string username; string password; username = textBox1.Text.Trim(); password = textBox2.Text.Trim(); if (username = admin & password = 123456) MessageBox.Show(登录成功!, 登录信息提示); else MessageBox.Show(登录失败!, 登录信息提示);3、编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。Public const double Pi = 3.14159265; double r; double s; Console.WriteLine(请输入圆的半径:);r = double.Parse(Console.ReadLine();/ s = Pi * r * r; Console.WriteLine(圆的面积: + s);
限制150内