面试题

最近去一个公司面试,就遇到了这样一道笔试题,当时搞了很久也不不是很确定结果,回来了后我好好的研究了下,结果为:

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);

}

 

posted @ 2008-08-30 14:29  悟〈--觉  阅读(402)  评论(2)    收藏  举报