網誌

【C#-題庫】字串 Strings

1.  何者敘述為真?

String s1, s2;
s1 = “Hi”;
s2 = “Hi”;

  1. 在無法使用new的情況下,String物件無法被建立。
  2. 只有一個物件會被建立。
  3. s1 和 s2 皆指向相同的一個物件。
  4. 2個物件會被建立,其中一個被s1參考,另一個被s2參考。
  5. s1 和s2 是指向相同的物件的2個參考。

A. 1, 2, 4
B. 2, 3, 5
C. 3, 4
D. 2, 5

Answer
B

2.  底下程式片段輸出為何?

String s1 = “ALL MEN ARE CREATED EQUAL”;
String s2;
s2 = s1.Substring(12, 3);
Console.WriteLine(s2);

A. ARE
B. CRE
C. CR
D. REA
E. CREATED

Answer
B

3. 下列那個程式片段能夠正確地複製一個字串到另一個字串?

A.

String s1 = "String";
String s2; 
s2 = s1;

B.

String s1 = "String" ; 
String s2;
s2 = String.Concat(s1, s2);

C.

String s1 = "String"; 
String s2;
s2 = String.Copy(s1);

D.

String s1 = "String"; 
String s2;
s2 = s1.Replace();

E.

String s1 = "String"; 
String s2;
s2 = s2.StringCopy(s1);
Answer
C

4. 利用String類別所建立的字串是不可變的,另一方面,利用StringBuilder所建立的字串是可變的。

A. True
B. False

Answer
A

5. 底下程式的輸出為何?

String s1 = "Nagpur";
String s2;
s2 = s1.Insert(6, "Mumbai"); 
Console.WriteLine(s2);

A. NagpuMumbair
B. Nagpur Mumbai
C. Mumbai
D. Nagpur
E. NagpurMumbai

Answer
E

6. 如果s1和s2是參考到字串的參考,底下何者可以正確地比較2個參考?

A. s1 is s2
B. s1 = s2
C. s1 == s2
D. strcmp(s1, s2)
E. s1.Equals(s2)

Answer
E

7. 底下程式的輸出為何?

namespace IndiabixConsoleApplication
{
    class SampleProgram
    {
        static void Main(string[ ] args)
        {
            string str= "Hello World!";
            Console.WriteLine( String.Compare(str, "Hello World?" ).GetType() );
        }
    }
}

A. 0
B. 1
C. String
D. Hello World?
E. System.Int32

Answer
E

解說:String.Compare比較兩個指定的 String 物件,並傳回一個整數,指出它們在排序順序中的相對位置。

GetType()取得所屬的資料型態,此題是String.Compare傳回一個整數(Int32),所以GetType會傳回System.Int32。

8.  底下那一個程式片段能夠正確地轉換一個Single資料型態成為String資料型態?

1.

Single f = 9.8f; 
String s;
s = (String) (f);

2.

Single f = 9.8f; 
String s;
s = CONVERT.ToString(f);

3.

Single f = 9.8f; 
String s;
s = f.ToString();

4.

Single f = 9.8f; 
String s;
s = Clnt(f);

5.

Single f = 9.8f; 
String s;
s = CString(f);

A. 1, 2
B. 2, 3
C. 1, 3, 5
D. 2, 4

Answer
B

9. 底下程式的輸出為何?

String s1="Kicit";
Console.Write(s1.IndexOf('c') + " "); 
Console.Write(s1.Length);

A. 3 6
B. 2 5
C. 3 5
D. 2 6
E. 3 7

Answer
B

10. 底下那一個程式片段能夠正確地轉換一個String資料型態成為int資料型態?

1.

String s = "123"; 
int i;
i = (int)s;

2.

String s = "123";
int i;
i = int.Parse(s);

3.

String s = "123"; 
int i;
i = Int32.Parse(s);

4.

String s = "123"; 
int i;
i = CONVERT.ToInt32(s);
5.
String s = "123"; 
int i;
i = CInt(s);

