程序设计题目:
1,给出的数是矩阵,行列转换
100 200 300
400 500 600
700 800 900
写一个函数,要出输出
100 400 700
200 500 800
300 600 9002、写一个函数:给一个数字,要求求出这个数中的各位相乘时候的结果,例如:225的结果为20;202的结果为0。3、写一个程序:提供两个正整数,要求第二个正整数的个位和十位调换,放前面;第一个数的个位和十位调换放后面。例如:12和45,结果为542。4、下表为用户登陆流水表,表结构如下。
学生编号 登陆时间写一条SQL语句,查询出每个用户的最后登陆时间。这几道提不会,感觉第一题应该是用二维数组就可以搞定了,但是由于不是很熟,所以没发手写出来。2、3提都不知道考的什么。求答案!面试题h程序设计SQL
1,给出的数是矩阵,行列转换
100 200 300
400 500 600
700 800 900
写一个函数,要出输出
100 400 700
200 500 800
300 600 9002、写一个函数:给一个数字,要求求出这个数中的各位相乘时候的结果,例如:225的结果为20;202的结果为0。3、写一个程序:提供两个正整数,要求第二个正整数的个位和十位调换,放前面;第一个数的个位和十位调换放后面。例如:12和45,结果为542。4、下表为用户登陆流水表,表结构如下。
学生编号 登陆时间写一条SQL语句,查询出每个用户的最后登陆时间。这几道提不会,感觉第一题应该是用二维数组就可以搞定了,但是由于不是很熟,所以没发手写出来。2、3提都不知道考的什么。求答案!面试题h程序设计SQL
解决方案 »
- sqlHelper.cs中使用单例
- DetailsView的InsertParameters在inserting和inserted之间传递dataset类型的参数
- 求教抽象类和接口的问题
- 请教去除HyperLinkField参数空格问题
- ASP.NET 程序在本地已经调试成功,但放到服务器上却报错,如何解决???
- DataGrid分页的问题
- 高手请进:再问存储过程问题
- 神奇的360浏览器,求破
- SqlConnection、SqlDataAdapter、DataSet、DropDownList动态显示数据问题!
- 关于存储过程的问题
- log4net 日志丢失问题
- ext代码 不是 html 的标准控件,为什么也能编译呢
//第一题
int[,] values = new int[,] { { 100, 200, 300 }, { 400, 500, 600 }, { 700, 800, 900 } };
for (int j = 0; j < values.GetLength(1); j++)
{
for (int i = 0; i < values.GetLength(0); i++)
Response.Write(values[i, j] + " ");
Response.Write("<br/>");
} //第二题
int value = 225;
int sum = 1;
while (value > 0)
{
sum *= value % 10;
value /= 10;
}
Response.Write(sum); //第三题
int a = 12, b = 45;
string s = new string(b.ToString().ToCharArray().Reverse().ToArray()) + new string(a.ToString().ToCharArray().Reverse().ToArray());
int r = int.Parse(s);
Response.Write(r); //第四题
string sqlStr = "select 学生编号,max(登陆时间) as 最后登录时间 from 登陆流水 group by 学生编号";
a =new int[2,2]写入数据 WriteLine(a【0,0】,a[1,0],a[2,0])
后面一样
2
xxx=ReadLine(aaa)。toChararray()
for(int,i《xxx,i)
convert。toint(xxx【i】)乘以后面的不写了,键盘要完蛋,sql 就是分组查询,因该明白了吧
//第三题
int a = 12, b = 45;
int sum = 0;
while (b > 0)
{
sum = sum * 10 + b % 10;
b /= 10;
}
while (a > 0)
{
sum = sum * 10 + a % 10;
a /= 10;
}
Response.Write(sum);
2.第二题也无固定解。直接tostring可以,递归可以,循环可以。如果能写出函数式或声明式解的人算比较有意思滴了
函数式解法
Func<int, int> fun = null;
fun = i => i < 10 ? i : fun(i / 10) * (i % 10);
var res = fun(225);3.第3题其实和第二题基本一样,第2题能用的手法,第3题都可以用。木啥好说滴
ps:其实这两题还都可以用正则直接搞
4.分组排序,在取唯一(sql2005以上可以用排名开窗)
2 最简单,转成字符串,然后每一位相乘
...
都是很简单的题目啊。
个人觉得第二题
可以加些思路:
if(value.ToString().Contains("0")) return 0;
string temp=value.ToString().Replace("1","");
if(string.IsNullOrEmpty(temp)) return 1;
else value=(int)temp;
LZ在c#基本语法,SQL基本语法上 还需加油
放心,下次面试就会了
int num = 123456;
string strNum = num.ToString();
int sum = 1;
for (int i = 0; i < strNum.Length; i++)
{
sum *= int.Parse(strNum.Substring(i, 1));
}
protected void Button1_Click(object sender, EventArgs e)
{ int a = 0;
string str = TextBox1.Text;
string[] str2 = new string[str.Length];
for (a = 0; a < str.Length; a++)
{ str2[a] = str.Substring(a, 1);
}
TextBox2.Text ="1";
for (int i = 0; i < str2.Length; i++)
{
TextBox2.Text = (Convert.ToInt32(TextBox2.Text) * Convert.ToInt32(str2[i])).ToString();
}
}
这样就能实现第二题, 顺路给大伙看看帮我也点评一下
def roate(L):
height = len(L)
for i in range(0, height):
for j in range(0, i):
L[i][j], L[j][i] = L[j][i], L[i][j]
if __name__ == '__main__':
L = [[100, 200, 300], [400, 500, 600], [700, 800, 900]]
roate(L)
print(L)
def multi(I):
if I == 0:
return 0
elif I > 0:
sign = 1
else:
sign = -1
I = int(math.fabs(I))
res = 1
while I != 0:
res = res * (I%10)
I = I/10
return res * sign
def third(a, b):
b = list(str(b))
b[0], b[1] = b[1], b[0]
return int(''.join(b) + str(a))
4、select 用户, max(登录时间) from 登录表 group by 用户
我觉得这几个问题除了最后一个SQL语句的问题之外,其他的应该都是比较基础的吧。
LZ不该不会吧。
1.只是输出的话,那么输出时直接按列输出应该就行了吧。
2.可以直接int a = 225;
int sum = 1,buff = a ;
while(buff >0)
{
sum *= buff%10;
buff = buff/10;
}
printf("The number is %d, the sum is %d \n" , a ,sum );
3.不知道你写错了没,应该是5421吧。
首先这两个正整数不一定小于100,所以要先进行判断,或者直接进行除以100取余的操作。
(如果题意要求的是不管多少位的数都逆序组合的话,其实和只有两位的数是一样的思路)
根据2 ,我猜你应该已经知道了怎么拆分一个整数了。
4.我也不会。
Q4还真不知道怎么写SQL,学的全忘了
public static int mul(int num) {
int sum = 1;
if (num > 0) {
String str = String.valueOf(num);
for (int i = 0; i < str.length(); i++) {
int t = Integer.parseInt(str.substring(i, i + 1));
sum *= t;
}
return sum;
} else {
return 0;
} }
//第三题
public static String swap(int num1, int num2) {
String str1 = num2 % 10 + "" + num2 / 10;
String str2 = num1 % 10 + "" + num1 / 10;
return str1 + str2;
}
new int[]{100, 200, 300},
new int[]{400, 500, 600},
new int[]{700, 800, 900}
}; Console.WriteLine("转换前:\n");
PrintArrayResult(testArray);
Console.WriteLine();
Console.WriteLine("转换后:\n");
PrintArrayResult(TransformRowToColumn(testArray)); #endregion #region 2-数值计算 Console.WriteLine("数值计算:\n");
int number = 252;
Console.WriteLine("输入数值:{0},乘积值为:{1}", number, Calculate(number)); #endregion #region 3-数值交换 Console.WriteLine("数值交换:\n");
Stack<int> stack = new Stack<int>();
stack.Push(12);
stack.Push(45);
string s = string.Empty;
while (stack.Count > 0)
{
int temp = ChangeOrder(stack.Pop());
s += (temp.ToString());
} Console.WriteLine("交换后结果为:{0}", s); #endregion #region 4-SQL查询 select userid, max(logintime) from user
group by userid
order by userid #endregion
} /// <summary>
/// 打印二维数组结果
/// </summary>
/// <param name="sourceArray"></param>
private static void PrintArrayResult(int[][] sourceArray)
{
for (int row = 0; row < sourceArray.Length; row++)
{
List<int> ls = new List<int>();
for (int col = 0; col < sourceArray[row].Length; col++)
{
ls.Add(sourceArray[row][col]);
}
Console.WriteLine(string.Join(",", ls));
}
} /// <summary>
/// 行转列
/// </summary>
/// <param name="sourceArray"></param>
/// <returns></returns>
public static int[][] TransformRowToColumn(int[][] sourceArray)
{
int[][] newArray = new int[3][]{
new int[]{0,0,0},
new int[]{0,0,0},
new int[]{0,0,0}
}; for (int row = 0; row < sourceArray.Length; row++)
{
for (int col = 0; col < sourceArray[row].Length; col++)
{
newArray[row][col] = sourceArray[col][row];
}
} return newArray;
} /// <summary>
/// 计算每个数的各个数字乘积
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public static int Calculate(int number)
{
Stack<int> stack = new Stack<int>();
int result = 1;
while (number > 0)
{
int temp = number % 10;
stack.Push(temp);
number = number / 10;
} while (stack.Count > 0)
{
result = result * stack.Pop();
} return result;
} /// <summary>
/// 转换顺序
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public static int ChangeOrder(int number)
{
List<int> ls = new List<int>(); while (number > 0)
{
int temp = number % 10;
ls.Add(temp);
number = number / 10;
} string s = string.Empty;
for (int i = 0; i < ls.Count; i++)
{
s += ls[i].ToString();
} return int.Parse(s);
}其实都是数学题....LZ加油吧给你点思路老就当
int Func(int sum, int value)
{
sum *= value % 10;
value = value / 10;
return value > 0 ? Func(sum, value) : sum;
}
调用:Response.Write(Func(1, 225));
int value = 225;
int sum = value.ToString().Select(t => (int)t - 48).Aggregate((a, b) => a * b);