您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > C#-OOP-内部测试笔试题和答案
《深入.NET平台和C#编程》内部测试题-笔试试卷一选择题1)以下关于序列化和反序列化的描述错误的是()。a)序列化是将对象的状态存储到特定存储介质中的过程b)二进制格式化器的Serialize()和Deserialize()方法可以分别用来实现序列化和反序列化过程c)如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化d)标识一个类可以序列化要使用[Serializable]2)在C#中,下列关于简单工厂设计模式的说法不正确的是()。a)简单工厂产生的对象都是静态对象b)创建产品的方法返回类型都是父类c)使用该模式解决了代码中大量使用new的问题d)简单工厂的缺点是对修改不封闭,新增加产品就需要修改工厂3)下列关于虚方法和抽象方法的描述中错误的是()。a)虚方法必须有方法体,可以被子类重写b)抽象方法不允许有方法体,且必须被子类重写c)抽象方法必须在抽象类中,而虚方法可以在所有类中d)在子类中重写抽象方法或虚方法,都需要用override关键字4)在UML类图中使用()符号表示私有成员。a)+b)-c)*d)#5)分析以下使用抽象类的C#代码,其最终的运行结果是()。publicabstractclassClass1{publicvoidF(){Console.Write(1);}abstractpublicvoidABS();}publicclassClass2:Class1{publicoverridevoidABS(){Console.Write(3);}publicClass2(){Console.Write(2);}staticvoidMain(){Class2objB=newClass2();objB.ABS();}}a)12b)21c)13d)236)下列代码的运行结果是()。classTest{publicvoidF(){Console.Write(A);}}classB:Test{newpublicvoidF(){Console.Write(B);}staticvoidMain(){TestobjA=newB();objA.F();}}a)Ab)Bc)BAd)AB7)关于C#中的虚方法,以下说法正确的是()。a)使用static修饰b)可以没有方法体c)可以被子类重写d)使用abstract修饰8)分析如下C#代码,如果输出结果是“DogEating......”,下划线需要填写的代码是()abstractclassAnimal{public__________voidEat();}classDog:Animal{public__________voidEat(){Console.WriteLine(DogEating......);}staticvoidMain(string[]args){Animalanimal=newDog();animal.Eat();}}a)abstract,不填b)abstract,overridec)virtual,不填d)virtual,override9)在开发C#程序过程中,会大量地使用类和对象,其使用方法不包括()。a)将类实例化为对象b)将对象实例化为类c)通过类访问非静态属性或方法d)通过对象访问非静态属性或方法10)运行下面C#代码将会出现编译错误,出现错误的位置是()。classTeacher{publicTeacher(stringname){this.Name=name;//1}privatestringname;publicstringName{set{name=value;}//2}staticvoidMain(string[]args){Teacherteacher=newTeacher(Jason);//3Console.WriteLine(teacher.Name);//4}}a)1b)2c)3d)411)现有类“c1”,它所在的命名空间为“a.b”,则下列说法中错误的是()。a)不同命名空间下仍可存在名称为c1的类b)不同命名空间下使用c1时,可以通过“usinga.b”引入命名空间c)同一命名空间下的类,使用c1时不需要引入c1的命名空间d)不同命名空间下使用c1时,不可以直接通过“a.b.c1”的方式使用12)下面关于泛型集合DictionaryString,Persondict=newDictionaryString,Person()的操作代码正确的是()。a)dict.Remove(dict[0])b)dict.RemoveAt(0)c)foreach(Personperindict.Values){}d)foreach(Personperindict.Keys){}13)已知Company.xml文件节点代码如下:CompanyName一汽大众/Name价格10万/价格Name日本丰田/Name价格20万/价格/Company现有如下C#代码片段:XmlDocumentmyXml=newXmlDocument();myXml.Load(Company.xml);XmlNodecompany=myXml.DocumentElement;foreach(XmlNodenodeincompany.ChildNodes){switch(node.Name){case一汽大众:Console.WriteLine(车名:{0},node.InnerText);break;case价格:Console.WriteLine(价格为:{0},node.InnerText);break;}}则正确的输出结果为()。a)车名:一汽大众价格为:10万b)车名:一汽大众价格为:20万c)车名:一汽大众车名为:日本丰田d)价格为:10万价格为:20万14)已知Animal、Cat、Tiger三个类,其继承关系为Cat:Animal,Tiger:Animal,已知Animal中成员color的访问修饰符为protected,Cat中成员height的访问修饰符为private,Tiger中成员weight的访问修饰符为public,则下面描述中错误的是()。a)Cat可以访问Animal中的成员colorb)Cat可以访问Tiger中的成员weightc)Tiger可以访问Animal中的成员colord)Tiger可以访问Cat中的成员height15)在C#中,()关键字用于子类的构造函数明确指明调用的父类的构造函数。a)newb)thisc)based)is16)C#中的多态不能通过()实现。a)方法重载b)抽象类c)虚方法d)密封类17)分析如下C#代码片断,运行后输出的结果是()。ArrayListlist=newArrayList();list.Add(Sina);list.Add(Yahoo);list.Add(Google);list.RemoveAt(1);Console.WriteLine(list[1]);a)Yahoob)Sinac)Googled)代码出现运行错误18)在C#语言中,以下关于集合的说法错误的是()。a)ArrayList只能通过索引来访问和删除值b)Hashtable可以直接通过键名来获取值c)使用ListT添加、读取元素时不需要拆箱和装箱,这一点和ArrayList相同d)使用DictionaryK,V可以通过Key获取Value,这一点和Hashtable相同19)分析如下C#程序,运行输出的结果是()。publicstructSize{publicintx;publicinty;publicSize(intx,inty){this.x=x;this.y=y;}}classTest{staticvoidMain(){Sizesize1=newSize(8,10);Sizesize2=size1;size1.y=200;Console.WriteLine({0}|{1},size1.y,size2.y);}}a)200|200b)200|10c)10|10d)10|20020)假设要使用C#设计一个日志系统,要求程序运行时,检查system.log文件是否存在,如果已经存在则直接打开,如果不存在则创建一个,为了实现这个目的,应该以FileMode的()方式创建文件流。a)CreateNewb)Openc)OpenOrCreated)Create21)下面关于单例模式说法错误的是()。a)在单例模式中,允许通过new构造实例b)单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例c)在C#中,static是实现单例模式的重要关键字d)单例模式可以确保所有对象都访问唯一的实例22)下面不是C#中类的访问修饰符的是()。a)protectedb)internalc)publicd)internalprotected23)在C#中,下面关于结构的说法中,正确的是()。a)结构和类都是引用类型b)定义结构的变量必须用newc)不能在定义结构时给结构的成员设置初始值d)结构中的整型成员被自动初始化为124)关于如下C#的代码,说法正确的是();publicclassA{stringS1;protectedstringS2;protectedvoidM1(){}}publicclassB:A{protectedstringS3;}a)在A中可以访问S3b)在B中可以访问S1c)在B中可以访问S2d)在M1()中可以访问S325)关于如下C#代码的说法中,正确的是()。publicclassTest//⑴{privatestaticintMax=100;//⑵publicTest(intmax){Max=max;//⑶}publicintGetMax(){returnMax;//⑷}}a)在⑴行中必须将Test类定义为静态类b)在⑵中不能将静态成员Max定义为private的c)在⑶中不能给静态成员Max赋值d)在⑷中可以使用静态成员Max26)在C#中,下面是方法的重载的是()。a)publicstringTest(intx,inty){…}和publicstringTest(inta,intb){…}b)publicstringTest1(intx,inty){…}和publicstringTest2(intx,inty){…}c)publicstringTest(intx,inty){…}和publicstringTest(inta){…}d)publicstringTest(intx,inty){…}和publicintTest(intx,inty){…}27)下面C#代码执行的结果是()。publicclassA{}publicclassB:A{staticvoidMain(){Aa=newA();Bb=aasB;if(b==null)Console.WriteLine(null);elseConsole.WriteLine(bisA);}}a)nullb)Truec)Falsed)出现异常28)如下C#代码的执行结果是()。publicclassTest{publicinti=1;publicTest(inti){this.i+=i;}staticvoidMain(){Testt=newTest(2);Console.WriteLine(t.i);}}a)1b)2c)3d)429)有如下C#代码,则下面选项中说法正确的是()。publicclassA{}publicclassB:A{}Aa=newA();Bb=newB();a)表达式aisB的值为trueb)表达式bisA的值为truec)表达式aasB的值为nulld)表达式basA的值为null30)在C#中,下面类型中是引用类型的是()。a)DialogResult枚举b)System.Int64c)stringd)StringBuilder二简答题:1.请简述泛型集
本文标题:C#-OOP-内部测试笔试题和答案
链接地址:https://www.777doc.com/doc-4776505 .html