A. 1, 3, 5
B. 2, 4
C. 3, 5
D. 2, 3, 4

Answer
D

11. 底下何者對String的敘述是正確的?

A. 一個String 字串建立在堆疊(stack)上。
B. 一個String 字串依其長度來決定是建置在堆疊或堆積(heap)上。
C.  String 字串是原始的資料型態。
D. 一個String 字串的建立是透過String s1 = new String;敘述來建立。
E. 一個String字串是建立在堆積(heap)上。

Answer
E

12. 底下何者對String的敘述是正確的?

A. 一個String 字串是可變的,因其建立後,可以修改String 字串內容。
B. String 字串類別的方法可用來修改String 字串。
C. 一個數字無法用一個String的形式表示。
D. 一個String 字串有一個從零開始的索引
E. System.Array類別用來表示一個字串。

Answer
D

解說:String 是一個字元陣列。

13. 底下程式片段輸出為何?

String s1 = "Five Star";
String s2 = "FIVE STAR";
int c;
c = s1.CompareTo(s2);
Console.WriteLine(c);

A. 0
B. 1
C. 2
D. -1
E. -2

Answer
D

14. 如果s1和s2是參考到字串的參考,底下何者可以正確地判斷2個字串是否相等?1.

if(s1 = s2)

2.

if(s1 == s2)

3.

int c;
c = s1.CompareTo(s2);

4.

if( strcmp(s1, s2) )

5.

if (s1 is s2)

A. 1, 2
B. 2, 3
C. 4, 5
D. 3, 5

Answer
B

15. 底下何者對String的敘述是正確的?

1.2個子串可用 s3 = s1 + s2; 的方式相串接。
2.String 字串是原始的資料型態。
3.使用StringBuilder 類別建立的字串是可變的。
4.使用String 類別建立的字串是不可變的。
5.2個子串可用 s3 = s1&s2; 的方式相串接。

A. 1, 2, 5
B. 2, 4
C. 1, 3, 4
D. 3, 5

Answer
C

16. 底下敘述何者正確?

  1.  String是一個數值型態。
  2.  String字符值可以包含任何一個字元,包含跳脫字元。
  3.  等效運算子被定義為比較2個字串物件的值,和其參考。
  4.  嘗試存取超過字串界限的一個字元會導致一個IndexOutOfRangeException。
  5.  一個字串物件的內容可以在其建立後被改變。

A. 1, 3
B. 3, 5
C. 2, 4
D. 1, 2, 4

Answer
C

17.  底下何者可以被正確地找出字串 “She sells sea shells on the sea-shore”中第2個’s’的位置(在字串中的索引)?

 

A.

String str = "She sells sea shells on the sea-shore"; 
int i;
i = str.SecondIndexOf("s");

B.

String str = "She sells sea shells on the sea-shore"; 
int i, j;
i = str.FirstIndexOf("s"); 
j = str.IndexOf("s", i + 1);

C.

String str = "She sells sea shells on the sea-shore"; 
int i, j;
i = str.IndexOf("s"); 
j = str.IndexOf("s", i + 1);

D.

String str = "She sells sea shells on the sea-shore"; 
int i, j;
i = str.LastIndexOf("s"); 
j = str.IndexOf("s", i - 1);

E.

String str = "She sells sea shells on the sea-shore"; 
int i, j;
i = str.IndexOf("S"); 
j = str.IndexOf("s", i);
Answer
C

【C#-題庫】陣列 (Arrays)

1.  底下何者對下面的程式片段說法正確?

int[ , ] intMyArr = {{7, 1, 3}, {2, 9, 6}};
  1. intMyArr 表示一個2列和3行的規則陣列。
  2. intMyArr.GetUpperBound(1) 會得到2。
  3. intMyArr.Length 會得到24。
  4. intMyArr 表示一個5個整數的1維陣列。
  5. intMyArr.GetUpperBound(0) 會得到2.

A. 1, 2
B. 2, 3
C. 2, 5
D. 1, 4
E. 3, 4

Answer
A

