写出以下代码的输出结果
  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)
原文:https://www.cnblogs.com/fantaohaoyou/p/9389781.html