1、D. B.F B.F B.G B.G9写出程序的输出结果: public class A public virtual void Fun1(int i) Console.WriteLine(i); public void Fun2(A a) a.Fun1(1); Fun1(5); public class B:A public override void Fun1(int i) base.Fun1(i+1); public static void Main() B b=new B(); A a=new A(); a.Fun2(b); b.Fun2(a);10在C中,允许多接口继承,从多个接口时
2、,使用“:”后跟继承的接口的名字,多个接口名称之间使用()符号进行分割。 a)”.b)”-”c)”,”d)”:11在.NET中,关于组件多态性的陈述,下面除了( )都是正确的。a可以通过接口实现多态性b可以通过抽象类实现多态性c多态性不只是重载或重写,而是智能重写d在多态性中,需要调用哪个方法的决定是在设计时做出的12多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为了Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar 或SmallCar,但二者都提供Drive方法,虽然Drive 方法的实现因类的不同而异,但Road 类仍可以调用它
3、,并且它提供的结果可由Road 类使用和解释。在 .NET 中,可以由以下的方式来实现组件中多态性,除了()。a) 通过接口实现多态性b) 通过多个不同的子类从单个基类继承实现多态c) 通过抽象类实现多态性d) 通过受保护的成员函数来实现多态性13阅读以下的C#代码:class A public abstract void printStr(string str) Console.WriteLine(str); class B:A public override void printStr(string str) str=str+(重写的方法); class DefaultInitialize
4、rApp public static void Main() A a=b; a.printStr(打印 b.printStr( Console.ReadLine();运行程序后将在控制台窗口打印( )。a.打印 重写的方法b.打印 打印 重写的方法c.打印d.程序有误,不能运行14在C#的语法中,()关键字可以实现在派生类中对基类的虚函数进行重载(选一项)aoverridebnewcstaticdvirtual15对下面的C # 程序:using System;public interface IAccount void PosInterest(); void DeductFees(int f
5、eeSchedule);class BusinessAccount : IAccount public static void Main() BusinessAccount B = new BusinessAccount(); Console.WriteLine(B.A); Console.ReadLine(); public void IAccount.PostInterest() A = A+1; public void IAccount.DeductFees(int feeSchedule) A = A + feeSchedule;以下的说法正确的是 ( ) (选择一项)a) 程序将出现
6、编译错误,指示不能在实现接口BusinessAccount的类中定义成员 A.b) 程序将出现编译错误,指示Public关键字对接口项无效c) 程序编译正常,但是出现运行时错误,指示变量A没有初始化d) 程序将正常运行,输出为016.可以使用()关键字重写方法。A.OverrideB.new17.()可以看作类的模具。A.抽象类B.接口C.虚方法18.请问,此程序输出结果是()abstract class BaseClasspublic virtual void MethodA()Console.WriteLine(BaseClasspublic virtual void MethodB()c
7、lass Class1: BaseClasspublic void MethodA()Console.WriteLine(Class1public override void MethodB()class Class2: Class1new public void MethodB()class MainClasspublic static void Main(string args)Class2 o = new Class2();o.MethodA();A. BaseClassB. BassClass Class1C. Class1D. Class1 BassClass19.请问,此程序输出结
8、果是()public abstract class A public A() Console.WriteLine(A public virtual void Fun() Console.WriteLine(A.Fun() public class B: A public B() Console.WriteLine(Bpublic new void Fun() Console.WriteLine(B.Fun()public static void Main() A a = new B();a.Fun();A. A B A.Fun() B. A B B.Fun()C. B A A.Fun()D.
9、B A B.Fun()20.以下叙述正确的是():A. 接口中可以有虚方法。B. 一个类可以实现多个接口。C. 接口不能被实例化。D. 接口中可以包含已实现的方法。21以下关于C#代码的说法正确的是()。Public abstract Animal Public abstract void Eat(); Public void Sleep()a.该段代码正确b.代码错误,因为类中存在非抽象方法c.代码错误,因为类中的方法没有实现d.通过代码“Animal an = new Animal();”可以创建一个Animal对象22.在c#中,关于继承和接口,以下说法正确的是() (单选)a. c#允
10、许许多接口实现,也允许多重继承b.c#允许多接口实现,但不允许多重继承c.c#不允许多接口实现,但允许多重继承d.c#不允许多重接口实现,也不允许多重继承23) 在C#中,已知下列代码的运行结果是“老虎吃动物”,请问在空白处1和空白处2分别应该填写的代码是() Public class Animal Public 空白处1 void Eat() Consone.WriteLine(“我要吃”);Public class Tiger:Animal Public 空白处2 void Eat() Consone.WriteLine(“老虎吃动物”);Public calssTest Static v
11、oid Main() Animal an = new Tiger(); an.Eat;a)Virtual , newb)override , virtualc)virtual , overrided)new , virtual24) 在C#中,下列关于抽象类和接口的说法,正确的是)()(选择一项) a) 在抽象类中,所以的方法都是抽象方法 b) 继承自抽象类的子类必须实现起父类(抽象类)中的所以抽象方法 c) 在接口中,可以有方法实现,在抽象类中不能有方法实现 d) 一个类可以从多个接口继承,也可以从多个抽象类继承25) 关于以下C#代码的说法正确的是()Public abstract cla
12、ss AnimalAnimal Public override void Eat() Console.WriteLine(“老虎吃动物”);Public class Tigress:Tiger Static void main() Tigress tiger=new Tigress();Tiger.Eat();a)代码正确,但没有输出b)代码正确,并且输出为”老虎吃动物”;c)代码错误,因为Tigress类没有实现抽象基类Animal中的抽象方法d)代码错误,因为抽象基类Animal的Eat方法没有实现26) 在c#中 某程序员定义了一个IDataBase接口,以及实现该接口的类CDataBa
13、se ,下列关于该段代码说法正确的是()(选择一项)public interface IDataBase void OpenTable(string tableName); void UpDataTable(string tableName); public class CDataBase:IDataBase public void OpenTable(string tableName) Console.WriteLine(打开数据表 public void UpdataTable(string tableName)更新数据表 static void Main() CDataBase db =
14、 new CDataBase(); db.OpenTable(Customersa)该段代码错误,因为在定义接口时,接口中的方法没有提供实现b)该段代码错误,因为接口中声明的方法不是公有的,应此在CDataBase类中不能访问接口中的方法c)该段代码正确,同时由于客户没有调用UpdataTable方法,可以把CDataTable类中的UpdataTable去掉,代码仍然正确d)该段代码正确,但是如果在IDataBase 接口中声明一个方法void Execute(string sql); 则必须在CDataBase中实现该方法27.C#中 下列代码运行结果是()(选择一项)public cla
15、ss Student public virtual void Exam()学生都要考试public class Undergraduate:Student public new void Exam() base.Exam();大学生有选择考试科目的权利public class Test static void Main() Student stu = new Undergraduate(); stu.Exam();a)学生都要考试b)大学生有选择考试科目的权利c)大学生都要考试 大学生有选择考试科目的权利d)学生都要考试学生都要考试28)c#中 下列代码的运行结果是()(选择一项)struct
16、 Student public int age; public string name; public Student(int age,string name) this.age=age; this.name=name; static void Mian() Student stu1= new Student(18,小方 Student stu2= new Student(24,小刚 stu2=stu1; stu1.age=30; stu1.name=小燕 Console.WriteLine(stu2.age); Console.WriteLine(st2.name);a)18 小方b)18
17、小燕c)30 小燕d)30 小方29)在C#中,下列()关键字用于重写基类的虚拟方法。b)newc)based)virtual委托和事件C#面向对象编程-委托和事件1阅读以下C#代码Namespaceteventpublicdelegatevoidnotify5();classeventTest publicRaise5(intI) if(I%3=1)Got5();eventnotify5Got5;HandlersstaticMethod1() Console.WriteLine(时间处理完成class10 staticMain(Stringargs)eObj=neweventTest();
18、eObj.Got5+=newnotify5(Handlers.Method1);for(intcnt=0;cnt5;cnt+)inty=cnt*2+1;eObj.Raise5(y); Console.WriteLine();代码允许的结果为()。A)控制台窗口不能出任何信息。B)在控制台窗口输出“时间处理完成”1次C)在控制台窗口输出“时间处理完成”2次D)在控制台窗口输出“时间处理完成”5次2.声明一个委托publicmyCallBack(intx);则用该委托产生的回调方法的原型应该是()A.x)B.receive(intnum)C.stringD.不确定的3.C#中,关于事件的定义正确的
19、是()。a)privateOnClick();b)privateOnClick;c)publicClick();Clickd)publicOnClick4.在C#中,下列代码的运行结果是().PublicBuyTicketDelegate(stringnum);StudentBuyTicketDelegatebtEvent;Student(stringnum)btEvent+=newBuyTicketDelegate(this.BuyTicket);ShowNum(stringbtEvent(num);PrivateBuyTicket(stringConsole.WriteLine(“我要买”
20、+num+”次车票”);StaticMain()Console.WriteLine(“创建学生对象”);stu=Student(“TI”);Console.WriteLine(“创建完毕”);Stu.ShowNum(“TI”);a)创建学生对象创建完毕b)我要买TI次车票创建完毕c)d)C#面向对象编程-封装1C#语言使用()来引入名称空间。a)Importb)Usingc)Included)Lib2在.NET中,以下关于命名空间的描述,正确的是().(选择一项)a) 命名空间不可以进行嵌套b) 在一个.cs文件中,只能存在一个命名空间c) 使用private修饰的命名空间,其内部的类也不允许
21、访问d) 命名空间使得代码更加有条理、结构更清晰3在C#类中( ) 选一项a) 允许有多个相同名称的构造函数b) 允许有多个不同名称的构造函数c) 至少要有一个构造函数d) 只能有一个构造函数4在C#中,可以直接在名称空间内声明如下类型,除了()A)数组B)接口C)结构D)委托5C#程序中的类myClass中的成员变量var1如下:public class myClass private int var1;则可以访问var1的有()。a)myClass中包含的类b)myClass的继承类c)myClass的父类d)和myClass在同一命名空间下的类6下列关于类方法的声明,正确的是()(选择两
22、项)a)方法定义类所许可的行动b)从一个类创建的所有对象可以使用同一组属性和方法c)每个方法应该有一个参数d)如果在不同类中定义了类似的操作,刚他们的行为不应该是类似的7析构函数的语法是()semester() /析构函数的实现A.对B.错8C#类中的构造函数的特点是( )选一项a)一个类中,只能有一个构造函数b)构造函数的名称与类名一样c)构造函数在对象销毁时自动执行d)要求构造函数至少有两个参数9针对以下C#代码 Using System; Public class Teacher Public string teacherName; Public string teacherSubjec
23、t; Public Teacher(String name) This.teacherName=name;Public Teacher(String subject) This.teacherSubject = subject;Public Teacher(String name, String subject)以下说法正确的是()(选择一项)A)上述代码编译无错误,类中存在三个构造函数B)上述代码编译有错误,因为类中只能有一个构造函数C)上述代码编译有错误,因为类中有两个具有相同参数类型的构造函数D)上述代码编译有错误,以为类中没有不带参数的构造函数10阅读以下的C#代码:Namespace t3_6 Namespace Ford Public class Mustang Public void printMust() Console.WritleLine(“I
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1