DotNet面试题集结号.docx

上传人:b****0 文档编号:10062789 上传时间:2023-05-23 格式:DOCX 页数:53 大小:45.23KB
下载 相关 举报
DotNet面试题集结号.docx_第1页
第1页 / 共53页
DotNet面试题集结号.docx_第2页
第2页 / 共53页
DotNet面试题集结号.docx_第3页
第3页 / 共53页
DotNet面试题集结号.docx_第4页
第4页 / 共53页
DotNet面试题集结号.docx_第5页
第5页 / 共53页
DotNet面试题集结号.docx_第6页
第6页 / 共53页
DotNet面试题集结号.docx_第7页
第7页 / 共53页
DotNet面试题集结号.docx_第8页
第8页 / 共53页
DotNet面试题集结号.docx_第9页
第9页 / 共53页
DotNet面试题集结号.docx_第10页
第10页 / 共53页
DotNet面试题集结号.docx_第11页
第11页 / 共53页
DotNet面试题集结号.docx_第12页
第12页 / 共53页
DotNet面试题集结号.docx_第13页
第13页 / 共53页
DotNet面试题集结号.docx_第14页
第14页 / 共53页
DotNet面试题集结号.docx_第15页
第15页 / 共53页
DotNet面试题集结号.docx_第16页
第16页 / 共53页
DotNet面试题集结号.docx_第17页
第17页 / 共53页
DotNet面试题集结号.docx_第18页
第18页 / 共53页
DotNet面试题集结号.docx_第19页
第19页 / 共53页
DotNet面试题集结号.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DotNet面试题集结号.docx

《DotNet面试题集结号.docx》由会员分享,可在线阅读,更多相关《DotNet面试题集结号.docx(53页珍藏版)》请在冰点文库上搜索。

DotNet面试题集结号.docx

DotNet面试题集结号

1.a=10,b=15,在不用第三方变题的前提下,把a,b的值互换

a=a+b;

b=a-b;

a=a-b;

据说还可以这样:

a^=b^(b^=a^b);不了解是什么原理

2.已知数组int[]max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组

publicclassTestQuickSort{

privateint[]array=null;

privatevoidquickSort(intlowest,inthighest){

if(array==null||lowest<0||lowest>=highest

||highest>=array.length){

return;

}

intlow=lowest;

inthigh=highest;

intkey=low++;

for(;low<=high;){

if(key

if(array[key]>array[high]){

array[high]=array[key]+(array[key]=array[high])*0;

key=high;

}

high--;

}

if(key>low){

if(array[key]

array[low]=array[key]+(array[key]=array[low])*0;

key=low;

}

low++;

}

}

quickSort(lowest,key-1);

quickSort(key+1,highest);

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

TestQuickSorttest=newTestQuickSort();

int[]array={6,5,2,9,7,4,0};

test.array=array;

test.quickSort(0,array.length-1);

intlength=test.array.length;

for(inti=0;i

System.out.println(test.array[i]);

}

}

}

快速排序是综合性能最好的内部排序算法!

3.请简述面向对象的多态的特性及意义!

多态:

面向对象的语言使用虚方法表达多态。

这就意味着派生类可以有和父类具有同样签名的方法,并且父类可以调用派生类的方法。

在C#中,必须使用virtual关键字才能使方法被父类调用。

这使得一个对象在不同的环境中有不同的动作形态。

4.session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法

用VIEWSTATE/Profile/自己在服务器端实现个Cache

5.对数据的并发采用什么办法进行处理较好。

可以控制连接池的连接数量

条件好的话可以用负载平衡

6.已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。

请问用什么办法解决这一问题?

如果又碰到不能互访的问题时,又用什么办法解决?

7.已知Oracle数据库a,b现在在a用户权限下,访问b数据库sql语句为selecta.*Fromba,请改正这一句Sql的写法

8.当对数据库进行海量级的数据插入时,数据库出现报错,错误原因可能有哪些,以你的经验谈谈你的解决办法

9.算法分析

AH20060625124401CAD001

AH20060625124401CAD001

AH20060625134402CAD001

AH20060625144403CAD001

说明:

第二列表示日期,第三列表示温度,第四列表示水位,第五列表示流量,第6列表示水位测站编码,每一列表示一个字段

很明显第一条数据和第二条数据重复,然数据表中有主键和外键的约束,是不允许有重复的数据存在的,请构造算法将重复的数据Del掉

10.javascript算法

已知a,b,现在点鼠标a会向b游动,鼠标停,a会停下来