解說:

1. Array.GetUpperBound 方法 : 取得 Array 中指定維度的陣列索引的上限。

2. Array.Length 屬性 : 取得代表 Array 所有維度的元素總數之 32 位元整數。

2. 底下何者對下面的程式片段說法正確?

int[] a = {11, 3, 5, 9, 4};
  1. 此陣列元素是建立在堆疊(stack)之上。
  2. 陣列的參考a是建立在堆疊(stack)之上。
  3. 此陣列元素是建立在堆積(heap)之上。
  4. 在宣告該陣列時,一個新的陣列被建立出來,而此新陣列是繼承自System.Array類別。
  5.  該陣列元素是依據其陣列的大小來決定建立於堆疊或堆積之上。

A. 1, 2
B. 2, 3, 4
C. 2, 3, 5
D. 4, 5
E. None of these

Answer
B

3. 底下何者敘述正確?

A. 陣列元素僅能是整數型態。
B. 一個陣列的維度是其所擁有元素的數量。
C. 一個陣列的長度是該陣列的維度數。
D. 陣列元素的預設值為0(零)。
E. 陣列元素是排序過的。

Answer
D

4.  如果a是一個5個整數的陣列,底下何者敘述正確?

A.

int[] a = new int[5]; 
int[] a = new int[10];

B.

int[] a = int[5]; 
int[] a = int[10];

C.

int[] a = new int[5]; 
a.Length = 10 ;

D.

int[] a = new int[5]; 
a = new int[10];

E.

int[] a = new int[5]; 
a.GetUpperBound(10);
Answer
D

5. 如果要正確地印出陣列a的所有元素,你要如何完成下面的程式?

int[][]a = new int[2][];
a[0] = new int[4]{6, 1 ,4, 3};
a[1] = new int[3]{9, 2, 7}; 
foreach (int[ ] i in a)
    {
      /* Add loop here */
      Console.Write(j + " ");
      Console.WriteLine(); 
    }

A. foreach (int j = 1; j < a(0).GetUpperBound; j++)
B. foreach (int j = 1; j < a.GetUpperBound (0); j++)
C. foreach (int j in a.Length)
D. foreach (int j in i)
E. foreach (int j in a.Length -1)

Answer
D

6. 底下程式片段輸出為何?

int[ , , ] a = new int[ 3, 2, 3 ]; 
Console.WriteLine(a.Length);

A. 20
B. 4
C. 18
D. 10
E. 5

Answer
C

7. 下列何者對陣列的說法為正確?

  1. Arrays can be rectangular or jagged. 陣列可以是規則的,也可以是不規則的。
  2. 規則陣列被儲存在緊鄰的記憶體空間中。
  3. 不規則陣列不可以存取System.Array類別的方法。
  4. 規則陣列不可以存取System.Array類別的方法。
  5. 不規則陣列儲存在非緊鄰的記憶體空間中。

A. 1, 2
B. 1, 3, 5
C. 3, 4
D. 1, 2, 5
E. 4, 5

Answer
D

8.  底下何者對下面的程式片段說法正確?

int[][]intMyArr = new int[2][]; 
intMyArr[0] = new int[4]{6, 1, 4, 3}; 
intMyArr[1] = new int[3]{9, 2, 7};

A. intMyArr 為一個指向一個2維不規則陣列的參考。
B. intMyArr指向的不規則陣列的2個列被儲存在緊鄰的記憶體空間中。
C. intMyArr[0] 指向第0個1維陣列,intMyArr[1]指向第1個1維陣列。
D. intMyArr 指向intMyArr[0] 和intMyArr[1].
E. intMyArr 指向intMyArr[1] 和intMyArr[2].

Answer
C

9. 那一個是正確的方式來定義一個2列和3行的陣列?

  1. int[ , ] a;
    a = new int[2, 3]{{7, 1, 3},{2, 9, 6}};
  2. int[ , ] a;
    a = new int[2, 3]{};
  3. int[ , ] a = {{7, 1, 3}, {2, 9,6 }};
  4. int[ , ] a;
    a = new int[1, 2];
  5. int[ , ] a;
    a = new int[1, 2]{{7, 1, 3}, {2, 9, 6}};

