C#程序题运行结果题

C#程序题运行结果题
C#程序题运行结果题

三写出运行结果题

(1)

using System;

class Program

{

static void Main()

{

int x = 3;

Console.Write("星期:");

Console.WriteLine((Weekday)x);

Console.Write("月份:");

Console.WriteLine((Month)x);

Console.Write("季节:");

Console.WriteLine((Season)x);

}

enum Weekday

{

未知 = -1, 星期天, 星期一, 星期二, 星期三, 星期四,星期五,星期六

}

enum Month

{

一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月, 未知 = -1

}

enum Season

{

春, 夏 = 2, 秋 = 4, 冬 = 8 }

}

(2)

using System;

class Program

{

static void Main()

{

class1 c1 = new class1();

class1.y = 5;

c1.Output();

class1 c2 = new class1(); c2.Output();

}

} 星期:星期三月份:四月季节:3

public class class1

{

private static int x = 0;

public static int y = x;

public int z = y;

public void Output()

{

Console .WriteLine(class1.x);

Console .WriteLine(class1.y);

Console .WriteLine(z);

}

}

(3)

using System;

class Program

{

static void Main()

{

IA ia = new B ();

Console .WriteLine("{0} {1} {2} {4}", ia is IA , ia is IB , ia is A , ia is A , ia is B , ia is C );

}

}

public interface IA { }

public interface IB : IA { }

public class A : IA { } public class B : IB { }

public class C : B , IB { }

(4)

using System;

class Program

{

static void Main(string [] args)

{

MyClass y = new MyClass ();

BaseClass x = y;

x.i = 100;

Console .WriteLine("{0}, {1}", x.i, y.i);

}

}

class BaseClass

{

public int i;

0 5 0 0 5 5 True True False True

}

class MyClass : BaseClass

{ public new int i;

}

(5)

using System;

class Program

{

static void Main(string [] args)

{

MyClass x = new MyClass ();

x.testParams(0);

x.testParams(0, 1);

x.testParams(0, 1, 2);

}

}

class MyClass

{

public void testParams(params int [] arr)

{

Console .Write("使用Params 参数!");

}

public void testParams(int x, int y)

{

Console .Write("使用两个整型参数!");

}

}

(6)

using System;

namespace P7_3

{

public class VirtualInheritSample

{

public static void Main()

{

DerivedClass c = new DerivedClass ();

c.Call();

}

}

public class BaseClass {

100,0

使用Params 参数!使用两个整型参数!使用Params 参数!

public void A()

{

Console.WriteLine("Base A");

}

public virtual void B()

{

Console.WriteLine("Base B");

}

}

public class DerivedClass : BaseClass {

public new void A()

{

Console.WriteLine("Derived A"); }

public override void B()

{

Console.WriteLine("Derived B"); }

public void Call()

{

this.A();

this.B();

((BaseClass)this).A(); ((BaseClass)this).B(); }

}

}

(7)

using System;

namespace P7_6

{

public class SealedSample

{

public static void Main() {

A a = new A1();

a.Output();

a = new A2();

a.Output();

a = new A1_1();

a.Output();

a = new A1_2();

a.Output(); Derived A Derived B Base A Derived B

}

}

public abstract class A

{

public abstract void Output();

}

public class A1 : A

{

public override sealed void Output() {

Console.WriteLine("A1");

}

}

public sealed class A2 : A

{

public override void Output()

{

Console.WriteLine("A2");

}

}

public class A1_1 : A1 { }

public class A1_2 : A1

{

public new void Output()

{

Console.WriteLine("A1_2"); }

}

}

(8)

using System;

class CounterDown

{

int val;

public CounterDown(int n)

{

val = n;

}

public int count()

{

if (val < 9)

return val++;

else return 0;

} A1 A2 A1 A1

}

class NSDemo

{

public static void Main()

{

CounterDown cd1 = new CounterDown (2); int i = cd1.count(); while (i > 0)

{

Console .Write(i + " ");

i = cd1.count();

}

}

}

(9)

using System;

class StringDe

{

public void f(string s)

{

for (int j = 0; j < s.Length; j += 2)

Console .Write(s[j]);

return ;

}

public static void Main()

{

string str1 = "中华人民共和国于一九四九年建立";

StringDe ob = new StringDe ();

ob.f(str1);

}

}

(10)

using System;

class A

{

int x;

public A(int n)

{

x = n;

}

public int F()

{

if (x > 0)

return x--;

2 3 4 5 6 7 8 中人共国一四年立

else return 0;

}

}

class Test

{

static void Main()

{

A a = new A (9);

int j = a.F();

while (j > 0)

{

Console .Write("{0} ", j * j);

j = a.F();

}

}

}

(11)

using System;

class Sumw

{

static void Main()

{

int x = 0, y = 0;

do

{

x = x + 1;

if (x % 2 != 0)

continue ; y = y + 1;

}

while (x <= 10);

Console .WriteLine("y={0}", y);

}

}

