C#练习四五六章.docx
- 文档编号:5970722
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:18
- 大小:19.92KB
C#练习四五六章.docx
《C#练习四五六章.docx》由会员分享,可在线阅读,更多相关《C#练习四五六章.docx(18页珍藏版)》请在冰豆网上搜索。
C#练习四五六章
1.分析如下C#代码,根据类的继承关系,运行后的输出结果是()。
(选择一项)
publicclassPerson
{
privateintage=0;
publicintAge
{
get{returnage;}
set
{
if(value>=18)
Console.Write("成年人!
");
else
Console.Write("非成年人!
");
age=value;
}
}
}
publicclassPeople:
Person
{
publicPeople()
{
Console.Write("不得入内!
");
}
}
publicclassTest
{
staticvoidMain()
{
PeopleShang=newPeople();
Shang.Age=17;
}
}
a)非成年人!
不得入内!
b)成年人!
不得入内!
c)不得入内!
d)不得入内!
非成年人!
2.在C#中,()关键字用于子类的构造函数明确指明调用的父类的构造函数()。
(选择一项)
Anew
Bthis
Cbase
Dis
3.在C#中,下列代码的运行结果是()。
(选择一项)
usingSystem;
classTest{
publicvirtualvoidF(){
Console.Write("A");
}
}
classB:
Test{
publicoverridevoidF(){
Console.Write("B");
}
staticvoidMain(){
TestobjA=newB();
objA.F();
}
}
Aa
Bb
Cba
Dab
4.分析如下C#代码,根据类的继承关系,运行后的输出结果是()。
(选择一项)
PublicclassVehicle{
privateintspeed=10;
publicintSpeed{
get{returnspeed;}
set{
speed=value;
Console.Write(“禁止驶入!
”);
}
}
}
publicclassNewVehicle:
Vehicle{
publicNewVehicle(){
if(this.Speed>=20)
Console.Write(“机动车!
”);
else
Console.Write(“非机动车!
”);
}
}
publicclassA
staticvoidMain(){
NewVehicleTong=newNewVehicle();
Tong.Speed=15;
}
}
a)禁止驶入!
非机动车!
b)非机动车!
禁止驶入!
c)禁止驶入!
机动车!
d)机动车!
禁止驶入!
5.在C#中,如果类C继承自类B,类B继承自类A,则以下描述正确的是()。
(选择一项)
a)C不仅继承了B中的成员,同样也继承了A中的成员
b)C只继承了B中的成员
c)A只继承了A中的成员
d)C不能继承A或B中的成员
6.分析如下C#程序,运行后输出的结果是()。
(选择一项)
classAnimal
{
publicAnimal(stringname)
{
Console.WriteLine("我是小动物!
");
}
}
classDog:
Animal
{
publicDog()
{
Console.WriteLine("我是一只小狗!
");
}
staticvoidMain(string[]args)
{
Animalanimal=newDog();
}
}
a)我是一只小小狗!
b)我是小动物!
我是一只小小狗!
c)我是小动物
d)出现编译错误
7.在C#语言开发的程序中,已知A、B、C三个类,其继承关系为C:
B,B:
A,已知A中成员X的访问修饰符为protected,B中成员Y的访问修饰符为private,C中成员Z的访问修饰符为pubilc,则下面描述中错误的是()。
(选择一项)
a)A可以访问C中的成员Z
b)B可以访问A中的成员X
c)C可以访问B中的成员Y
d)B可以访问C中的成员Z
8.在C#语言开发的程序中,已知person、eduStaff、teacher三个类,其继承关系为eduStaff:
person,teacher:
eduStaff,已知person中成员age的访问修饰符为public,eduStaff中成员deptType的访问修饰符为protected,teacher中成员schoolid的访问修饰符为private,则下面描述中错误的是()。
(选择二项)
a)person可以访问teacher中的成员schoolid
b)eduStaff可以访问person中的成员age
c)teacher可以访问eduStaff中的成员deptType
d)person可以访问teacher中的成员deptType
9.在C#语言中,以下关于继承的说法错误的是()。
(选择一项)
a)一个子类不能同时继承多个父类
b)任何类都是可以被继承的
c)子类继承父类,也可以说父类派生了一个子类
d)Object类是所有类的基类
10.下列C#代码中使用了抽象类的概念,这段代码中发生错误的代码行是()。
abstractclassWashingMachine{
publicWashingMachine(){}//1
abstractpublicvoidWash();//2
}
classMyWashingMachine:
WashingMachine{
overridepublicvoidWash(){}//3
staticvoidMain(){
WashingMachinewm=newWashingMachine();//4
wm.Wash();
}
}
a)1
b)2
c)3
d)4
11.在C#中,下列关于密封类使用正确的是()。
(选择一项)
a)sealedclassPerson{
//…
}
classStudent:
Person{
//…
}
b)classPerson{
//…
}
sealedclassStudent:
Person{
//…
}
c)sealedclassStudent{
publicintaddStudent();
}
d)sealedclassStudent{
publicsealedintaddStudent();
}
12.以下C#代码中,关于虚方法和抽象方法使用正确的是()。
(选择一项)
a)publicabstractclassAnimal{
publicAnimal(){}
publicabstractvoidRun();
}
publicclassCat:
Animal{
publicCat(){}
publicvoidRun(){}
}
b)publicclassAnimal{
publicAnimal(){}
publicabstractvoidRun();
}
publicclassCat:
Animal{
publicCat(){}
publicvoidRun(){}
}
c)publicabstractclassAnimal{
publicAnimal(){}
publicabstractvoidRun();
}
publicclassCat:
Animal{
publicCat(){}
publicoverridevoidRun(){}
}
d)publicvirtualclassAnimal{
publicAnimal(){}
publicvirtualvoidRun();
}
PublicclassCat:
Animal{
publicCat(){}
publicvoidRun(){}
}
13.关于C#中的虚方法,以下说法中正确的是()。
(选择二项)
a)使用static修饰
b)可以有方法体
c)可以被子类重写
d)使用abstract修饰
14.在C#中,使用()访问修饰符修饰的方法被称为抽象方法。
(选择一项)
a)this
b)abstract
c)new
d)virturl
15.分析以下C#代码,根据面向对象的多态性,代码的运行结果是()。
(选择一项)
classA{
publicvoidF(){
Console.Write("A");
}
publicvoidF(stringChr){
Console.Write(Chr);
}
}
classB:
A{
publicvoidF(){
Console.Write("B");
}
staticvoidMain(){
BobjB=newB();
objB.F();
}
}
a)A
b)B
c)BA
d)AB
15.分析以下使用抽象类的C#代码,其最终的运行结果是()。
(选择一项)
publicabstractclassClass1{
publicvoidF(){
Console.Write("1");
}
abstractpublicvoidABS();
}
publicclassClass2:
Class1{
publicoverridevoidABS(){
Console.Write("3");
}
publicClass2(){
Console.Write("2");
}
staticvoidMain(){
Class2objB=newClass2();
objB.F();
}
}
a)12
b)21
c)13
d)23
16.分析如下C#代码,如果输出结果是“DogEating……”,下划线需要填写的代码是()。
AbstractclassAnimal{
Public_______voidEat();
}
ClassDog:
Animal{
Public_________voidEat(){
Console.WriteLine(“DogEating……”);
}
StaticvoidMain(string[]args){
Animalanimal=newDog();
Animal.Eat();
}
}
a)Abstract,不填
b)abstract,override
c)virtual,不填
d)virtual,override
17.在C#语言中,面向对象编程的特征是()。
(选择一项)
a.封装
b.继承
c.多态
d.以上全是
18.在C#语言开发的程序中,以下关于抽象类的说法错误的是()。
(选择一项)
a)抽象类多数作为基类使用
b)抽象类可以定义字段、属性、包含有实现的方法
c)在抽象方法声明中可以使用static或virtual修饰
d)抽象类可以实现多态
19.在C#语言开发的程序中,下面的代码实现了设计模式中的()模式。
PublicclassStudent:
Person{……}
PublicclassTeacher:
Person{……}
PublicPersonCreatePerson(stringname,intage)
}
Personp=newperson();
……
Switch(type)
{
Case”s”:
P=newstudent(name,age);
Break;
Case”t”:
P=newTeacher(name,age);
break;
default:
p=null;
break;
}
Returnp;
}(选择一项)
a)继承
b)封装
c)简单工厂
d)抽象工厂
20.在C#中,下列关于虚方法和抽象方法的描述中错误的是()。
(选择一项)
a)虚方法必须有方法体,可以被子类重写
b)抽象方法不允许有方法体,且必须被非抽象子类重写
c)抽象方法必须在抽象类中,而虚方法可以在所有类中
d)在子类中重写抽象方法或虚方法,都需要override关键字
21.在C#中,在如下的代码中,当使newB()创建B的实例时,输出结果是()。
(选择一项)
classA
{
publicA(){Print();}
publicvirtualvoidPrint(){}
}
classB:
A
{
intx=10;
inty;
publicB(){y=-10;}
publicoverridevoidPrint()
{
Console.WriteLine("X={0},Y={1}",x,y);
}
}
a)X=10,Y=-10
b)X=0,Y=10
c)X=10,Y=10
d)X=10,Y=0
22.在C#语言开发的程序中,已知Animal、Cat、Tiger三个类,其继承关系为Cat:
Animal,Tiger:
Animal,已知Animal中的成员color的访问修饰符为protected,Cat中成员height的访问修饰符为private,Tiger中成员weight的访问修饰符为public,则下面描述中错误的是()。
(选择一项)
a)Cat可以访问Animal中的成员color
b)Cat可以访问Tiger中的成员weight
c)Tiger可以访问Animal中的成员color
d)Tiger可以访问Cat中的成员height
23.在C#语言开发的程序中,以下关于简单工厂设计模式的描述中错误的是()。
(选择一项)
a)简单工厂设计模式中创建对象的方法返回类型可以为任意子类
b)简单工厂模式方便维护,可以实现代码复用
c)使用简单工厂模式可以在调用者不知道对象属于哪个子类的情况下,创建不同的对象
d)简单工厂模式中创建对象的方法返回类型为父类
24.某学员用C#写了如下一段代码,代码的输出结果是()。
(选择一项)
classProgram{
staticvoidMain(string[]args){
Studentstudent=newStudent();
student.SayHi();
Console.ReadLine();
}
}
classPerson{
publicvirtualvoidSayHi(){
Console.WriteLine("你好!
");
}
}
classStudent:
Person{
publicoverridevoidSayHi(){
Console.WriteLine("你好,我是一名学生。
");
}
}
a)你好!
b)你好,我是一名学生。
你好!
c)你好,我是一名学生。
d)空
25.在C#语言开发的程序中,以下关于虚方法和抽象方法的描述中正确的是()。
(选择一项)
a)虚方法不能有方法体,而抽象方法要有方法体,哪怕是一个分号
b)虚方法和抽象方法都必须被子类override
c)虚方法可以存在于任何类中,而抽象方法只能存在于抽象类中
d)虚方法可以存在于抽象类中
26.关于C#中的虚方法,以下说法正确的是()。
(选择一项)
a)使用static修饰
b)可以没有方法体
e)可以被子类重写
c)使用abstract修饰
27.在C#中有如下泛型集合代码,向该泛型集合中添加一个键为“李四”的学员对象,以下选择是对该泛型集合不同操作,其中正确的是()。
(选择二项)
Dictionary
a)dict.RemoveAt(0);
b)Studentstu=dict[“李四”];
c)foreach(Studentstuindict.Keys){…}
d)foreach(Studentstuindict.Values){…}
28.以下C#代码运行结果是()。
(选择一项)
PublicvoidTestO
{
List
for(inti=1;i<6;i++)
{
numbers.Add(i);
}
for(inti=1;i<3;i++)
{
numbers.Remove(i);
}
foreach(intiinnumbers)
{
Console.Write(i.ToString());
}
}
a)运行出错
b)345
c)145
d)135
29.C#中提供了一种集合类型哈希表(HasTable),哈希表的数据是通过键(Key)和()来组织的。
(选择一项)
a)项(Item)
b)记录(Record)
c)表(Table)
d)值(Value)
30.在C#中,关于List
(选择两项)
a)List
b)List
c)获取元素时,List
d)List
31.C#提供一种集合类型HashTable(哈希表),哈希表的数据是通过键(Key)和值(Value)来组织的。
哈希表中元素的对应关系是()。
(选择一项)
a)每一个键对应一个值
b)每一个键对应多个值
c)每一个值对应多个键
d)多个键对应多个值
32.C#中,以下使用键值对存储数据的是()。
(选择一项)
a)ArrayList
b)Array
c)字符型数组
d)HashTable
33.在C#语言中,以下关于集合的说法错误的是()。
(选择一项)
a)ArrayList只能通过索引来访问和删除值
b)HashTable可以直接通过键名来获取值
c)使用List
d)使用Dictionary
34.在C#语言开发的程序中,下面关于泛型集合Dictionary
(选择一项)
a)Dict.Remove(dict[0])
b)Dict.RemoveAt(0)
c)Foreach(Personperindict.Values){}
d)Foreach(Personindict.Keys){}
35、在C#程序中定义一个泛型集合对象students的代码是:
Dictionary
下面集合操作的代码片段正确的是()。
(选择一项)
a)Studentstu=students[“Jimmy”];
b)Students.Add(“Jimmy”);
c)Students.Remove(4);
d)Foreach(Studentstuinstudents.Keys){}
36.在C#中,下列代码的运行结果是()。
(选择一项)
ArrayListarrayTeacher=newArrayList
(1);
for(inti=1;i<3;i++)
{
arrayTeacher.Add(i);
}
Console.WriteLine(arrayTeacher[0]);
a)0
b)1
c)2
d)3
37.分析如下C#代码,要输出“Jack|Tom|Jimmy”,下划线处应该填写的代码是()。
(选择一项)
Dictionary
person.Add("A","Jack");
person.Add("B","Tom");
person.Add("C","Jimmy");
foreach(stringsin)
{
Console.Write(s);
}
a)Person
b)Person.Values
c)Person.Keys
d)Person
38.在C#中,下面代码实现了Person类、Person对象和Person对象集合的创建,以及Person对象集合的添加和遍历,①②③处依次填写的正确代码是()。
(选择一项)
publicclassPerson
{
privatestring_name;//姓名
publicstringName
{
get{return_name;}
}
publicPerson(stringname)
{
this._name=name;
}
}
List
Personp1=newPerson("张三");
Personp2=newPerson("李四");
persons.①(p1);
persons.①(p2);
foreach(②pin③)
{
Console.WriteLine(p.Name);
}
a)Add,persons,Person
b)Add,Person,persons
c)Insert,persons,Person
d)Insert,Pers
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 练习 四五
![提示](https://static.bdocx.com/images/bang_tan.gif)