标签: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