还剩6页未读,继续阅读
文本内容:
电子科技大学成都学院期末试题一一C#程序设计语言A卷题号------------—■四总分评卷教师分数说明本试卷共四大题,试卷满分100分,考试时间120分钟--判断题每题1分,共10分,正确的打错误的打XN
1.“+、-、*、/、%、++、一均属于二元运算符Y
2.字符串类型属性引用类型N
3.Visual Studio控件的属性窗口中,按钮“A-Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序N
4.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现Y
5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数N
6.隐式类型转换就是不需要声明目标类型就可以进行的转换?Y
7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数Y
8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override Y
9.C#中方法的参数中输出型参数out的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值Y
10.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数O单项选择题每题2分,共40分说明每题有且仅有一个正确答案,请将正确答案填入下表题号12345678910答案题号11121314151617181920答案
1.C#程序设计语言属于什么类型的编程语言A.高级语言B.自然语言C.机器语言D.汇编语言
2.如有int a=H如IJ表达式a++*l/3的值是A.0B.3C.4D.
123.类的字段和方法的默认访问修饰符是A.public B.private C.protected D.internal
4.对于在代码中经常要用到的且不会改变的值,可以将其声明为常量如圆周率PI始终为
3.14现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?A.const floatPI;PI=
3.14f;B.const floatPI=
3.14f;C.float constPI;PI=
3.14f;D.float constPI=
3.14f;
5.请问经过表达式a=3+350:l的运算,变量a的最终值是什么?A.6B.1C.0D.true
6.下列语句是MyClass的一部分,obj是MyClass的一个对象private classsubclasspublic intdata;}void changerefint x{x=l;}public voidtestsubClass s=new subClass;s.data=100;changeref s.data;Console.WriteLine s.data;}则调用obj.test后控制台输出o A.100B.101C.0D.
17.用户自定义的异常类应该从哪个类中继承A.System.ArgumentException C.System.SystemException D.System.ApplicationException
8.下面有关虚方法的描述正确的是o A.虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B.在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C.重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D.在重写虚方法时,需要同时带上override和virtual修饰符
9.下列语句声明了一个委托:public delegateint myCallBackint x;则用该委托产生的回调方法的原型应该是A.void receiveint xB.int receiveint num C.int receiveD.不确定的
10.C#中TestClass为一自定义类,其中有以下属性定义public voidProperty{•••使用以下语句创建了该类的对象,并使变量bj引用该对象TestClass obj=new TestClass;那么,可通过什么方式访问类TestClass的Property属性A.TestClass.Progerty;B.TestClass.Property;C.obj.Property;D.obj.Property;
11.已知类Base、MyClass的定义如下class Basepublic void Hello{System.Console.WriteLineZ/Hello inBase!〃;}class Derived:Base public voidHelloSystem.Console.WriteLineZ/Hello inDerived!〃;}则下列语句在控制台中的输出结果为Derived x=new Derived;x.Hello;A.Hello inBase!B.Hello inDerived!C.Hello inBase!D.Hello inDerived!Hello inDerived!Hello inBase!
12.下列关于接口的说法中,哪个选项是正确的?A.一个类可以有多个基类和多个基接口B.抽象类和接口都不能被实例化C.抽象类和接口都可以对成员方法进行实现D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法
13.下列关于构造函数的描述中,哪个选项是正确的?A.构造函数必须与类名相同B.构造函数不可以用private修饰C.构造函数不能带参数D.构造函数可以声明返回类型
14.引用数组元素时,数组下标的数据类型可以允许哪项类型?A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式
15.以下类MyClass的属性count属于属性class MyClassint i;int countget{return i;}}}A.只读B.只写C,可读写D.不可读不可写
16.要让用户选择和浏览要打开的文件,应使用什么对话框?A.FileDialog B.OpenFileDialo C.SaveFileDialo D.FolderBrowserDialog
17.在Visual Studio2005中,假设你正在单步调试某个应用程序程序从入口开始,调用某个私有方法将产生异常现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试?ConsoleAppli cation
2.Program rjVMainstring[]args Busing System;using System.Collections.Generic;using System.Text;日namespace ConsoleApplication2R class Program{B static void Mainstring口args{//调用此方法会产生异常|oSomething:}131415private static void DoSomething016A.使用逐语句调试B.使用逐过程调试C.跳出调试D.停止调试
18.
1.ET Framework
2.0中,处理异常是很有用的功能一个try代码块可以有多个catch块于之对应在多个catch块中,下面哪个异常应该最后捕获?A.System.Exception类B.System.SystemException类C.System.ApplicationException类D.System.StackOverflowException类
19.在二维坐标系中,通常需要保存一组点的坐标使用二维数组是一个解决方案下面哪段代码正确初始化了2行2列的整数二维数组?A.int[,]array=new int[2,2];B.int[][]array=new int
[2]
[2];C.int[,]array=new int
[2]
[2];D.int[][]array=new int[2,2];
20.已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面那段代码?A.Season currentSeason=Spring;B.currentSeason=Spring;C.currentSeason=Season.Spring;D.Season currentSeason=Season.Spring;三.简答题(每题5分,共10分)
1.类与对象有什么区别?
2.什么叫多态性,在C#语言中如何实现多态四.综合题(共40分)
1.下面这段程序要完成的功能是从输入的字符串中找出小写字母并输出到终端请检查下列代码,找出所有错误的代码,并写出该行完整的正确代码(4分)
1.usingSystem;
2.public classProgram
3.{
4.static voidMainstring[]args
5.
6.string inputString=Console.ReadLine;
7.string lowerCase=string.Empty;
8.foreach charch ininputString
9..if ch-a,||ch-z,
10.lowerCase+=ch.ToString;
11.Console.WriteLine“小写字母有+lowerCase;
12.}
13.}
2.下述代码用于重写Message方法请分析下述代码,并更正错误代码行4分
1.interface IMsg
2.
3.void Message;
4.}
5.public classMyClass:IMsg
6.
7.public virtualvoid Message
8.
9.Console.WriteLine〃MyClass〃;
10.
11.
12.public classMyDerivedClass:MyClass
13.
14.publicvoidMessage
15.
16.Console.WriteLine^MyDerivedClass^;
17.}
18.
3.下面代码功能是对数组进行遍历,请分析下列代码段并在空白行补全C#代码4分static voidMainstring[]argzstring[]myString={“windows”,〃form〃,“dialog};foreach1Console.WriteLine str;
4.下面程序中两个方法需要实现的功能是int数组相加,即数组中的每项相加,以及string类型的相加,即把一串字符串接到另一串字符串后面请分析下列代码段,并在空白行补全visual C#代码6分1int口result=new int[arrayl.Length];for inti=0;iarrayl.Length;i++result[i]=arrayl[i]+array2[i];return result;⑵string spaceStr=〃〃,result=null;result=strl+spaceStr+str2;return result;}static voidMainstring[]argesint[]a={1,2,3,},b={4,5,6};int[]sumArray=new int
[3];string strl=visual”,str2=studio”;string sumString=null;sumArray=Add a,b;sumString二Addstrl,str2;
5.下列程序段的作用是对字符串数组myArray进行排序后输出“Ruby MarkNorman Kinger”,请补全代码完成该功能6分staticvoidMainstring[]argsstring[]myArray=new string[]{〃Kinger〃,〃Norman〃,〃Ruby〃,〃Mark〃};SortmyArray;foreach stringstr inmyArray Console.Writestr+〃〃;public staticvoid Sortstring[]array stringstr;
6.比尔在教他的女儿面向对象的知识他写了一个类Bill和一个接口IPrintname现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI,将输出改为“Jennifer”;并且实现接口IPrintname,该接口只有一个方法Print,这个方法的实现会在控制台打印调用Who Ami函数的结果即“Jennifer6分public classBill publicvirtual stringWhoAml returnBill;public interfaceIPrintname voidPrint;
7.下列Shape类是一个表示形状的抽象类,Area为求图形面积的函数,Total则是一个通用的用求不同形状的图形面积总和的函数请从Shape类派生矩形类Rectangle、圆形类Circle,给出具体的求面积函数并在主函数中写出计算如图所示图形面积的语句共10分namespace testclassProgramstaticvoidMainstring[]args{static doubleTotalshape[]s{double sum=
0.0;intn=s.Length;for inti=0;in;i++sum+=s[i].area;return sum;abstract classShape publicabstract doubleArea;。