C复习题.docx

上传人:b****6 文档编号:6974394 上传时间:2023-01-13 格式:DOCX 页数:11 大小:32.93KB
下载 相关 举报
C复习题.docx_第1页
第1页 / 共11页
C复习题.docx_第2页
第2页 / 共11页
C复习题.docx_第3页
第3页 / 共11页
C复习题.docx_第4页
第4页 / 共11页
C复习题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C复习题.docx

《C复习题.docx》由会员分享,可在线阅读,更多相关《C复习题.docx(11页珍藏版)》请在冰豆网上搜索。

C复习题.docx

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、实例化如:

NewClass()

  2、publicnew隐藏基类的方法

  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各为何值?

①intx=20;

inty=++x;

X=__21__,y=___21__

②intx=-10;

inty=(x>=1)?

100:

10;

X=_-10___,y=__10_

③intx=100;

inty=(x==1)?

++x:

x++;

X=_100___,y=_101____

2、执行以下程序段后,变量x的值是6,变量y的值是20。

intx=5,y=10;

if(x<=10&&y>=10)

{

x++;

y+=10;

}

else

{

x--;

y--;

}

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

inti,j,count=0;

for(i=3;i>0;i--)

for(j=0;j<5;j++){count++;}

4、执行下面的程序段后,变量a、b的值分别为____1___1______。

intx=2,a=0,b=0;

switch(x)

{

case0:

b++;

break;

case1:

a++;

break;

case2:

a++;

b++;

break;

}

5、有循环控制程序段如下:

执行该程序后,输出结果是____632_____。

intx=5,y=4,z=1;

while(x++!

=(y-=1))

{

z+=1;

if(y

break;

}

MessageBox.Show("x="+x.ToString()+","+"y="+y.ToString()+","+"z="+z.ToString())

6、写出以下程序运行结果______452942___________。

usingSystem;

classTest

{01234567

staticint[]a={11,12,13,14,15,16,17,18};

publicstaticvoidMain()

{

ints0,s1,s2;

s0=s1=s2=0;

for(inti=0;i<8;i++)

{

switch(a[i]%3)

{

case0:

s0+=Test.a[i];break;12+15+18

case1:

s1+=Test.a[i];break;13+16

case2:

s2+=Test.a[i];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(i<5);

MessageBox.Show("s="+s.ToString());

执行后输出结果是___9___。

8、该程序的运行结果为:

__100___101___20__101__20__。

publicclassA

{

publicinta=100;

publicvoidm()

{

a++;

Console.WriteLine(a);

}

}

classB:

A

{

newpublicinta=20;

newpublicvoidm()

{

base.m();

Console.WriteLine(a);

}

publicstaticvoidMain()

{

Ax=newA();

Console.WriteLine(x.a);

x.m();

By=newB();

Console.WriteLine(y.a);

y.m();

}

}

9、写出以下程序运行结果为____8__11__14__17_.

usingSystem;

classTest

{

constintN=5;

publicstaticvoidMain(){

inta=0;

for(inti=1;i

{

intc=0,b=5;

a+=3;c=a+b;

Console.write(c+“”);

}}

10、写出以下程序运行结果______________120___。

publicclassStudent

{

publicstringname;

publicstringnumber;

publicdoublesubsidy=80;

publicStudent(stringname,stringnumber)

{

this.name=name;

this.number=number;

}

publicvoidShowInfo()

{

Console.WriteLine("{0}\n{1}",name,number);

Console.WriteLine("{0}",AdvSubsidy.Caculate(this));

}

}

publicclassAdvSubsidy

{

publicstaticdoubleCaculate(StudentE)

{return(1.5*(E.subsidy));}

}

publicclassAppMain

{

publicstaticvoidMain()

{

Students1=newStudent("zhanghua","200454240");

s1.ShowInfo();

}

}

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

classRound

{

publicdoubler;

publicRound(doubler)

{this.r=r;}

publicvirtualdoubleArea()

{return(3.14*r*r);}

}

classSphere:

Round

{

publicSphere(doubler)

:

base(r)

{}

publicoverridedoubleArea()

{return(3.14*r*r*r);}

}

classApp

{

staticvoidMain()

{

Spheres=newSphere(3);

Console.WriteLine(s.Area());

}

}

12、写出以下程序运行结果为__i=7_____s=12______。

usingSystem;

classTest

{

publicstaticvoidMain()

{

      ints=0;

      for(inti=1; ;i++){

             if(s>10)break;

             if(i%2==0) s+=i;

      }

      Console.writeLine("i,s="+i+","+s);

}}

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

classTest

{

publicstringname;

publicintage;

publicstringaddr;

publicTest(stringname,intage,stringaddr)

{

this.name=name;

this.age=age;

this.addr=addr;

}

publicvoidDisplay()

{

Console.WriteLine("姓名是"+name);

Console.WriteLine("年龄是"+age);

Console.WriteLine("住址是"+addr);

}

staticvoidMain(string[]args)

{

Testt=newTest("张三",22,"抚顺");

t.Display();

}

}

2、根据如下界面,写出程序:

stringusername;

stringpassword;

username=textBox1.Text.Trim();

password=textBox2.Text.Trim();

if(username=="admin"&&password=="123456")

{

MessageBox.Show("登录成功!

","登录信息提示");

}

else

{

MessageBox.Show("登录失败!

","登录信息提示");

}

3、编一个程序,定义常量Pi=3.14159265,从键盘上输入半径r,求出圆的面积。

PublicconstdoublePi=3.14159265;

{doubler;

doubles;

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

");

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

s=Pi*r*r;

Console.WriteLine("圆的面积:

"+s);}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1