C#Net的常见面试试题附答案.docx

上传人:b****5 文档编号:7767602 上传时间:2023-01-26 格式:DOCX 页数:22 大小:27.60KB
下载 相关 举报
C#Net的常见面试试题附答案.docx_第1页
第1页 / 共22页
C#Net的常见面试试题附答案.docx_第2页
第2页 / 共22页
C#Net的常见面试试题附答案.docx_第3页
第3页 / 共22页
C#Net的常见面试试题附答案.docx_第4页
第4页 / 共22页
C#Net的常见面试试题附答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C#Net的常见面试试题附答案.docx

《C#Net的常见面试试题附答案.docx》由会员分享,可在线阅读,更多相关《C#Net的常见面试试题附答案.docx(22页珍藏版)》请在冰豆网上搜索。

C#Net的常见面试试题附答案.docx

C#Net的常见面试试题附答案

找工作的朋友可能会用的到。

我本身不是太懂倒耐特,上星期有朋友来我这找工作他整理的,

所以我只负责发贴,对疑问的解答还要交给你们了。

 

1.面向对象的思想主要包括什么?

2.什么是ASP.net中的用户控件

3.什么叫应用程序域?

什么是受管制的代码?

什么是强类型系统?

什么是装箱和拆箱?

什么是重载?

CTS、CLS和CLR分别作何解释?

4.列举一下你所了解的XML技术及其应用

5.值类型和引用类型的区别?

写出C#的样例代码。

6.ADO.net中常用的对象有哪些?

分别描述一下。

7.如何理解委托?

8.C#中的接口和类有什么异同。

9.。

net中读写数据库需要用到哪些类?

他们的作用

10.UDP连接和TCP连接的异同。

11.ASP.net的身份验证方式有哪些?

分别是什么原理?

12.进程和线程分别怎么理解?

13.什么是code-Behind技术。

14.活动目录的作用。

中读写XML的类都归属于哪些命名空间?

16.解释一下UDDI、WSDL的意义及其作用。

17.什么是SOAP,有哪些应用。

18.如何部署一个ASP.net页面。

19.如何理解.net中的垃圾回收机制。

20.常用的调用webservice方法有哪些?

 

1继承多态封装

2用户控件.不会说懂得做

3装箱和拆箱发生值类型向引用类型转换,和引用类型向值类型转重载:

同一个函数参数不同

4.xml可以用来做网页(xslt)xml可以当作数据库xml可以用来保存对象的系列化

5值类型,没有什么好说的.引用类型用处是返回两个以上参数的时候比较好用refout我常用的是out不要先赋值

6我直接用sqlhelper了有connectioncommand还有参数

7回调机制比较有用的.在net中采用了委托.

8接口,是可以多继承,类只有单继承.接口强调了你必须实现,而没有具本实现的方法和虚类有点相似

9datareaderdataset还有一个不太常用

10udp不要实现什么三次握手.

11身份验证最常用还是以前的session方法.form验证没有用过.微软的哪个也没有用过

12进程简单理解为单个程序吧(按ctrl+alt+del)可以看到的.它至少有一个主线程.

13代码后置..不懂得讲

14活动目录..完全不会

15system.xml(system.io创建目录的时候用)

16这个也是web服务里的东西.

17soap简单协议.我只知道.web服务是基于它之上的

18部置一个页面.也就是说没有代码是直接写在aspx中的了.只接放在IIS的虚拟目录下就行了.当然要支持

19垃圾回收..一般的只要掌握.非托管对象要记得释放资源就行了吧.

20直接在里面引用就OK了.它会自己生成一个代理类

 

1.填空:

(1)面向对象的语言具有___继承性、_封装___性、___多态性。

(2)能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerable方法的类型。

(3)列举ADO.net中的五个主要对象Command、Connection、DataSet、DataSetCommand、DataReader。

2.不定项选择:

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

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

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

C.接口不能被实例化。

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

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

A.ExecuteNonQueryB.ExecuteScalar

C.FillD.ExecuteReader

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

 

4.写出一条Sql语句:

取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:

ID可能不是连续的。

 

5.列举ASP.NET页面之间传递值的几种方式。

 

6.写出程序的输出结果

