c#期末考试复习题及答案.docx

上传人:b****6 文档编号:5947838 上传时间:2023-01-02 格式:DOCX 页数:16 大小:21.87KB
下载 相关 举报
c#期末考试复习题及答案.docx_第1页
第1页 / 共16页
c#期末考试复习题及答案.docx_第2页
第2页 / 共16页
c#期末考试复习题及答案.docx_第3页
第3页 / 共16页
c#期末考试复习题及答案.docx_第4页
第4页 / 共16页
c#期末考试复习题及答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c#期末考试复习题及答案.docx

《c#期末考试复习题及答案.docx》由会员分享,可在线阅读,更多相关《c#期末考试复习题及答案.docx(16页珍藏版)》请在冰豆网上搜索。

c#期末考试复习题及答案.docx

c#期末考试复习题及答案

基于C#的OOP技术课程复习题///////////////////////////////////////////////////

一、判断题(本大题共10个小题,每小题1分,共10分)

1.在同一行上可以书写多条语句,每条语句间用分号分隔。

(t)

2.在数据类型转化时,只能通过类型转换关键字或Convert类实现。

(f)

3.接口与类同样是面向对象程序设计的核心,是创建对象的模版。

(F)

4.委托是将方法作为参数传递给另一方法的一种数据类型。

事件与委托没有关系。

(F)

5.可以重写私有的虚方法。

(T)

6.使用Directory类的Move()方法可以删除文件。

(T)

7.不能指定接口中方法的修饰符。

(T)

8.在定义数组时不允许为数组中的元素赋值。

(F)

9.接口与类同样是面向对象程序设计的核心,是创建对象的模版。

()

10.如果要实现重写,在基类的方法中必须使用virtual关键字,在派生类的方法中必须使用overrides关键字。

(T)

11.在C#中,所有类都是直接或间接地继承System.Object类而得来的。

(T)

12.在C#中,任何方法都不能实现多继承。

(F)

13.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。

(F)

14.可以阻止某一个类被其他类继承。

(T)

15.使用FileInfo类的Copy()方法可以复制文件。

(T)

二、选择题(本大题共20个小题,每小题2分,共40分)

1.在C#中,表示一个字符串的变量应使用以下哪条语句定义?

B

A.CStringstr;

B.stringstr;

C.Dimstrasstring

D.char*str;

2.C#中MyClass为一自定义类,其中有以下方法定义:

A

publicvoidHello(){…}

使用以下语句创建了该类的对象,并使变量obj引用该对象,那么,访问类MyClass的Hello方法正确的是:

MyClassobj=newMyClass();

A.obj.Hello();

B.obj:

:

Hello();

C.MyClass.Hello();

D.MyClass:

:

Hello();

3.分析下列程序中类MyClass的定义D

classBaseClass

{publicinti;}

classMyClass:

BaseClass

{publicnewinti;}

_______.

上的输出为Console则下列语句在.

MyClassy=newMyClass();

BaseClassx=y;

x.i=100;

Console.WriteLine({0},{1},x.i,y.i);//(提示:

注意类MyClass中的new关键字)

A.0,0

B.100,100

C.0,100

D.100,0

4.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_C___?

A.sealed方法

B.public方法

C.virtual方法

D.override方法

5.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句?

A

A.intNum=int.Parse(str);

B.intNum=str.Parse(int);

C.intNum=(int)str;

D.intNum=int.Parse(str,Globalization.NumberStyles.AllowThousands);

6.在C#语言中,下列能够作为变量名的是_C___?

A.if

B.3ab

C.a_3b

D.a-bc

7.以下程序的输出结果是_C___?

Usingsystem;

ClassExample1

{

PublicStaticvoidmain(){

Inta=5,b=4,c=6,d;

Console.Writeline(“{0}”,d=a>b?

(a>c?

a:

c):

b);

}

}

A.5

B.4

C.6

D.不确定

8.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是_D___?

A.a>=10ora<=0

B.a>=10|a<=0

C.a>=10&&a<=0

D.a>=10||a<=0

9.以下关于for循环的说法不正确的是__A__?

A.for循环只能用于循环次数已经确定的情况

B.for循环是先判定表达式,后执行循环体语句

C.for循环中,可以用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来?

10.有如下程序Usingsystem;C

ClassExample1

{

PublicStaticvoidmain()

{

Intx=1,a=0,b=0;

Switch(x)

{

Case0:

b++,break;

Case1:

a++,break;

Case2:

a++,b++;break;

}Console.Writeline(“a={0},b={1}”,a,b);

}}的输出结果是

A.a=2,b=1

B.a=1,b=1

C.a=1,b=0

D.a=2,b=2

11.关于C#语言的方法,下列叙述中正确的是_A___?

A.方法的定义不能嵌套,但方法调用可以嵌套

B.方法的定义可以嵌套,但方法调用不能嵌套

C.方法的定义和调用都不能嵌套

D.方法的定义和调用都可以嵌套

