计算机等级考试



1) 以下关于序列化和反序列化的描述错误的是( c)。

a) 序列化是将对象的状态存储到特定存储介质中的过程
b) 二进制格式化器的Serialize()和Deserialize()方法可以分别用来实现序列化和反序列
化过程
c) 如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化
d) 标识一个类可以序列化要使用[Serializable]

2) 在C#中,下列关于简单工厂设计模式的说法不正确的是( a )。
a) 简单工厂产生的对象都是静态对象
b) 创建产品的方法返回类型都是父类
c) 使用该模式解决了代码中大量使用new 的问题
d) 简单工厂的缺点是对修改不封闭,新增加产品就需要修改工厂

3) 下列关于虚方法和抽象方法的描述中错误的是( c)。

a) 虚方法必须有方法体,可以被子类重写
b) 抽象方法不允许有方法体,且必须被子类重写
c) 抽象方法必须在抽象类中,而虚方法可以在所有类中
d) 在子类中重写抽象方法或虚方法,都需要用override关键字

4) 在UML类图中使用( b)符号表示私有成员。

a) +
b) -
c) *
d) #

5) 分析以下使用抽象类的C#代码,其最终的运行结果是(d )。
public abstract class Class1
{
public void F()
{
Console.Write("1");
}
abstract public void ABS();
}
public class Class2 : Class1
{
public override void ABS()
{
Console.Write("3");
}
public Class2()
{
Console.Write("2");
}
static void Main()
{
Class2 objB = new Class2();
objB.ABS();
}
}
a) 12
b) 21
c) 13
d) 23

6) 下列代码的运行结果是(a )。
class Test
{
public void F()
{
Console.Write("A");
}
}
class B : Test
{
new public void F()
{
Console.Write("B");
}
static void Main()
{
Test objA = new B();
objA.F();
}
}
a) A
b) B
c) BA
d) AB

7) 关于C#中的虚方法,以下说法正确的是(c )。

a) 使用static修饰
b) 可以没有方法体
c) 可以被子类重写
d) 使用abstract修饰

8) 分析如下C#代码,如果输出结果是“Dog Eating......”,下划线需要填写的代码是(b )
abstract class Animal
{
public __________ void Eat();
}
class Dog:Animal
{
public __________ void Eat()
{
Console.WriteLine("Dog Eating......");
}
static void Main(string[] args)
{
Animal animal = new Dog();
animal.Eat();
}
}
a) abstract,不填
b) abstract,override
c) virtual,不填
d) virtual,override

9) 在开发C#程序过程中,会大量地使用类和对象,其使用方法不包括(bc )。

a) 将类实例化为对象
b) 将对象实例化为类
c

) 通过类访问非静态属性或方法
d) 通过对象访问非静态属性或方法

10) 运行下面C#代码将会出现编译错误,出现错误的位置是(d )。
class Teacher
{
public Teacher(string name)
{
https://www.360docs.net/doc/872209880.html, = name; //1
}
private string name;
public string Name
{
set { name = value; } //2
}

static void Main(string[] args)
{
Teacher teacher = new Teacher("Jason"); //3
Console.WriteLine(https://www.360docs.net/doc/872209880.html,); //4
}
}

a) 1
b) 2
c) 3
d) 4

11) 现有类“c1”,它所在的命名空间为“a.b”,则下列说法中错误的是( d)。

a) 不同命名空间下仍可存在名称为c1的类
b) 不同命名空间下使用c1时,可以通过“using a.b”引入命名空间
c) 同一命名空间下的类,使用c1时不需要引入c1的命名空间
d) 不同命名空间下使用c1时,不可以直接通过“a.b.c1”的方式使用


12) 下面关于泛型集合Dictionary dict = new Dictionary()的操作代码正确的是(c )。

a) dict.Remove(dict[0])
b) dict.RemoveAt(0)
c) foreach(Person per in dict.Values){}
d) foreach(Person per in dict.Keys){}

13) 已知Company.xml文件节点代码如下:

一汽大众<价格>10万
日本丰田 <价格>20万

现有如下C#代码片段:
XmlDocument myXml = new XmlDocument();
myXml.Load("Company.xml");
XmlNode company = myXml.DocumentElement;
foreach(XmlNode node in company.ChildNodes )
{
switch (https://www.360docs.net/doc/872209880.html,)
{
case "一汽大众":
Console.WriteLine("车名:{0}", node.InnerText);
break;
case "价格":
Console.WriteLine("价格为:{0}", node.InnerText);
break;
}
}
则正确的输出结果为(d)。
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,则下面描述中错误的是(d )。
a) Cat可以访问Animal中的成员color
b) Cat可以访问Tiger中的成员weight
c) Tiger可以访问Animal中的成员color
d) Tiger可以访问Cat中的成员height

15) 在C#中,(c )关键字用于子类的构造函数明确指明调用的父类的构造函数。

a) new
b) this
c) base
d) is

16) C#中的多态不能通过( d)实现。

a) 方法重载
b) 抽象类
c) 虚方法
d) 密封类

17)