classClass1{

privatestringstr="Class1.str";

privateinti=0;

staticvoidStringConvert(stringstr){

str="stringbeingconverted.";

}

staticvoidStringConvert(Class1c){

c.str="stringbeingconverted.";

}

staticvoidAdd(inti){

i++;

}

staticvoidAddWithRef(refinti){

i++;

}

staticvoidMain(){

inti1=10;

inti2=20;

stringstr="str";

Class1c=newClass1();

Add(i1);

AddWithRef(refi2);

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.写出程序的输出结果

publicabstractclassA

{

publicA()

{

Console.WriteLine('A');

}

publicvirtualvoidFun()

{

Console.WriteLine("A.Fun()");

}

}

publicclassB:

A

{

publicB()

{

Console.WriteLine('B');

}

publicnewvoidFun()

{

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

}

publicstaticvoidMain()

{

Aa=newB();

a.Fun();

}

}

 

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

publicclassA

{

publicvirtualvoidFun1(inti)

{

Console.WriteLine(i);

}

publicvoidFun2(Aa)

{

a.Fun1

(1);

Fun1(5);

}

}

 

publicclassB:

A

{

publicoverridevoidFun1(inti)

{

base.Fun1(i+1);

}

publicstaticvoidMain()

{

Bb=newB();

Aa=newA();

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)...(送分题,对ADO.net的了解)

评分标准:

一空1分,满分10分。

2.

(1)B、C(考对接口的理解)

(2)B、C、D(考查对ADO.net的熟练程度)

评分标准:

一题5分,不选或者错选均不得分。

漏选得2分。

满分10分。

3..private:

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

protected:

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

public:

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

internal:

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

评分标准:

答对1题2分,2题5分,3题7分。

全对10分。

(送分题)

4.解1:

selecttop10*fromAwhereidnotin(selecttop30idfromA)

解2:

selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)

评分标准:

写对即10分。

(答案不唯一,datagrid分页可能需要用到)

5.1.使用QueryString,如....?

id=1;response.Redirect()....

2.使用Session变量

3.使用Server.Transfer

....

评分标准:

答对1点得3分,两点7分,3点10分。

 

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

10

21

0

str

stringbeingconverted.

评分标准:

答对一点得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.

publicclassMainClass

{

publicstaticvoidMain()

{

Console.WriteLine(Foo(30));

}

publicstaticintFoo(inti)

{

if(i<=0)

return0;

elseif(i>0&&i<=2)

return1;

elsereturnFoo(i-1)+Foo(i-2);

}

}

评分标准:

写出returnFoo(i-1)+Foo(i-2);得5分。

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

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

不用递归算法扣5分

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

10

要点:

1.联动效果,运行代码只要执行Cat.Cryed()方法。

2.对老鼠和主人进行抽象

评分标准:

<1>.构造出Cat、Mouse、Master三个类,并能使程序运行(2分)

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

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

(3分)

 

publicinterfaceObserver

{

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

}

publicinterfaceSubject

{

voidAimAt(Observerobs);//针对哪些观察者,这里指猫的要扑捉的对象---老鼠

}

publicclassMouse:

Observer

{

privatestringname;

publicMouse(stringname,Subjectsubj)

{

this.name=name;

subj.AimAt(this);

}

publicvoidResponse()

{

Console.WriteLine(name+"attempttoescape!

");

}

}

publicclassMaster:

Observer

{

publicMaster(Subjectsubj)

{

subj.AimAt(this);

}

publicvoidResponse()

{

Console.WriteLine("Hostwaken!

");

}

}

publicclassCat:

Subject

{

privateArrayListobservers;

publicCat()

{

this.observers=newArrayList();

}

publicvoidAimAt(Observerobs)

{

this.observers.Add(obs);

}

publicvoidCry()

{

Console.WriteLine("Catcryed!

");

foreach(Observerobsinthis.observers)

{

obs.Response();

}

}

}

classMainClass

{

staticvoidMain(string[]args)

{

Catcat=newCat();

Mousemouse1=newMouse("mouse1",cat);

Mousemouse2=newMouse("mouse2",cat);

Mastermaster=newMaster(cat);

cat.Cry();

}

}

 

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

设计方法二:

使用event--delegate设计..

publicdelegatevoidSubEventHandler();

publicabstractclassSubject

{

publiceventSubEventHandlerSubEvent;

protectedvoidFireAway()

{

if(this.SubEvent!

=null)

this.SubEvent();

}

}

publicclassCat:

Subject

{

publicvoidCry()

{

Console.WriteLine("catcryed.");

this.FireAway();

}

}

publicabstractclassObserver

{

publicObserver(Subjectsub)

{

sub.SubEvent+=newSubEventHandler(Response);

}

publicabstractvoidResponse();

}

publicclassMouse:

Observer

{

privatestringname;

publicMouse(stringname,Subjectsub):

base(sub)

{

this.name=name;

}

publicoverridevoidResponse()

{

Console.WriteLine(name+"attempttoescape!

");

}

}

publicclassMaster:

Observer

{

publicMaster(Subjectsub):

base(sub){}

publicoverridevoidResponse()

{

Console.WriteLine("hostwaken");

}

}

classClass1

{

staticvoidMain(string[]args)

{

Catcat=newCat();

Mousemouse1=newMouse("mouse1",cat);

Mousemouse2=newMouse("mouse2",cat);

Mastermaster=newMaster(cat);

cat.Cry();

}

}

 

问题:

1.ASP.NET中的身份验证有那些?

你当前项目采用什么方式验证请解释

2.什么是WEB控件?

使用WEB控件有那些优势?

3.请解释ASP。

NET中以什么方式进行数据验证?

4.请谈谈对正则表达式的看法?

5.ASP。

NET中共有几种类型的控件?

各有什么区别?

6.WEB控件可以激法服务端事件,请谈谈服务端事件是怎么发生并解释其原理?

自动传回是什么?

为什么要使用自动传回。

7.WEB控件及HTML服务端控件能否调用客户端方法?

如果能,请解释如何调用?

8.ASP。

NET与ASP相比有什么优势?

9.请解释web.config文件中的重要节点

10.请解释ASP。

NET中的web页面与其隐藏类之间的关系?

11.什么是viewstate,能否禁用?

是否所用控件都可以禁用?

 

13.当发现不能读取页面上的输入的数据时很有可能是什么原因造成的?

怎么解决

14.请解释一个WEB页面中代码执行次序。

15.请解释什么是上下文对象,在什么情况下要使用上下文对象

16.请解释转发与跳转的区别?

17.请解释ASP.NET中不同页面之间数据传递有那些方式?

18.请解释ASP。

NET中buttonlinkbuttonimagebutton及hyperlink这四个控件之间的功别

19.请解释一下。

NET多层应用程序中层与层之间以那几种方式进行数据传递。

并解释你自己的项目中采用那种方式进行。

20.如果出现ASP。

NET中的事件不能触发可能由于什么原因造成?

21.如果需要在datagride控件中的某一列中添加下拉列表框并绑定数据怎么解决?

22.请解释中的数据绑定与传统数据绑定有什么区别?

23.请解释.net采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,以图示方式解释。

24.请解释接口的显式实现有什么意义?

Q:

您在什么情况下会用到虚方法?

它与接口有什么不同?

Q:

Override与重载有什么区别?

Q:

值类型与引用类型有什么区别?

Q:

怎样理解静态变量?

Q:

向服务器发送请求有几种方式?

Q:

DataReader与Dataset有什么区别?

Q:

如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?

Q:

用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

Q:

软件开发过程一般有几个阶段?

每个阶段的作用?

Q:

微软推出了一系列的ApplicationBlock,请举出您所知道的ApplicationBlock并说明其作用?

Q:

请列举一些您用到过的设计模式以及在什么情况下使用该模式?

Q:

您对WebService的体会?

Q:

您对编程的兴趣如何?

工作中遇到不懂的问题是怎样去解决的?

您一般怎样去提高自己的编程水平?

Q:

您离职的原因是什么?

以下几道题目如果您不会,请较为详细的描述您的解决思路和方法

Q:

通过超链接怎样传递中文参数?

Q:

请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?

Q:

请编程实现一个冒泡排序算法?

 

1、进程和线程的区别

进程是系统进行资源分配和调度的单位;线程是CPU调度和分派的单位,一个进程可以有多个线程,这些线程共享这个进程的资源。

2、成员变量和成员函数前加static的作用

它们被称为常成员变量和常成员函数,又称为类成员变量和类成员函数。

分别用来反映类的状态。

比如类成员变量可以用来统计类实例的数量,类成员函数负责这种统计的动作。

3、malloc和new的区别

new是C++的关键字。

malloc在分配内存时必须按给出的字节分配,new可以按照对象的大小自动分配,并且能调用构造函数。

可以说new是对象的对象,而malloc不是。

本质上new分配内存时,还会在实际内存块的前后加上附加信息,所以new所使用的内存大小比malloc多。

4、堆和栈的区别

栈:

由编译器自动分配、释放。

在函数体中定义的变量通常在栈上。

堆:

一般由程序员分配释放。

用new、malloc等分配内存函数分配得到的就是在堆上。

栈是机器系统提供的数据结构,而堆则是C/C++函数库提供的。

栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而栈是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。

栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一。

不同堆分配的内存无法互相操作。

栈空间分静态分配和动态分配两种。

静态分配是编译器完成的,比如自动变量(auto)的分配。

动态分配由alloca函数完成。

栈的动态分配无需释放(是自动的),也就没有释放函数。

为可移植的程序起见,栈的动态分配操作是不被鼓励的!

堆空间的分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。

5、不调用C++/C的字符串库函数,请编写函数strcpy

 

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

2.讲一讲你理解的webservice,在dotnetframework中,怎么很好的结合xml?

(讲概念就行了)

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

4.C#可否对内存进行直接的操作?

(这可是个难点哦?

要注意!

5.用VisualC++6.0编写

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1