.Net软件工程师面试题及答案(精选)

.Net软件工程师面试题及答案

 

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

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

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

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

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

6. 已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。请问用什么办法解决这一问题?如果又碰到不能互访的问题时,又用什么办法解决?

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

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

9. 算法分析
AH 20060625 12 44 01 CAD001
AH 20060625 12 44 01 CAD001
AH 20060625 13 44 02 CAD001
AH 20060625 14 44 03 CAD001
说明:第二列表示日期,第三列表示温度,第四列表示水位,第五列表示流量,第6列表示水位测站编码,每一列表示一个字段
很明显第一条数据和第二条数据重复,然数据表中有主键和外键的约束,是不允许有重复的数据存在的,请构造算法将重复的数据Del掉。

10.  javascript算法
已知a,b,现在点鼠标a会向b游动,鼠标停,a会停下来
请实现"跑步算法"。

 

 

 

 

 

答案:

 

1.
a=a+b;
b=a-b;
a=a-b;
据说还可以这样:a^=b^(b^=a^b); 不了解是什么原理

2.
public class TestQuickSort {

private int[] array = null;
private void quickSort(int lowest, int highest) {
if (array == null || lowest < 0 || lowest >= highest
|| highest >= array.length) {
return;
}
int low = lowest;
int high = highest;
int key = low++;
for (; low <= high;) {
if (key < high) {
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[low] = array[key] + (array[key] = array[low]) * 0;
key = low;
}
low++;
}
}
quickSort(lowest, key - 1);
quickSort(key + 1, highest);
}

/**
* @param args
*/
public static void main(String[] args) {
TestQuickSort test = new TestQuickSort();
int[] array = {6,5,2,9,7,4,0};
test.array = array;
test.quickSort(0, array.length - 1);
int length = test.array.length;
for (int i = 0; i < length; i++) {
System.out.println(test.array[i]);
}
}
}
快速排序是综合性能最好的内部排序算法!

3.

多态:面向对象的语言使用虚方法表达多态。这就意味着派生类可以有和父类具有同样签名的方法,并且父类可以调用派生类的方法。在C#中,必须使用virtual关键字才能使方法被父类调用。这使得一个对象在不同的环境中有不同的动作形态。

4.

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

 

5.

答可以控制连接池的连接数量
条件好的话 可以用负载平衡

6.

使用触发器,在GD数据库v_s表上建insert触发器,当有新数据加入时,同时写数据到ZS数据库的D_E表中。

如果不能互访,则还是用触发器先保存最新加入的数据到临时表中,用应用程序将数据转移到ZS数据库。

 

7.

Select * from b.table1

8.

对于oracle数据库来说,可能出现的问题包括:
1. 回滚区间空间不足 ---解决方法,增加表空间
2. 数据表空间不足 ---- 增加数据表空间
3. 表空间不足 ---- 增加表空间(oracle数据表有空间限制)
4. 临时表空间不足 --- 因为计算索引使用临时表空间,增加表空间或者暂时不使用索引,数据导入完毕再新建索引
5.另外一些原因,主要是垃圾数据造成的,比如外键匹配,主键冲突,单一索引冲突等。


9.
alter table 表 add ID int identity(1,1)
delete from 表
where newfield not in
(
select top 1 ID from 表 group by 日期,温度,水位,流量,水位测站编码
)
alter table 表 drop column ID

 

 

10.

<html>
<head>
<title>aa</title>

<script   language= "javascript" type="text/javascript"> 
<!-- 
  var   obj1=obj2=p1=p2=null; 
  var   id=0; //设置调用ID 
  var   intval   =   10; //单位豪秒,控制调用moveObj()的周期 
  var   step   =   5; //每次移动的像素,控制移动的速度 

window.onload=function() 
{ 
  obj1=document.getElementById("obj1"); 
  obj2=document.getElementById("obj2"); 
  p1={x:obj1.style.pixelLeft,y:obj1.style.pixelTop}; 
  p2={x:obj2.style.pixelLeft,y:obj2.style.pixelTop}; 
} 

function   moveObj() 
{ 
  if(p1.x <p2.x) 
   obj1.style.pixelLeft=p1.x+=step; 
  if(p1.y <p2.y) 
   obj1.style.pixelTop=p1.y+=step; 
} 

document.onmousedown=function() 
{ 
  if(id==0) 
  id=setInterval("moveObj()",intval); 
} 

document.onmouseup=function(){clearInterval(id);id=0;} 


//--> 
</script> 
</head>
<body>

按下鼠标a移动,释放鼠标移动停止,再按下则继续移动。 
<img   src= "a.ico"   id= "obj1"   alt= "a"   style= 

"position:absolute;left:100px;top:100px; "/> 
<img   src= "b.ico"   id= "obj2"   alt= "b"   style= 

"position:absolute;left:500px;top:500px; "/> 
</body>
</html>

  


posted @ 2007-03-20 14:24  小y  阅读(49875)  评论(23编辑  收藏  举报