【資料結構-題庫】資料結構導論

1.欲將「資料」轉換成「資訊」,則必須要經過一連串處理過程,而這一連串的處理過程,就俗稱為什麼呢?

(A)流程再造

(B)資料處理

(C)資訊整合

(D)資料結構

Answer
B

2.某一公司的老闆要做某一項決策時,下列那一項對他最有幫助:

(A)事實的記錄

(B)具體的記錄

(C)資料

(D)資訊

Answer
D

3. 資料結構的種類通常不包含下列何者?

(A)模組(Module)

(B)佇列(Queue)

(C)圖形(Graph)

(D)陣列(Array)

Answer
A

4.下列何者不是一種資料結構(Data Structure)?

(A)佇列(Queue)

(B)堆疊(Stack)

(C)資料庫(Database)

(D)鏈結串列(Linked List)

Answer
C

5.用來描述處理問題的方法與步驟稱之為?

(A)資料結構

(B)演算法

(C)程式語言

(D)作業系統

Answer
B

6. 關於演算法的述敘,下列何者正確?

(A)步驟愈多愈可以解決問題

(B)較少的步驟來解決問題

(C)文字敘述方式優於流程圖

(D)文字敘述方式優於虛擬碼

Answer
B

7.下列有關演算法的敘述,何者有誤?

(A)不一定要有輸入

(B)只有一個輸出

(C)程序明確可行

(D)強調正確性。

Answer
B

8.演算法所具備的條件中,何者是指演算法必須在有限步驟內結束?

(A) 正確性

(B) 明確性

(C) 有限性

(D) 輸入資料

Answer
C

9. 完整的演算法包括?

(A)明確的輸入資料

(B)詳細且有限的執行步驟

(C)明確的輸出資料

(D)以上皆是

Answer
D

9.電腦程式演算法不需滿足以下何條件?

(A)一定要有輸入

(B)一定要有輸出

(C)一定要能在有限的步驟內執行完成

(D)演算法中各指令的意義都必須是明確不模糊的

Answer
A

10.下列何者不是演算法的特性?

(A) 正確性

(B) 明確性

(C) 有限性

(D) 快速性

Answer
D

11.在流程圖中符號”◇”表示何種意義?

(A)輸出

(B)處理

(C)判斷

(D)開始

Answer
C

12.在流程圖中符號”□”表示何種意義?

(A)輸出

(B)處理

(C)判斷

(D)開始

Answer
B

13.描述演算法有三種方法,下列那一種不是?

(A)文字敘述

(B)流程圖

(C)虛擬碼

(D)知識地圖

Answer
D

14.下列那一種演算法是在文字摻雜程式語言,以描述解題步驟與方法?

(A)虛擬碼(Pseudo Code)

(B)文字描述

(C)流程圖

(D)以上皆非

Answer
A

15.下列撰寫程式步驟何者是正確的?

(A) 需求、演算法、偵錯、程式碼、可執行

(B) 演算法、需求、程式碼、偵錯、可執行

(C) 需求、演算法、程式碼、偵錯、可執行

(D) 程式碼、偵錯、演算法、需求、可執行

Answer
C

16.請問程式設計師在撰寫程式步驟中,在那一個階段就必須要選擇適當的程式語言呢?

(A)第一階段

(B)第二階段

(C)第三階段

(D)第四階段

Answer
C

17.下列對於演算法與程式的差異何者是正確的?

(A)演算法可執行無限迴路

(B)程式可執行無限迴路

(C)程式與演算法皆具有「有限性」

(D)以上皆非

Answer
B

18.下列對於演算法的敘述何者錯誤?

(A) 強調「可讀性」

(B) 以「電腦」為主

(C) 以「人」為主

(D) 可利用虛擬碼來說明

Answer
B

19.下列有關撰寫程式的目的何者正確?

(A)展現能力與技巧

(B)解決複雜問題

(C)解決容易的題目

