度毕业学员NET就业面试题2.docx
- 文档编号:30704214
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:39
- 大小:29.56KB
度毕业学员NET就业面试题2.docx
《度毕业学员NET就业面试题2.docx》由会员分享,可在线阅读,更多相关《度毕业学员NET就业面试题2.docx(39页珍藏版)》请在冰豆网上搜索。
度毕业学员NET就业面试题2
2014年度毕业学员NET就业面试题
(2)
上机编程及逻辑题
1.一个字符串如:
"hello益阳佳程",请编程去掉字符串
前后的空格。
中间的空格需要保留一个。
//去掉字符串的空格方法
publicstringRemoveSpace(stringstr1)
{
stringstr2="";
str1=str1.Trim();
intindex=0;//空格索引
for(inti=0;i { if(str1.Substring(i,1)! ="") { str2+=str1.Substring(i,1); index=0; } else { index++; /* if(index>1)//留下一个空格 { //不加字符 } else{ str2+=""; }*/ } } returnstr2; } 2.小数变分数 分数变小数: 1/3=0.3333 publicstringNumADivNumB(inta,intb) { stringstrResult=""; //取整数部分 intzhinumber=a/b; intdivNumber=a%b; strResult+=zhinumber+"."; intn=1;//小数位数 while(divNumber! =0&&n<=100) { intdivNumber10=divNumber*10; strResult+=divNumber10/b; divNumber=divNumber10%b; n++; } returnstrResult; } 3.//写一函数,将一个四位的十进制数转换为对应的十六进制数(自己扩展转换为八进制,二进制数,思路类似) publicstringNumberTransTenSix(intnum) { stringstr=""; //定义符号 stringstrFlag="ABCDEF"; while(num! =0) { intaa=num%16; str=strFlag[aa]+str; num=num/16; } returnstr; } 4.已知//A=1,B=2,.....z=26,那么what=52设计一个函数,传入一个单词计算值 publicstaticintShow(stringstrInput) { strInput=strInput.ToUpper(); //A=1,B=2,z=26,那么what=52 string[]strWords=newstring[]{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; ints=0; for(inti=0;i { stringstr=strInput.Substring(i,1); for(intj=0;j { if(str==strWords[j]) { s+=j+1; break; } } } returns; } 5.请使用C#语法完成一个函数, 功能: 求两组日期段的交集 参数: 第一组日期段 daterange1=“2010-1-32010-4-1/2010-5-12010-7-1/2010-9-102010-11-1” 第二组日期段 daterage2=“2010-2-12010-3-2/2010-6-12010-8-10/2010-9-12010-9-20/2010-10-22010-10-7/2010-10-302010-11-10” 返回值: 两个日期段的交集,以string的形式表达 备注: 函数完成之后请将输出结果也贴在答案中。 /// ///获取两组日期中共同的日期 /// /// 2010-1-32010-4-1/2010-5-12010-7-1/2010-9-102010-11-1 /// /// publicstringGetTwoGroupDateSameDate(stringdataGroup1,stringdataGropup2) { StringBuildersb=newStringBuilder(""); List List //使用Linq vardata=dataList1.Intersect foreach(DateTimedtindata) { sb.Append(dt.ToString("yyyy-MM-dd")); sb.Append("\n"); } returnsb.ToString(); } publicList { List List //使用Linq List returndata; } /// ///获取字符串日期的日期集合 /// /// 2010-1-32010-4-1/2010-5-12010-7-1/2010-9-102010-11-1 /// publicList { List string[]datas=dataGroup.Split(newchar[]{'/'}); for(inti=0;i { dataList.AddRange(GetDateArray(datas[i])); } returndataList; } /// ///获取两个日期间的日期数组合 /// /// 2010-1-32010-4-1 /// publicList { List string[]dataStringArray=dataGroupstring.Split(newchar[]{''}); DateTimed1=TrancateDate(dataStringArray[0]); DateTimed2=TrancateDate(dataStringArray[1]); for(inti=0;;i++) { if(d1.AddDays(i)>d2) { break; } datalist.Add(d1.AddDays(i)); } returndatalist; } /// ///把字符串形式日期转换为日期类型 /// /// /// publicDateTimeTrancateDate(stringdatastring) { string[]strArray=datastring.Split(newchar[]{'-'}); returnnewDateTime(int.Parse(strArray[0]),int.Parse(strArray[1]),int.Parse(strArray[2])); } 6.孩子王问题,一圈n个学生排成一圈报数,报数3的学生退出,问最后剩下的学生是站在哪个位子的学生。 publicstaticvoidMain() { intn=10;//总人数 intm=3;//报数3 //定义数据保存每人的标号 int[]arr=newint[n]; for(inti=0;i { arr[i]=i+1; } //报数过程 intr=0;//已退出的人数 intindex=0;//开始报数索引 intk=0;//报数数 while(r<=n) { if(arr[index]! =0) { k++; if(k%m==0) { arr[index]=0; r++;//出圈人数加1 k=0;//重新开始计数 Console.WriteLine("index="+(index+1)+""); } } index++; if(index==n) { index=0; } } for(inti=0;i { if(arr[i]! =0) { Console.WriteLine("孩子王站在: "+(i+1)); } } Console.Read(); } 7: 递归算法 1*2*3*4….n PublicintJS(intn){ If(n==1){ return1; }else{ returnn*JS(n-1); } } 1,1,2,3,5,8,13….求第n个数是多少? PublicintJS(intn){ If(n==1){return1;} If(n==2){return1;} If(n>2){ returnJs(n-2)+Js(n-1); } } 8.写ajax功能验证用户名存在。 服务器端: protectedvoidPage_Load(objectsender,EventArgse) { Response.ContentType="text/plain";//响应文本 //获取用户名 if(Request.QueryString["loginId"]! =null) { stringloginId=Request.QueryString["loginId"].Trim().ToString(); if(loginId=="accp") { Response.Write("true"); } else { Response.Write("false"); } } else{ Response.Write("false"); } } 前台ajax调用: //由于不同浏览器创建xmlHttpRequest对象的方法不一致 functioncreateXMLHttpRequest(){ if(window.ActiveXObject){ returnnewActiveXObject("Microsoft.XMLHTTP"); }elseif(window.XMLHttpRequest){ returnnewXMLHttpRequest(); } } varxhr; //1激发js事件 functionUserExists(loginId){ if(loginId! =""){ //异步请求服务器// //1创建xmlhttpRequest对象 xhr=createXMLHttpRequest(); //2给xmlhttprequest设置一个事件=一个回调函数 xhr.onreadystatechange=readyDo; //3定义请求url varurl="ChceckUserNameIsExits.aspx? loginId="+loginId; //初始化组件 xhr.open("get",url,true); //4发送请求 xhr.send(null); } } //回调函数 functionreadyDo(){ //alert(xhr.readyState); if(xhr.readyState==4){ if(xhr.status==200){ //获取服务器返回的数据 varresult=xhr.responseText; //alert(result); if(result=="true"){ document.getElementById("msg").innerHTML="用户名已存在"; document.getElementById("msg").style.display="inline"; }else{ document.getElementById("msg").innerHTML="用户名不存在,可以注册"; document.getElementById("msg").style.display="inline"; } } } } 页面部分: 用户名: TextBoxID="TextBox1"runat="server"onblur="UserExists(this.value)"> TextBox>
密码:
TextBoxID="TextBox2"runat="server">
TextBox>
9.单例类
/*单例模式
*FunctionSinglon类的对象的只能构造一个实例*/
namespace单例模式
{
publicclassFunctionSinglon
{
//关键点:
私有构造方法
privateFunctionSinglon()
{
}
/*如何构建一个对象*/
privatestaticFunctionSinglonobj;
publicstaticFunctionSinglonInstance()
{
If(obj==null){
obj=newFunctionSinglon();
}
returnobj;
}
//下面为该类的方法
publicstringSayHello()
{
return"打招呼";
}
}
}
10多线程应用程序说明:
在一下主程序再开启一个线程程序,独立开启程序功能
staticvoidMain(string[]args)
{
//开启一个线程
//ThreadStart委托(方法的格式:
voidss()),PrintNum方法名
Threadtd=newThread(newThreadStart(PrintNum));
//启动线程
td.Start();
intsum=0;
for(inti=0;i<100;i++)
{
sum+=i;
Console.Write("sum="+sum+"");
}
Console.Read();
}
//线程中执行的方法
publicstaticvoidPrintNum()
{
for(inti=0;i<100;i++)
{
Console.Write("i="+i+"");
}
}
11.编程实现求出若干个整数之和为500的连续整数(如98,99,100,101,102),所有组合。
///
///分析:
///500=2*250
///500=4*125
///500=5*100
///i可理解为连续个数相乘100表示中间的数字
///
publicstaticvoidShowDiv()
{
ints=500;
//首先判断是否可以由两个数构成
if(s%2==0)
{
Console.WriteLine("不能由连续的两个整数构成");
}
else
{
Console.WriteLine("符合条件的整数为:
"+s/2+""+(s/2+1));
}
for(inti=2;i
{
if(s%i==0)//表示整除
{
stringstrOutput="";//输出字符串
inttemp=s/i;//乘积的另一个数
Console.WriteLine("{0}={1}*{2}",s,i,temp);
if(i%2==1)//奇数:
必须中间的数为temp
{
if(i/2 { for(intindex=-(i/2);index<=i/2;index++)//temp如100必位于中间 { strOutput+=(temp+index)+""; } Console.WriteLine("符合条件的连续整数: "+strOutput); } else { Console.WriteLine("(出现负数)不能满足符合条件的连续整数"); } } else//否则500=4*125(125可以由两个相邻相加如62+63,前后再出现3对,但不是偶数,是偶数的话,不可能出现) { if(temp%2==0) { //排除不须操作: 因为不可能连续两数相加为偶数 Console.WriteLine("不能满足符合条件的连续整数"); } else { intdata1=temp/2; intdata2=temp/2+1; //数字个数为: intcount=i-1;//前后属于一对如500=4*125即前62前有3个数 if(data1-count>0) { for(intj=i-1;j>=1;j--) { strOutput+=data1-j+""; } strOutput+=data1+""; strOutput+=data2+""; for(intj=1;j<=i-1;j++) { strOutput+=data2+j+""; } Console.WriteLine("符合条件的连续整数: "+strOutput); } else { Console.WriteLine("(出现负数)不能满足符合条件的连续整数"); } } } } } } 12.计算票价 如果的士起步为10元,可乘3公里,10公里内为2元/公里,10公里外为3元/公里,18公里为: 10+7*2+8*3=48元可是有的顾客翻表,就是过了9公里后重新记价,那18公里为: 10+6*2+10+6*2=44,请编写一个程序实现乘车最低的价格。 //货币转化 //打的付款 /// /// /// ///< publicstaticintMinPayMoney(intn) { intSmail=n;//18公里 inttotal=0;//付款总数 if(Smail<=3) { total=10; } elseif(Smail<=10) { total=10+2*(Smail-3); } else { //最大程序让每公里价小于3 intm=Smail; while(m>0) { if(m<=3) { total+=m*3;//加上尾数3元一公里 break; } elseif(m<=10) { total+=10+(m-3)*2;//前3公里的10+后面10公里的2元/公里 break;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业 学员 NET 就业 试题