12.下列程序的结果是:

B

Usingsystem;

ClassExample1

{

Staticlongfib(intn)

{

If(n>2)return(fib(n-1)+fib(n-2));

Elsererurn

(2);

}PublicStaticvoidmain()

{Console.Writeline(“{0}”,fib(3));

}}

A.2

B.4

C.6

D.8

?

来选择具体的方法___B_____系统根据,调用重载方法时13.

A.方法名

B.参数的个数和类型

C.参数名及参数个数

D.方法的返回值类型

14.下列的___D____不是构造函数的特征?

A.构造函数的函数名和类名相同

B.构造函数可以重载

C.构造函数可以带有参数

D.可以指定构造函数的返回值

15.已知类B是由类A继承而来,类A中有一个为M的非虚方法,现在希望在类B中也定义一个名为M的方法,若希望编译时不出现警告信息,则在类

B中声明该方法时,应使用____B____方法?

A.static

B.new

C.override

D.virtual

16.下列关于try…catch…finaly语句的说明中,不正确的是____D_____?

A.catch块可以有多个

B.finaly

C.catch块也是可选的

D.可以只有try块

17.以下标识符中,正确的是_A___?

A._nName

B.typeof

C.6b

D.x5#

18.下面有关运算符的说法正确的是_D___

A.算术运算符不能对布尔类型,String*(字符串类型)和Object*(对象类型)进行算术运算

B.关系运算中的”==”和赋值运算符中的”=”是相同的

C.sizeof运算符用来查询某种数据类型或表达式的值在内存中所占懂得内存空间大小(字节数)

D.括号在运算符中的优先级中是最高的,它可以改变表达式的运算顺序

19.下面对抽象类描述不正确的是__C____?

A.抽象类只能作为基类使用

B.抽象类不能定义对象

C.抽象类可以实例对象

D.可以实现多态

20.下面对异常说法不正确的是_D__

A.try/catch块为基本引发异常的组合

B.在捕获异常时,可以有多个catch块

C.无论异常是否发生,finally块总会执行

不能连用finally块和D.try

1.C#中,新建一字符串变量str,并将字符串呜浯?

?

楌楶杮删潯屭保存到串中,则应该使用下列哪条语句?

A

A.stringstr=Tom\'sLivingRoom;

B.stringstr=Tom'sLivingRoom;

C.stringstr(Tom'sLivingRoom);

D.stringstr(TomsLivingRoom);

2.分析下列程序:

A

publicclassclass4

{

privatestring_sData=\;

publicstringsData{set{_sData=value;}}

}

在Main函数中,在成功创建该类的对象obj后,下列哪些语句是合法的?

A.obj.sData=Itisfunny!

;

B.Console.WriteLine(obj.sData);

C.obj._sData=100;

D.obj.set(obj.sData);

3.分析下列程序中类MyClass的定义

classBaseClass

{publicinti;}

classMyClass:

BaseClass

{publicnewinti;}

则下列语句在Console上的输出为___D____.

MyClassy=newMyClass();

BaseClassx=y;

x.i=100;

Console.WriteLine({0},{1},x.i,y.i);//(提示:

注意类MyClass中的new关键字)

A.0,0

B.100,100

C.0,100

D.100,0

4.在类的定义中,类的___B_______描述了该类的对象的行为特征?

A.类名

B.方法

C.所属的名字空间

D.私有域

5.关于C#程序的书写,下列不正确的说法是__D__?

A.区分大小写

B.一行可以写多条语句

C.一条语句可写成多行

D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法

6.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是_D___?

A.a>=10ora<=0

B.a>=10|a<=0

C.a>=10&&a<=0

D.a>=10||a<=0

_B___?

7.if语句后面的表达式应该是A.逻辑表达式B.条件表达式C.算术表达式D.任意表达式?

以下叙述正确的是__D__8.语句构成的循环不能用其他语句构成的循环来代替A.do….while语句退出B.do….while语句构成的循环只能用break时结束循环后的表达式为truedo….while语句构成的循环,在whileC.用

后的表达式应为关系表达式或在while语句构成的循环用do….while,D.逻辑表达式:

C以下程序的输出结果是9.ClassExample1

{

PublicStaticvoidmain()

{

IntI;

Int[]a=newint[10];

For(i=9;i>=0;i--)a[i]=10-I;

{2}”,a[2],a[5],a[8]);

}}

A.258

B.741

C.852

D.369

10.关于C#语言的方法,下列叙述中正确的是_A___?

A.方法的定义不能嵌套,但方法调用可以嵌套

B.方法的定义可以嵌套,但方法调用不能嵌套

C.方法的定义和调用都不能嵌套

D.方法的定义和调用都可以嵌套

11.下列程序的结果是:

B

Usingsystem;

ClassExample1

{

Staticlongfib(intn)

{

If(n>2)return(fib(n-1)+fib(n-2));

Elsererurn

(2);

}PublicStaticvoidmain()

{Console.Writeline(“{0}”,fib(3));

}}

