可以使用任何你所熟悉的编程语言来实现以下算法题:
一、 写一个函数将输入的任意正整数转换为它所对应的二进制编码并输出。 答:private static string str = string.Empty;
public string f(int m) {
string sb = string.Empty; if (m == 0) {
sb = \"0\"; }
if (m > 0) {
f(m / 2);
sb = (m % 2).ToString(); }
str += sb; return str;
}
二、 有两个数值变量分别为a与b 试写算法,实现a与b值的交换,在程序中只能出现a,b两个变
量。 答:a=a+b;
b=a-b;
a=a-b;
三、 有一组无序排列的整数数组如{1,5,7,9,2} 通过算法实现对该数组按从大到小的顺序进行排序,输
出排序后的结果同时输入原始数组的数组索引下标,如输出排序结果为{9,7,5,2,1},输出原始数组索引下标为{3,2,1,4,0}。
答:用另一个数组ary_index记录原始数组的下标
int i,j,t;
for(i=0;i for(j=i+1;j if(ary_value[i] t=ary_value[j]; ary_value[j]=ary_value[i]; ary_value[i]=t; t=ary_index[j]; ary_index[j]=ary_index[i]; ary_index[i]=t; } } } 四、 已知有一长度为100的无序随机整型数组,且数值范围是[1,100],写一算法,判断数组中是否有 存在重复值,要求,不得嵌套循环,不得使用递归。 答: int[] intlist = new int[100] { }; int t; int c = 0; while (c < intlist.Length) { t = intlist[c]; if (t < intlist.Length) { if (intlist[t] == t) { if (t == c) { c++; } else { Response.Write(\"true\"); break; } } else { intlist[c] = intlist[t]; intlist[t] = t; } } 五、 用算法实现Round函数效果,这里仅要求将所输入的任意数值型变量保留两位小数后输出(四舍 五入),以代码实现,不得使用Printf(“%.2f”,&d)或是.NET中的Round(double value, int digits)函数。 答: double t, b = 12.657; int a; b = b * 100 + 0.5; t = b % 1; b = b - t; a = (int)b; b = a / 100.00; txtResult.Text = b.ToString(); SQL题 六、 写出一条Sql语句: 选取表A中 第31条至第40条 这10条记录 (注:在SQLServer, 表A是以整形 的无序“TableID”字段作为主关键字,如TableID=1,2,3,7,10,20……100……。) 答:select top 10 * from a where tableid > (select max(tableid) from (select top 30 from a) as table1) 因篇幅问题不能全部显示,请点此查看更多更全内容