您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页C#复习题

C#复习题

来源:智榕旅游


1、简述private、protected、public、internal修饰符的作用

private只有在声明他们的类和结构体中才可访问 Protected在它的类中或派生类中访问 Public对访问成员没有限制

Internal对同一项目的文件中,内部类型或成员才是可访问的

2、 值类型和引用类型的区别,结构体与类的区别

值类型的值是存放在堆栈中的,改变其值,不改变变量原有的值,而引用类型的值是存放在栈中的,其引用的地址是存放在堆栈中的,改变其值也就改变了变量原有的值。值类型不允许包含null值,然而可空类型可以将null赋值给值类型。,类属于引用类型的数据类型,结构体属于值类型的数据类型,这两种数据类型的本质区别主要是各自指向的内存位置不同

3、C#中的接口、类、抽象类的有什么不同

接口是一种契约,是不可实例化的,并且可以继承多个接口,类可以继承多个接口,类只能单继承类,接口中不可有方法体,并且不能指定修饰符。 抽象类是类的一种特殊形式抽象类中可以有方法的实现,也可以指定方法的访问修饰符。但不能实例化

4、简述一下static修饰符的有关功能

被static修饰的成员不能通过实例来访问 a、修饰字段,表示只有一个副本

b、修饰方法,表示此方法于实例无关的,应该是线程安全的 c、修饰类,表示此类是静态类,此类不能实例化

d、修饰构造函数,表示此构造函数在实例化,或第一此调用静态成员时调用,只调用一次。

5、说明一下new修饰符有关用处?

1、实例化如:New Class() 2、public new 隐藏基类的方法

3、在泛型类申明中的任何类型参数都必须有公共的无参构造函数 6、使用sealed、virtual、override、abstract修饰的类有什么特点?

sealed表示不可继承的

virtual表示虚方法,可被覆盖 override,覆盖基类方法

abstract表示抽象方法,该类不可实例化

7、如何区别重载方法?

不同的参数类型,不同的参数个数,不同的参数顺序

8、.override与重载的区别

重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。

9、在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?u using 引入名称空间或者使用非托管资源 new 新建实例或者隐藏父类方法

10、请列出c#中几种循环的方法,并指出他们的不同 A:4种:

For :使用于确定次数的循环 Foreach:使用于遍历的元素只读

Do„while: 次数不确定条件随机变化但至少要保证能被执行一次 While:次数不确定 条件随机 变化

11、有哪些主要的数据类型?它们之间是怎样进行相互转换的?

值类型包括整数类型、字符类型、浮点类型、布尔类型、结构类型和枚举类型。引用类型包括类、接口、委托、数组、字符串等。

C#中提供了隐式类型转换和显式类型转换。 12、 类和对象的区别和关系是什么?

类是对象的抽象,它为属于该类的全部对象提供了统一的抽象描述。关系类是对象的模板,对象是类的实例。

13、 静态字段与非静态字段有什么区别?

加static修饰字段时,则该字段为静态字段,静态字段不属于某个实例对象,只与类相关联,因此,对静态字段的访问只与类关联,访问时使用类名.字段,实例字段的访问与实例对象关联,访问时使用对象名.字段。

14、 接口声明主要由几部分组成,各部分的作用是什么?

接口声明形式:访问修饰符 interface 接口名

其中:接口的访问修饰符有new、public、protected、internal和private,各个修饰符都代表不同的访问权限。new修饰符仅允许在类中定义的接口内使用,它指定接口隐藏同名的继承成员。public、protected、private和internal修饰符用于控制接口的可访问性,与前面所介绍的意义相同。接口名称通常以I开头。要实现该接口,必须有类继承该接口。

15、在某些场合中,使用接口继承而不是类继承,为什么?

程序需要许多彼此无关的对象类型来提供特定功能,此时更适合使用接口 接口可以在基类不同的类之间实现多态性

接口比基类更加灵活,因为可以定义实现多个接口的单个实现 若不需要从基类继承实现,则接口是更好的选择 若不能使用类继承,则可以使用接口

16、C#中处理异常采用的结构化异常处理语句有哪些?并简要说明。

C#中共包含3种结构化异常处理语句:try„catch语句,try„finally语句和try„catch„finally语句。其中:try块语句中用来指明有可能出现异常的代码;catch块内指明对所出现的异常的处理,若没有异常,则catch块不执行;finally块是无论是否发生异常均要执行的代码,主要用来清理资源或执行要在try块末尾执行的其它操作,或不需要清理代码,则可

以不使用该块。

17、 什么是继承?

继承是这样的一种能力,它可以使用现有类的所有功能,并且在无须重新编写原来的类的情况下对这些功能进行扩展。使用继承而产生的类被称为派生类或子类,被继承的类称为基类或父类。

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 。 int x = 5, y = 10; if (x <= 10 && y >= 10) {

x++; y += 10; } else {

x--; y--; }

3、分析下面这段代码,执行后count的值为________15__________。

int i, j ,count=0; for(i=3;i>0;i--)

for(j=0;j<5;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_____ 。 int x=5,y=4,z=1; while(x++!=(y-=1)) { z+=1; if(yMessageBox.Show(\"x=\"+x.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 = 0; i < 8; i++) {

switch (a[i] % 3) {

case 0: s0 += Test.a[i]; break;12+15+18 case 1: s1 += Test.a[i]; break; 13+16 case 2: s2 += Test.a[i]; break;11+14+17 } }

Console.WriteLine(s0 + \"\" + s1 + \"\" + s2); } }

7、有以下程序段: int i=0,s=0;

do {

if(i%2==1) {

i++;

continue; } i++; s +=i; }

while(i<5);

MessageBox.Show(\"s =\"+ s.ToString()); 执行后输出结果是 ___9___。

8、该程序的运行结果为:__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); y.m(); }

}

9、写出以下程序运行结果为____8__11__14__17_. using System; class Test {

const int N=5;

public static void Main (){ int a = 0;

for(int i=1; iint c=0, b=5; a+=3; c=a+b;

Console.write (c + “” ); } }

10、写出以下程序运行结果______________120___。 public class Student {

public string name; public string number;

public double subsidy = 80;

public Student(string name, string number) {

this.name = name; this.number = number; }

public void ShowInfo() {

Console.WriteLine(\"{0}\\n{1}\

Console.WriteLine(\"{0}\ } }

public class AdvSubsidy {

public static double Caculate(Student E) { return (1.5 * (E.subsidy)); } }

public class AppMain {

public static void Main() {

Student s1 = new Student(\"zhanghua\ s1.ShowInfo();

} }

11、写出以下程序运行结果为____84.78_______. class Round {

public double r;

public Round(double r) { this.r = r; }

public virtual double Area() { return (3.14 * r * r); } }

class Sphere : Round {

public Sphere(double r) : base(r) { }

public override double Area() { return (3.14 * r * r * r); } }

class App {

static void Main() {

Sphere s = new Sphere(3); Console.WriteLine(s.Area()); } }

12、写出以下程序运行结果为__i=7_____s=12______。 using System; class Test {

public static void Main () {

int s=0;

for (int i=1; ; i++) { if (s>10) break; if (i%2==0) s+=i; }

Console.writeLine (\"i, s=\" + i + \} }

1、编写Test类,包含name、age和addr,创建一个Test t=new Test(“张三”,22,”抚顺”);使用Display方法,将姓名、年龄和住址输出,并在Main中调用显示。

classTest {

publicstring name; publicint age; publicstring addr;

public Test(string name,int age,string addr) {

this.name = name; this.age = age; this.addr = addr; }

publicvoid Display() {

Console.WriteLine(\"姓名是\" + name); Console.WriteLine(\"年龄是\" + age); Console.WriteLine(\"住址是\" + addr); }

staticvoid Main(string[] args) {

Test t = newTest(\"张三\",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 constdouble Pi = 3.14159265; {double r; double s;

Console.WriteLine(\"请输入圆的半径:\");

r = double.Parse(Console.ReadLine());//

s = Pi * r * r;

Console.WriteLine(\"圆的面积:\" + s);}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zrrp.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务