(12)

using System;

class MyTest

{

public void swap(ref int x, ref int y)

{

int temp = x;

x = y;

y = temp; }

81 64 49 36 25 16 9 4 1 y=5

class test

{

static void Main()

{

int a = 6, b = 8;

MyTest app = new MyTest ();

app.swap(ref a, ref b);

Console .WriteLine("a={0} b={1}", a, b);

}

}

四 改错题

(1) 要求程序的运行结果为:

using System;

class Program

{

static void Main()

{

Console .WriteLine(OuterClass .x);

Console .WriteLine(OuterClass .InnerClass .y);

Console .WriteLine(OuterClass .inner.z);

}

}

public class OuterClass

{

public const int x = 7;

public static readonly InnerClass inner ;

public class InnerClass

{

public const int y = 9;

public readonly int z = 13;

}

}

答:字段“inner ”没有初始化,此行应改为

public static readonly InnerClass inner = new InnerClass();

(2)

要求程序的运行结果为:

7

9

13

a=8 b=6

5

10

3

using System;

class Program

{

int x = 1;

static int y = 2;

const int z = 3;

public Program()

{

x = 5;

y = 10;

}

static Program()

{

x = 5;

y = 10;

}

void F()

{

x *= 2;

y *= 2;

}

static void Main()

{

Program p = new Program();

Console.WriteLine(p.x);

Console.WriteLine(Program.y);

Console.WriteLine(p.z);

}

}

答:

●在静态构造函数中不能访问实例字段,“x = 5;”应删除;

●静态字段只能通过类名来访问,“Console.WriteLine(p.z);”应改为

“Console.WriteLine(Program.z);”

(3)要求程序的运行结果为:

1

2

3

using System;

class Program

private static void Main()

{

Counter p = new Counter();

Console.WriteLine(p.Next);

p = new Counter();

Console.WriteLine(p.Next);

p = new Counter();

Console.WriteLine(p.Next);

}

}

class Counter

{

private int next = 1;

public int Next()

{

get { return next++; }

}

}

答:

●字段“next”应该为静态字段,“private int next = 1;”应改为“static private int

next = 1;”

●属性“Next”的语法不对,“public int Next()”应改为“public int Next”(4)要求能通过编译

public abstract class A

{

private int m_x = 0;

public virtual int X

{

get { return m_x; }

set { m_x = value; }

}

public abstract int Y { get; set; }

}

public class B : A

{

private int m_y = 0;

public new int X {

set {

base.m_x = value < 0 ? 0 : value;

}

}

public override int Y

{

get

{

return m_y;

}

}

}

答:

●在“B”类的“X”属性的“set”访问器中,不能访问基类的是有字段“m_x”,

“base.m_x = value < 0 ? 0 : value;”应改为“base.X = value < 0 ? 0 : value;”

●在“B”类的“Y”属性中,没有提供“set”访问器,应将基类中的“public abstract

int Y { get; set; }”改为“public abstract int Y { get; }”

(5) 要求能通过编译

public abstract class Base

{

public abstract string Name { get; set; }

}

public class MyClass

{

string _nsg;

public override string Name

{

get { return this._nsg; }

}

}

答:

●“MyClass”类应该从“Base”继承,“public class MyClass”应改为“public class

MyClass : Base”

●“MyClass”类的“Name ”属性没有提供set访问器,应添加“set { this._nsg =

value; }”

(6) 要求能通过编译

internal class Base

{

}

public class MyClass : Base

{

}

答:

●派生类“MyClass”与基类“Base”的访问限制有矛盾,“internal class Base”应改

为“public class Base”

(7)

要求程序的运行结果为:

A1

A2

A1

A1_2

using System;

namespace P7_6

{

public class SealedSample

{

public static void Main()

{

A a = new A1();

a.Output();

a = new A2();

a.Output();

a = new A1_1();

a.Output();

a = new A1_2();

a.Output();

}

}

public abstract class A

{

public abstract void Output();

}

public class A1 : A

{

public override sealed void Output() {

Console.WriteLine("A1");

}

}

public sealed class A2 : A

{

public override void Output()

{

Console.WriteLine("A2");

}

}

public class A1_1 : A1 { }

public class A1_2 : A1

{

public new void Output()

{

Console.WriteLine("A1_2");

}

}

}

答:

●应将“Main”函数中最后一行“a.Output();”改为

“((A1_2)a).Output();”

(8)要求能通过编译

if (gender=1)

Console.WriteLine("Girl");

else;

Console.WriteLine("Boy");

答:

“if (gender=1)”应改为“if (gender==1)”

“else;”应改为“else”

(9)要求能通过编译

public class student

{public int No;

private string Name;

}

class Test

{

static void Main()

{

student s = new student();

p.No = 16;

https://www.360docs.net/doc/313196679.html, = "Tom";

}

}

