搜档网
当前位置:搜档网 › .net程序员面试笔试题目详解

.net程序员面试笔试题目详解

.net程序员面试笔试题目详解
.net程序员面试笔试题目详解

.net笔试题

1. 填空: (1)面向对象的语言具有________性、_________性、________性。

(2)能用foreach遍历访问的对象需要实现__Inu______________接口或声明

________________方法的类型。

(3)列举https://www.sodocs.net/doc/6310782031.html,中的五个主要对象_______________、_____________、

_______________、_______________、_________________。

2. 不定项选择:

(1) 以下叙述正确的是:

A. 接口中可以有虚方法。

B. 一个类可以实现多个接口。

C. 接口不能被实例化。

D. 接口中可以包含已实现的方法。

(2) 从数据库读取记录,你可能用到的方法有:

A. ExecuteNonQuery

B. ExecuteScalar

C. Fill

D. ExecuteReader

3. 简述private、protected、public、internal 修饰符的访问权限。

4. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer, 以自动增长的ID 作为主键, 注意:ID可能不是连续的。)

5 .列举https://www.sodocs.net/doc/6310782031.html, 页面之间传递值的几种方式。

6. 写出程序的输出结果

class Class1 {

private string str = "Class1.str";

private int i = 0;

static void StringConvert(string str) {

str = "string being converted.";

}

static void StringConvert(Class1 c) {

c.str = "string being converte

d.";

}

static void Add(int i) {

i++;

}

static void AddWithRef(ref int i) { i++;

}

static void Main() {

int i1 = 10;

int i2 = 20;

string str = "str";

Class1 c = new Class1();

Add(i1);

AddWithRef(ref i2);

Add(c.i);

StringConvert(str);

StringConvert(c);

Console.WriteLine(i1);

Console.WriteLine(i2);

Console.WriteLine(c.i);

Console.WriteLine(str);

Console.WriteLine(c.str);

}

}

7.写出程序的输出结果

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('B');

}

public new void Fun()

{

Console.WriteLine("B.Fun()"); }

public static void Main()

{

A a = new B();

a.Fun();

}

}

8. 写出程序的输出结果:

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);

}

}

9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......

求第30位数是多少,用递归算法实现。(C#语言)

10. 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求: 1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。

参考答案:

1. (1) 继承性、封装性、多态性。(考基本概念)

(2) IEnumerable 、GetEnumerator (对foreach机制的理解,本来不想出这题的,凑分)

(3) ... (送分题, 对https://www.sodocs.net/doc/6310782031.html,的了解)

评分标准:一空1分,满分10分。

2. (1) B、C (考对接口的理解) (2) B、C、D (考查对https://www.sodocs.net/doc/6310782031.html,的熟练程度)

评分标准: 一题5分,不选或者错选均不得分。漏选得2分。满分10分。

3. . private : 私有成员, 在类的内部才可以访问。

protected : 保护成员,该类内部和继承类中可以访问。

public : 公共成员,完全公开,没有访问限制。

internal: 在同一命名空间内可以访问。

评分标准:答对1题2分,2题5分,3题7分。全对10分。(送分题)

4. 解1: select top 10 * from A where id not in (select top 30 id from A)

解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

评分标准:写对即10分。(答案不唯一,datagrid 分页可能需要用到)

5. 1.使用QueryString, 如....?id=1; response. Redirect()....

2.使用Session变量

3.使用Server.Transfer

....等等

评分标准:答对1点得3分,两点7分, 3点10分。

6. (考查值引用和对象引用)

10

21

str

string being converted.

评分标准:答对一点得2分,满分10分。

7. A

B

A.Fun()

评分标准:写出A.B 得5分,写出A.Fun()得5分,满分10分。

(考查在继承类中构造函数, 以及new 方法, )

8. 2

5

1

6

评分标准:答对一点得2分,两点得5分,3点得7分。全对得10分。

(一些人做这题,头都晕了.... ^_^ )

9.

public class MainClass

{

public static void Main()

{

Console.WriteLine(Foo(30));

}

public static int Foo(int i)

{

if (i <= 0)

return0;

else if(i > 0 && i <= 2)

return1;

else return Foo(i -1) + Foo(i - 2);

}

}

评分标准:写出return Foo(i -1) + Foo(i - 2); 得5分。

写出if(i > 0 && i <= 2) return 1; 得5分。

方法参数过多需要扣分(扣除分数= 参数个数-1)

不用递归算法扣5分

(递归算法在树结构建立等方面比较常用)

10

要点:1. 联动效果,运行代码只要执行Cat.Cryed()方法。2. 对老鼠和主人进行抽象评分标准: <1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)

<2>从Mouse和Master中提取抽象(5分)

<3>联动效应,只要执行Cat.Cryed()就可以使老鼠逃跑,主人惊醒。(3分)

public interface Observer

{

void Response(); //观察者的响应,如是老鼠见到猫的反映

}

public interface Subject

{

void AimAt(Observer obs); //针对哪些观察者,这里指猫的要扑捉的对象---老鼠 }

public class Mouse : Observer

{

private string name;

public Mouse(string name, Subject subj)

{

https://www.sodocs.net/doc/6310782031.html, = name;

subj.AimAt(this);

}

public void Response()

{

Console.WriteLine(name + " attempt to escape!");

}

}

public class Master : Observer

{

public Master(Subject subj)

{

subj.AimAt(this);

}

public void Response()

{

Console.WriteLine("Host waken!");

}

}

public class Cat : Subject

{

private ArrayList observers;

public Cat()

{

this.observers = new ArrayList();

}

public void AimAt(Observer obs)

{

this.observers.Add(obs);

}

public void Cry()

{

Console.WriteLine("Cat cryed!");

foreach (Observer obs in this.observers)

{

obs.Response();

}

}

}

class MainClass

{

static void Main(string[] args)

{

Cat cat = new Cat();

Mouse mouse1 = new Mouse("mouse1", cat);

Mouse mouse2 = new Mouse("mouse2", cat);

Master master = new Master(cat);

cat.Cry();

}

}

//---------------------------------------------------------------------------------------------

设计方法二: 使用event -- delegate设计..

public delegate void SubEventHandler();

public abstract class Subject

{

public event SubEventHandler SubEvent;

protected void FireAway()

{

if (this.SubEvent != null)

this.SubEvent();

}

}

public class Cat : Subject

{

public void Cry()

{

Console.WriteLine("cat cryed.");

this.FireAway();

}

}

public abstract class Observer

{

public Observer(Subject sub)

{

sub.SubEvent += new SubEventHandler(Response); }

public abstract void Response();

}

public class Mouse : Observer

{

private string name;

public Mouse(string name, Subject sub) : base(sub) {

https://www.sodocs.net/doc/6310782031.html, = name;

}

public override void Response()

{

Console.WriteLine(name + " attempt to escape!"); }

}

public class Master : Observer

{

public Master(Subject sub) : base(sub){}

public override void Response()

{

Console.WriteLine("host waken");

}

}

class Class1

{

static void Main(string[] args)

{

Cat cat = new Cat();

Mouse mouse1 = new Mouse("mouse1", cat);

Mouse mouse2 = new Mouse("mouse2", cat);

Master master = new Master(cat);

cat.Cry();

}

}

面试:

1. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?

2. 讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)(无缝钢管网,https://www.sodocs.net/doc/6310782031.html, https://www.sodocs.net/doc/6310782031.html,)

3. C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java 中吸取了他们那些优点?

4. C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)

5. 用Visual C++

6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合?

6. 以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假)

7. 你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?

相关主题