(D)解決無解的問題

Answer
B

20.你認為人腦與電腦最大的差異為何?

(A)人腦較能處理重複性的問題

(B)人腦與電腦都不能處理重複性的問題

(C)電腦較能處理重複性的問題

(D)以上皆是

Answer
C

21. 請決定下列迴圈中指定敘述(sum = sum + 1;)執行的次數。

for (int i = 0 ;  i <= n ;  i++)
           sum = sum + 1;           //次數=終值-初值+1=n-0+1=n+1

(A) 1  (B) n-1  (C) n  (D) n+1

Answer
D

22.請決定下列迴圈中指定敘述(sum = sum + 1;)執行的次數。

    for ( i = 1; i < n ; i ++)
        for ( j = 1 ; j < n ; j++)           
            sum = sum + 1 ;

(A) n (n-1)  (B) n (n+1)  (C) (n-1)2  (D) n2

Answer
C

23.下列何者是用來評估一個好程式的條件?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆是

Answer
D

24.下列何者是一個好程式最基本的要求?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆非

Answer
A

25.有關「頻率次數(Frequency Count)」的敘述,下列何者正確?

(A)頻率次數愈低,代表執行時間愈長

(B)頻率次數愈高,代表執行時間愈長

(C)頻率次數愈高,代表執行時間愈低

(D)以上皆非

Answer
B

26.在撰寫程式時,適時的加入「註解」,此技巧是屬於評估一個好程式的那一個條件?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆是

Answer
C

27.一個好的程式,不只需要有效率地被正確地執行之外,也必須要考慮那些要素呢?

(A)程式的可讀性

(B)程式的未來修改

(C)程式的擴充性

(D)以上皆是

Answer
D

28.下列何者不是程式可維護性的要素之一?

(A)結構化程式設計

(B)縮排

(C)註解

(D)版權聲明

Answer
D

29.有關好程式的敘述何者有誤?

(A)程式要小

(B)段落分明

(C)達到系統功能

(D)易懂易維護

Answer
A

30.在結構化程式設計中,將程式分解成多個具有獨立功能的模組,它是利用那一種技巧?

(A)由上而下

(B)由下而上

(C)由外而內

(D)由內而外

Answer
A

 31.結構化程式設計所提供的三種結構,下列何者不是?

(A)排序

(B)重複

(C)選擇

(D)循序

Answer
A

32.在結構化程式設計中,盡量少用那一種技巧?

(A)循序

(B)重複

(C)選擇

(D)Goto

Answer
D

33.下列何者非結構化程式設計的特性?

(A)藕合性強

(B)內聚力強

(C)少用Goto

(D)由上而下設計

Answer
A

34.何者不是結構化程式語言的基本控制結構

(A)跳躍

(B)循序

(C)決策分支

(D)迴圈

Answer
A

35.在下列的情況中,那一種情況不會使用到循序結構呢?

(A)計算攝氏與華氏

(B)判斷奇數或偶數

(C)計算平均成績

(D)計算總和

Answer
B
 

36.在下列的情況中,那一種情況會使用到選擇結構呢?

(A)計算攝氏與華氏

(B)判斷同意或不同意

(C)計算平均成績

(D)計算總和

Answer
B
 

37.在下列的情況中,那一種情況較不適合使用重複結構呢?

(A)計算全班50位同學成績

(B)計算2位同學成績

(C)九九乘法表

(D)次數固定的題目

Answer
B

38.下列何者不是用來評估一個演算法的效率方式?

(A)時間複雜度

(B)空間複雜度

(C)時間與空間複雜度

(D)配置複雜度

Answer
D

39.為何在評估「時間複雜度」時,往往只考慮到執行的次數呢?

(A)評估撰寫的演算法比較不客觀

(B)評估機器的CPU執行速度比較不客觀

(C)評估記憶體的容量比較不客觀

(D)以上皆非

Answer
B