答:

●“private string Name;”应改为“public string Name;”

●“student s = new student();”应改为“student p = new student();”

(10) 要求能通过编译

class EventDemo

{

static void Main()

{

int i;

for (int i = 0; i < 100; i += 3)

{

j = i * 3 + 1;

Console.WriteLine("{0}\t", j, n); //Console.WriteLine("{0}\t{1}", j, i);

i += 3;

}

}

}

答:“int i;”应改为“int j;”

(11) 要求能通过编译

public class Employee

{

public int ID;

double Salary;

}

class A

{

static void Main()

{

Employee e = new Employee();

e.ID = 16;

e.Salary = 1286;

}

}

答:“double Salary;”应改为“public double Salary;”

(12) 要求能通过编译

using System;

class Test

{static void Main()

{int k;

k = Console.ReadLine();

if (k <= 10)

k = k + 1;

else if (10< k <= 20)

k -= 10;

else if (k > 30)

k = k * 2 - 20;

Console.WriteLine("k={0} ", k);

}

}

答:“k = Console.ReadLine()”应改为“k = int.Parse(Console.ReadLine());”“else if (10< k <= 20)”应改为“else if (k <= 20)”

(13) 要求能通过编译

using System;

class Sumw

{ static void Main()

{ x = 1;

do

{ y = 3x + 1;

Console.WriteLine("{0} ", y);

x += 3;

} while (x < 100)

}

}

答:

●“x = 1;”应改为“int x = 1;”

●“y = 3x + 1;”应改为“int y = 3 * x + 1;”

●“while (x < 100)”应改为“while (x < 100);”

(14)要求能通过编译

using System;

abstract class MyTest

{

public double n;

}

class test

{

static void Main()

{

MyTest p = new MyTest();

p.n = 10;

Console.WriteLine(p.n);

}

}

答:“abstract class MyTest”应改为“class MyTest”(15)要求能通过编译

using System;

sealed class MyTest

{

public double n;

}

class test : MyTest

{

static void Main()

{

test p = new test();

p.n = 20;

Console.WriteLine(p.n);

}

}

答:“sealed class MyTest”应改为“class MyTest”(16)要求能通过编译

using System;

static class MyTest

{

public double n;

}

class test

{

static void Main()

{

MyTest.n = 30;

Console.WriteLine(MyTest.n);

}

}

答:

●“public double n;”应改为“static public double n;”

(17)要求能通过编译

using System;

class MyTest

{

public const double x =2.0;

}

class test

{

static void Main()

{

MyTest p = new MyTest();

p.x += 5.0;

Console.WriteLine(p.x);

}

}

答:

●“public const double x =2.0;”应改为“public double x =2.0;”

(18)要求能通过编译

using System;

class MyTest

{

public readonly double x;

public MyTest() { x = 8.0; }

}

class test

{

static void Main()

{

MyTest p = new MyTest();

p.x += 2.5;

Console.WriteLine(p.x);

}

}

答:

●“public readonly double x;”应改为“public double x;”

(19)要求能通过编译

using System;

class MyTest

{

public F()

{

Console.WriteLine("MyTest.F");

}

}

class test

{

static void Main()

{

MyTest p = new MyTest();

p.F();

}

}

答:

●“public F()”应改为“public void F()”

(20)要求能通过编译

using System;

class MyTest

{

int x;

internal int X()

{

get

{

return x;

}

set

{

x = value;

}

}

}

class test

{

static void Main()

{

MyTest p = new MyTest();

p.X = 3;

}

}

答:

●“internal int X()”应改为“internal int X”

(21)要求能通过编译

using System;

class MyTest

{

int[] x;

public void MyTest(int n)

{

x = new int[n];

}

internal int this(int i)

{

get

{

return x[i];

}

set

{

x[i] = value;

}

}

}

class test

{

static void Main()

{

MyTest p = new MyTest(10);

p[4] = 3;

}

}

答:

●“public void MyTest(int n)”应改为“public MyTest(int n)”

●“internal int this(int i)”应改为“internal int this[int i]”

(22)要求能通过编译

using System;

class MyTest

{

int[] x;

public MyTest(int n)

{

x = new int[n];

}

}

class test

{

static void Main()

{

MyTest p = new MyTest(10);

p.x[4] = 3;

}

}

答:

●“int[] x;”应改为“public int[] x;”

(23)要求能通过编译

using System;

class MyTest

{

static public int x;

public static MyTest()

{

x = 10;

}

}

class test

{

static void Main()

{

Console.WriteLine(MyTest.x);

}

}

答:

●“public static MyTest()”应改为“static MyTest()”

(24)要求能通过编译

using System;

struct MyTest

{

public static int x = 10;

public MyTest() { }

}

class test

{

static void Main()

{

Console.WriteLine(MyTest.x); }

}

答:

删除“public MyTest() { }”行

相关主题
相关文档
最新文档