103關務 程式語言概要 - 考試

Table of Contents

以下是問題及當時憑記憶所記得的答案

可以請版友們幫我看看嗎 三小題加起來20分的題目我只拿到5分...



何謂布林運算子(Boolean Operator)之短路運算(Short-Circuit Evaluation)?

在&&運算式中 若遇到前面結果為FALSE 則不執行&&後面運算 結果為FALSE

在||運算式中 若遇到前面結果為TRUE 則不執行||後面運算 結果為TRUE


試述短路運算有何優點?又有何缺點?(8分)

優點 計算效率佳 可減少程式計算數量

缺點 容易使程式撰寫者發生邏輯錯誤


試述C語言如何處理布林運算子之短路運算。(8分)

int main void(){

int a=4; b=2; c=3;

if (a<b && b<c)

pintf("1"); //此段程式不會執行&&後面計算 為c語言處理&&短路運算方式

}


int main void(){

int a=4; b=2; c=3;

if (a>b || b<c)

pintf("1"); //此段程式不會執行||後面計算 為c語言處理||短路運算方式

}

----------------------------------

以及把迴圈改成遞迴的第四題

我的寫法是

int fact(int n){

if(n==0||n==1) return 1;

else return n*fact(n-1);

}

這樣寫我被扣了10分 請問哪邊寫不好呢 感謝

--

All Comments

Candice avatarCandice2014-06-13
捷徑的第一小題 無須計算所有的運算元或運算子即可決定
結果的計算方式 你的寫法比較像舉例 他考的應是"定義"
Skylar Davis avatarSkylar Davis2014-06-14
第二小題跟你寫得差不多
Gary avatarGary2014-06-17
第三小題我多回答了 當為true時 C會回傳1 當為false回傳0
也許差在這吧
Olive avatarOlive2014-06-20
感謝 那請問迴圈改遞迴那邊可以幫我看看嗎
Ingrid avatarIngrid2014-06-22
我已忘記自己怎寫且我也被扣10分 也許是沒防呆要考慮n是
負值吧
Genevieve avatarGenevieve2014-06-23
你真的沒寫 fact(n-1) 還是po文時筆誤?
Kama avatarKama2014-06-23
另外負值沒處理也是問題, 會掉進無窮迴圈
Sierra Rose avatarSierra Rose2014-06-27
第3小題沒寫出是否會print
Olga avatarOlga2014-06-27
應該是筆誤啦 那邊如果錯應該一分都沒有
Annie avatarAnnie2014-06-30
感謝提醒 我筆誤了 那邊是N-1
Sierra Rose avatarSierra Rose2014-06-30
看了一下25473那篇上榜文 他沒寫0只被扣5分
我有寫0卻被扣10分 到底怎回事啊 囧
Olive avatarOlive2014-07-01
改考券的人不同?我0跟負數都處理了也被扣5分,不知在
扣什麼 @@ (剛拿到成績單)
Edwina avatarEdwina2014-07-06
老實說 我也不太懂 我只依稀記得我好像有用//
在if的後面註明遞迴終止條件的樣子 應該是改的人不同?
Emma avatarEmma2014-07-09
我剛想到會不會是輸入人按錯的時候要處理負數?
Blanche avatarBlanche2014-07-10
階乘的n好像必須是自然數 http://ppt.cc/H5zx
我也不太確定是不是因為這樣
Linda avatarLinda2014-07-12
我也是被扣五分,真的不太懂..話說大於0的INT就是自然數
Wallis avatarWallis2014-07-17
講錯,0也是自然數XDDDD
Brianna avatarBrianna2014-07-18
我的意思是 <0應該為不合法
Gilbert avatarGilbert2014-07-21
我在想是不是要寫主程式才給全分?
雖然他題目只要求改寫成遞迴 但給10分或許要寫主程式
說錯 給20分
Heather avatarHeather2014-07-25
唉,我在猜是不是大家最後都沒再多寫 return 1;
Adele avatarAdele2014-07-26
早年的turbo C 編譯器,不寫最後的return會過不了
只能請bigwhite大解釋了,亂猜也不是辦法
Sarah avatarSarah2014-07-31
第一題舉例請用AND OR取代&& ||
Elizabeth avatarElizabeth2014-08-02
第二題優點 減少程式碼執行數量 效率較佳 缺點容易有邏輯
錯誤 需編譯器支援
Noah avatarNoah2014-08-06
最後那提應該用if(n<=1) 才可以處理到1以下的條件