A. 1, 2 , 3
B. 1, 3
C. 2, 3
D. 2, 4, 5
E. 4, 5

Answer
B

10.  對底下的陣列宣告何者敘述正確?

int[][][] intMyArr = new int[2][][];

A. intMyArr 指向1個2維的2列不規則陣列。
B. intMyArr指向1個2維的3列不規則陣列。
C. intMyArr指向1個3維不規則陣列,其中包含了2個2維不規則陣列。
D. intMyArr指向1個3維不規則陣列,其中包含了3個2維不規則陣列。
E. intMyArr指向1個3維不規則陣列,其中包含了2個2維規則陣列。

Answer
C

11. 對底下的陣列宣告何者敘述正確?

int[] intMyArr = {11, 3, 5, 9, 4};

A. intMyArr為一個指向System.Array類別物件的參考。
B. intMyArr為一個指向繼承自System.Array類別的物件的參考。
C. intMyArr為一個指向整數陣列的參考。
D. intMyArr為一個指向在堆疊中的物件參考。
E. intMyArr為一個指向建立在堆疊中的陣列參考。

Answer
B

12. 下面那個程式片段能夠正確地定義(define)並初始化(initialize )一個陣列的4個整數?

  1. int[] a = {25, 30, 40, 5};
  2. int[] a;
    a = new int[3];
    a[0] = 25;
    a[1] = 30;
    a[2] = 40;
    a[3] = 5;
  3. int[] a;
    a = new int{25, 30, 40, 5};
  4. int[] a;
    a = new int[4]{25, 30, 40, 5};
  5. int[] a;
    a = new int[4];
    a[0] = 25;
    a[1] = 30;
    a[2] = 40;
    a[3] = 5;

A. 1, 2
B. 3, 4
C. 1, 4, 5
D. 2, 4, 5
E. 2, 5

Answer
C

13. 底下程式片段的輸出為何?

    int[][] a = new int[2][];
    a[0] = new int[4]{6, 1, 4, 3};
    a[1] = new int[3]{9, 2, 7}; 
    Console.WriteLine(a[1].GetUpperBound(0));

A. 3
B. 4
C. 7
D. 9
E. 2

Answer
E

14. 那一個敘述能夠正確地取得底下陣列的元素數量?

int[] intMyArr = {25, 30, 45, 15, 60};
  1. intMyArr.GetMax;
  2. intMyArr.Highest(0);
  3. intMyArr.GetUpperBound(0);
  4. intMyArr.Length;
  5. intMyArr.GetMaxElements(0);

A. 1, 2
B. 3, 4
C. 3, 5
D. 1, 5
E. 4, 5

Answer
B

15. 底下程式片段的輸出為何?

namespace IndiabixConsoleApplication
{
    class SampleProgram
    {
        static void Main(string[ ] args)
        {
            int i, j;
            int[ , ] arr = new int[ 2, 2 ];
            for(i = 0; i < 2; ++i)
            {
                for(j = 0; j < 2; ++j)
                {
                    arr[i, j] = i * 17 + i * 17;
                    Console.Write(arr[ i, j ] + " ");
                }
            }
        }
    }
}

A. 0 0 34 34
B. 0 0 17 17
C. 0 0 0 0
D. 17 17 0 0
E. 34 34 0 0

Answer
A

54 Helpful Infographics to Guide You Through Website Building Process | (Web)Design inspiration

‘How to build a website on my own?”Where to start and how to know when everything is done?’ – These are questions that many users have

來源: 54 Helpful Infographics to Guide You Through Website Building Process | (Web)Design inspiration

【資料結構】佇列(Queue)介紹與使用

生活中的各種佇列

