版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试卷科目:C#开发基础C#开发基础(习题卷22)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC#开发基础第1部分:单项选择题,共52题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.在C#WinForm中,用于创建工具栏的控件是()A)MenuStripB)ToolStripC)TextD)Button答案:B解析:[单选题]2.在C#中,以下属于窗体的常用事件是()A)LoadB)OpenC)MaxD)Min答案:A解析:[单选题]3.在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用()语句。A)continueB)gotoC)breakD)if答案:A解析:[单选题]4.在c#中利用sealed修饰的类()A)密封,不能继承B)密封,可以继承C)表示基类D)表示抽象类答案:A解析:[单选题]5.在C#中,下列代码的运行结果是()。classA{publicA(){Console.WriteLine("A");}publicvoidF(Stringstr){Console.WriteLine(str);}publicvirtualvoidF(){Console.WriteLine("A.F()");}}classB:A{publicB(){Console.WriteLine("B");}publicoverridevoidF(){Console.WriteLine("B");}}classTest{publicstaticvoidMain(String[]args){AobjA=newB();objA.F("A");objA.F();}}A)A A.F()B)A BC)A B A A.F()D)A B A B答案:D解析:D:顺序为先调整用父类的构造方法输出A调整用B类的构造方法输出BobjA.F("A")B没有重写A的publicvoidF(Stringstr)方法,所以输出A。objA.F();虚方法覆盖,所以是B类的publicoverridevoidF(),输出B[单选题]6.在.NET中,()类提供了操作字符串的方法。A)System.ThreadingB)System.IOC)System.CollectionsD)System.String答案:D解析:[单选题]7.下列说法关于Dictionary的常用方法说法错误的是()A)Remove()从Dictionary中移除带有指定键的元素B)Add()将带有指定键和值的元素添加到Dictionary中C)ContainsKey()确定Dictionary中是否包含指定键D)AddAt()将带有指定键和值的元素添加到Dictionary中答案:D解析:[单选题]8.如果y=75,以下编码的输出结果是()。publicvoidDemo(inty){constintx=80;if(y>=10){x=90;}else{x=45;}Console.WriteLine(x);}A)80B)90C)45D)程序报错答案:D解析:[单选题]9.类MyClass中有下列方法定义:publicvoidtestParams(paramsint[]arr){Console.Write("使用Params参数!");}publicvoidtestParams(intx,inty){Console.Write("使用两个整型参数!");}请问上述方法重载有无二义性?若没有,则下列语句的输出为_________.MyClassx=newMyClass();x.testParams(0);x.testParams(0,1);x.testParams(0,1,2);A)有语义二义性;B)使用Params参数!使用两个整型参数!使用Params参数!C)使用Params参数!使用Params参数!使用Params参数!D)使用Params参数!使用两个整型参数!使用两个整型参数!答案:B解析:用params修饰符声明的参数是参数数组。如果形参表包含一个参数数组,则该参数数组必须位于该列表的最后而且它必须是一维数组类型。例如,类型string[]和string[][]可用作参数数组的类型,但是类型string[,]不能。不可能将params修饰符与ref和out修饰符组合起来使用。在一个方法调用中,允许以下列两种方式之一来为参数数组指定对应的参数:赋予参数数组的参数可以是一个表达式,它的类型可以隐式转换(第6.1节)为该参数数组的类型。在此情况下,参数数组的作用与值参数完全一样。或者,此调用可以为参数数组指定零个或多个参数,其中每个参数都是一个表达式,它的类型可隐式转换(第6.1节)为该参数数组的元素的类型。在此情况下,此调用创建一个长度对应于参数个数、类型与该参数数组的类型相同的一个数组实例,并用给定的参数值初始化该数组实例的元素,并将新创建的数组实例用作实参。除了允许在调用中使用可变数量的参数,参数数组与同一类型的值参数(第节)完全等效。示例usingSystem;classTest{staticvoidF(paramsint[]args){Console.Write("Arraycontains{0}elements:",args.Length);foreach(intiinargs)Console.Write("{0}",i);Console.WriteLine();}staticvoidMain(){int[]arr={1,2,3};F(arr);该数组实例作为值参数传递,等价于F(newint[]{10,20,30,40});F(10,20,30,40);F();等价于F(newint[]{});}}产生输出Arraycontains3elements:123Arraycontains4elements:10203040Arraycontains0elements:F的第一次调用只是将数组arr作为值参数传递。F的第二次调用自动创建一个具有给定元素值的四元素int[]并将该数组实例作为值参数传递。与此类似,F的第三次调用创建一个零元素的int[]并将该实例作为值参数传递。第二次和第三次调用完全等效于编写下列代码:F(newint[]{10,20,30,40});F(newint[]{});执行重载决策时,具有参数数组的方法可能以它的正常形式或以它的扩展形式(第节)成为适用的。只有在方法的正常形式不适用,并且在同一类型中尚未声明与方法的扩展形式具有相同签名的方法时,上述的方法扩展形式才可供选用。示例usingSystem;classTest{staticvoidF(paramsobject[]a){Console.WriteLine("F(object[])");}staticvoidF(){Console.WriteLine("F()");}staticvoidF(objecta0,objecta1){Console.WriteLine("F(object,object)");}staticvoidMain(){F();F(1);F(1,2);F(1,2,3);F(1,2,3,4);}}产生输出F();F(object[]);F(object,object);F(object[]);F(object[]);*优先调用参数个数相对应方法。在该示例中,在同一个类中,已经声明了两个常规方法,它们的签名与具有参数数组的那个方法的扩展形式相同。因此,在执行重载决策时不考虑这些扩展形式,因而第一次和第三次方法调用将选择常规方法。当在某个类中声明了一个具有参数数组的方法时,同时再声明一些与该方法的扩展形式具有相同的签名的常规方法,这种情况比较常见。这样做可以避免为数组配置内存空间(若调用具有参数数组的方法的扩展形式,则无法避免)。当参数数组的类型为object[]时,在方法的正常形式和单个object参数的扩展形式之间将产生潜在的多义性。产生此多义性的原因是object[]本身可隐式转换为object。然而,此多义性并不会造成任何问题,这是因为可以在需要时通过插入一个强制转换来解决它。示例usingSystem;classTest{staticvoidF(paramsobject[]args){foreach(objectoinargs){Console.Write(o.GetType().FullName);Console.Write("");}Console.WriteLine();}staticvoidMain(){object[]a={1,"Hello",123.456};objecto=a;F(a);F((object)a);强制转换为object类型,而非object[]类型F(o);o为object类型,而非object[]类型F((object[])o);强制转换为object类型,而非object[]类型}}产生输出System.Int32System.StringSystem.DoubleSystem.Object[]System.Object[]System.Int32System.StringSystem.Double在F的第一次和最后一次调用中,F的正常形式是适用的,这是因为存在一个从自变量类型到参数类型的转换(这里,其实两者都是object[]类型)。因此,重载决策选择F的正常形式,而且将该参数作为常规的值参数传递。在第二次和第三次调用中,F的正常形式不适用,这是因为不存在从自变量类型到参数类型的转换(类型object不能隐式转换为类型object[])。但是,F的扩展形式是适用的,因此重载决策选择它。因此,这两个调用都创建了一个具有单个元素的、类型为object[]的数组,并且用给定的参数值(它本身是对一个object[]的引用)初始化该数组的唯一元素。[单选题]10.若想从派生类中访问基类的成员,可以使用______。A)this关键字B)me关键字C)base关键字D)override关键字答案:C解析:[单选题]11.下列选项中,关于调用静态方法的方式正确的是()。A)类名.方法名B)类的对象.方法名C)方法名D)属性.方法名答案:A解析:[单选题]12.以下哪些功能不属于C#2.0新增的特性()A)继承和多态B)泛型C)可空类型D)遍历器答案:A解析:继承和多态是面向对象的基本特征,不是新特性。[单选题]13.导入命名空间使用关键字是()。A)MainB)UsingC)SystemD)Console答案:B解析:二、填空题[单选题]14.C#数组主要有三种形式,它们是( )。A)一维数组、二维数组、三维数组B)整型数组、浮点型数组、字符型数组C)一维数组、多维数组、不规则数组D)一维数组、二维数组、多维数组答案:C解析:数组概述C#数组从零开始建立索引,即数组索引从零开始。C#中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。声明数组时,方括号([])必须跟在类型后面,而不是标识符后面。在C#中,将方括号放在标识符后是不合法的语法。int[]table;//notinttable[];另一细节是,数组的大小不是其类型的一部分,而在C语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配int对象的任意数组,而不管数组长度如何。int[]numbers;//declarenumbersasanintarrayofanysizenumbers=newint[10];//numbersisa10-elementarraynumbers=newint[20];//nowit'sa20-elementarray声明数组C#支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。下面的示例展示如何声明不同类型的数组:一维数组:int[]numbers;多维数组:string[,]names;数组的数组(交错的):byte[][]scores;声明数组(如上所示)并不实际创建它们。在C#中,数组是对象(本教程稍后讨论),必须进行实例化。下面的示例展示如何创建数组:一维数组:int[]numbers=newint[5];多维数组:string[,]names=newstring[5,4];数组的数组(交错的):byte[][]scores=newbyte[5][];for(intx=0;x<scores.Length;x++){scores[x]=newbyte[4];}还可以有更大的数组。例如,可以有三维的矩形数组:int[,,]buttons=newint[4,5,3];甚至可以将矩形数组和交错数组混合使用。例如,下面的代码声明了类型为int的二维数组的三维数组的一维数组。int[][,,][,]numbers;示例下面是一个完整的C#程序,它声明并实例化上面所讨论的数组。//arrays.csusingSystem;classDeclareArraysSample{publicstaticvoidMain(){//Single-dimensionalarrayint[]numbers=newint[5];//Multidimensionalarraystring[,]names=newstring[5,4];//Array-of-arrays(jaggedarray)byte[][]scores=newbyte[5][];//Createthejaggedarrayfor(inti=0;i<scores.Length;i++){scores[i]=newbyte[i+3];}//Printlengthofeachrowfor(inti=0;i<scores.Length;i++){Console.WriteLine("Lengthofrow{0}is{1}",i,scores[i].Length);}}}输出Lengthofrow0is3Lengthofrow1is4Lengthofrow2is5Lengthofrow3is6Lengthofrow4is7初始化数组C#通过将初始值括在大括号({})内为在声明时初始化数组提供了简单而直接了当的方法。特别要注意的是,如果声明时未初始化数组,则数组成员自动初始化为该数组类型的默认初始值。下面的示例展示初始化不同类型的数组的各种方法。一维数组int[]numbers=newint[5]{1,2,3,4,5};string[]names=newstring[3]{"Matt","Joanne","Robert"};可省略数组的大小,如下所示:int[]numbers=newint[]{1,2,3,4,5};string[]names=newstring[]{"Matt","Joanne","Robert"};如果提供了初始值设定项,还可省略new语句,如下所示:int[]numbers={1,2,3,4,5};string[]names={"Matt","Joanne","Robert"};多维数组int[,]numbers=newint[3,2]{{1,2},{3,4},{5,6}};string[,]siblings=newstring[2,2]{{"Mike","Amy"},{"Mary","Albert"}};可省略数组的大小,如下所示:int[,]numbers=newint[,]{{1,2},{3,4},{5,6}};string[,]siblings=newstring[,]{{"Mike","Amy"},{"Mary","Ray"}};如果提供了初始值设定项,还可省略new语句,如下所示:int[,]numbers={{1,2},{3,4},{5,6}};string[,]siblings={{"Mike","Amy"},{"Mary","Albert"}};交错的数组(数组的数组)可以像下例所示那样初始化交错的数组:int[][]numbers=newint[2][]{newint[]{2,3,4},newint[]{5,6,7,8,9}};可省略第一个数组的大小,如下所示:int[][]numbers=newint[][]{newint[]{2,3,4},newint[]{5,6,7,8,9}};-或-int[][]numbers={newint[]{2,3,4},newint[]{5,6,7,8,9}};请注意,对于交错数组的元素没有初始化语法。访问数组成员访问数组成员可以直接进行,类似于在C/C++中访问数组成员。例如,下面的代码创建一个名为numbers的数组,然后向该数组的第五个元素赋以5:int[]numbers={10,9,8,7,6,5,4,3,2,1,0};numbers[4]=5;下面的代码声明一个多维数组,并向位于[1,1]的成员赋以5:int[,]numbers={{1,2},{3,4},{5,6},{7,8},{9,10}};numbers[1,1]=5;下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组:int[][]numbers=newint[][]{newint[]{1,2},newint[]{3,4,5}};下面的语句向第一个数组的第一个元素赋以58,向第二个数组的第二个元素赋以667:numbers[0][0]=58;numbers[1][1]=667;数组是对象在C#中,数组实际上是对象。System.Array是所有数组类型的抽象基类型。可以使用System.Array具有的属性以及其他类成员。这种用法的一个示例是使用?长度?(Length)属性获取数组的长度。下面的代码将numbers数组的长度(为5)赋给名为LengthOfNumbers的变量:int[]numbers={1,2,3,4,5};intLengthOfNumbers=numbers.Length;System.Array类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法。对数组使用foreachC#还提供foreach语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为numbers的数组,并用foreach语句循环访问该数组:int[]numbers={4,5,6,1,2,3,-2,-1,0};foreach(intiinnumbers){System.Console.WriteLine(i);}[单选题]15.假定int类型变量占用4个字节,若有定义:int[]x=newint[]{1,2,3,4,5,6};则数组x在内存中所占字节数是。A)4B)12C)24D)48答案:C解析:[单选题]16.开发基于C#的WinDows应用程序需要引用哪个名空间()?A)SystemB)System.FormsC)System.ColleCtionsD)System.DAtA答案:B解析:[单选题]17.加载窗体时触发的事件是()。A)ClickB)LoadC)GotFoucsD)DoubleClick答案:B解析:[单选题]18.已知类MyClass中事件MouseClicked定义如下:Publicdelegatevoidmydelegate();PubliceventmydelegateMouseClicked;执行下列语句:Methodobj=newMethod();MyClasse=newMyClass();E,MouseClicked+=obj.fun;//第一次添加obj.funE,MouseClicked+=obj.fun;//第二次添加obj.fun其中Method类中包含事件处理方法fun。然后引发该MouseClicked事件,其结果为。A)obj.fun方法被调用4次B)obj.fun方法被调用2次C)obj.fun方法被调用1次D)obj.fun方法不会被调用答案:B解析:[单选题]19.SolidBrush类用来表示______,即只用一种颜色去填充图形。A)阴影画刷B)单色画刷C)纹理画刷D)渐变画刷答案:B解析:[单选题]20.当对数据库表中的数据进行查询时,可以将查询结果保存到()类的对象中。A)DataSetB)DataReadersC)CommandD)Reader答案:A解析:[单选题]21.在C#中,要从数据库中读取数据填充数据集,需要使用()方法。(选1项)A)Read()B)ExecuteReader()C)Update()D)Fill()答案:D解析:[单选题]22.在C#中using关键字的作用是()。A)新建实例B)调用类C)导入命名空间D)定义命名空间答案:C解析:[单选题]23.在C#中,()访问修饰符修饰的变量只能由当前程序集访问。A)publicB)protectedC)internalD)private答案:C解析:类中所有的成员,默认均为private。C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符:public可以被任意存取;protected只可以被本类和其继承子类存取;internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是?.DLL?或?.EXE?。protectedinternal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。private只可以被本类所存取。如果不是嵌套的类,命名空间或编译单元内的类只有public和internal两种修饰。new修饰符只能用于嵌套的类,表示对继承父类同名类型的隐藏。override只能用于嵌套的类,表示对继承父类同名类型的覆盖。[单选题]24.C#中,字符串常量@"123\n456"中,字符的个数是()个。A)7B)8C)9D)10答案:B解析:[单选题]25.下列语句创建了()个string对象String[,]strArray=newstring[3,4]A)0B)3C)4D)12答案:D解析:二维数组3X4=12[单选题]26.C#应用程序中,用主方法指明程序执行的开始点,主方法的名字规定为()。A)classB)mainC)MainD)MainWay答案:C解析:[单选题]27.在C#语言中,运算符"="和"=="的功能分别是()A)关系运算和赋值运算B)赋值运算和关系运算C)都是关系运算D)都是赋值运算答案:B解析:[单选题]28.在C#中,MS为我们提供了()命名空间,里面包含了Socket类。A)System.Net.SocketsB)System.NeC)System.ThreadingD)System.Collections.Specialized答案:A解析:[单选题]29.以下可以作为接口成员的是A)常量B)字段C)方法D)构造函数答案:C解析:[单选题]30.在.Net中所有可序列化的类都被标记为()A)(serializable)B)[serializable]C)serializableD)serialize答案:B解析:[单选题]31.关于以下C#代码的说法正确的是()publicabstractclassAnimal{publicabstractvoidEat();}publicclassTiger:Animal{publicoverridevoidEat(){Console.WriteLine("老虎吃动物");}}classProgram:Tiger{staticvoidMain(string[]args){Tigertiger=newTiger();tiger.Eat();}}A)代码正确,但没有输出B)代码正确,并且输出为"老虎吃动物";C)代码错误,因为Program类没有实现抽象基类Animal中的抽象方法D)代码错误,因为抽象基类Animal的Eat方法没有实现答案:B解析:结果判断[单选题]32.下列关于构造函数的说法,错误的是()A)构造函数的函数名和类名相同B)构造函数可以重载C)构造函数可以带有参数D)可以指定构造函数的返回值答案:D解析:概念理解[单选题]33.下列关于C#的异常处理的说发法,错误的是()A)Try块必须跟catch块组合使用,不能单独使用B)一个try块可以跟随多个catch块C)使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常D)在try…catch…..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行答案:B解析:AD:正确。B:错,必须一对一组合使用。[单选题]34.阅读下面的代码,最终x的结果是()Intx=1;If(x>0){x+=2;}Elseif(x<0){x-=2;}Else{x=0;}A)0B)1C)-1D)3答案:D解析:[单选题]35.以下中哪个为函数特征(signature)的一部分?()A)参数的类型B)参数的顺序C)参数的个数D)返回类型答案:B解析:[单选题]36.在CSS3.0样式中,要实现两个div水平排列,最重要的样式属性是()A)overflowB)marginC)widthD)float答案:D解析:[单选题]37.在C#中,下述C#语言代码的运行结果是()。int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[2][2]的值是()A)9B)2C)6D)数组索引超出界限答案:D解析:[单选题]38.C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对( )进行初始化,静态构造函数只能对静态成员进行初始化。A)静态成员B)静态成员和非静态成员C)非静态成员D)动态成员答案:C解析:下面的示例演示了实例构造函数:C#classCoOrds{publicintx,y;//constructorpublicCoOrds(){x=0;y=0;}}备注为清楚起见,此类包含公共字段。建议在编程时不要使用公共字段,因为这种做法会使程序中任何位置的任何方法都可以不受限制、不经验证地访问对象的内部组件。数据成员通常应当为私有的,并且只应通过类方法和属性来访问。只要创建基于CoOrds类的对象,就会调用此实例构造函数。诸如此类不带参数的构造函数称为?默认构造函数?。然而,提供其他构造函数通常十分有用。例如,可以将构造函数添加到CoOrds类,以便可以为数据成员指定初始值:C#//Aconstructorwithtwoarguments:publicCoOrds(intx,inty){this.x=x;this.y=y;}这样便可以用默认或特定的初始值创建CoOrd对象,如下所示:C#CoOrdsp1=newCoOrds();CoOrdsp2=newCoOrds(5,3);如果某个类没有构造函数,则会自动生成一个默认构造函数,并使用默认值来初始化对象字段。例如,int初始化为0。有关默认值的详细信息,请参阅默认值表。由于CoOrds类的默认构造函数将所有数据成员都初始化为零,因此可以将它完全移除,而不会更改类的工作方式。本主题稍后部分的示例1中提供了使用多个构造函数的完整示例,示例2中提供了自动生成的构造函数的示例。也可以用实例构造函数来调用基类的实例构造函数。类构造函数可通过初始值设定项来调用基类的构造函数,如下所示:C#classCircle:Shape{publicCircle(doubleradius):base(radius,0){}}在此示例中,Circle类将半径和高度的值传递给Shape(Circle从它派生而来)提供的构造函数。使用Shape和Circle的完整示例完整示例请见本主题中的示例3。示例1下面的示例说明包含两个类构造函数的类:一个类构造函数不带参数,另一个带有两个参数。C#classCoOrds{publicintx,y;//Defaultconstructor:publicCoOrds(){x=0;y=0;}//Aconstructorwithtwoarguments:publicCoOrds(intx,inty){this.x=x;this.y=y;}//OverridetheToStringmethod:publicoverridestringToString(){return(String.Format("({0},{1})",x,y));}}classMainClass{staticvoidMain(){CoOrdsp1=newCoOrds();CoOrdsp2=newCoOrds(5,3);//DisplaytheresultsusingtheoverridenToStringmethod:Console.WriteLine("CoOrds#1at{0}",p1);Console.WriteLine("CoOrds#2at{0}",p2);Console.ReadKey();}}/*Output:CoOrds#1at(0,0)CoOrds#2at(5,3)*/示例2在此示例中,Person没有任何构造函数;在这种情况下,将自动提供默认构造函数,同时将字段初始化为它们的默认值。C#publicclassPerson{publicintage;publicstringname;}classTestPerson{staticvoidMain(){Personperson=newPerson();Console.WriteLine("Name:{0},Age:{1}",,person.age);//Keeptheconsolewindowopenindebugmode.Console.WriteLine("Pressanykeytoexit.");Console.ReadKey();}}//Output:Name:,Age:0请注意,age的默认值为0,name的默认值为null。有关默认值的详细信息,请参阅默认值表。示例3下面的示例说明使用基类初始值设定项。Circle类派生自常规类Shape,Cylinder类派生自Circle类。每个派生类的构造函数都使用其基类的初始值设定项。C#abstractclassShape{publicconstdoublepi=Math.PI;protecteddoublex,y;publicShape(doublex,doubley){this.x=x;this.y=y;}publicabstractdoubleArea();}classCircle:Shape{publicCircle(doubleradius):base(radius,0){}publicoverridedoubleArea(){returnpi*x*x;}}classCylinder:Circle{publicCylinder(doubleradius,doubleheight):base(radius){y=height;}publicoverridedoubleArea(){return(2*base.Area())+(2*pi*x*y);}}classTestShapes{staticvoidMain(){doubleradius=2.5;doubleheight=3.0;Circlering=newCircle(radius);Cylindertube=newCylinder(radius,height);Console.WriteLine("Areaofthecircle={0:F2}",ring.Area());Console.WriteLine("Areaofthecylinder={0:F2}",tube.Area());//Keeptheconsolewindowopenindebugmode.Console.WriteLine("Pressanykeytoexit.");Console.ReadKey();}}/*Output:Areaofthecircle=19.63Areaofthecylinder=86.39*/[单选题]39.下列关于sealed关键字的说法错误的是()。A)sealed关键字不能和abstract同时使用B)sealed关键字可以修饰一个类,该类是密封类C)sealed关键字可以修饰一个方法,该方法不能被重写D)sealed关键字修饰的类,可以被继承答案:D解析:[单选题]40.用()关键字可以再次引发捕获到的异常?A)NewB)thisC)throwD)Exception答案:C解析:throw抛出异常。[单选题]41.在CSS3中,若父标签已设置position:relative,将标签定位在距其父标签左边50px,上边100px的CSS正确写法是()A){position:static;left:50px;top:100px}B){position:relative;left:50px;top:100px}C){position:absolute;left:50px;top:100px}D){position:fixed;left:50px;top:100px}答案:C解析:[单选题]42.在HTML5中,以下在链接中使用锚点正确的方式是()A)<ahref="#name">锚点链接</a>B)<ahref="name">锚点链接</a>C)<ahref="#">锚点链接</a>D)<ahref="">锚点链接</a>答案:A解析:[单选题]43.在C#中,某程序在一个类中编写了两个同名的方法,该段代码的运行结果是()。publicclassMusician{publicvoidSong(){Console.WriteLine(?忘记你我做不到?);}publicvoidSong(stringmusicName){Console.WriteLine(musicName);}staticvoidMain(){Musicianmusician=newMusician();stringmusicName=?还是觉得你最好?;musician.Song(?分手总要在雨天?);}}A)忘记你我做不到B)还是觉得你最好C)分手总要在雨天D)没有输出答案:C解析:C:程序会找到参数匹配的方法执行。[单选题]44.下列有关FileStream对象的文件访问模式(FileAccess)中错误的是()。A)ReadB)ReadWriteC)DeleteD)Write答案:C解析:[单选题]45.下述关于控件的事件,说法错误的是()A)CheckBox的选中状态发生变化时,会触发CheckChanged事件B)ComboBox的选中条目发生变化时,会触发SelectedIndexChanged事件C)Form在加载的时候,会触发Load事件D)选择菜单项,会触发MenuIndexChanged事件答案:D解析:[单选题]46.是独立于CPU的指令集,它可以被高效地转换为本机机器代码。A)CLRB)CLSC)MSILD)Web服务答案:C解析:[单选题]47.字符串的不可变性是指()A)字符串本身不能被修改B)字符串的长度不可改变C)字符串变量是只读的D)字符串不能赋值给其他字符串变量答案:A解析:[单选题]48.以下定义并初始化数组的语句中正确的是。A)intarr1[][]=newint[4,5];([][]和[,]不相同)B)int[][]arr2=newint[4,5];C)intarr3[,]=newint[4,5]([,]位置错误)D)int[,]arr4=newint[4,5];答案:D解析:[单选题]49.C#程序的()方法被成为程序的大门,应用程序从这里开始运行A)Main()B)Begin()C)Start()D)main()答案:A解析:Main是程序的第一个执行方法。[单选题]50.在C#.Net中,用来创建主菜单的对象是()A)MenuB)MenuItemC)MenuStripD)Item答案:C解析:[单选题]51.DirectoryInfo类的实例对象用于获得指定目录下所有文件的方法是()。A)GetDirectoriesB)GetFilesC)GetHashCodeD)GetObjectData答案:B解析:[单选题]52.在C#中,以下代码运行的结果为()。publicclassPerson{publicPerson(stringname){Console.WriteLine("人名:"+name);}}publicclassStudent:Person{publicStudent(stringname){Console.WriteLine("学生名:"+name);}publicstaticvoidMain(){Personstu=newStudent("卡卡");}}A)人名:卡卡B)学生名:卡卡C)人名:卡卡学生名:卡卡D)编译报错默认调用父类的无参构造方法答案:D解析:报错。子类默认调用父类的无参构造方法。如果父类是有参的,则需要显式调用。第2部分:多项选择题,共5题,每题至少两个正确答案,多选或少选均不得分。[多选题]53.在Javascript中,对于浏览器对象的层次关系理解正确的是()(选择二项)()A)window对象是所有页面内容的根对象B)document对象包含location对象和history对象C)location对象包含historyD)document对象包含form对象答案:AD解析:[多选题]54.在C#中,C#窗体应用程序中,ComboBox控件添加选项的方式有如下哪几种方式()【选两项】A)通过控件设计界面直接添加B)通过控件样式进行添加C)通过代码进行添加D)通过注册事件进行添加答案:AC解析:[多选题]55.下列选项中,关于类和对象的描述正确的是()。A)类是对象的抽象B)类中只能定义方法C)访问对象中的成员可以使用"对象名.成员名"的方式D)定义类需要使用class关键字修饰答案:AD解析:[多选题]56.在HTML5中,在表单元素中具有提交功能按钮的是()【选两项】A)图片按钮B)提交按钮C)普通按钮D)重置按钮答案:AB解析:[多选题]57.下列选项中关于里氏转换原则说法正确的是()。A)子类对象可以直接赋值给父类变量B)子类对象不可以直接赋值给父类变量C)父类对象可以直接赋值给子类变量,但需要强制类型转换D)判断子类与父类之间是否可以转换可以使用is关键字答案:ACD解析:第3部分:填空题,共4题,请在空白处填写正确答案。[填空题]58.在switch语句中,每个语句标号所含关键字case后面的表达式必须是()。答案:常量表达式解析:一个switch语句允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个switchcase进行检查。语法C#中switch语句的语法:switch(expression){caseconstant-expression:statement(s);break;caseconstant-expression:statement(s);break;/*您可以有任意数量的case语句*/default:/*可选的*/statement(s);break;}switch语句必须遵循下面的规则:switch语句中的expression必须是一个整型或枚举类型,或者是一个class类型,其中class有一个单一的转换函数将其转换为整型或枚举类型。在一个switch中可以有任意数量的case语句。每个case后跟一个要比较的值和一个冒号。case的constant-expression必须与switch中的变量具有相同的数据类型,且必须是一个常量。当被测试的变量等于case中的常量时,case后跟的语句将被执行,直到遇到break语句为止。当遇到break语句时,switch终止,控制流将跳转到switch语句后的下一行。不是每一个case都需要包含break。如果case语句为空,则可以不包含break,控制流将会继续后续的case,直到遇到break为止。C#不允许从一个开关部分继续执行到下一个开关部分。如果case语句中有处理语句,则必须包含break或其他跳转语句。一个switch语句可以有一个可选的defaultcase,出现在switch的结尾。defaultcase可用于在上面所有case都不为真时执行一个任务。defaultcase中的break语句不是必需的。C#不支持从一个case标签显式贯穿到另一个case标签。如果要使C#支持从一个case标签显式贯穿到另一个case标签,可以使用goto一个switch-case或gotodefault。[填空题]59.数组定义与赋值语句如下:int[]a={1,2,3,4,5};则a[2]的值是()答案:3解析:数组的下标是从0开始。[填空题]60.要定义一个3行4列的单精度型二维数组f,使用的定义语句为()答案:float[,]f=newfloat[3,4];解析:float[,]f=newfloat[3,4];二维数组标准定义。第4部分:判断题,共14题,请判断题目是否正确。[判断题]61.抽象类中的成员一定是抽象的。()A)正确B)错误答案:错解析:[判断题]62.属性就是实体特征的抽象,比如,对象猫可以有重量,身长等属性。()A)正确B)错误答案:对解析:[判断题]63.Main方法的返回值类型必须是void的类型。()A)正确B)错误答案:错解析:[判断题]64.switch只能对离散的值进行判断,在case处只能写常量。A)正确B)错误答案:对解析:[判断题]65.在C#中对于多条件判断可以使用if…elseif…else条件语句也可以使用switch条件语句。A)正确B)错误答案:对解析:[判断题]66.在MicrosoftVisualStudio开发环境中可以通过C#语言进行.NET开发。A)正确B)错误答案:对解析:[判断题]67.对数组元素的所有访问都要进行边界检查()A)正确B)错误答案:对解析:[判断题]68.接口与类相同是面向对象程序设计的核心,是创建对象的模板答案:对解析:接口和类均是面向对象的核心。[判断题]69.在C#中,任何方法都不能实现多继承?答案:错解析:接口可以实现多继承。[判断题]70.所有类都直接或间接的继承自Object类。A)正确B)错误答案:对解析:[判断题]71.布尔型变量可以赋值为0或1。()A)正确B)错误答案:错解析:[判断题]72.若方法的名字相同、参数相同,而方法的返回值类型不同,则可以实现方法的重载。()A)正确B)错误答案:错解析:[判断题]73.参数列表中的参数都可以设置默认值。()A)正确B)错误答案:错解析:[判断题]74.值类型变量直接存放真正的数据,引用类型变量存放的是指向真正数据的内存地址()A)正确B)错误答案:对解析:第5部分:问答题,共25题,请在空白处填写正确答案。[问答题]75.能够生成?字体?对话框的类是()类。答案:FontDialog解析:[问答题]76.简述if语句嵌套时,if与else的配对规则。答案:else总是与其前面最近且尚未配对的在同一复合语句中的if解析:[问答题]77.constants、readonly和static之间的区别是什么?答案:Constants:值不能变。Read-only:值在类的构造函数中仅仅初始化一次。Static:值可以被初始化一次。解析:Constants:值不能变。Read-only:值在类的构造函数中仅仅初始化一次。Static:值可以被初始化一次。[问答题]78.编写一个程序,定义三个float类型的变量,分别从键盘上输入值给它们,然后用ifelse选择语句找出它们中的最小数,最后输出结果答案:floatx,y,z,min=0;Console.WriteLine("请输入三个float类型的值");x=float.Parse(Console.ReadLine());y=float.Parse(Console.ReadLine());z=float.Parse(Console.ReadLine());if(x<y&&x<z)min=x;elseif(y<x&&y<z)min=y;elsemin=z;Console.WriteLine("这三个数中的最小值为{0}",min);解析:[问答题]79.求以下表达式的值,写出您想到的一种或几种实现方法:1-2+3-4+……+m答案:intNum=this.TextBox1.Text.ToString();intSum=0;for(inti=0;i<Num+1;i++){if((i%2)==1){Sum+=i;}else{Sum=Sum-I;}}System.Console.WriteLine(Sum.ToString());System.Console.ReadLine()解析:intNum=this.TextBox1.Text.ToString();intSum=0;for(inti=0;i<Num+1;i++){if((i%2)==1){Sum+=i;}else{Sum=Sum-I;}}System.Console.WriteLine(Sum.ToString());System.Console.ReadLine()[问答题]80.对象和实例之间的区别是什么?答案:用户定义的类型的实例称为一个对象。我们可以从一个类实例化很多对象。对象是类的实例。解析:用户定义的类型的实例称为一个对象。我们可以从一个类实例化很多对象。对象是类的实例。[问答题]81.什么是虚函数?什么是抽像函数?答案:虚函数:没有实现的,可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。解析:虚函数:没有实现的,可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。[问答题]82.下面这段代码输出什么?为什么?inti=5;intj=5;if(Object.ReferenceEquals(i,j))Console.WriteLine("Equal");elseConsole.WriteLine("NotEqual");答案:不相等,因为比较的是对像解析:不相等,因为比较的是对像[问答题]83.事务是什么?请简要说明一下答案:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚解析:在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。更为经常的不是这些任务本身,而是将这些任务结合在一起完成一个业务要求,称为事务。当某一个任务失败时,就恢复到指定的恢复点,这个叫回滚[问答题]84.表达式2+5/10*10的值为()。答案:2解析:[问答题]85.产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复答案:int[]intArr=newint[100];ArrayListmyList=newArrayList();Randomrnd=newRandom();while(myList.Count<100){intnum=rnd.Next(1,101);if(!myList.Contains(num))myList.Add(num);}for(inti=0;i<100;i++)intArr[i]=(int)myList[i];解析:int[]intArr=newint[100];ArrayListmyList=newArrayList();Randomrnd=newRandom();whil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年潘彭茅艳离婚后同居合同
- 矿山工程监控劳务施工合同范本
- 市政路灯改造工程劳务合同
- 化妆品公司配电房安装合同
- 乳制品公司销售员招聘合同
- 学校就业合同考古学与博物馆学
- 高尔夫球场建设合同
- 道路桥梁养护全站仪租赁协议
- 编程教育机构导师聘用合同
- 港口国际合作服务合同
- 江苏省南通市海安市2023-2024学年六年级下学期期末综合试卷
- 2024-2034年中国飞机拆解行业市场现状分析及竞争格局与投资发展研究报告
- 中国土地制度智慧树知到期末考试答案章节答案2024年浙江大学
- 手术物品准备完善率
- 2024年西藏自治区中考地理真题(原卷版)
- 电力安全工器具预防性试验规程2023版
- 2024年度-民办学校年检自查报告
- 广东省普通高中学生档案
- (2024年)诊疗规范培训课件
- 基于PLC与工业机器人控制的物料搬运及分拣系统的设计
- 全国古建筑行业现状分析
评论
0/150
提交评论