A.2

B.4

C.6

D.8

12.调用重载方法时,系统根据___B_____来选择具体的方法?

A.方法名

B.参数的个数和类型

C.参数名及参数个数

D.方法的返回值类型

13.下列的__D_____不是构造函数的特征?

A.构造函数的函数名和类名相同

B.构造函数可以重载

C.构造函数可以带有参数

D.可以指定构造函数的返回值

14.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰M1方法时一定使用了___B_____修饰符?

ClassAobj=newClassA();

ClassA.M1();

A.public

B.static

C.private

D.virtual

15.为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为_____A____?

A.Exception

B.DivideByZeroException

C.FormatException

D.以上三个均可

16.关于异常,下列的说法中不正确的是___D______?

A.用户可以根据需要抛出异常

B.在被调用方法可通过throw语句把异常传回给调用方法

C.用户可以自己定义异常

D.在C#中有的异常不能被捕获

17.以下类型中,不属于值类型的是__D__?

A.整数类型

B.布尔类型

C.字符类型

D.类类型

18.下列给出的变量名正确的是_A____.

A.intNO.1

B.charuse

C.floatMain

D.char@use

19.在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成__C__?

A.sealed方法

B.public方法

C.virtual方法

D.override方法

20.为了将字符串str=“123,456”转换成整数123456,应该使用以下哪条语句?

A

A.intNum=int.Parse(str);

B.intNum=str.Parse(int);

C.intNum=(int)str;

D.intNum=int.Parse(str,Globalization.NumberStyles.AllowThousands);

三、程序阅读题(本大题共5个小题,每小题5,共25

1.写出以下程序的运行结果。

usingSystem;

classTest

{

publicstaticvoidMain()

{

intx=5;

inty=x++;

Console.WriteLine(y);

y=++x;

Console.WriteLine(y);

}

}

2.写出下列函数的功能。

staticfloatFH(){

floaty=0,n=0;

intx=Convert.ToInt32(Console.ReadLine());//从键盘读入整型数据赋给x

while(x!

=-1){

n++;y+=x;

x=Convert.ToInt32(Console.ReadLine());

}

if(n==0)

returny;

else

returny/n;

}

3.写出以下程序的功能。

staticvoidf2(refdouble[]a,intn)

{inti;doublesum=0;

for(i=0;i

sum/=n;

for(i=0;i

if(a[i]>=sum)

Console.write(a[i]+““);

Console.writeLine();

}

4.写出以下程序运行结果。

usingSystem;

classTest

{

staticvoidLE(refinta,refintb){

intx=a;

b=x;

a=b;

Console.writeLine(a+““+b);

}

publicstaticvoidMain()

{

intx=10,y=25;

LE(refx,refy);

Console.writeLine(x+““+y);

}

}

5.写出以下程序的运行结果。

usingSystem;

classTest

{

publicstaticvoidMain()

{

int[]a={2,4,6,8,10,12,14,16,18};

for(inti=0;i<9;i++){

Console.write(“”+a[i]);

if((i+1)%3==0)Console.writeLine();

}}

}

6..写出下列函数的功能。

staticintSA(inta,intb)

{

if(a>b)

return1;

elseif(a==b)

return0;

else

return-1;

}

7.写出以下程序运行结果。

usingSystem;

classTest

{

staticint[]a={1,2,3,4,5,6,7,8};

publicstaticvoidMain()

{

ints0,s1,s2;

s0=s1=s2=0;

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

{

switch(a[i]%3)

{

case0:

s0+=Test.a[i];break;

case1:

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

case2:

s2+=Test.a[i];break;

}

}

Console.WriteLine(s0++s1++s2);

}

}

8.写出以下程序运行结果。

usingSystem;

classTest

{

constintN=5;

publicstaticvoidMain(){

inta=0;

for(inti=1;i

{

intc=0,b=2;

a+=3;c=a+b;

Console.write(c+““);

}}

9.写出以下程序的功能。

staticvoidWA(refint[]a,intn){

for(inti=0;i

intk=i;

for(intj=i+1;j

if(a[j]

intx=a[i];a[i]=a[k];a[k]=x;}

}

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

usingSystem;

classTest

{

publicstaticvoidMain()

{

ints=0;

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

if(s>50)break;

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

}

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

}}

四、编程题(本大题共2个小题,第一小题10分,第二小题15分,共25分)

1.编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们,

然后用ifelse选择语句找出它们中的最小数,最后输出结果。

2.编一个程序,输入一个整数,使用ifelse语句,如果该数大于0,则加上100,否则加上500,输出结果。

3.编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。

已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式Math.Sqrt(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。

在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。

注意:

在输入三角形三条边时,必须检查它们的数据合法性。

4.编一个程序,定义类student和它的成员(学号,姓名,年龄和c_sharp程序设计成绩),用类student生成对象s,分别对对象s的成员赋值,然后输出对象s。

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

当前位置:首页 > 自然科学

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

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