请实现"跑步算法"

11.猫叫,老鼠逃跑,主人惊醒。

要点:

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

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

评分标准:

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

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

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

(3分)

1usingSystem;

2usingSystem.Collections;

3

4namespaceConsoleApplication1

5{

6publicinterfaceObserver

7{

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

9}

10publicinterfaceSubject

11{

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

13}

14

15publicclassMouse:

Observer

16{

17privatestringname;

18publicMouse(stringname,Subjectsubj)

19{

20this.name=name;

21subj.AimAt(this);

22}

23

24publicvoidResponse()

25{

26Console.WriteLine(name+"attempttoescape!

");

27}

28}

29

30publicclassMaster:

Observer

31{

32publicMaster(Subjectsubj)

33{

34subj.AimAt(this);

35}

36

37publicvoidResponse()

38{

39Console.WriteLine("Hostwaken!

");

40}

41}

42

43

44publicclassCat:

Subject

45{

46privateArrayListobservers;

47publicCat()

48{

49this.observers=newArrayList();

50}

51publicvoidAimAt(Observerobs)

52{

53this.observers.Add(obs);

54}

55publicvoidCry()

56{

57Console.WriteLine("Catcryed!

");

58foreach(Observerobsinthis.observers)

59{

60obs.Response();

61}

62}

63}

64

65classMainClass

66{

67/**////

68///应用程序的主入口点。

69///

70[STAThread]

71staticvoidMain(string[]args)

72{

73Catcat=newCat();

74Mousemouse1=newMouse("mouse1",cat);

75Mousemouse2=newMouse("mouse2",cat);

76Mastermaster=newMaster(cat);

77cat.Cry();

78}

79}

80}

设计方法二:

使用event--delegate设计

1usingSystem;

2usingSystem.Collections;

3

4

5namespaceConsoleApplication1

6{

7publicdelegatevoidSubEventHandler();

8publicabstractclassSubject

9{

10publiceventSubEventHandlerSubEvent;

11protectedvoidFireAway()

12{

13if(this.SubEvent!

=null)

14this.SubEvent();

15}

16}

17publicclassCat:

Subject

18{

19publicvoidCry()

20{

21Console.WriteLine("catcryed.");

22this.FireAway();

23}

24}

25

26publicabstractclassObserver

27{

28publicObserver(Subjectsub)

29{

30sub.SubEvent+=newSubEventHandler(Response);

31}

32publicabstractvoidResponse();

33}

34publicclassMouse:

Observer

35{

36privatestringname;

37publicMouse(stringname,Subjectsub):

base(sub)

38{

39this.name=name;

40}

41publicoverridevoidResponse()

42{

43Console.WriteLine(name+"attempttoescape!

");

44}

45}

46publicclassMaster:

Observer

47{

48publicMaster(Subjectsub):

base(sub){}

49publicoverridevoidResponse()

50{

51Console.WriteLine("hostwaken");

52}

53}

54

55classMainClass

56{

57/**////

58///应用程序的主入口点。

59///

60[STAThread]

61staticvoidMain(string[]args)

62{

63Catcat=newCat();

64Mousemouse1=newMouse("mouse1",cat);

65Mousemouse2=newMouse("mouse2",cat);

66Mastermaster=newMaster(cat);

67cat.Cry();

68}

69}

70}

12.在C#中,stringstr=null与stringstr=“”请尽量使用文字或图象说明其中的区别。

回答要点:

说明详细的空间分配。

stringstr=null是不给他分配内存空间,而stringstr=""给它分配长度为空字符串的内存空间.

13.请详述在dotnet中类(class)与结构(struct)的异同:

Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

14.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:

(10)

namespacetest

{

publicdelegatevoidOnDBOperate();

publicclassUserControlBase:

System.Windows.Forms.UserControl

{

publiceventOnDBOperateOnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse)

{

if(e.Button.Equals(BtnNew))

{

//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。

}

}

}

答:

if(OnNew!

=null)

OnNew(this,e);

15.分析以下代码,完成填空

stringstrTmp="abcdefg某某某";

inti=System.Text.Encoding.Default.GetBytes(strTmp).Length;

intj=strTmp.Length;

以上代码执行完后,i=j=

答:

i=13,j=10

16.SQLSERVER服务器中,给定表table1中有两个字段ID、LastUpdateDate,ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。

SelectIDFROMtable1

WhereLastUpdateDate=(SelectMAX(LastUpdateDate)FROMtable1)

17.根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?

并简要说明理由。

publicvoidtest(inti)

{

lock(this)

{

if(i>10)

{

i--;

test(i);

}

}

}

不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。

但如果把int换做一个object,那么死锁会发生)

18.分析以下代码

publicstaticvoidtest(stringConnectString)

{

System.Data.OleDb.OleDbConnectionconn=newSystem.Data.OleDb.OleDbConnection();

conn.ConnectionString=ConnectString;

try

{

conn.Open();…….

}catch(ExceptionEx)

{

MessageBox.Show(Ex.ToString());

}finally

{

if(!

conn.State.Equals(ConnectionState.Closed))

conn.Close();

}

请问

1)以上代码可以正确使用连接池吗?

答:

回答:

如果传入的connectionString是一模一样的话,可以正确使用连接池。

不过一模一样的意思是,连字符的空格数,顺序完全一致。

2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?

答:

只可以捕捉数据库连接中的异常吧.(finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。

所以理论上并非所有异常都会被捕捉。

19.简要谈一下您对微软.NET构架下remoting和webservice两项技术的理解以及实际中的应用。

WS主要是可利用HTTP,穿透防火墙。

而Remoting可以利用TCP/IP,二进制传送提高效率。

20.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:

点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行(排序的方式如DataGrid相似)。

根据您的知识,请简要谈一下您的思路:

根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中

21.给定以下XML文件,完成算法流程图。

(10)

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:

voidFindFile(Directoryd)

{

FileOrFolders=d.GetFileOrFolders();

foreach(FileOrFolderfofinFileOrFolders);

{

if(fofisFile)

YouFoundafile;

elseif(fofisDirectory)

FindFile(fof);

}

}

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

property和attribute汉语都称之为属性。

不过property是指类向外提供的数据区域。

而attribute则是描述对象在编译时或运行时属性的。

这两者是有本质区别的。

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

答.1).使用QueryString,如....?

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

2).使用Session变量

3).使用Server.Transfer

24.一列数的规则如下:

1、1、2、3、5、8、13、21、34......求第30位数是多少,用递归算法实现。

答:

publicclassMainClass

{

publicstaticvoidMain()

{

Console.WriteLine(Foo(30));

}

publicstaticintFoo(inti)

{

if(i<=0)

return0;

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

return1;

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

}

}

25.C#中的委托是什么?

事件是不是一种委托?

答:

委托可以把一个方法作为参数代入另一个方法。

委托可以理解为指向一个函数的引用。

是,是一种特殊的委托

26.override与重载的区别

override与重载的区别。

重载是方法的名称相同。

参数或参数类型不同,进行多次重载以适应不同的需要

Override是进行基类中函数的重写。

为了适应需要。

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

Server.Transfer

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

foreach(System.Windows.Forms.Controlcontrolinthis.Controls)

{

if(controlisSystem.Windows.Forms.TextBox)

{

System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control;

tb.Text=String.Empty;

}

}

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

int[]array=newint

;

inttemp=0;

for(inti=0;i

{

for(intj=i+1;j

{

if(array[j]

{

temp=array[i];

array[i]=array[j];

array[j]=temp;

}

}

}

30.描述一下C#中索引器的实现过程,是否只能根据数字进行索引?

不是。

可以用任意类型。

31.求以下表达式的值,写出您想到的一种或几种实现方法:

1-2+3-4+……+m

答:

intNum=this.TextBox1.Text.ToString();

intSum=0;

for(inti=0;i

{

if((i%2)==1)

{

Sum+=i;

}

else

{

Sum=Sum-I;

}

}

System.Console.WriteLine(Sum.ToString());

System.Console.ReadLine();

32.在下面的例子里

usingSystem;

classA

{

publicA()

{

PrintFields();

}

publicvirtualvoidPrintFields(){}

}

classB:

A

{

intx=1;

inty;

publicB()

{

y=-1;

}

publicoverridevoidPrintFields()

{

Console.WriteLine("x={0},y={1}",x,y);

}

当使用newB()创建B的实例时,产生什么输出?

答:

X=1,Y=0;x=1y=-1

33.什么叫应用程序域?

应用程序域可以理解为一种轻量级进程。

起到安全的作用。

占用资源小。

34.CTS、CLS、CLR分别作何解释?

答:

CTS:

通用语言系统。

CLS:

通用语言规范。

CLR:

公共语言运行库。

35.什么是装箱和拆箱?

答:

从值类型

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2