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

上传人:熏** 文档编号:159486655 上传时间:2022-10-09 格式:DOC 页数:9 大小:149KB
返回 下载 相关 举报
C#程序设计语言期末考试题A有答案)_第1页
第1页 / 共9页
C#程序设计语言期末考试题A有答案)_第2页
第2页 / 共9页
C#程序设计语言期末考试题A有答案)_第3页
第3页 / 共9页
点击查看更多>>
资源描述
系别 班次 学号 姓名 .密封线以内答题无效期末试题C#程序设计语言(A卷)题号一二三四总分评卷教师分数说明:本试卷共四大题,试卷满分100分,考试时间120分钟。一判断题(每题1分,共10分,正确的打,错误的打)题号12345678910答案( ) 1“+、-、*、/、%、+、-均属于二元运算符。( ) 2字符串类型属性引用类型。( ) 3Visual Studio控件的属性窗口中,按钮“A-Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。 ( ) 4派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。( ) 5当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。( ) 6隐式类型转换就是不需要声明目标类型就可以进行的转换?( ) 7如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。( ) 8在C#中在派生类中重新定义基类类的虚函数必须在前面加override。( ) 9C中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。( ) 10在类中可以重载构造函数,C会根据参数匹配原则来选择执行合适的构造函数。二单项选择题(每题2分,共40分)一、 (说明:每题有且仅有一个正确答案,请将正确答案填入下表)题号12345678910答案ABBBCDDABC题号11121314151617181920答案CDACCBAAAD1. C#程序设计语言属于什么类型的编程语言:a A高级语言 B自然语言 C机器语言 D汇编语言2. 如有int a=11;则表达式(a+*1/3)的值是:b A0 B3 C4 D123. 类的字段和方法的默认访问修饰符是:bA public B private C protected D internal4. 对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。如圆周率PI始终为3.14。现在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?bA.const float PI;PI = 3.14f; B.const float PI = 3.14f;C.float const PI;PI = 3.14f; D.float const PI = 3.14f;5. 请问经过表达式a=3+35?0:1的运算,变量a的最终值是什么?。cA6 B1 C0 Dtrue6. 下列语句是MyClass的一部分,obj是MyClass的一个对象。 private class subclass public int data;void change(ref int x) x=1;public void test()subClass s=new subClass();s.data=100;change(ref s.data);Console.WriteLine(s.data);则调用obj.test()后。控制台输出( d)。A. 100 B. 101 C. 0 D. 17. 用户自定义的异常类应该从哪个类中继承(d)A. System.ArgumentException B. System.IO.IOExceptionC. System.SystemException D. System.ApplicationException8. 下面有关虚方法的描述正确的是( a)。A. 虚方法能在程序运行时,动态确定要调用的方法,因而比非虚方法更灵活,更方便B. 在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C. 重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D. 在重写虚方法时,需要同时带上override和virtual修饰符9. 下列语句声明了一个委托:public delegate int myCallBack(int x);则用该委托产生的回调方法的原型应该是:bA.void receive (int x) B.int receive(int num)C.int receive( ) D.不确定的10. C#中TestClass为一自定义类,其中有以下属性定义public void Property使用以下语句创建了该类的对象,并使变量obj引用该对象:TestClass obj=new TestClass();那么,可通过什么方式访问类TestClass的Property属性(c)A. TestClass.Progerty; B. TestClass. Property(); C. obj. Property; D. obj. Property();11. 已知类Base、MyClass 的定义如下class Base public void Hello()System.Console.WriteLine(Hello in Base!);/先基后派class Derived : Base public void Hello()System.Console.WriteLine(Hello in Derived!);则下列语句在控制台中的输出结果为_c_。Derived x = new Derived();x.Hello();A. Hello in Base! B. Hello in Derived!C. Hello in Base! D. Hello in Derived!Hello in Derived! Hello in Base!12. 下列关于接口的说法中,哪个选项是正确的?(d)A. 一个类可以有多个基类和多个基接口B. 抽象类和接口都不能被实例化C. 抽象类和接口都可以对成员方法进行实现D.派生类可以不实现抽象基类的抽象方法,但必须实现继承的接口的方法13. 下列关于构造函数的描述中,哪个选项是正确的?(a)A. 构造函数必须与类名相同 B. 构造函数不可以用private修饰C. 构造函数不能带参数 D. 构造函数可以声明返回类型14. 引用数组元素时,数组下标的数据类型可以允许哪项类型?(c)A. 整型常量 B. 整型表达式C. 整型常量或整型表达式 D. 任何类型的表达式15. 以下类MyClass 的属性count 属于_c_属性。class MyClassint i;int countget return i; A. 只读 B. 只写 C. 可读写 D. 不可读不可写 16. 要让用户选择和浏览要打开的文件,应使用什么对话框?(b)A. FileDialog B. OpenFileDialo C. SaveFileDialo D. FolderBrowserDialog17. 在Visual Studio 2005中,假设你正在单步调试某个应用程序。程序从入口开始,调用某个私有方法将产生异常。现在代码运行到如图所示位置,应该使用下面哪种方式进一步调试? aA.使用逐语句调试 B.使用逐过程调试C.跳出调试 D.停止调试18. .NET Framework 2.0中,处理异常是很有用的功能。一个try代码块可以有多个catch块于之对应。在多个catch块中,下面哪个异常应该最后捕获?aA. System.Exception类 B. System.SystemException类C. System.ApplicationException类 D. System.StackOverflowException类19. 在二维坐标系中,通常需要保存一组点的坐标。使用二维数组是一个解决方案。下面哪段代码正确初始化了2行2列的整数二维数组?aA. int, array = new int2,2; B. int array = new int22;C. int, array = new int22; D. int array = new int2,2;20. 已经定义了一个Season枚举,它有4个成员Spring,Summer,Autumn,Winter。现在需要定义一个名为currentSeason的Season枚举,并将其赋值为Spring,应使用下面哪段代码?dA. Season currentSeason = Spring; B. currentSeason = Spring;C. currentSeason = Season.Spring; D. Season currentSeason = Season.Spring;三简答题(每题5分,共10分)1. 类与对象有什么区别?答:类是用来描述某种具有相同属性和行为的事物,对象是类的一种具体表现。2. 什么叫多态性,在C#语言中如何实现多态?答:多态性是指一段程序能够处理多种类型对象的能力。四综合题(共40分)1. 下面这段程序要完成的功能是:从输入的字符串中找出小写字母并输出到终端。请检查下列代码,找出所有错误的代码,并写出该行完整的正确代码。(4分)1 using System;2 public class Program3 4 static void Main(string args)5 6 string inputString=Console.ReadLine();7 string lowerCase=string.Empty;8 foreach (char ch in inputString)9 if (ch=a|ch=a&ch=z)10. lowerCase+=ch.ToString();2. 下述代码用于重写Message方法。请分析下述代码,并更正错误代码行。(4分)1 interface IMsg2 3 void Message();4 5 public class MyClass : IMsg6 7 public virtual void Message()8 9 Console.WriteLine(MyClass);10 11 12 public class MyDerivedClass : MyClass13 14 public void Message()15 16 Console.WriteLine(MyDerivedClass);17 18 第14行:更正为:public override void Message()3. 下面代码功能是对数组进行遍历,请分析下列代码段并在空白行补全C代码。(4分)static void Main(string argz) string myString=windows,form,dialog; foreach( (1) ) Console.WriteLine(str); (1):string str in myString4. 下面程序中两个方法需要实现的功能是:int数组相加,即数组中的每项相加,以及string类型的相加,即把一串字符串接到另一串字符串后面。请分析下列代码段,并在空白行补全visual C#代码。(6分) (1) int result=new intarray1.Length ; for (int i=0;iarray1.Length ;i+) resulti =array1i +array2i; return result; (2) string spaceStr = , result = null; result = str1 + spaceStr + str2; return result;static void Main(string arges) int a = 1, 2, 3, , b = 4, 5, 6 ; int sumArray = new int3; string str1 = visual, str2 = studio; string sumString = null; sumArray = Add(a, b); sumString = Add(str1, str2);1, static int Add(int array1, int array2)2. static string Add(string str1, string str2)5. 下列程序段的作用是对字符串数组myArray进行排序后输出“Ruby Mark Norman Kinger”,请补全代码完成该功能。(6分)static void Main(string args)string myArray = new string Kinger, Norman, Ruby, Mark ;Sort(myArray);foreach (string str in myArray) Console.Write(str + );public static void Sort(string array)string str;for (int j = 0; j array.Length - 2; j+) for (int i = 0; i array.Length - j - 1; i+) str = arrayi; arrayi = arrayi + 1; arrayi + 1 = str; 6. 比尔在教他的女儿面向对象的知识。他写了一个类Bill和一个接口IPrintname。现在他希望女儿能够写一个类Jennifer,继承自Bill,重写基类函数WhoAmI(),将输出改为“Jennifer”;并且实现接口IPrintname,该接口只有一个方法Print,这个方法的实现会在控制台打印调用WhoAmI函数的结果(即:“Jennifer”)。(6分)public class Bill public virtual string WhoAmI() return Bill; public interface IPrintname void Print();public class Jennifer : Bill, IPrintname public override string WhoAmI() return Jennifer; public void Print() Console.WriteLine(WhoAmI(); 7. 下列Shape类是一个表示形状的抽象类,Area( )为求图形面积的函数,Total( )则是一个通用的用求不同形状的图形面积总和的函数。请从Shape类派生矩形类(Rectangle)、圆形类(Circle),给出具体的求面积函数。并在主函数中写出计算如图所示图形面积的语句。(共10分) namespace test class Program static void Main(string args) rectangle rec1 = new rectangle(30,5); rectangle rec2 = new rectangle(30,5); circle cir1 = new circle(6); circle cir2 = new circle(6); circle cir3 = new circle(6); shape s = new shape5; s0 = rec1; s1 = rec2; s2 = cir1; s3 = cir2; s4 = cir3; Console.WriteLine(total(s); static double total(shape s) double sum = 0.0; int n = s.Length; /for (int i = 0; i n; i+) / sum += si.area(); foreach (shape sh in s) sum += sh.area(); return sum; abstract class shape public abstract double area(); class rectangle : shape double a, b; public rectangle(double x, double y) a = x; b = y; public override double area() return a * b; class circle : shape double r; public circle(double r) this.r = r; public override double area() return 3.14 * r * r; 第 9 页 共 9页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!