40.主程式呼叫副程式時,往往會佔用到記憶體空間,請問在進行演算法的效率評估時,是屬於那一種評估方法?

(A)時間複雜度

(B)空間複雜度

(C)時間與空間複雜度

(D)配置複雜度

Answer
B

41.下列時間複雜度(Time Complexity) 何者的時間最少?

(A) O (n!)

(B) O (nlog2n)

(C) O (n)

(D) O (log2 n)

Answer
D

42.下列複雜度 1.O(n2)  2. O(n)  3. O(n log2 n )  4.O(log2 n)  5.O(2n),依序由小到大為:

(A) 12345

(B) 42315

(C) 34215

(D) 42351

Answer
B

43.若一程式的執行時間是 60n2+20nlgn,則時間複雜度為何?
(A) O(60n2)

(B) O(nlog2n)

(C) O(n2)

(D) O(20nlog2n)

Answer
C

44.如果一個程式的時間複雜度為O(N2) ,其中N為輸入資料量, 則當資料量增加為原來的100倍時, 計算的時間增加為原來的幾倍?

(A) 10

(B) 102

(C) 103

(D) 104

Answer
D

45.時間複雜度O(N2)、O(N log2N)、O(N3)、O(2N) ,何者效率最佳?

(A) O(N2)

(B)O(N log2N)

(C)O(N3)

(D)O(2N)

Answer
B

46.計算下面程式的時間複雜度(請使用Big-O表示)

for(i=0; i < n; ++i) Console.WriteLine(“{0}”, i);

(A) O (n!)

(B) O (nlog2n)

(C) O (n)

(D) O (log2 n)

Answer
C

47.如果一個程式的頻率計數為3n3 +6n2 + 4n + 9,則時間複雜度為何?

(A) O(n)

(B) O(1)

(C) O(n2)

(D) O(n3)

Answer
D

48.時間複雜度O(n2)、O(nlogn)、O(n!)、O(2n),那一個最沒有效率?

(A) O(n2)

(B) O(nlogn)

(C) O(n!)

(D) O(2n)

Answer
C

49.時間複雜度O(n2)、O(nlogn)、O(n!)、O(2n),那一個最有效率?

(A) O(n2)

(B) O(nlogn)

(C) O(n!)

(D) O(2n)

Answer
B

50.若兩個矩陣大小均為n × n,則此二個矩陣相加的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
B

51.若矩陣大小為n × n,則此矩陣轉置的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
B

52.若兩個矩陣大小均為n × n,則此二個矩陣相乘的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer

D
矩陣相乘的程式碼:

#include <iostream>  

void MultiplyWithOutAMP() {  

    int aMatrix[3][2] = {{1, 4}, {2, 5}, {3, 6}};  
    int bMatrix[2][3] = {{7, 8, 9}, {10, 11, 12}};  
    int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};  

    for (int row = 0; row < 3; row++) {  
        for (int col = 0; col < 3; col++) {  
            // Multiply the row of A by the column of B to get the row, column of product.  
            for (int inner = 0; inner < 2; inner++) {  
                product[row][col] += aMatrix[row][inner] * bMatrix[inner][col];  
            }  
            std::cout << product[row][col] << "  ";  
        }  
        std::cout << "\n";  
    }  
}  

void main() {  
    MultiplyWithOutAMP();  
    getchar();  
}

 

53.若有一個矩陣大小均為n,此矩陣內的元素相加的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
A

54.程式本身的指令空間是屬於空間複雜度的那一個需求?

(A)固定的空間需求

(B)變動空間需求

(C)立體空間需求

(D)時間空間需求

Answer
A

55.遞迴函數執行是屬於空間複雜度的那一個需求?

(A)固定的空間需求

(B)變動空間需求

(C)立體空間需求

(D)時間空間需求

Answer
B

【C#-題庫】運算子 Operator

