面试题
最近去一个公司面试,就遇到了这样一道笔试题,当时搞了很久也不不是很确定结果,回来了后我好好的研究了下,结果为:
2
5
1
6
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}
class B:A
{
public override void Fun1(int i)
{
base.Fun1(i+1);
}
static void Main(string[] args)
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}
运行如下
a.Fun2(b)->(A)a.fun1(1)->(B)fun1(1)->base.Fun1(i+1)->(A)Fun1(2)->Console.WriteLine(2);
Fun1(5)->(A)Fun1(5)->Console.WriteLine(5);
b.Fun2(a)->(A)a.fun2(a)->(A)a.Fun1(1)->)->(A)a.Fun1(1)->console.writeine(1);
Fun1(5)->(B)Fun1(1)->(A)Fun1(6)->console.writeine(6);
第二题
test1表的结果如下:
品牌 用户
A AFSAFSA
A ADFASFDSA
B ADASD
B DFSAFDSA
C ADFASDFSADF
B ADFAF
C ADFAFDSA
请用一条SQL语句查出三个品牌的分别用户人数
select 品牌,count(*) from test1 group by 品牌
第三题
1+2+3+。。。。+100
不用循环写一个算法
代码如下:
int sum(int i)
{
return ((1+i)i/2);
}

浙公网安备 33010602011771号