系統 客戶 服務者
接待櫃台 一般人員 接待人員
購票櫃台(高鐵、台鐵、戲院…) 購票者 售票服務人員
醫院 病患 護理師
機場 飛機 飛機跑道
道路網 汽車 交通號誌燈
超市、攤販 購買者 結帳櫃台
電腦 工作 CPU, disk, printer

Queue的種類

  • Multiple queues, multiple servers,台鐵售票、量販店/統聯結帳櫃台
  • Single queue, multiple servers,高鐵售票、
  • Single queue, single server, 小型商店、攤販…
  • Priority queues

C# Queue類別

C# System.Collection 命名空間裏提供了一個Queue類別,實現在佇列先進行出的概念(FIFO,First In First Out),和堆疊Stack 的操作(後進先出)完全不一樣。Queue類別也是一個有序集合物件。

Queue集合類別允許多個null/空值,且允許重複的值,提供Enqueue() 方法來加入值到Queue集合物件中,Dequeue() 方法從Queue集合物件中取出資料。

 

120116_0009_Queue1.png

 

Queue重要的屬性與方法

方法 或 屬性 用途
Count 傳回Queue集合物件中的元素數量
Enqueue 加入一個項目到queue中
Dequeue 從queue的前端取出一個項目並刪除該項目
Peek 從queue的前端取出一個項目(不刪除該項目)
Contains 檢查queue是否包含某一個特定項目
Clear 清除queue所有的項目
TrimToSize 調整queue的大小到實際儲存項目的大小

加入項目到 Queue中:

Queue 是一個非泛型的集合(non-generic collection),你可以使用Enqueue()方法加入任何資料形態的元素到queue中。
Enqueue() 簽名: void Enqueue(object obj)

Enqueue()範例

Queue queue = new Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);

存取Queue:

Dequeue() 方法從queue的前端取出一個項目並刪除該項目。
Dequeue() method signature: object Dequeue()

Dequeue()範例

Queue queue = new Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);
while (queue.Count > 0) Console.WriteLine(queue.Dequeue());
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);

輸出:
Queue中的元素數量: 4
3
2
1
Four
Queue中的元素數量: 0

Peek():

從queue的前端取出一個項目(不刪除該項目),在一個空的queue喚用Peek() 和 Dequeue() 方法會導至一個執行時期的例外, “InvalidOperationException”.
Peek() 方法 Signature: object Peek();

Peek()範例:

Queue queue = new Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);
Console.WriteLine(queue.Peek());
Console.WriteLine(queue.Peek());
Console.WriteLine(queue.Peek());
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);

輸出:
Queue中的元素數量: 4
3
3
3
Queue中的元素數量: 4

 

如果你想走訪queue中的每一個元素,又不想刪去其中的元素,可以將queue轉換為一個陣列:

走訪Queue範例:

Queue queue = new
Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);
foreach (var i in queue.ToArray())
Console.WriteLine(i);
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);

輸出:

Queue中的元素數量: 4
3
2
1
Four
Queue中的元素數量: 4

  • Contains方法

Contains()方法檢查queue是否包含某一個特定項目,有的話方法回傳true,沒有的話回傳false。
Contains() Signature: bool Contains(object obj);

Contains範例

Queue queue = new
Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);
queue.Contains(2); // true
queue.Contains(100); //false

  • Clear()方法:

Clear()方法清除queue所有的項目。
Clear() Signature: void Clear();

Clear()範例:

Queue queue = new
Queue();
queue.Enqueue(3);
queue.Enqueue(2);
queue.Enqueue(1);
queue.Enqueue(“Four”);
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);
queue.Clear();
Console.WriteLine(“Queue中的元素數量: {0}”, queue.Count);

輸出:
Queue中的元素數量: 4
Queue中的元素數量: 0

使用Queue類別的佇列建立操作示範:

using System;
using System.Collections;
class Program
{
    static void Main(string[] args)
    {
        //建立一個看診佇列
        Queue myQ = new Queue();
        myQ.Enqueue("張三");//新增人員到看診佇列,也就是加入排隊…
        myQ.Enqueue("李四");
        myQ.Enqueue("王五");
        myQ.Enqueue("馬六");

        // 列印看診佇列的數量和值
        Console.WriteLine("候診的人數:    {0}", myQ.Count);

        // 列印看診佇列中的所有值
        Console.Write("目前候診的名單:");
        PrintValues(myQ);

        // 列印佇列中的第一個元素,並移除
        Console.WriteLine("進入診間的人:\t{0}", myQ.Dequeue());

        // 加入看診佇列
        Console.WriteLine("蘇小小加入等待看診排隊…");

        myQ.Enqueue("蘇小小");

        // 列印看診佇列中的所有值
        Console.Write("目前候診的名單:");
        PrintValues(myQ);

        // 列印看診佇列中的第一個元素,並移除
        Console.WriteLine("進入診間的人:\t{0}", myQ.Dequeue());

        // 列印看診佇列中的所有值
        Console.Write("目前候診的名單:");
        PrintValues(myQ);

        // 列印看診佇列中的第一個元素
        Console.WriteLine("下一個要進入診間的人(查詢):   \t{0}", myQ.Peek());

        // 列印看診佇列中的所有值
        Console.Write("目前候診的名單:");
        PrintValues(myQ);

        Console.ReadLine();

    }

    public static void PrintValues(IEnumerable myCollection)
    {
        foreach (Object obj in myCollection)
            Console.Write("    {0}", obj);
        Console.WriteLine();
    }
}

/* 程式的輸出
候診的人數:    4
目前候診的名單:    張三    李四    王五    馬六
進入診間的人:  張三
蘇小小加入等待看診排隊…
目前候診的名單:    李四    王五    馬六    蘇小小
進入診間的人:  李四
目前候診的名單:    王五    馬六    蘇小小
下一個要進入診間的人(查詢):    王五
目前候診的名單:    王五    馬六    蘇小小
*/

 

【佇列影音教學 on youtube】

成功人士的七個習慣 – 史蒂芬・柯维

成功人士的七個習慣 – 史蒂芬・柯维

成功人士的七個習慣 – 史蒂芬・柯维

Habit 1 Be Proactive 主動積極訂定自己的願景和目標,為自己的選擇和決定負起責任。
Habit 2 Begin with the end in mind 以終為始,對於自己立下的願景和目標,始終堅持,毫不退縮,努力實現,不達目標,絕不中止。
Habit 3 Put First Things First 要事第一,最重要的事先做。
Habit 4 Think Win/Win 雙贏思維,人與人相處建立在互尊和互利基礎上,不是彼此競爭與對抗。
Habit 5 Seek First To Understand, Then To Be Understood 善用傾聽與溝通技巧了解別人然後設法使自己被了解。
Habit 6 Synergize 協同綜效,兩個人或多人以上的意見/解決方案能達到統合效果。
Habit 7 Sharpen The Saw 時刻磨劍,日益精進,強化自身能力,建立持續更新習慣,有助於其他六個習慣的完成。







【程式設計-C#】九九乘法表

【程式設計-C#】九九乘法表

【程式設計-C#】九九乘法表

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 九九乘法表
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string output = ""; //用來儲存要輸出的資料
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= 9; j++)
                {
                    output += "" + i + "*" + j + "=" + (i * j).ToString().PadLeft(2, ' ') + " ";
                }
                output += "\r\n"; //每印完一列,進行跳行(r:return, n:new line)
            }
            label1.Text = output; //將output內容輸出到label1上
        }
    }
}

9x9flow

8年賺進16億:操盤手的不敗投資術(8年賺進16億:操盤手的) – 財經好讀 – 致富故事 – 致富故事 – 商周財富網 – 商業周刊

「每個人一輩子有兩杯水要喝,一杯是苦的,一杯是甜的。我很高興,你在年輕時,就先喝到苦的那一杯。」15

來源: 8年賺進16億:操盤手的不敗投資術(8年賺進16億:操盤手的) – 財經好讀 – 致富故事 – 致富故事 – 商周財富網 – 商業周刊