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() { }”行