Re: [問題] 程式

看板TransCSI作者時間18年前 (2007/12/26 22:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串9/9 (看更多)
※ 引述《forris (喬巴)》之銘言: : 1. #define DOUBLE(x) 2*x : #define PRINT(int) printf("int=%d\n",int) : #include <stdio.h> : main() : { : int m1=1,m2=2; : m1=DOUBLE(m1+m2); : PRINT(m1); : } : 問程式輸出為何? : (a) m1=5 (b) m1=8 (c) int=5 (d)int=8 : 為什麼是 c 而不是 d? 巨集是用copy程式碼的方式去執行 所以double(m1+m2)的結果是 2*m1+m2 如果想達到你的結果 程式碼最好這樣寫:m1=DOUBle((m1+m2)) 這樣的結果才是 2*(m1+m2) : 2. #include <stdio.h> : main() : { : int m1=123,m2=5; : do {m1%=m2;} while(m2--); : printf("%d\n",m1); : } : 問程式輸出為何? : (a)0 (b)1 : (c)本程式編譯時,complier 發出錯誤訊息,不能執行而無輸出結果產生 : (d)本程式執行時,發生錯誤,故無輸出結果產生 因為m2會出現0的情形 因此m1%m2就會出現除於0的情形 除於0就會出現執行錯誤 : 為什麼是 d ? 難道是 while 的敘述要是 boolean type? 我也是考四等資訊處理的考生 -- 衝個人氣吧 http://www.wretch.cc/album/steter2002 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.170.237 ※ 編輯: steter 來自: 218.167.170.237 (12/26 22:49) ※ 編輯: steter 來自: 218.167.170.237 (12/26 22:55)
文章代碼(AID): #17ScbdZT (TransCSI)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
4
6
完整討論串 (本文為第 9 之 9 篇):
問題
4
6
問題
1
1
問題
1
1
問題
2
2
問題
文章代碼(AID): #17ScbdZT (TransCSI)