• 小示例题


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

      他先给出了一部分代码:

     //生成一个随机验证码并且0和O不能同时出现
            public string CreateCode(int count)
            {
               //验证码字符串
                string strcode = "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[] codes = strcode.Split(',');
                //验证码为空
                string validatecode = string.Empty;
                //实例化随机类
                Random rand=new Random();
                do
                {
                    validatecode = string.Empty;
                    for (int i = 0; i < count; i++)
                    {
                        string s = codes[rand.Next(0, 35)];
                        validatecode += s;
                    }
                } while (validatecode.Contains('0') && validatecode.Contains('O'));
                   return validatecode;
               
            }

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

    复制代码
      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);

    因为静态构造函数是属于类的,而不属于任何一个实例,所以这个构造函数只会被执行一次,而且是在创建此类的第一个实例或引用任何静态成员之前,由.NET自动调用。所以结果为:3

    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.实例化ClassB后输出结果

    class ClassA
        {
           
    public ClassA()
            {
                Print();
            }

           
    public virtual void Print()
            {
            }
        }

       
    class ClassB : ClassA
        {
           
    int a = 1;
           
    int b;
           
    public ClassB()
            {
                b
    = -1;
                Print();
            }

           
    public override void Print()
            {
                Console.WriteLine(
    "a="+a+"  b="+b);
            }
        }

    结果:a=1,b=0   a=1,b=-1

    6.sql删除除主键外的重复数据

      delete from StuInfo where ID not in(select MIN(id) from StuInfo group by Name,Dept,StuNo,Sex)

       用Max或Min函数都行

    7.

    找出所有科目的成绩都大于80的学生姓名。

    思路1:所有大于80分就是名字不在小于80分的学生里面的学生,主要是用到了一个逆向思维

    select distinct Name from Student where Name not in(select Name from Student where Score<80)

    思路2:所有大于80分即该学生的最小成绩也大于80.

    select name,MIN(Score) from Student group by Name having MIN(Score)>80

    思路3:所有大于80分则要求该学生大于80分的科目要有3个(即科目数)。

     select Name,COUNT(*) from Student where Score>80 group by Name having COUNT(*)=3

    8.将1-100插入到一个长度为100的数组中

     public void Print()
            {  
                int[] array = new int[100];
                Random rand = new Random();
                int newnum;
                for (int i = 0; i <array.Length; i++)
                {
                    do
                    {
                        newnum=rand.Next(101);
                      
                    }while(array.Contains(newnum));//数组是否存在该值
                    array[i]=newnum;
                }
                //按升序排序
                int temp;
                for(int j=0;j<array.Length-1;j++)
                {
                    for (int k = array.Length-1; k > j; k--)
                    {
                        if (array[k - 1] > array[k])
                        {
                            temp = array[k - 1];
                            array[k - 1] = array[k];
                            array[k] = temp;
                        }
                   
                    }
                }
                //打印输出
                for (int n = 0; n < array.Length; n++)
                {
                    Console.WriteLine(array[n]);
                }
            }

    9.求数列:1、1、2、3、5、8、13、21...的第N个数是多少

             /// <summary>
            /// 斐波那契数列
           
    /// </summary>
            /// <param name="i"></param>
            /// <returns></returns>
            private static int Fibonacci(int i)
            {
               
    if (i <=2)
                {
                   
    return 1;
                }
               
    else
                {
                   
    return Fibonacci(i - 1) + Fibonacci(i - 2);
                }
            }

    10.统计某个字符串在文本中出现的次数。

      public int Count(string text,string find)
            {
                int count = 0;//出现的次数
                int position = 0;//位置
                int index = 0;//索引位置
                do
                {
                    index = text.IndexOf(find,position);
                    if (index > 0)
                    {
                        count++;
                        position=index+1;
                    }
                } while (index > 0);

                return count;
            }

  • 相关阅读:
    什么事数据对象以及属性分为什么类型?
    Oracle数据库安装
    红黑树和B树
    Java多线程02
    HashMap分析
    java虚拟机——垃圾回收与内存分配
    Java虚拟机——对象
    Java虚拟机——内存
    java数据结构03
    LeetCode刷题
  • 原文地址:https://www.cnblogs.com/zcttxs/p/2554099.html
Copyright © 2020-2023  润新知