分析如下C#代码片断,运行后输出的结果是(c )。
ArrayList list = new ArrayList();
list.Add("Sina");
list.Add("Yahoo");
list.Add("Google");
list.RemoveAt(1);
Console.WriteLine(list[1]);

a) Yahoo
b) Sina
c) Google
d) 代码出现运行错误

18) 在C#语言中,以下关于集合的说法错误的是(c)。

a) ArrayList只能通过索引来访问和删除值
b) Hashtable可以直接通过键名来获取值
c) 使用List添加、读取元素时不需要拆箱和装箱,这一点和ArrayList相同
d) 使用Dictionary可以通过Key获取Value,这一点和Hashtable相同

19) 分析如下C#程序,运行输出的结果是(b )。
public struct Size
{
public int x;
public int y;
public Size(int x, int y)
{
this.x = x;
this.y = y;
}
}

class Test
{
static void Main()
{
Size size1 = new Size(8,10);
Size size2 = size1;
size1.y = 200;
Console.WriteLine("{0} | {1}",size1.y,size2.y);
}
}

a) 200 | 200
b) 200 | 10
c) 10 | 10
d) 10 | 200

20) 假设要使用C#设计一个日志系统,要求程序运行时,检查 system.log 文件是否存在,如果已经存在则直接打开,如果不存在则创建一个,为了实现这个目的,应该以FileMode的( c)方式创建文件流。

a) CreateNew
b) Open
c) OpenOrCreate
d) Create

21) 下面关于单例模式说法错误的是(a)。

a) 在单例模式中,允许通过new 构造实例
b) 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例
c) 在C# 中,static 是实现单例模式的重要关键字
d) 单例模式可以确保所有对象都访问唯一的实例

22) 下面不是C#中类的访问修饰符的是(d)。

a) protected
b) internal
c) public
d) internal protected

23) 在C#中,下面关于结构的说法中,正确的是(c)。

a) 结构和类都是引用类型
b) 定义结构的变量必须用new
c) 不能在定义结构时给结构的成员设置初始值
d) 结构中的整型成员被自动初始化为1

24) 关于如下C#的代码,说法正确的是(c);
public class A
{
string S1;
protected string S2;
protected void M1()
{}
}
public class B : A
{
protected string S3;
}

a) 在A中可以访问S3
b) 在B中可以访问S1
c) 在B中可以访问S2
d) 在M1( ) 中可以访问S3

25) 关于如下C#代码的说法中,正确的是(d)。
public class Test //⑴
{
private static int Max = 100; //⑵
public Test(int max)
{
Max = max; //⑶
}

public int GetMax()
{
return Max; //⑷
}
}

a) 在⑴行中必须将Test类定义为静态类
b) 在⑵中不能将静态成员Max定义为private的
c) 在⑶中

不能给静态成员Max赋值
d) 在⑷中可以使用静态成员Max


26) 在C#中,下面是方法的重载的是(c)。

a) public string Test(int x, int y){ …}和public string Test(int a, int b){ …}
b) public string Test1(int x, int y){ …}和public string Test2(int x, int y){ …}
c) public string Test(int x, int y){ …}和public string Test(int a){ …}
d) public string Test(int x, int y){ …}和public int Test(int x, int y){ …}

27) 下面C#代码执行的结果是(a)。
public class A { }
public class B : A
{
static void Main()
{
A a = new A();
B b = a as B;
if (b == null)
Console.WriteLine("null");
else
Console.WriteLine(b is A);
}
}

a) null
b) True
c) False
d) 出现异常


28) 如下C#代码的执行结果是(c)。
public class Test
{
public int i = 1;
public Test(int i)
{
this.i += i;
}
static void Main()
{
Test t = new Test(2);
Console.WriteLine(t.i);
}
}

a) 1
b) 2
c) 3
d) 4

29)有如下C# 代码,则下面选项中说法正确的是(bc)。
public class A { }
public class B : A { }
A a = new A();
B b = new B();

a) 表达式a is B的值为true
b) 表达式b is A的值为true
c) 表达式a as B的值为null
d) 表达式b as A的值为null

30) 在C#中,下面类型中是引用类型的是(cd)。
a) DialogResult枚举
b) System.Int64
c) string
d) StringBuilder

二 简答题:
1.请简述泛型集合List中“T”的含义和作用。并说明List与ArrayList的异同。
? List中的T可以对集合中的元素类型进行约束;
? T表明集合中管理的元素类型;
? ArrayList与List都使用索引访问元素;
? ArrayList与List可以通过索引删除、也可以直接删除对象;
? ArrayList与List遍历时直接遍历元素对象;
? ArrayList获取元素时需要类型转换,List不需要类型转换;
? 同一个ArrayList可以保存不同类型的元素,List只能保存T允许的类型。

2.面向对象的三大特性是什么?并简述每个原则的基本功能。
? 封装:保证对象自身数据的完整性、安全性;
? 继承:建立类之间的关系,实现代码复用,方便系统的扩展;
? 多态:相同的方法调用可实现不同的实现方式。

相关文档
最新文档