博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分享一下今天的面试题
阅读量:4953 次
发布时间:2019-06-12

本文共 4075 字,大约阅读时间需要 13 分钟。

悲催的又要开始找工作了。从今天开始,遇到好的面试题就记下来给大家分享一下。

今天的收获还是不错的,虽然杯具了,但那公司的面试题目有点意思。其实很多都是基础,抽象类啊,继承重载啊,可是以前都不怎么重视。现在开始,不懂的面试题都要记下来,回来后找解决方法。

1 题目要求差不多是这样:完成下面的方法,要求返回一个验证码,并且不能同时存在容易混淆的0和Q。每个字母取得的概率要相同。

  他先给出了一部分代码:

///         /// 生成一个随机验证码,并且不能同时出现容易混淆的0和O        ///         ///         /// 
private static string CreateCode(int count) { string code = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"; string[] keyCode = code.Split(','); string validateCode = string.Empty; Random rand = new Random(); #region 在这里完善你的代码 //... #endregion return validateCode; }

只给五分钟时间,NND,当时一直在想着怎么用while循环。其实正确的应该是do..while循环。下面是回来后自己加的代码:

#region 在这里完善你的代码            do            {                validateCode = string.Empty;                for (int i = 0; i < count; i++)                {                    string s = keyCode[rand.Next(0, 35)];                    validateCode += s;                }            }            while ((validateCode.Contains("0") && validateCode.Contains("O")));            #endregion

 

2 一个选择题,写了一个类:

public class ClassA    {        public static int Count = 0;         static ClassA()        {            Count++;        }        public ClassA()        {            Count++;        }    }

然后求下面代码的输出结果:

ClassA A1 = new ClassA();            ClassA A2 = new ClassA();            Console.WriteLine(ClassA.Count);

当时选的是1,回来后自己上机验证了一个是3!因为静态构造函数是属于类的,而不属于任何一个实例,所以这个构造函数只会被执行一次,而且是在创建此类的第一个实例或引用任何静态成员之前,由.NET自动调用。

3 也是一个选择题。主要是考override与new的区别,题目大概如下:

abstract public class BaseClass    {        public virtual void print()        {            Console.WriteLine("From BaseClass");        }    }    public class class1 : BaseClass    {        public override void print()        {            Console.WriteLine("From Class1");        }    }    public class class2 : BaseClass    {        public new void print()        {            Console.WriteLine("From Class2");        }    }

然后求执行下面代码后的输出结果:

BaseClass ct2 = new class2();            ct2.print();

答案会是:From BaseClass.因为new关键字只是隐藏了Class2中BaseClass的print()方法,并没有改变BaseClass中的Print()方法。

而BaseClass ct2 = new class2() 实例化的是BaseClass.

但如果调用的是:

ClassA A1 = new ClassA();            ct1.print();

输出会是:From Class1。因为override关键字在Class1中将BaseClass中的Print()方法进行了重写。

 

4 数据库题目。用一个update方法更新两个条件不同的记录。大意是这样的:修改Product表,将Price大于1000的产品的Price提高5%,将Price小于1000的产品的Price提高10%,要求只用一个update。

当时没有想到用case..when语句,好吧,一切都太迟了。

update Product set UnitPrice=(case when (UnitPrice>1000) then UnitPrice*1.05 when (UnitPrice<1000) then UnitPrice*1.1 else UnitPrice end)

5 求输出结果

class Program    {        static void Main(string[] args)        {            A a = new C();            a.Write();            Console.Read();        }    }    public class A    {        public int i;        public A()        {            i++;        }        public virtual void Write()        {        }    }    public class B : A    {        public B()        {            i++;        }    }    public class C : B    {        public C()        {            i++;        }        public override void Write()        {            Console.WriteLine(i);        }    }

答案:3

6 求输出结果

int a = 5;            int b = a++;            Console.WriteLine(b);            int c = ++a;            Console.WriteLine(c);

答案: 5,7

6 求输出结果

class Program    {        delegate void MyDelete(string a);        static void Main(string[] args)        {            MyDelete a = new MyDelete(SayHello);            MyDelete b = new MyDelete(SayGoobye);            a("A");            b("B");            MyDelete c = a + b;            c("C");            MyDelete d = c - b;            d("D");            Console.Read();        }        static void SayHello(string s)        {            Console.WriteLine("Hello {0}", s);        }        static void SayGoobye(string s)        {            Console.WriteLine("Goobye {0}", s);        }    }

答案:Hello A 

        Goobye B

        Hello C

        Goobye C

        Hello D

 7 接口与抽象类的区别

转载于:https://www.cnblogs.com/Gyoung/archive/2012/06/02/2531483.html

你可能感兴趣的文章
Break the Chocolate(规律)
查看>>
C#jbox小节
查看>>
结构体指针释放的问题
查看>>
C#枚举Enum[轉]
查看>>
第三百五十七天 how can I 坚持
查看>>
【动态规划】流水作业调度问题与Johnson法则
查看>>
startActivityForResult不起作用
查看>>
Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告
查看>>
活现被翻转生命
查看>>
POJ 1228
查看>>
SwaggerUI+SpringMVC——构建RestFul API的可视化界面
查看>>
springmvc怎么在启动时自己执行一个线程
查看>>
流操作的规律
查看>>
Python基础学习15--异常的分类与处理
查看>>
javascript运算符的优先级
查看>>
React + Redux 入门(一):抛开 React 学 Redux
查看>>
13位时间戳和时间格式化转换,工具类
查看>>
vue router-link子级返回父级页面
查看>>
C# 通知机制 IObserver<T> 和 IObservable<T>
查看>>
Code of Conduct by jsFoundation
查看>>