1.以下何者能夠正確地將一個變數加1?

  1. ++a++;
  2. a += 1;
  3. a ++ 1;
  4. a = a +1;
  5. a = +1;

A. 1, 3
B. 2, 4
C. 3, 5
D. 4, 5
E. None of these (以上皆非)

Answer
B

2. 底下程式碼的輸出為何?

byte b1 = 0xF7;
byte b2 = 0xAB;
byte temp;
temp = (byte)(b1 & b2);
Console.Write (temp + " ");
temp = (byte)(b1^b2);
Console.WriteLine(temp);

A. 163 92
B. 92 163
C. 192 63
D. 0 1

Answer
A

3. 下列何者不是數值運算子?
A. **
B. +
C. /
D. %
E. *

Answer
A

4. 以下何者不是關係運算子?

  1. >=
  2. !=
  3. Not
  4. <=
  5. <>=

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

Answer
C

5. 以下何者不是逐位元(Bitwise)運算子?

A. &
B. |
C. <<
D. ^
E. ~

Answer
C

6. 何者對底下程式的敘述正確?

int d;
d = Convert.ToInt32( !(30 < 20) );

A.  0會被指定給d。
B.  1會被指定給d。
C.  -1會被指定小d。
D. 程式有錯誤。
E.  若!被換成Not的話,上面程式就會正常運作。

Answer

B

範例程式:

bool falseFlag = false;
bool trueFlag = true;

Console.WriteLine("{0} converts to {1}.", falseFlag,
Convert.ToInt32(falseFlag));
Console.WriteLine("{0} converts to {1}.", trueFlag,
Convert.ToInt32(trueFlag));

範別輸出:

False converts to 0.
True converts to 1.

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

Console.WriteLine(13 / 2 + " " + 13 % 2);

A. 6.5 1
B. 6.5 0
C. 6 0
D. 6 1
E. 6.5 6.5

Answer
D

 

8. 以下何者是邏輯(Logical)運算子?

  1. &&
  2. ||
  3. !
  4. Xor
  5. %

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

Answer
A

9. 設n是一個Byte型態的變數,我們想要檢查n的第4個位元(從右邊算起)是0(OFF)還是1(ON)的話,要如何做?
A.

if ((n&16) == 16)
Console.WriteLine("Fourth bit is ON");

B.

if ((n&8) == 8)
Console.WriteLine("Fourth bit is ON");

C.

if ((n ! 8) == 8)
Console.WriteLine("Fourth bit is ON");

D.

if ((n ^ 8) == 8)
Console.WriteLine("Fourth bit is ON");

E.

if ((n ~ 8) == 8)
Console. WriteLine("Fourth bit is ON");
Answer

B
byte myByte = 153; // 字元表示 為 10011001

byte n = 8; // In 字元表示為  00001000
(1是從右邊算過來的第4個位元)

進行邏輯AND 運算(n & myByte)

10011001
00001000
————-
00001000 此值非0,因此評估為true。
———
因為結果為true,可以判斷myByte第4個位元是ON。

10. 底下程式碼的輸出為何?

int num = 1, z = 5;

if (!(num <= 0))
Console.WriteLine( ++num + z++ + " " + ++z );
else
Console.WriteLine( --num + z-- + " " + --z );

A. 5 6
B. 6 5
C. 6 6
D. 7 7

Answer
D

11. 設n是Byte字元型態,我們若想對其第4個位元關閉的話(設為0),且要不影響到其他的位元,要如何做?
A. n = n && HF7
B. n = n & 16
C. n = n & 0xF7
D. n = n & HexF7
E. n = n & 8

Answer
C

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

byte b1 = 0xAB;
byte b2 = 0x99;
byte temp;
temp = (byte)~b2;
Console.Write(temp + " ");
temp = (byte)(b1 << b2);
Console.Write (temp + " ");
temp = (byte) (b2 >> 2);
Console.WriteLine(temp);

A. 102 1 38
B. 108 0 32
C. 102 0 38
D. 1 0 1

