《C#期末考试试题4.pdf》由会员分享,可在线阅读,更多相关《C#期末考试试题4.pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#期未考试题一、单项选择题(每小题2分,共20分)1.在类作用城中能解通过直接使用垓类的()成员名进行访问。A.私有 B.公用 C.保护 D.任何答案:D2小数类型(decimal)和浮点类型都可以表示小数,正确说法:()A.两者没有任何区别B.小数类型比浮点类型飒值范围大C.小数类型比浮点类型精度高D.小数类型比浮点类型精度很答 案:C3.能作为C#程序的基本单位是()oA.字符 B.悟句 C.函数 D.源程序文件答案:B4.可用作C#程序用户标识符的一组标识符是()oA.void define+W0RD B.a3_b3 _123 YNC.for-abc Case D.2a D O siz
2、eof答案:B5.引用类型壬要有4种:类类型、数组类型、接口类型和()。A.对象类型B.字符串类型C.委托类型D.整数类型答 案:C6.加载窗体时触发的事件是()。A.Click B.Load C.GotFoucs D.DoubleClick答案:B7.改变画体的标题,需修改的窗体属性是()oA.Text B.Name C.Title D.Index答案:A8.在C#中定义接口时,使用的关鲤字是()。A.i interface B.:C.class D.overrides答案:A9.在类的成员中,用于存储属性值的是()。A.属 性B.方法 C.事 件D.成员变量答案:成员变量10.在C#中,定
3、义海生类时,指定其基类应使用的语句是()oA.lnherits B.:C.Class D.Overrides答 案:B11.类的以下特性中,可以用于方便地重用已有的代码和数据的是().A.多态 B.封 装C.继 承D.抽象答案:C12.在Array类中,可以对一维数组中的元素进行排序的方法是()。A.SortO B.CIear()C.Copy()D.ReverseO答案:A13.将变量从字符串类型转换为数值类型可以使用的类型特换方法是()oA.Str()B.Cchar C.CStr()D.int.ParseO;答案:D14微据类型转换的类是()。A.Mod B.Convert C.Const
4、D.Single答案:B15 3符串连接运算符包括&和()oA.+B.-C.*D./答 案A16.先判断条件的当循环痣句是()oA.do.while B.while C.while.do D.do.loop答案:B17.C#是一抻面向()的话言。A.机 器B.iJ程C.对 象D.事枷答案:C18.假定一个10行20列的二维整型数组,下列哪个定义话句是正确的()。A.intarr=new int10,20B.intarr=int new10,20C.int,arr=new int10,20D.int,arr=new int20;10答 案:C19.以下正确的描述是()。A.国数的定义可以嵌套,函
5、数的调用不可以嵌套B.国数的定义不可以嵌套,函数的调用可以嵌套C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可以嵌套答案:B20.小数类型和浮点类型都可以表示小数,正确说法:()A.两者没有任何区刖B.小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D.小数类型比浮点类型精度低答案:C21.在C#中,可以标识不同的对象的属性是()。A.Text B.Name C.Title D.lndex笞案:B22.在VC#.Net中,可以标识不同的对象的属性是()oA.Text B.Name C.Title D.lndex答案:B23.在C#中定义接口时,使用的关维字是()oA
6、.interface B.:C.class D.overrides答案:A24.属于C#诺言的关髭字()。A.abstract B.camel C.Salary D.Employ答案:A25.C#语言中,值类型包括:基本值类型、结构类型和()。A.小 数 类 型B.整数类型C.类类型D枚举类型答案:D26.假定一个10行20列的二维整型数组,下列哪个定义赭句是正确的()。A.intarr=new int10,20B.intarr=int new10,20C.int,arr=new int10,20D.int,arr=new int20;10答案:C27.以下正确的描述是()。A.函数的定义可以
7、嵌套,函数的调用不可以嵌套B.函数的定义不可以嵌套,因数的调用可以嵌套C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可以嵌套答案:B28.以下说法正确的是()。A.接口可以实例化 B.类只能实现一个接口C.接口的成员都必须是未实现的 D.接口的成员前面可以加访问修饰符笞案:C29.下列关于抽象类的说法错误的是()。A.抽象类可以实例化 B.抽象类可以包含抽象方法C.抽象类可以包含抽象属性 D.抽象类可以引用海生类的实例答案:A30.下列关于重教的说法,情误的是()。A.方法可以通i l指定不同的参数个数重载B.方法可以通i l指定不同的参数类型重载C.方法可以通过指定不同的
8、参数传递方式重载D.方法可以通过指定不同的返回值类型重载答 案:D31.关于虚方法实现多态,下列说法错程的是()。A.定义虚方法使用关维字virtualB.关键字virtual可以与override 一起使用C.虚方法是实现多态的一种应用形式D.混生类是实现多态的一种应用形式答案:B32.以下关于继承的说法错误的是()。A.NET框架类库中,object类是所有类的基类B.派生类不能直接访问基类的私有成员C.protected修饰符既有公有成员的特点,又有私有成员的特点D.基类对象不能引用液生类对象答案:D33.继承具有(),即当基类本身也是某一类的流生类时,派生类会自动继承间接基类的成员。A
9、.规律性 B.传递性 C.重复性 D.多样性笞案:B34.下列说法中,正确的是()。A 4生类对象可以辑制转换为基类对象B.在任何情况下,基类对象都不能转换为派生类对象C.接口不可以实例化,也不可以引用实现垓接口的类的对象D.基类对象可以防同液生类的成员笞案:A6.使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是().A.ExistsO B.GetFilesO C.GetDirectoriesO D.CreateDirectoryO答 案:B2.StreamWriter对象的下M方法,可以向文本文件写入一行带回车和摸行的文本的是()OA.WriteLineO B.WriteO
10、C.WritetoEndO D.Read()答案:A3.建立访问镶时,需在菜单标题的字母前潦加的符号是()。A.!B.#C.$D.&答案:D4.在C#.Net中,用来创建壬菜单的对象是()oA.Menu B.Menuitem C.MenuStrip D.ltem答案:C5.下面所列举的应用程序中,不是多文档应用程序的是()A.Word B.Excel C.PowerPoint D.记事本答案:D7.下面所列举的应用程序中,不是多文档应用程序的是()A.Word B.Excel C.PowerPoint D.记事本答案:D5.在Array类中,可以对一维数组中的元素查找的方法是()oA.Sort
11、O B.BinarySearchO C.ConvertO D.lndexO答案:B二、填空题(每 空2分,共20分)1.当在程序中执行到 语句时,将结束所在循环据句中循环体的一次执行。答案:continue2.枚举是从S y s t e m.类继承而来的类型。答 案:Enum3.类中声明的属性往往具有get()和 两个访问器。答案:set()4.C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数的构造函数。这样我应督写 构造函数。答:两个5.接口(interface)是指:。答:只含有公有抽象方法(public abstract method)的类。这
12、些方法必须在子类中被实现。6.在sw让ch指句中,每个语句标号所含关鲤字case后面的表苴式必须是O答案:常量表达式7.在while循环话句中,一定要有修改循环条件的语句,否则,可能造成.o答案:死循耳8.传人某个属性的SET方法的隐含参数的名称是。答:value9.C#的类不支将多重继承,但可以用 来实现。答案:接口10.C#数组类型是一种引用类型,所有的数组都是从System命名空间的 类继承而来的引用对象。答案:object12.一般新类的构造方法声明为 访问权限。如果声明为private,就不能创建该类的对象。答案:public或公有13.在方法定义中,virtual含义:。答案:被v
13、irtual修饰的方法可以被子类援写14.C#数组元素的下标从 开始。答案:015.元素类型为double的2行5列的二维数组共占用 字节的存情空间。答案:8016.对于方法,参数传递分为值传递和 两冲。答案:引用传递三、判断题(每题2分,20分)1.不能指定接口中方法的修饰符。答:对2.DotNet包含两个部分,即公共语言运行附和框架类库答案:对3.在同一行上可以书写多条语句,每条话句间用分号分隔。答案:对4.在数据类型转化时,只能通过类型转换关维字或Convert类实现。答案:错5.在定义数组时不允许为数组中的元素敏值。答案:错6.定义枚举时至少为其中的一个枚举成员腻值。答案:错7.接口与
14、类同样是面向对象程序设计的核心,是创建对象的模版。答案:对8.委托是将方法作为参数传递给另一方法的一抻数据类型。事件与委托没有关系。答案:借9.如果要实现重写,在基类的方法中必须使用virtual关 字,在湎生类的方法中必须使用overrides关提字。答案:笛10.在C#类中,th is代表了当前类本身。答案:错11.静态类和实例类的区刖在于:静态类不需要初始化即可直接使用,实例类需要进行实例化,生成对象才可使用。答案:对12.用Interval隔性设置Timer控件Tick事件发生的时间间隔单位为秒。答案:错13.设置图片框控件的SizeMode属性为Stretchimage时,图片可以按
15、图片根的大小比例缩放显示。答案:对14.可以重写私有的虚方法。答:错15.在C#中,府有类都是直接或间接地继承System.Object类而得来的。答案:对16.在C#中,任何方法都不能实现多继承。答案:错17.在C#中,子类不能继承父类中用private修饰的成员变量和成员方法。答案:对18.菜单项标题中有含有带下划线的字符,这是快捷镀。答案:错2.可以阻止某一个类被其他类继承。答:对14.一个窗体中可以有多个弹出式菜单。答案:对5.在C#Net中,窗体攵子关系通通“属性”窗口来创建。答案:对7.使用Directory类的Move()7法可以跚除文件。答案:错8.使用Fileinfo类的Co
16、py。方法可以复制文件。答案:对9.DataSet对象中的表可以和数据库中的表同名,也可以不同名。答案:对10.Command对象可以执行SQL语句。答案:对5.使用Directory类的Move()方法可以删除文件。答案:借6.使用Fileinfo类的Copy。方法可以复制文件。答案:对W、程序阅读题(每小题5 分,共3 0 分)1.写出以下程序的运行结果。using System;class Test(public static void Main()(int x=5;int y=x+;Console.WriteLine(y);y=+x;Console.WriteLine(y);答案:57
17、2.写出下列函数的功能。static int SA(int a,int b)if(ab)return 1;else if(a=b)return 0;elsereturn-1;)答案:比较两个整数a和b的大小,若ab则返回1,若a=b则返回0,若ab则返0-1o3.写出下列函数的功能。static float FH()(float y=0,n=0;int x=Convert.Tolnt32(Console.ReadLine();/从键盘读入整型数据式给 xwhile(x!=-1)n+;y+=x;x=Convert.Tolnt32(Console.ReadLine();)if(n=0)return
18、 y;elsereturn y/n;答案:求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。4.写出以下程序运行结果。using System;class Test(static int a=1,2,3,4,5,6,7,8);public static void Main()(int sO,s1,s2;sO =s1=s2=0;for(int i=0;i 8;i+)switch(ai%3)(case 0:sO +=Test.ai;break;case 1:s1+=Test.ai;break;case 2:s2+=Test.afi;break;Console.WriteLine(sO+
19、s1+s2);答案:9 12 155.写出以下程序的功能。static void f2(ref double a,int n)int i;double sum=0;for(i=0;in;i+)sum+=ai;sum/=n;for(i=0;i=sum)Console.write(ai+);Console.writeLine();答案:显示输出数组a中大于等于平均值的所有元素值。6.写出以下程停运行结果。using System;class Test(const int N=5;public static void Main()int a=0;for(int i=1;iN;i+)int c=0,b
20、=2;a+=3;c=a+b;Console.write(c+“);1答案:5 8 11 147.写出以下程序运行结果。using System;class Teststatic void LE(ref int a,ref int b)int x=a;a=b;b=x;Console.writeLine(a+b);)public static void Main()int x=10,y=25;LE(ref x,ref y);Console.writeLine(x+“+y);答案:25 1025 108.写出以下程序的功能。static void WA(ref int a,int n)for(int
21、 i=0;in-1;i+)int k=i;for(int j=i+1;jn;j+)if(ajak)k=j;int x=ai;ai=ak;ak=x;答案:采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。9.写出以下程序的运行结果。using System;class Test(public static void Main()(int a=2,4,6,8,10,12,14,16,18);for(int i=0;i50)break;if(i%2=0)s+=i;Console.writeLine(i,s=+i+s);答案:i,s=15,56五、简答题(10分,每题5分)1.如何区别
22、重载方法?不同的参数类型,不同的参数个数,不同的参数顺序2.C#用多抻修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它之间的区别是什么?答:public可以被任意存取protected只可以祗本类和其继承子类存取internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的谡辑单位和物理单位,具编译后的文件扩展名往往是“.DLL”或“.EXE”。protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。private只可以被本类所存取。3.接口和抽象类的区别是什么?
23、咨:接口用于规范,抽象类用于共性。接口中只能声明方法,属性,事件,索引器。而抽象类中可以有方法的实现,也可以定义非静态的类变量。抽象类是类,所以只能被单维承,但是接口却可以一次实现多个。抽象类可以提供某些方法的部分实现,接口不可以.抽象类的实例是它的子类给出的。接口的实例是实现接口的类给出的。在抽象类中加入一个方法,那么它的子类就同时有了这个方法。而在接口中加入新的方法,那么实现它的类就要重新编写(这就是为什么说接口是一个类的规范了)。接口成员被定义为公共的,但抽象类的成员也可以是私有的、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或派生类中访问)。此外接口不能
24、包含字段、构造网数、析构函数、静杰成员或常量。4.什么是抽象类?答案:抽象类是含有一个或多个抽象方法的类,抽象类不能实例化。基于C#的OOP技术堞程复习题一、判断题(本大题共10个小题,每小题1分,共10分)1.在同一行上可以书写多条话句,每条第句间用分号分隔。(t)2.在数据类型转化时,只能通过类型转换关键字或Convert类实现。(f)3.接口与类同样是面向对象程序设计的核心,是创建对象的模版。(F)4.委托是将方法作为参数传递给另一方法的一种数据类型。事件与委托没有关系0 (F)5.可以重写私有的虚方法。(T)6.使用Directory类的Move()方法可以删除文件。(T)7.不能指定
25、接口中方法的修饰符。(T)8.在定义数组时不允许为数组中的元素赋值。(F )9.接口与类同样是面向对象程序设计的核心,是创建对象的模版。()10.如果要实现重写,在基类的方法中必须使用virtual关键字,在正生类的方法中必须使用overrides关一字。(T)11.在C#中,所有类都是直接有间接是继承System.Object类而得来的。(T)12.在C#中,任何方法都不能实现多继承。(F )13.在C#中,子类不能继承攵类中用private修饰的成员变量和成员方法。(F)14.可以阻止某一个类被其他类继承。(T)15.使用Fileinfo类的Copy。方法可以复制文件。(T)二、选 择 题
26、(本大题共20个小题,每小题2分,共40分)1.在C#中,表示一个字符串的变量应使用以下哪条话句定义?BA.CString str;B.string str;C.Dim str as stringD.char*str;2.C#中MyClass为一自定义类,其中有以下方法定义:Apublic void Hello().使用以下语句创建了该类的对象,并 使 变 量。可引用该对象,那么,访问类MyClass的Hello方法正确的是:MyClass obj=new MyClassO;A.obj.HelloO;B.obj:Hello();C.MyClass.Hello();D.MyClass:Hello
27、();3.分析下列程序中类MyClass的 定 义Dclass BaseClass public int i;class MyClass:BaseClass public new int i;则下列培句在Console上的输出为.MyClass y=new MyClassO;BaseClass x=y;x.i=100;Console.WriteLine(0,x.iyi);(提示:注意类 MyClass 中的 new 关键字)A.0,0B.100,100C.0,100D.100,04.在定义类时,如果希望类的某个方法能峭在派生类中进一步进行改进,以处理不同的源生类的需要,则应将该方法声明成_C_
28、。A.sealed 方法B.public 方法C.virtual 方法.override 方法5.为了将字符串str=123,456”转换成整数123456,应该使用以下哪条语句?AA.int Num=int.Parse(str);B.i nt Num=str.Parse(int);C.int Num=(int)str;D.int Num=int.Parse(str,Globalization.NumberStyles.AllowThousands);6.在C#谙言中,下列能够作为变量名的是_C_0A.ifB.3abC.a_3bD.a-bc7.以下程序的输出结果是_C _。Using syst
29、em;Class Examplel(Public Static void main()I nt a=5,b=4,c=6,d;Console.Writeline(b?(ac?a:c):b);)A.5B.4C.6D.不1定8.能正确表示谡辑关系a=10或a=10 or a=10|a=10&a=10|a2)return(fib(n-1)+fib(n-2);日se rerurn(2);Public Static void main()Console.Writeline(,=10或a=10 or a=10|a=10&a=10|a=0;i)ai=10-l;Console.Writeline(,2)retu
30、rn(fib(n-1)+fib(n-2);日se rerurn(2);Public Static void main()Console.Writeline(0,fib(3);)A.2B.4C.6D.812.调用重载方法时,系统根据_ B 来选择具体的方法。A.方法名B.参数的个数和类型C.参数名及参数个数D.方法的返回值类型13.下列的_D 不是构造函数的特征。A.构造国数的国数名和类名相同B.构造函数可以重载C.构造因数可以带有参数D.可以指定构造函数的返回值14.类Class A有一个名为M 1的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰M 1方法时一定使用了_ B 修
31、饰符。ClassA obj=new Class A();ClassA.M1();A.publicB.staticC.privateD.virtual15.为了能够在程序中捕获所有的异常在catch据句的括号中使用的类名为一一A。A.ExceptionB.DivideByZeroExceptionC.FormatExceptionD.以上三个均可16.关于异常,下列的说法中不正确的是_ D 0A.用户可以根据需要摭出异常B.在被调用方法可通过throw语句把异常传回给调用方法C.用户可以自己定义异常D.在C#中有的异常不能被捕获17.以下类型中,不属于值类型的是_ D _。A.整数类型B.布尔类
32、型C.字符类型D.类类型18.下列给出的变量名正确的是_A.A.int N0.1B.char useC.float MainD.char use19.在定义类时,如果希望类的某个方法能端在派生类中进一步进行改进,口处理不同的派生类的需要掰应将该方法声明成_C _。A.sealed 方法B.public 方法C.virtual 方法0.override 方法20.为了将字符串str=1 了,456”转换成整数123456,应该使用以下哪条语句?AA.int Num=int.Parse(str);B.int Num=str.Parse(int);C.int Num=(int)str;D.int N
33、um=int.Parse(str,Globalization.NumberStyles.AllowThousands);三、程 序 阅 读 题(本 大 题 共5个小题,每小题5,共251.写出以下程序的运行结果。using System;class Testpublic static void Main()int x=5;int y=x+;Console.WriteLine(y);y=+x;Console.WriteLine(y);2.写出下列函教的功能。static float FH()float y=0,n=0;int x=Convert.Tolnt32(Console.ReadLine(
34、);/从键盘读入整型数据赋给 xwhile(x!=-1)n+;y+=x;x=Convert.Tolnt32(Console.ReadLine();if(n=0)return y;elsereturn y/n;)3.写出以下程序的功能。static void f2(ref double口 a,int n)int i;double sum=0;for(i=0;in;i+)sum+=ai;sum/=n;for(i=0;i=sum)Console.write(ai+”“);Console.writeLine();4.写出以下程序运行结果。using System;class Teststatic vo
35、id LE(ref int a,ref int b)int x=a;a=b;b=x;Console.writeLine(a+b);)public static void Main()int x=10,y=25;LE(ref x,ref y);C onsole.w riteLine(x+y);5.写出以下程序的运行结果。using System;class Test(public static void Main()int a=2,4,6,8,10,12,14,16,18;for(int i=0;ib)return 1;else if(a=b)return 0;elsereturn-1;7.写出
36、以下程序运行结果。using System;class Test(static int a=1,2,3,4,5,6,7,8;public static void Main()int sO,s1,s2;sO =s1=s2=0;for(int i=0;i 8;i+)switch(ai%3)case 0:sO +=Test.ai;break;case 1:s1+=Test.ai;break;case 2:s2+=Test.ai;break;Console.W riteLine(sO+s1+s2);8.写出以下程序运行结果。using System;class Testconst int N=5;pu
37、blic static void Main()int a=0;for(int i=1;iN;i+)int c=0,b=2;a+=3;c=a+b;Console.write(c+);)9.写出以下程序的功能。static void WA(ref int a,int n)for(int i=0;in-1;i+)int k=i;for(int j=i+1;jn;j+)if(aj50)break;if(i%2=0)s+=i;)Console.writeLine(i,s=+i+s);)四、编程题(本大题共2个小题,第一小题1 0分,第二小题1 5分,共25分)1.编写一个程序,定义三个float类型的变
38、量,分别从维盘上输入值给它们,然后用if else选择语句找出它们中的最小数,最后输出结果。2.编一个程序,输入一个整数,使用if else语句,如果该数大于0,则加上1 0 0,否则加上5 0 0,输出结果。3.编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条jfla,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式Math.Sqrt(s*(s-a)*(s-b)*(s-c),可以利用它计算指定数的开方,其中s=(a+b+c)/2o在主方法中输入一个三角形三条、a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条小时,必须检查它们的数据合法性。4.编一个程序,定义类student和它的成员(学号,年龄和jsharp程序设计成绩),用类student生成对象s,分刖对对象s的成员赋值,然后输出对象s。