笔试代码考查

Posted fantaohaoyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔试代码考查相关的知识,希望对你有一定的参考价值。

写出以下代码的输出结果

  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)







































































以上是关于笔试代码考查的主要内容,如果未能解决你的问题,请参考以下文章

java第一次笔试+面试总结

C++笔试强训第五天

C++笔试强训第二天

《PHP程序员面试笔试宝典》——如何回答快速估算类问题?

笔试常考题型之时间复杂度

字节秋季笔试四道编程题(2021-09-12)