Answer
C

13. 以下何者不是指定運算子?
A. \=
B. /=
C. *=
D. +=
E. %=

Answer
A

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

int i, j = 1, k;
for (i = 0; i < 5; i++)
{
  k = j++ + ++j;
  Console.Write(k + " ");
}

A. 8 4 16 12 20
B. 4 8 12 16 20
C. 4 8 16 32 64
D. 2 4 6 8 10

Answer
B

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

int a = 10, b = 20, c = 30;
int res = a < b ? a < c ? c : a : b;
Console.WriteLine(res);

A. 10
B. 20
C. 30
D. Compile Error / Syntax Error

Answer
C

14. 關於底下程式的描述何者正確?

int a = 10;
int b = 20;
bool c;
c = !(a > b);
  1. 程式沒有錯誤。
  2. 一個錯誤會發生,因為!僅能使用在int上。
  3. 1會指定給變數c。
  4. true會指定給變數c。
  5. false會指定給變數c。

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

Answer
D

 

【C#-題庫】資料型態

1.以下那一個關於資料型態的敘述是正確的??

  1. 如果整數文字(指寫在程式裏的整數文字)超出其範圍時,會產生編譯錯誤。
  2. 我們不可以隱含地將較大的數值放到一個較小的數值型態。
  3. Byte型態不可以隱含地轉換成float型態。
  4. 一個字元僅可以被隱含地轉換成int資料型態。
  5. 我們可以轉換整數的型態。

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

Answer
D

2.何者是一個8位元組的整數?
A. Char
B. Long
C. Short
D. Byte
E. Integer

Answer
B

3.何者不是一個整數(Integer)?
A. Char
B. Byte
C. Integer
D. Short
E. Long

Answer
A

4. 下列何者敘述正確?
A. 在進行縮小化的轉換時,資訊不會遺失。
B. CInteger()被用來轉換一個Single到Integer。
C. Widening conversions take place automatically. 擴展轉換是自動發生的。
D. 指定一個Integer到一個Object型態是所熟知的Unboxing(拆箱)。
E. 3.14 能以 3.14F的形式當成一個 Decimal 型態。

Answer
C

5. 以下何者是數值型態?
1.Integer
2.Array
3.Single
4.String
5.Long
A. 1, 2, 5
B. 1, 3, 5
C. 2, 4
D. 3, 5

Answer
B

6. 下列何者不儲存正負號?
A. Short
B. Integer
C. Long
D. Byte
E. Single

Answer
D

7. Decimal的大小?
A. 4 byte
B. 8 byte
C. 16 byte
D. 32 byte

Answer
C

8. 當底下的程式碼執行時,輸出為?

int x = 1;
float y = 1.1f;
short z = 1;
Console.WriteLine((float) x + y * z - (x += (short) y));

A. 0.1
B. 1.0
C. 1.1
D. 11

Answer
A

9. 對於下面的程式,那一個敘述是正確的?

short s1 = 20;
short s2 = 400;
int a;
a = s1 * s2;

A.  一個8000的數值將指定給a。
B. 一個負值將指定給a。
C. 在進行數值的運算時,如果結果超出了範圍,那麼結果超出範圍的部份將會被消去。
D. 進行擴展轉換時不會發生任何的錯誤。
E. 由於相乘的結果超出了一個Short整數範圍,會發生一個溢位的錯誤。

Answer
A

10. Decimal 資料型態的正確大小?
A. 8 Bytes
B. 4 Bytes
C. 10 Bytes
D. 16 Bytes
E. None of the above.

Answer
D

11.以下那一個敘述是正確的??

  1. 我們可以指定任何型態的值給object型態的變數。
  2. 當一個數值型態的變數被轉換成object型態,稱之為拆箱(unboxed)。
  3. 當一個object型態的變數被轉換為數值型態時,稱之為裝箱(boxed)。
  4. 布林Boolean 變數不可以為null。
  5. 當一個數值變數被裝箱時,一個全新的object必須被配置且建置。

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

