C#網路應用編程基礎練習題與答案(三)

來源:互聯網
上載者:User
編程|網路

  1. 編寫一個控制台應用程式,完成下列功能。

  1) 建立一個類,用無參數的建構函式輸出該類的類名。

  2) 增加一個重載的建構函式,帶有一個string類型的參數,在此建構函式中將傳遞的字串列印出來。

  3) 在Main方法中建立屬於這個類的一個對象,不傳遞參數。

  4) 在Main方法中建立屬於這個類的另一個對象,傳遞一個字串“This is a string.”。

  5) 在Main方法中宣告類型為這個類的一個具有5個對象的數組,但不要實際建立分配到數組裡的對象。

  6) 寫出運行程式應該輸出的結果。

  【解答】

  using System;
  class Test1
  {
  public Test1()
  {
  Console.WriteLine(this);
  }
  public Test1(string str)
  {
  Console.WriteLine(str);
  }
  public static void Main()
  {
  Test1 t1 = new Test1();
  Test1 t2 = new Test1("This is a string.");
  Test1[] t3 = new Test1[5];
  }
  }

  輸出結果:

  Test1

  This is a string.

  2. 編寫一個控制台應用程式,定義一個類MyClass,類中包含有public、private以及protected資料成員及方法。然後定義一個從MyClass類繼承的類MyMain,將Main方法放在MyMain中,在Main方法中建立MyClass類的一個對象,並分別訪問類中的資料成員及方法。要求註明在試圖訪問所有類成員時哪些語句會產生編譯錯誤。

  【解答】

  using System;
  class MyClass
  {
  public int i;
  private int j;
  protected int k;
  public void method1()
  {
  Console.WriteLine("public method.");
  }
  private void method2()
  {
  Console.WriteLine("private method.");
  }
  protected void method3()
  {
  Console.WriteLine("protected method.");
  }
  }
  class MyMain : MyClass
  {
  public static void Main()
  {
  MyClass t = new MyClass();
  Console.WriteLine("i={0}", t.i);
  Console.WriteLine("j={0}", t.j); //會出現編譯錯誤,私人成員不允許在其它類中訪問
  Console.WriteLine("k={0}", t.k); //會出現編譯錯誤,應該建立MyMain的對象,然
  //後通過MyMain的對象訪問
  t.method1();
  t.method2(); //會出現編譯錯誤,私人的方法不允許在其它類中調用
  t.method3(); //會出現編譯錯誤,應該建立MyMain的對象,然後通過MyMain的
  //對象調用該方法
  }
  }

  3. 建立一個類包含有protected資料。在相同的檔案裡建立第二個類,用一個方法操縱第一個類裡的protected資料。

  【解答】

  using System;
  class Class1
  {
  protected int i = 5;
  protected void MyMethod()
  {
  Console.WriteLine("protected method.");
  }
  }
  class Class2 : Class1
  {
  private void NewMethod()
  {
  Console.WriteLine(this.i);
  this.i += 10;
  Console.WriteLine(this.i);
  }
  public static void Main()
  {
  Class2 t = new Class2();
  t.NewMethod();
  }
  }

  4. 分別寫出下列語句執行的結果。

  1) Console.WriteLine("{0}--{0:p}good",12.34F);

  2) Console.WriteLine("{0}--{0:####}good",0);

  3) Console.WriteLine("{0}--{0:00000}good",456);

  【解答】

  12.34--1,234.00%good

  0--good

  456--00456good

  5. 編寫一個控制台應用程式,計算

  要求精度為10-8。

  【解答】

  using System;
  class Test5
  {
  public static void Main()
  {
  int n = 50;
  double x = 3;
  double s = 0;
  double a = 1;
  for (int i = 1; i <= n; i++)
  {
  a *= i;
  s += Math.Pow(-1, i + 1) * Math.Pow(x, i) / a;
  }
  Console.WriteLine("n={0},s={1:0.00000000}", n, s);
  }
  }

  6. 編寫一個控制台應用程式,接收一個長度大於3的字串,完成下列功能

  1) 輸出字串的長度。

  2) 輸出字串中第一個出現字母a的位置。

  3) 在字串的第3個字元後面插入子串“hello”,輸出新字串。

  4) 將字串“hello”替換為“me”,輸出新字串。

  5) 以字元“m”為分隔字元,將字串分離,並輸出分離後的字串。

  【解答】

  using System;
  class Test6
  {
  public static void Main()
  {
  string str = "";
  while (str.Length <= 3)
  {
  Console.Write("請輸入一個長度大於3的字串:");
  str = Console.ReadLine();
  }
  //(1)
  Console.WriteLine("字串的長度為:{0}", str.Length);
  //(2)
  int i = str.IndexOf('a');
  if (i > -1)
  {
  Console.WriteLine("第一個出現字母a的位置是:{0}", i);
  }
  else
  {
  Console.WriteLine("字串中不包含字母a。");
  }
  //(3)
  string str1 = str.Insert(3, "hello"); //在第3個(初始序號為)字元前插入hello
  Console.WriteLine("插入hello後的結果為:{0}", str1);
  //(4)
  string str2 = str1.Replace("hello", "me");
  Console.WriteLine("將hello替換為me後的結果為:{0}", str2);
  //(5)
  string[] arr = str2.Split('m');
  Console.WriteLine("以m為分隔字元分離後的字串有:");
  for (int j = 0; j < arr.Length; j++)
  {
  Console.WriteLine(arr[j]);
  }
  }
  }



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.