您的位置:首页 > 编程语言 > ASP

asp.net面试的代码题目

2012-10-26 18:30 253 查看
不用第三个变量,交换两个数的值

方案一:

static void Main(string[] args)
{
int a = 2, b = 6;

a = a ^ b;

b = b ^ a;

a = a ^ b;
System.Console.WriteLine(a);
System.Console.WriteLine(b);
System.Console.ReadLine();

System.Console.ReadLine();
}


方式二:

static void Main(string[] args)
{
int a = 2, b = 6;
b = a + (a = b)*0;
System.Console.WriteLine(a);
System.Console.WriteLine(b);
System.Console.ReadLine();

System.Console.ReadLine();
}


冒泡:

从小到大

public int[] BubbleUp(int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[i]> arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}


产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复

int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];


int[] arr = new int[100];
List<int> array = new List<int>();//list效率比ArrayList高,ArrayList中可以添加各种类型的数据,要经常拆箱,装箱
Random rnd = new Random();
while (array.Count < 100)
{
int num = rnd.Next(1, 101);
if (!array.Contains(num))
{
array.Add(num);
}
}
arr = array.ToArray();
Array.Sort(arr);


lock

我想问如果i=11,按值传递,那不是一直传的参数是i=11?那这样是不是死锁了?


public void test(int i)//1  //6
{
lock (this)      //2    //7
{
if (i > 10)  //3    //8
{
i--;   //4
test(i); //5   //11
}        //12
}            // 13      //9
}              // 14        //10


不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: