Csharp/C#教程:C#常见算法面试题小结分享

本文实例汇总了C#面试常见的算法题及其解答。具有不错的学习借鉴价值。分享给大家供大家参考。具体如下:

1.写出冒泡,选择,插入排序算法。

//冒泡排序 publicclassbubblesorter { publicvoidsort(int[]list) { inti,j,temp; booldone=false; j=1; while((j<list.Length)&&(!done)) { done=true; for(i=0;i<list.Length-j;i++) { if(list[i]>list[i+1]) { done=false; temp=list[i]; list[i]=list[i+1]; list[i+1]=temp; } } j++; } } } //选择排序 publicclassselectionsorter { privateintmin; publicvoidsort(int[]list) { for(inti=0;i<list.Length-1;i++) { min=i; for(intj=i+1;j<list.Length;j++) { if(list[j]<list[min]) min=j; } intt=list[min]; list[min]=list[i]; list[i]=t; } } } //插入排序 publicclassinsertionsorter { publicvoidsort(int[]list) { for(inti=1;i<list.Length;i++) { intt=list[i]; intj=i; while((j>0)&&(list[j-1]>t)) { list[j]=list[j-1]; --j; } list[j]=t; } } }

2.有一列数1,1,2,3,5,……..求第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); } }

3.程序设计:猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。

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

4.有一个字符串”Iamagoodman”,设计一个函数,返回”mangoodaamI”。

staticstringReverse() { strings="Iamagoodman"; string[]arr=s.Split(''); stringres=""; for(inti=arr.Length-1;i>=0;i--) { res+=arr[i]; if(i>0) res+=""; } returnres; }

5.A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:

(1)A参加时,B也参加;

(2)B和C只有一个人参加;

(3)C和D或者都参加,或者都不参加;

(4)D和E中至少有一个人参加;

(5)如果E参加,那么A和D也都参加。

staticvoidMain(string[]args) { char[]name={'A','B','C','D','E'}; int[]value=newint[5]; for(value[0]=0;value[0]<2;value[0]++) for(value[1]=0;value[1]<2;value[1]++) for(value[2]=0;value[2]<2;value[2]++) for(value[3]=0;value[3]<2;value[3]++) for(value[4]=0;value[4]<2;value[4]++) { if((value[1]>=value[0])&&(value[1]+value[2]==1)&&(value[2]==value[3])&&(value[3]+value[4]==1)&&(value[4]==0||value[4]==1&&value[0]==1&&value[3]==1)) { for(inti=0;i<5;i++) { if(value[i]==1) { Console.WriteLine("{0}参加",name[i]); } else { Console.WriteLine("{0}不参加",name[i]); } } } } }

6.题目:
auserenteredanintegervalueintoatextbox.Withoutusingabuit-inlibrary,convertthenumericstringtoitsintegerrepresentation.

staticintStringTolnt(strings) { intsum=0; for(inti=0;i<s.Length;i++) sum=sum*10+(s[i]-'0'); returnsum; }

相信本文所述对大家的C#程序设计有一定的借鉴价值。

您可能感兴趣的文章:C#的3DES加密解密算法实例代码c#汉诺塔的递归算法与解析C#加密算法汇总(推荐)C#字符串自增自减算法详解

标签: 算法 小结 面试 面试题

详解C++的JSON静态链接库JsonCpp的使用方法

C++程序中使用Windows系统Native Wifi API的基本教程

上述就是C#学习教程:C#常见算法面试题小结分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/905738.html

(0)
上一篇 2021年10月23日
下一篇 2021年10月23日

精彩推荐