C程序设计语言期末考试题A有答案.docx

上传人:b****4 文档编号:24461640 上传时间:2023-05-27 格式:DOCX 页数:15 大小:116.81KB
下载 相关 举报
C程序设计语言期末考试题A有答案.docx_第1页
第1页 / 共15页
C程序设计语言期末考试题A有答案.docx_第2页
第2页 / 共15页
C程序设计语言期末考试题A有答案.docx_第3页
第3页 / 共15页
C程序设计语言期末考试题A有答案.docx_第4页
第4页 / 共15页
C程序设计语言期末考试题A有答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C程序设计语言期末考试题A有答案.docx

《C程序设计语言期末考试题A有答案.docx》由会员分享,可在线阅读,更多相关《C程序设计语言期末考试题A有答案.docx(15页珍藏版)》请在冰豆网上搜索。

C程序设计语言期末考试题A有答案.docx

C程序设计语言期末考试题A有答案

C程序设计语言期末考试题A有答案)

答案

C

D

A

C

C

B

A

A

A

D

1.C#程序设计语言属于什么类型的编程语言:

a

A.高级语言B.自然语言C.机器语言D.汇编语言

2.如有inta=11;则表达式(a++*1/3)的值是:

b

A.0B.3C.4D.12

3.类的字段和方法的默认访问修饰符是:

b

A.publicB.privateC.protectedD.internal

4.对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。

如圆周率PI始终为3.14。

现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?

b

A.constfloatPI;PI=3.14f;B.constfloatPI=3.14f;

C.floatconstPI;PI=3.14f;D.floatconstPI=3.14f;

5.请问经过表达式a=3+3>5?

0:

1的运算,变量a的最终值是什么?

c

A.6B.1C.0D.true

6.下列语句是MyClass的一部分,obj是MyClass的一个对象。

privateclasssubclass

{

publicintdata;

}

voidchange(refintx){x=1;}

publicvoidtest()

{

subClasss=newsubClass();

s.data=100;

change(refs.data);

Console.WriteLine(s.data);

}

则调用obj.test()后。

控制台输出(d)。

A.100B.101C.0D.1

7.用户自定义的异常类应该从哪个类中继承(d)

A.System.ArgumentExceptionB.System.IO.IOException

C.System.SystemExceptionD.System.ApplicationException

8.下面有关虚方法的描述正确的是(a)。

A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便

B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符

C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符

D.在重写虚方法时,需要同时带上override和virtual修饰符

9.下列语句声明了一个委托:

publicdelegateintmyCallBack(intx);则用该委托产生的回调方法的原型应该是:

b

A.voidreceive(intx)B.intreceive(intnum)

C.intreceive()D.不确定的

10.C#中TestClass为一自定义类,其中有以下属性定义

publicvoidProperty{…}

使用以下语句创建了该类的对象,并使变量obj引用该对象:

TestClassobj=newTestClass();

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

A.TestClass.Progerty;B.TestClass.Property();

C.obj.Property;D.obj.Property();

11.已知类Base、MyClass的定义如下

classBase

