計概考題>”””<

2007-07-04 4:43 pm
1. 計算下列各題之值:
(1) 816+916=( ? )16
(2)假設1 代表真,0 代表假,則NOT 10>13 AND 8 < 5 + 10 運算完之值是多少?
(3)三個二進位數(Binary Numbers)分別為11011, 10011 與11,其和以二進位數表示為?

2. 比較下列甲、乙、丙、丁之大小:
(1)四種資料儲存裝置:甲代表main memory、乙代表register、丙代表cache memory、丁代表hard disk,其存取資料速度由快
而慢為?
(2)在C 語言中,甲代表int、乙代表char、丙代表double、丁代表float,此四種基本資料型態所佔記憶體的空間由大到小排列
順序為何?
(3)今有甲、乙、丙、丁四個數分別為八進位、十進位、十六進位、與二進位,甲之值為(24.4)8,乙之值為(21.2)10,丙之值為(18.8)16, 丁之值為(10101)2,則甲、乙、丙、丁四個數之大小關係為何?


3. 回答下列各程式題
(1)欲求10! 的值,則下列程式標籤30 的敘述應為:
10 FACT=1
20 FOR I = 10 TO 1 STEP –1
30
40 NEXT I
50 PRINT FACT

(2)若函數f(x, y)之定義如下,請問f(2, 1)之值為何?
FUNCTION f(x, y)
if (x > 0) and (y > 0) then
Return (f(x-1, y) + f(x, y-1))
else
Return (x + y)
END FUNCTION

(3)下列程式執行的結果為何:
int A=3, B=4, C=5;
C = A + B * 2 % 3 + 2;
printf(“%d\n”, C);

(4)若變數i 為整數資料型態,則下面程式片斷中,for 迴路共執行幾次?
for (i = 5; i ==0; i++)
printf (“%d”, i ++);




請問誰可以幫我解答一下>""""""<...3Q...
(我想要有計算過程)
更新1:

ㄜ...其實這是轉學考的題目... 我也不認識這位老師說= ="" 不過聽完你醬說...我整個很想撞牆... 因為我不知道這份考題這麼糟糕... 只覺得有夠難查詢答案= ="""... 謝謝你的意見...>0<...

回答 (3)

2007-07-04 9:18 pm
✔ 最佳答案
(1) 816+916=( ? )16
=========================================================
(8)16=8*16(0次方)=8(10進位)
(9)16=9*16(0次方)=9(10進位)

9+8=17(十進位)
17用輾轉相除法用16去取它餘數 為11

所以答案是 (11)16次方

=========================================================
(2)假設1 代表真,0 代表假,則NOT 10>13 AND 8 < 5 + 10 運算完之值是多少?
NOT 10>13 AND 8 < 5 + 10
| |
| 這地方5+10要先做,做完之後跟8比較,發現成立所以
| 是1,最後在跟AND比較,發現兩邊成立,符合AND的特
| 性,所以整個式子為TRUE =1
本來10沒有大於13,但是因為10的前面有NOT(反向),所以變成成立了!所以這段是真=1

它的順序優先權為1.not 2.+ 3.> < 4. AND
========================================================
(3)三個二進位數(Binary Numbers)分別為11011, 10011 與11,其和以二進位數表示為?
=========================================================

11011 -- 為27(10進位)
10011 -- 為19(10進位)
11 -- 為3 (10進位)

27+19+3 =49

49輾轉相除法 由下往上取餘數為 110001
=========================================================
2. 比較下列甲、乙、丙、丁之大小:
(1)四種資料儲存裝置:甲代表main memory、乙代表register、丙代表cache memory、丁代表hard disk,其存取資料速度由快
而慢為?
=========================================================
乙 >丙 >甲 > 丁 (最慢)
=========================================================
(2)在C 語言中,甲代表int、乙代表char、丙代表double、丁代表float,此四種基本資料型態所佔記憶體的空間由大到小排列
順序為何?
=========================================================
字元佔1byte . 整數佔2byte . 單精確浮點佔4byte 雙精準佔8byte

所以是 double >float >int > char
丙 > 丁 >甲 >乙
=========================================================

(3)今有甲、乙、丙、丁四個數分別為八進位、十進位、十六進位、與二進位,甲之值為(24.4)8,乙之值為(21.2)10,丙之值為(18.8)16, 丁之值為(10101)2,則甲、乙、丙、丁四個數之大小關係為何?
=========================================================

先將全部轉為10進位
甲 (24.4)= 4*8(0次方) +2*8(1次方) +4*8(-1次方)=20.5

乙 (21.2)=21.2保持不動

丙 (18.8)=8*16(0次方)+1*16(1次方)+8*16(-1次方)=24.5

丁 (10101)=1*2(0次方)+1*2(2次方)+1*2(4次方)=21

所以 丙 > 乙 > 丁> 甲

2007-07-04 13:20:28 補充:
3. 回答下列各程式題
(1)欲求10! 的值,則下列程式標籤30 的敘述應為:
10 FACT=1
20 FOR I = 10 TO 1 STEP –1
30
40 NEXT I
50 PRINT FACT
=========================================================

30 FACT=FACT*I

2007-07-04 13:22:29 補充:
2.依照條件 當 X.Y都要大於0會回傳 (f(x-1, y) + f(x, y-1))
(2,1)
= f(1,1) + f(2,0)
= f(0,1)+f(1,0) +f(2,0)->這一個已經不會在動作了,因為條件不成立

接著他的條件是xy只要一個沒大於0 就傳x+y 也就是說 只要有一個數值有0 它就回傳 x+y

(2,1)
= f(1,1) + f(2,0)
= f(0,1)+f(1,0) +f(2,0)--->會回傳1+1+2=4
| | |
0+1 1+0 2+0

2007-07-04 13:23:34 補充:
(3)
C= 3 + 4 * 2 %3 +2 先把AB數值寫進去

C= 3+ 8%3 +2 4*2要先做 因為優先度比較高 *>%>+

C= 3+ 2 +2 =7 8%3去餘數為2

C= 7 把右式的過程結果指定給左式C

印出C 就是7

2007-07-04 13:23:56 補充:
(4)若變數i 為整數資料型態,則下面程式片斷中,for 迴路共執行幾次?
for (i = 5; i ==0; i++)
printf (“%d”, i ++);

=========================================================
for (i = 5; i ==0; i++) 這一行有問題耶,他原本假設 i =5 但是條件又是
i==0 這個不成立耶

應該是不會執行吧 條件不足

=========================================================


如果有錯誤煩請指教!!!謝謝
參考: 第一次回人問題回這麼久
2007-07-04 8:13 pm
1.
(1) 816+916=1710=1116
(2) NOT 10>13 AND 8 < 5 + 10
-> NOT (false) AND (8 < 15)
-> (true) AND (true) ->True
(3) (11011)2=2710 (10011)2=1910 (00011)2=310
4910=(11000)2
2.
(1) 乙丙甲丁
(2) 丙甲丁乙 或是 丙丁甲乙
( 32 位元 )
char=1 byte
int=4 bytes
float=4 bytes
double=8 bytes
(3) 小綿羊不會這一題~!
3.
(1) FACT *=I
(2) f(2,1)=f(1,1)+f(2,0)=f(0,1)+f(1,0)+f(2,0)
=1+1+2=4
(3) C = A + B * 2 % 3 + 2 ;
3+4*2%3+2=3+8%3+2=3+2+2=7
(4) 題目怪怪滴
參考: 小綿羊不知道有沒有算錯…
2007-07-04 5:46 pm
你老師有沒有在進修啊!?
(不然,他就是直接拿15年前東東出來用!)
2. (2)應該是一萬年前的題目!
那時這樣還〝勉強〞問沒問題;
現代這問題,根本〝可以說〞是出錯了!

2007-07-04 09:48:34 補充:
3 的 (4) 犯同樣的錯誤!

請他好好讀書,不要誤人子弟!

2007-07-04 09:51:41 補充:
C 的 int 是以 CPU 的 位元數為準!
在未知CPU 的 位元數下,int 的最大值、位元數,都不知!

現在又正值 32 / 64 位元世代交替的時期!
請問要以哪個為準?

2007-07-05 01:43:48 補充:
通常,Not 的優先權極高!
所以,Not 10 > 13 是 (Not 10) > 13 → 0 > 10 = False

49 是 110001

int 在 16 位元佔 2 bytes, 32 佔 4, 64 佔 8
16: 丙>丁>甲>乙
32: 丙>丁=甲>乙
64: 丙=甲>丁>乙

由程式結構看來像是 BASIC
BASIC 不認識 *=

不會執行:條件不成立


收錄日期: 2021-04-27 17:13:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070704000016KK01928

檢視 Wayback Machine 備份