Posted in 面试题 onJuly 06, 2013
一、C#基础题
1、传入某个属性的SET方法的隐含参数的名称是什么?
value,它的类型和属性所声明的类型相同。
2、C#支持多重继承吗?
不支持。可以用接口来实现。
3、C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
4、C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参构造函数。
5、重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
6、在方法定义中,virtual有什么含义?
被virtual修饰的方法可以被子类覆写
7、能够将非静态的方法覆写成静态方法吗?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。
8、可以覆写私有的虚方法吗?
不可以,甚至子类中无法访问父类中的私有方法
9、能够阻止某一个类被其他类继承吗?
可以,使用关键字sealed
10、能够实现允许某个类别继承,但不允许其中的某个方法被覆写吗?
可以,标记这个类为public,并标记这个方法为sealed。
11、什么是抽象类(abstract class)?
一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
12、接口(interface)是什么?
只含有公有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
13、为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。它们默认为公有方法。
14、接口和抽象类的区别是什么?
接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
15、如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序
16、解释一下ajax及实现原理
17、列出常用的使用javascript操作xml的类包
二、程序题
1、请问,Class1.Count的值是多少?( 3 )
class Class1
{
public static int Count = 0;
static Class1()
{
Count++;
}
public Class1()
{
Count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
Console.Write(“Class1.Count的值是”+ Count)
2、请问,此程序输出的结果是: Class1
abstract class BaseClass
{
public virtual void MethodA()
{
Console.WriteLine(“BaseClass”);
}
public virtual void MethodB()
{
}
}
class Class1 : BaseClass
{
public void MethodA()
{
Console.WriteLine(“Class1″);
}
public override void MethodB()
{
}
}
class Class2 : Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
o.MethodA();
}
}
3、请用你最熟悉的语言编写一个排序的函数(方法)
略
三、思维题
1.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1) 密码单词的最小长度是两个字母,可以相同,也可以不同
(2) K不可能是单词的第一个字母
(3) 如果L出现,则出现次数不止一次
(4) M不能使最后一个也不能是倒数第二个字母
(5) K出现,则N就一定出现
(6) O如果是最后一个字母,则L一定出现
问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?B
A) K B)L C) M D) N
问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?A
A)1个 B)3个 C)6个 D)9个
问题三:下列哪一个是单词密码?C
A) KLLN B) LOML C) MLLO D)NMKO
问题四:3个相同的字母可以构成的不同密码单词的总数是多少?B
A) 1个 B)2个 C) 3个 D) 4个
问题五:单词密码MMLLOKN可以通过下列变成另一个密码单词,除了: C
A) 用N代替每个L B)用O代替每一个M C)用O代替N D)把O移到N的左边
1、传入某个属性的SET方法的隐含参数的名称是什么?
value,它的类型和属性所声明的类型相同。
2、C#支持多重继承吗?
不支持。可以用接口来实现。
3、C#用多种修饰符来表达类的不同性质。根据其保护级C#的类有五种不同的限制修饰符,请写出并指出它们之间的区别是什么?
public 可以被任意存取
protected只可以被本类和其继承子类存取
internal只可以被本组合体(Assembly)内所有的类存取,组合体是C#语言中类被组合后的逻辑单位和物理单位,其编译后的文件扩展名往往是“.DLL”或“.EXE”。
protected internal唯一的一种组合限制修饰符,它只可以被本组合体内所有的类和这些类的继承子类所存取。
private只可以被本类所存取。
4、C#提供一个默认的无参构造函数,当我实现了另外一个有一个参数的构造函数时,还想保留这个无参数的构造函数。这样我应该写几个构造函数?
两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参构造函数。
5、重载和覆写有什么区别?
重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。
6、在方法定义中,virtual有什么含义?
被virtual修饰的方法可以被子类覆写
7、能够将非静态的方法覆写成静态方法吗?
不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。
8、可以覆写私有的虚方法吗?
不可以,甚至子类中无法访问父类中的私有方法
9、能够阻止某一个类被其他类继承吗?
可以,使用关键字sealed
10、能够实现允许某个类别继承,但不允许其中的某个方法被覆写吗?
可以,标记这个类为public,并标记这个方法为sealed。
11、什么是抽象类(abstract class)?
一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。
12、接口(interface)是什么?
只含有公有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。
13、为什么不能指定接口中方法的修饰符?
接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。它们默认为公有方法。
14、接口和抽象类的区别是什么?
接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。
15、如何区别重载方法?
不同的参数类型,不同的参数个数,不同的参数顺序
16、解释一下ajax及实现原理
17、列出常用的使用javascript操作xml的类包
二、程序题
1、请问,Class1.Count的值是多少?( 3 )
class Class1
{
public static int Count = 0;
static Class1()
{
Count++;
}
public Class1()
{
Count++;
}
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
Console.Write(“Class1.Count的值是”+ Count)
2、请问,此程序输出的结果是: Class1
abstract class BaseClass
{
public virtual void MethodA()
{
Console.WriteLine(“BaseClass”);
}
public virtual void MethodB()
{
}
}
class Class1 : BaseClass
{
public void MethodA()
{
Console.WriteLine(“Class1″);
}
public override void MethodB()
{
}
}
class Class2 : Class1
{
new public void MethodB()
{
}
}
class MainClass
{
public static void Main(string[] args)
{
Class2 o = new Class2();
o.MethodA();
}
}
3、请用你最熟悉的语言编写一个排序的函数(方法)
略
三、思维题
1.某一密码仅使用K、L、M、N、O共5个字母,密码中的单词从左向右排列,密码单词必须遵循如下规则:
(1) 密码单词的最小长度是两个字母,可以相同,也可以不同
(2) K不可能是单词的第一个字母
(3) 如果L出现,则出现次数不止一次
(4) M不能使最后一个也不能是倒数第二个字母
(5) K出现,则N就一定出现
(6) O如果是最后一个字母,则L一定出现
问题一:下列哪一个字母可以放在LO中的O后面,形成一个3个字母的密码单词?B
A) K B)L C) M D) N
问题二:如果能得到的字母是K、L、M,那么能够形成的两个字母长的密码单词的总数是多少?A
A)1个 B)3个 C)6个 D)9个
问题三:下列哪一个是单词密码?C
A) KLLN B) LOML C) MLLO D)NMKO
问题四:3个相同的字母可以构成的不同密码单词的总数是多少?B
A) 1个 B)2个 C) 3个 D) 4个
问题五:单词密码MMLLOKN可以通过下列变成另一个密码单词,除了: C
A) 用N代替每个L B)用O代替每一个M C)用O代替N D)把O移到N的左边
诺思信科技(南京)有限公司.NET笔试题答案
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Tags in this post...
Reply on: @reply_date@
@reply_contents@