{

publicvoidHello()

{

System.Console.WriteLine("HelloinBase!

");//先基后派

}

}

classDerived:

Base

{

publicvoidHello()

{

System.Console.WriteLine("HelloinDerived!

");

}

}

则下列语句在控制台中的输出结果为__c___。

Derivedx=newDerived();

x.Hello();

A.HelloinBase!

B.HelloinDerived!

C.HelloinBase!

D.HelloinDerived!

HelloinDerived!

HelloinBase!

12.下列关于接口的说法中,哪个选项是正确的?

(d)

A.一个类可以有多个基类和多个基接口

B.抽象类和接口都不能被实例化

C.抽象类和接口都可以对成员方法进行实现

D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法

13.下列关于构造函数的描述中,哪个选项是正确的?

(a)

A.构造函数必须与类名相同B.构造函数不可以用private修饰

C.构造函数不能带参数D.构造函数可以声明返回类型

14.引用数组元素时,数组下标的数据类型可以允许哪项类型?

(c)

A.整型常量B.整型表达式

C.整型常量或整型表达式D.任何类型的表达式

15.以下类MyClass的属性count属于__c___属性。

classMyClass

{

inti;

intcount

{

get{returni;}

}

}

A.只读B.只写C.可读写D.不可读不可写

16.要让用户选择和浏览要打开的文件,应使用什么对话框?

(b)

A.FileDialogB.OpenFileDialo

C.SaveFileDialoD.FolderBrowserDialog

17.在VisualStudio2005中,假设你正在单步调试某个应用程序。

程序从入口开始,调用某个私有方法将产生异常。

现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试?

a

A.使用逐语句调试B.使用逐过程调试

C.跳出调试D.停止调试

18..NETFramework2.0中,处理异常是很有用的功能。

一个try代码块可以有多个catch块于之对应。

在多个catch块中,下面哪个异常应该最后捕获?

a

A.System.Exception类B.System.SystemException类

C.System.ApplicationException类D.System.StackOverflowException类

19.在二维坐标系中,通常需要保存一组点的坐标。

使用二维数组是一个解决方案。

下面哪段代码正确初始化了2行2列的整数二维数组?

a

A.int[,]array=newint[2,2];B.int[][]array=newint[2][2];

C.int[,]array=newint[2][2];D.int[][]array=newint[2,2];

20.已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter。

现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段代码?

d

A.SeasoncurrentSeason=Spring;B.currentSeason=Spring;

C.currentSeason=Season.Spring;D.SeasoncurrentSeason=Season.Spring;

三.简答题(每题5分,共10分)

1.类与对象有什么区别?

答:

类是用来描述某种具有相同属性和行为的事物,对象是类的一种具体表现。

2.什么叫多态性,在C#语言中如何实现多态?

答:

多态性是指一段程序能够处理多种类型对象的能力。

 

四.综合题(共40分)

1.下面这段程序要完成的功能是:

从输入的字符串中找出小写字母并输出到终端。

请检查下列代码,找出所有错误的代码,并写出该行完整的正确代码。

(4分)

1.usingSystem;

2.publicclassProgram

3.{

4.staticvoidMain(string[]args)

5.{

6.stringinputString=Console.ReadLine();

7.stringlowerCase=string.Empty;

8.foreach(charchininputString)

9.if(ch>='a'||ch<='z')

10.lowerCase+=ch.ToString;

11.Console.WriteLine("小写字母有:

"+lowerCase);

12.}

13.}

更正以下两句:

9.if(ch>='a'&&ch<='z')

10.lowerCase+=ch.ToString();

2.下述代码用于重写Message方法。

请分析下述代码,并更正错误代码行。

(4分)

1.interfaceIMsg

2.{

3.voidMessage();

4.}

5.publicclassMyClass:

IMsg

6.{

7.publicvirtualvoidMessage()

8.{

9.Console.WriteLine("MyClass");

10.}

11.}

12.publicclassMyDerivedClass:

MyClass

13.{

14.publicvoidMessage()

15.{

16.Console.WriteLine("MyDerivedClass");

17.}

18.}

第14行:

更正为:

publicoverridevoidMessage()

3.下面代码功能是对数组进行遍历,请分析下列代码段并在空白行补全C#代码。

(4分)

staticvoidMain(string[]argz)

{

string[]myString={"windows","form","dialog"};

foreach(

(1))

{

Console.WriteLine(str);

}

}

(1):

stringstrinmyString

4.下面程序中两个方法需要实现的功能是:

int数组相加,即数组中的每项相加,

以及string类型的相加,即把一串字符串接到另一串字符串后面。

请分析下列代码段,并在空白行补全visualC#代码。

(6分)

(1)

{

int[]result=newint[array1.Length];

for(inti=0;i

result[i]=array1[i]+array2[i];

returnresult;

}

(2){

stringspaceStr="",result=null;

result=str1+spaceStr+str2;

returnresult;

}

staticvoidMain(string[]arges)

{

int[]a={1,2,3,},b={4,5,6};

int[]sumArray=newint[3];

stringstr1="visual",str2="studio";

stringsumString=null;

sumArray=Add(a,b);

sumString=Add(str1,str2);

}

1,staticint[]Add(int[]array1,int[]array2)

2.staticstringAdd(stringstr1,stringstr2)

5.下列程序段的作用是对字符串数组myArray进行排序后输出“RubyMarkNormanKinger”,请补全代码完成该功能。

(6分)

staticvoidMain(string[]args)

{

string[]myArray=newstring[]{"Kinger","Norman","Ruby","Mark"};

Sort(myArray);

foreach(stringstrinmyArray)

Console.Write(str+"");

}

publicstaticvoidSort(string[]array)

{

stringstr;

for(intj=0;j

{

for(inti=0;i

{

str=array[i];array[i]=array[i+1];

array[i+1]=str;

}

}

}

6.比尔在教他的女儿面向对象的知识。

他写了一个类Bill和一个接口IPrintname。

现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI(),将输出改为“Jennifer”;并且实现接口IPrintname,该接口只有一个方法Print,这个方法的实现会在控制台打印调用WhoAmI函数的结果(即:

“Jennifer”)。

(6分)

publicclassBill

{

publicvirtualstringWhoAmI()

{

return"Bill";

}

}

publicinterfaceIPrintname

{

voidPrint();

}

publicclassJennifer:

Bill,IPrintname

{

publicoverridestringWhoAmI()

{

return"Jennifer";

}

publicvoidPrint()

{

Console.WriteLine(WhoAmI());

}

}

7.下列Shape类是一个表示形状的抽象类,Area()为求图形面积的函数,Total()则是一个通用的用求不同形状的图形面积总和的函数。

请从Shape类派生矩形类(Rectangle)、圆形类(Circle),给出具体的求面积函数。

并在主函数中写出计算如图所示图形面积的语句。

(共10分)

namespacetest

{

classProgram

{

staticvoidMain(string[]args)

{

rectanglerec1=newrectangle(30,5);

rectanglerec2=newrectangle(30,5);

circlecir1=newcircle(6);

circlecir2=newcircle(6);

circlecir3=newcircle(6);

shape[]s=newshape[5];

s[0]=rec1;s[1]=rec2;

s[2]=cir1;s[3]=cir2;s[4]=cir3;

Console.WriteLine(total(s));

}

staticdoubletotal(shape[]s)

{

doublesum=0.0;

intn=s.Length;

//for(inti=0;i

//sum+=s[i].area();

foreach(shapeshins)

{

sum+=sh.area();

}

returnsum;

}

}

}

abstractclassshape

{

publicabstractdoublearea();

}

classrectangle:

shape

{

doublea,b;

publicrectangle(doublex,doubley)

{

a=x;

b=y;

}

publicoverridedoublearea()

{

returna*b;

}

}

classcircle:

shape

{

doubler;

publiccircle(doubler)

{

this.r=r;

}

publicoverridedoublearea()

{

return3.14*r*r;

}

}

 

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

当前位置:首页 > 求职职场 > 简历

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

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