Answer
B

12. 下列何者是正確的方式來設定 3.14給變數pi,使得該變數的值不會被修改?
A. float pi = 3.14F;
B. #define pi 3.14F;
C. const float pi = 3.14F;
D. const float pi; pi = 3.14F;
E. pi = 3.14F;

Answer
C

 

14.

以下何者正確地對i與j變數初始化為10?

1 int i = 10; int j = 10;
2 int i, j;
i = 10 : j = 10;
3 int i = 10, j = 10;
4 int i, j = 10;
5 int i = j = 10;
A. 2, 4
B. 1, 3
C. 3, 5
D. 4, 5

Answer
B

14. 以下何者正確地指定33給變數c?
byte a = 11, b = 22, c;
A. c = (byte) (a + b);
B. c = (byte) a + (byte) b;
C. c = (int) a + (int) b;
D. c = (int)(a + b);
E. c = a + b;

Answer
A

15. 以下何者是Boolean 的預設值?
A. 0
B. 1
C. True
D. False
E. -1

Answer
D

【程式設計-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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double D = Convert.ToDouble(textBox1.Text); //將輸入的度數字串轉成浮點數double
            double MS = 0, MW = 0; //MS夏日電費, MW非夏日電費;
            int L120 = 120, L330 = 330, L500 = 500, L700 = 700, L1000 = 1000;
            double s163 = 1.63, s238 = 2.38, s352 = 3.52, s461 = 4.61, s542 = 5.42, s613 = 6.13; //夏日費率
            double w163 = 1.63, w210 = 2.10, w289 = 2.89, w379 = 3.79, w442 = 4.42, w483 = 4.83; //非夏日費率

            //計算夏日電費
            if (D <= L120) MS = D * s163;
            else if (D <= L330)  MS = L120 * s163 + (D - L120) * s238 ;
            else if (D <= L500)  MS = L120 * s163 + (L330 - L120) * s238 + (D - L330) * s352;
            else if (D <= L700)  MS = L120 * s163 + (L330 - L120) * s238 + (L500 - L330) * s352 + (D - L500) * s461;
            else if (D <= L1000) MS = L120 * s163 + (L330 - L120) * s238 + (L500 - L330) * s352 + (L700 - L500) * s461 + (D - L700) * s542; 
            else                 MS = L120 * s163 + (L330 - L120) * s238 + (L500 - L330) * s352 + (L700 - L500) * s461 + (L700 - L1000) * s542 + (D - L1000) * s613; ;

            //計算非夏日電費
            if (D <= L120) MW = D * w163;
            else if (D <= L330) MW = L120 * w163 + (D - L120) * w210;
            else if (D <= L500) MW = L120 * w163 + (L330 - L120) * w210 + (D - L330) * w289;
            else if (D <= L700) MW = L120 * w163 + (L330 - L120) * w210 + (L500 - L330) * w289 + (D - L500) * w379;
            else if (D <= L1000) MW = L120 * w163 + (L330 - L120) * w210 + (L500 - L330) * w289 + (L700 - L500) * w379 + (D - L700) * w442;
            else MW = L120 * w163 + (L330 - L120) * w210 + (L500 - L330) * w289 + (L700 - L500) * w379 + (L700 - L1000) * w442 + (D - L1000) * w483; ;

            if (radioButton1.Checked) label4.Text = MS.ToString();
            else label4.Text = MW.ToString();
        }

        private void S2NS(object sender, EventArgs e) //2個RadioBuuton 的 共同 Click事件函式
        {
            RadioButton rb = (RadioButton)sender;
            if (rb.Checked) button1_Click(rb, e);
        }
    }
}

 

【程式設計-C#】將字串轉換為數值 Parse (Convert) & TryParse

