还剩7页未读,继续阅读
文本内容:
电子科技大学成都学院期末试题——C#程序设计语言(A卷)题号一二三四总分评卷教师分数说明本试卷共四大题,试卷满分100分,考试时间120分钟一.判断题(每题1分,共10分,正确的打√,错误的打×)题号12345678910答案×√××√×√√√√1.“+、-、*、/、%、++、--均属于二元运算符2.字符串类型属性引用类型3.VisualStudio控件的属性窗口中,按钮“A-Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序4.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数6.隐式类型转换就是不需要声明目标类型就可以进行的转换?7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override9.C#中方法的参数中输出型参数out的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值10.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数二.单项选择题(每题2分,共40分)
1、(说明每题有且仅有一个正确答案,请将正确答案填入下表)题号12345678910答案ABBBCDDABC题号11121314151617181920答案CDACCBAAAD
1.C#程序设计语言属于什么类型的编程语言A.高级语言B.自然语言C.机器语言D.汇编语言
2.如有inta=11;则表达式(a++*1/3)的值是:A.0B.3C.4D.
123.类的字段和方法的默认访问修饰符是:A.publicB.privateC.protectedD.internal
4.对于在代码中经常要用到的且不会改变的值,可以将其声明为常量如圆周率PI始终为
3.14现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?A.constfloatPI;PI=
3.14f;B.constfloatPI=
3.14f;C.floatconstPI;PI=
3.14f;D.floatconstPI=
3.14f;
5.请问经过表达式a=3+350:1的运算,变量a的最终值是什么?A.6B.1C.0D.true
6.下列语句是MyClass的一部分,obj是MyClass的一个对象privateclasssubclass{publicintdata;}voidchangerefintx{x=1;}publicvoidtest{subClasss=newsubClass;s.data=100;changerefs.data;Console.WriteLines.data;}则调用obj.test后控制台输出()A.100B.101C.0D.
17.用户自定义的异常类应该从哪个类中继承()A.System.ArgumentExceptionC.System.SystemExceptionD.System.ApplicationException
8.下面有关虚方法的描述正确的是()A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D.在重写虚方法时,需要同时带上override和virtual修饰符
9.下列语句声明了一个委托:publicdelegateintmyCallBackintx;则用该委托产生的回调方法的原型应该是:A.voidreceiveintxB.intreceiveintnumC.intreceiveD.不确定的
10.C#中TestClass为一自定义类,其中有以下属性定义publicvoidProperty{…}使用以下语句创建了该类的对象,并使变量obj引用该对象TestClassobj=newTestClass;那么,可通过什么方式访问类TestClass的Property属性A.TestClass.Progerty;B.TestClass.Property;C.obj.Property;D.obj.Property;
11.已知类Base、MyClass的定义如下classBase{publicvoidHello{}}classDerived:Base{publicvoidHello{}}则下列语句在控制台中的输出结果为_____Derivedx=newDerived;x.Hello;A.HelloinBase!B.HelloinDerived!C.HelloinBase!D.HelloinDerived!HelloinDerived!HelloinBase!
12.下列关于接口的说法中,哪个选项是正确的?()A.一个类可以有多个基类和多个基接口B.抽象类和接口都不能被实例化C.抽象类和接口都可以对成员方法进行实现D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法
13.下列关于构造函数的描述中,哪个选项是正确的?()A.构造函数必须与类名相同B.构造函数不可以用private修饰C.构造函数不能带参数D.构造函数可以声明返回类型
14.引用数组元素时数组下标的数据类型可以允许哪项类型?()A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
15.以下类MyClass的属性count属于_____属性classMyClass{inti;intcount{get{returni;}}}A.只读B.只写C.可读写D.不可读不可写
16.要让用户选择和浏览要打开的文件,应使用什么对话框?()A.FileDialogB.OpenFileDialoC.SaveFileDialoD.FolderBrowserDialog
17.在VisualStudio2005中,假设你正在单步调试某个应用程序程序从入口开始,调用某个私有方法将产生异常现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试?A.使用逐语句调试B.使用逐过程调试C.跳出调试D.停止调试
18..NETFramework
2.0中,处理异常是很有用的功能一个try代码块可以有多个catch块于之对应在多个catch块中,下面哪个异常应该最后捕获?A.System.Exception类B.System.SystemException类C.System.ApplicationException类D.System.StackOverflowException类
19.在二维坐标系中,通常需要保存一组点的坐标使用二维数组是一个解决方案下面哪段代码正确初始化了2行2列的整数二维数组?A.int[]array=newint
[22];B.int[][]array=newint
[2]
[2];C.int[]array=newint
[2]
[2];D.int[][]array=newint
[22];
20.已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段代码?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.publicclassProgram3.{4.staticvoidMainstring[]args5.{6.stringinputString=Console.ReadLine;7.stringlowerCase=string.Empty;8.foreachcharchininputString9.ifch=a||ch=z10.lowerCase+=ch.ToString;11.Console.WriteLine小写字母有+lowerCase;12.}13.}更正以下两句:
9.ifch=ach=z
10.lowerCase+=ch.ToString;
2.下述代码用于重写Message方法请分析下述代码,并更正错误代码行4分1.interfaceIMsg2.{3.voidMessage;4.}5.publicclassMyClass:IMsg6.{7.publicvirtualvoidMessage8.{9.Console.WriteLineMyClass;10.}11.}12.publicclassMyDerivedClass:MyClass13.{14.publicvoidMessage15.{16.Console.WriteLineMyDerivedClass;17.}18.}第14行更正为publicoverridevoidMessage
3.下面代码功能是对数组进行遍历,请分析下列代码段并在空白行补全C#代码4分staticvoidMainstring[]argz{string[]myString={windowsformdialog};foreach1{Console.WriteLinestr;}}
(1)stringstrinmyString
4.下面程序中两个方法需要实现的功能是int数组相加,即数组中的每项相加,以及string类型的相加,即把一串字符串接到另一串字符串后面请分析下列代码段,并在空白行补全visualC#代码6分1{int[]result=newint[array
1.Length];forinti=0;iarray
1.Length;i++result[i]=array1[i]+array2[i];returnresult;}2{stringspaceStr=result=null;result=str1+spaceStr+str2;returnresult;}staticvoidMainstring[]arges{int[]a={123}b={456};int[]sumArray=newint
[3];stringstr1=visualstr2=studio;stringsumString=null;sumArray=Addab;sumString=Addstr1str2;}1staticint[]Addint[]array1int[]array
22.staticstringAddstringstr1stringstr
25.下列程序段的作用是对字符串数组myArray进行排序后输出“RubyMarkNormanKinger”请补全代码完成该功能6分staticvoidMainstring[]args{string[]myArray=newstring[]{KingerNormanRubyMark};SortmyArray;foreachstringstrinmyArrayConsole.Writestr+;}publicstaticvoidSortstring[]array{stringstr;forintj=0;jarray.Length-2;j++{forinti=0;iarray.Length-j-1;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{returnBill;}}publicinterfaceIPrintname{voidPrint;}publicclassJennifer:BillIPrintname{publicoverridestringWhoAmI{returnJennifer;}publicvoidPrint{Console.WriteLineWhoAmI;}}
7.下列Shape类是一个表示形状的抽象类,Area为求图形面积的函数,Total则是一个通用的用求不同形状的图形面积总和的函数请从Shape类派生矩形类(Rectangle)、圆形类(Circle),给出具体的求面积函数并在主函数中写出计算如图所示图形面积的语句共10分�308namespacetest{classProgram{staticvoidMainstring[]args{}staticdoubleTotalshape[]s{doublesum=
0.0;intn=s.Length;forinti=0;in;i++sum+=s[i].area;returnsum;}}abstractclassShape{publicabstractdoubleArea;}}5512namespacetest{classProgram{staticvoidMainstring[]args{rectanglerec1=newrectangle305;rectanglerec2=newrectangle305;circlecir1=newcircle6;circlecir2=newcircle6;circlecir3=newcircle6;shape[]s=newshape
[5];s
[0]=rec1;s
[1]=rec2;s
[2]=cir1;s
[3]=cir2;s
[4]=cir3;Console.WriteLinetotals;}staticdoubletotalshape[]s{doublesum=
0.0;intn=s.Length;//forinti=0;in;i++//sum+=s[i].area;foreachshapeshins{sum+=sh.area;}returnsum;}}}abstractclassshape{publicabstractdoublearea;}classrectangle:shape{doubleab;publicrectangledoublexdoubley{a=x;b=y;}publicoverridedoublearea{returna*b;}}classcircle:shape{doubler;publiccircledoubler{this.r=r;}publicoverridedoublearea{return
3.14*r*r;}}。