【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

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料