码迷,mamicode.com
首页 > 其他好文 > 详细

笔试代码考查

时间:2018-07-30 12:07:16      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:i++   用法   return   lin   调用   sort   bsp   ...   else   

写出以下代码的输出结果

  class A
  {
    public A()
    {
      i = 3;
    }

    public int i;

    public int Calc(int j)
    {
      return i + j * j;
    }
  }
  class B : A
  {
    new public int i;
    new public int Calc(int j = 10)
    {
      if (j < 0)
      {
        return i + base.Calc(j);
      }
      return i + j;
    }

    public int? compare(int l, int n)
    {
      if (l > n)
      {
        return 1;
      }
      else if (l < n)
      {
        return -1;
      }
      else
      {
        return null;
      }
    }

  }

 

static void Main(string[] args)
{

  B b = new B() { i = 2 };        
  Console.WriteLine(b.i);        2
  Console.WriteLine(((A)b).i);      3
  Console.WriteLine(b.Calc());      12
  Console.WriteLine(b.Calc(1));      3
  Console.WriteLine(b.Calc(-1));      6
  Console.WriteLine(((A)b).Calc(3));    12

}

考点:考查继承类中new的第二种用法,new的三种用法分别是:第一种 创建对象、调用构造函数;第二种 是作为修饰符,显示隐藏继承于基类的继承成员;第三种 是用在泛型中添加类型的约束

 

递归或冒泡排序

//一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少,用递归算法实现。
public static int foo(int n)
  {
    if (n < 0)
    {
      return 0;
    }
    else if (n <= 2)
    {
      return 1;
    }
    else
    {
      return foo(n - 1) + foo(n - 2);
    }
  }

//冒泡排序

public static void BubbleSort(int[] arr)
{
  for (int i = 0; i < arr.Length-1; i++)
  {
    for (int j = i+1; j < arr.Length; j++)
    {
      if (arr[j] < arr[i])
      {
        arr[i] = arr[i] + arr[j];
        arr[j] = arr[i] - arr[j];
        arr[i] = arr[i] - arr[j];
      }
    }
  }
}

写法很多不写太多答案了,考查新手编码基础,逻辑性。注意算法的时间复杂度优化,O(n2)

笔试代码考查

标签:i++   用法   return   lin   调用   sort   bsp   ...   else   

原文地址:https://www.cnblogs.com/fantaohaoyou/p/9389781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!