C#程序设计语言期末考试题A有答案.docx
- 文档编号:24214743
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:16
- 大小:93.35KB
C#程序设计语言期末考试题A有答案.docx
《C#程序设计语言期末考试题A有答案.docx》由会员分享,可在线阅读,更多相关《C#程序设计语言期末考试题A有答案.docx(16页珍藏版)》请在冰豆网上搜索。
C#程序设计语言期末考试题A有答案
期末试题——C#程序设计语言(A卷)
题号
-一-
-二二
三
四
总分
评卷教师
分数
说明:
本试卷共四大题,试卷满分100分,考试时间120分钟。
.判断题(每题1分,共10分,正确的打V,错误的打X)
题号
1
2
3
4
5
6
7
8
9
10
答案
X
V
X
X
V
X
V
V
V
V
()4•派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成
员方法,并且也继承父接口方法的实现。
()5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。
()6•隐式类型转换就是不需要声明目标类型就可以进行的转换?
()7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调
用基类的构造函数。
()8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override。
()9.C#中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,
但需在方法返回前对该参数明确赋值。
()10.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数。
()1+、-、*、/、%++、--均属于二兀运算符。
()2.字符串类型属性引用类型。
()3.VisualStudio控件的属性窗口中,按钮“A->Z”点击后,属性列表会先按照功
能分类排列属性后在每个单元中以名称排序。
.单项选择题(每题2分,共40分)
(说明:
每题有且仅有一个正确答案,请将正确答案填入下表)
题号
1
2
3
4
5
6
7
8
9
10
答案
A
B
B
B
C
D
D
A
B
C
题号
11
12
13
14
15
16
17
18
19
20
答案
C
D
A
C
C
B
A
A
A
D
C#程序设计语言属于什么类型的编程语言:
A.高级语言B.自然语言
如有inta=11;则表达式(a++*1/3
A.0B.3C.4D
类的字段和方法的默认访问修饰符是
A.publicB.privateC
A.100B.101C.0D.1
7.用户自定义的异常类应该从哪个类中继承(d)
A.System.ArgumentExceptionB.System.IO.IOException
C.System.SystemExceptionD.System.ApplicationException
8.下面有关虚方法的描述正确的是(a)o
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();
B.HelloinDerived
D.HelloinDerived
HelloinBase
A.HelloinBase!
C.HelloinBase!
HelloinDerived!
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中,假设你正在单步调试某个应用程序。
程序从入口开始,调用某个
私有方法将产生异常。
现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试?
Frogrwi・cs
或yConsoleApplication2.Frogram
V
^VMainCstring[]args)
1
£
日usingSystem;
usingSystem.Ccllsctions.Generic:
-usingSystemi.Text;
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,Summe,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(⑴)
{
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=stri+spaceStr+str2; returnresult; } staticvoidMain(string[]arges) { int[]a={1,2,3,},b={4,5,6}; int[]sumArray=newint[3]; stringstri="visual",str2="studio"; stringsumString=null; sumArray=Add(a,b); sumString=Add(str1,str2); } 1,staticint[]Add(int[]arrayl,int[]array2) 2.staticstringAdd(stringstri,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){ } staticdoubleTotal(shape[]s){ doublesum=0.0; intn=s.Length; for(inti=0;i sum+=s[i].area(); returnsum; } } abstractclassShape { publicabstractdoubleArea(); } } 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; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计语言 期末 考试题 答案