三 写出运行结果题
(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(); } }
public class class1
星期: 星期三 月份: 四月 季节:3 .
{
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();
0 5 0 0 5 5 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; }
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 {
100,0 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 {
public void A()
使用Params 参数!使用两个整型参数!使用Params 参数! .
{
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 {
.
A1 A2 A1 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; } }
.
class NSDemo {
public static void Main() {
2 3 4 5 6 7 8 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--; 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;
81 49 36 25 16 9 4 1 .
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; } }
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) 要求程序的运行结果为: 7 9 13
using System; class Program {
static void Main()
.
a=8 b=6 .
{
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)
要求程序的运行结果为: 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; p.Name = \"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}\\", j, n); // Console.WriteLine(\"{0}\{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() { }”行
.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务