從視窗文字方塊取得的輸入,雖然”看”起來是數值,本質是字串,需要進一步地將輸入的字串轉換成對應的數值型態,才能進行數值型態的運算(例:加減乘除等…)

 

Parse方法:

在C#中,每個基本資料型態(char, byte, short, int, long, float, double等)都會對應一個類別型態(Char, Byte, Short, Int32, Long, Float, Double等),提供該數值型態的方法,其中Parse方法是將傳入的字串轉成對應的數值,Parse或Convert方法在轉換字串時,發生問題會產生例外,例如有小數點的字串數值轉換成整數就會發生格式錯誤的例外,此時,你最好寫一個catch補捉例外的區塊,對產生的例外加以處理。

TryParse執行和Parse一樣的功能,不過TryParse發生錯誤時不會拋出例外,回傳一個布林值,成功回傳true,轉型失敗會轉成初始值,並回傳false。

Parse例:

int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);
// 輸出: -105

TryParse例:

// TryParse 回傳 true,如果轉換是成功的話
// 並且將結果儲存到 j 變數
int j;
if (Int32.TryParse("-105", out j))
    Console.WriteLine(j);
else
    Console.WriteLine("字串無法解析");
// 輸出: -105

Pasre with Try-catch

try
{
    int m = Int32.Parse("abc");
}
catch (FormatException e)
{
    Console.WriteLine(e.Message);
}
// 輸出: Input string was not in a correct format.

TryParse例:

string inputString = "abc";
int numValue;
bool parsed = Int32.TryParse(inputString, out numValue);

if (!parsed)
    Console.WriteLine("Int32.TryParse 無法轉換 '{0}' 成為一個 int.\n", inputString);

// 輸出: Int32.TryParse 無法轉換 'abc' 成為一個 int.

 

資本資料型態:

 
數值型態 數值類別 型態 寬度 數值範圍(bits)
byte Byte Unsigned integer 8 0 to 255
sbyte SByte Signed integer 8 -128 to 127
int Int32 Signed integer 32 -2,147,483,648 to 2,147,483,647
uint UInt32 Unsigned integer 32 0 to 4294967295
short Int16 Signed integer 16 -32,768 to 32,767
ushort UInt16 Unsigned integer 16 0 to 65535
long Int64 Signed integer 64 -9223372036854775808 to 9223372036854775807
ulong UInt64 Unsigned integer 64 0 to 18446744073709551615
float Single Single-precision floating point type 32 -3.402823e38 to 3.402823e38
double Double Double-precision floating point type 64 -1.79769313486232e308 to 1.79769313486232e308
char Char A single Unicode character 16 Unicode symbols used in text
bool Boolean Logical Boolean type 8 True or false
object Object Base type of all other types
string String A sequence of characters
decimal Decimal Precise fractional or integral type that can represent decimal numbers with 29 significant digits 128 ±1.0 × 10e−28 to ±7.9 × 10e28

美國大學如何招攬頂尖人才:我在懷俄明大學當新聘教師委員的經驗 – 報導者

徵聘委員的角色有點像星探,不是高高在上要別人去討好或跪求,反而要跪求最佳人才。

來源: 美國大學如何招攬頂尖人才:我在懷俄明大學當新聘教師委員的經驗 – 報導者

白宮:人工智慧領域,中國的「論文數量、質量」都超越美國 | 名家 | 三立新聞網 SETN.COM



如果你是科技癡、科技狂,肯定也發現了一件事:現在幾乎所有的軟體公司,都在發展「人工智慧」:Google、Facebook、Apple、百度、騰訊...。美國白宮官方在10月份發佈了一篇《國家人工智慧研究開發戰略計劃》的報告,內容更罕見的提出警告:「美國在人工智慧的論文數量、論文影響力上,已經不再是世界的領頭羊。」

來源: 白宮:人工智慧領域,中國的「論文數量、質量」都超越美國 | 名家 | 三立新聞網 SETN.COM