資料處理 程設題型種類 - 考試

Adele avatar
By Adele
at 2018-06-17T17:55

Table of Contents

※ 引述《lensfill (undo)》之銘言:
: 輸入一個數字
: 解一個答案
: https://photos.app.goo.gl/rhQLYra1P2QJR6h8A
: 要怎樣思維關鍵在哪?



第一題的程式碼如下:

#include <stdio.h>

int bar(int value){
static int tmp=0;
tmp++;
value++;
return value + tmp;}

int main(void) {
int x=5;
printf("%d\n",bar(x));
printf("%d\n",bar(bar(x)));
}

說明:

bar 副程式的 tmp 為 static 型態,

也就是說 tmp 這一個變數要等程式結束後才會歸還記憶體。

printf("%d\n",bar(x)); ←印出7,說明如下

int bar(int value){ ←這裡的value帶入5
static int tmp=0;
tmp++; ←此時這裡的tmp是1 (後++)
value++; ←value是6
return value + tmp;←傳回7}

printf("%d\n",bar(bar(x)));←印出12,說明如下

先解內部的bar(x)

int bar(int value){ ←這裡的value帶入5
static int tmp=0; ←這裡的tmp是1
tmp++; ←此時這裡的tmp是2 (後++)
value++; ←value是6
return value + tmp;← 6+2 = 8 ,傳回8}

再算外部的bar(bar(x)),內部的bar(x)是8,

因此bar(bar(x))等同bar(8),

int bar(int value){ ←這裡的value帶入8
static int tmp=0; ←這裡的tmp是2
tmp++; ←此時這裡的tmp是3 (後++)
value++; ←value是9
return value + tmp;← 9+3=12, 傳回12}



第二題的程式碼如下:

(鍵盤輸入100)

#include <stdio.h>

int foo(int v)
{return (v/10+v%10);}

int main(void) {
int v1,v2;
scanf("%d",&v1);
v2=foo(foo(foo(v1)));
printf("%d\n",v2);
}



這一題的思維跟上一題一樣,

v2=foo(foo(foo(v1)));
printf("%d\n",v2);←印出 1 ,理由如下

先拆解,先解最內層的foo(v1),

最內層解完後再代入第二層的foo(),

第二層解完後再代入最外層的foo(),

最內層的foo(v1)

int foo(int v)←v代入100
{return (v/10+v%10);} ← 10+0 = 10,傳回 10

第二層的foo(10) ←將內部層的結果代入第二層

int foo(int v)←帶入10
{return (v/10+v%10);} ← 1+0 = 1,傳回 1

最外層的foo(1) ←將第二層的結果代入最外層

int foo(int v)←帶入1
{return (v/10+v%10);} ← 0+1 = 1,傳回 1



結論,只要拆開分析計算就很快解決了...

以上如果說明有誤,煩請各位先進留言補充,謝謝。

--
Tags: 考試

All Comments

Oscar avatar
By Oscar
at 2018-06-21T15:18
我想問一下 在第一題 後置遞增 為什麼不是先把後面運
算跑完再遞增 而是先遞增完在算後面的運算式
Ula avatar
By Ula
at 2018-06-23T15:48
如果把分號通通換行也許比較明顯? 實際上的觀念是
sequence point
Frederic avatar
By Frederic
at 2018-06-26T01:06
剛查一下 前面有人提過, 你寫得最清楚 感謝
Charlie avatar
By Charlie
at 2018-06-30T19:36
哈哈, 還是很沒感覺..
Jessica avatar
By Jessica
at 2018-07-03T07:43
謝謝~~
Sandy avatar
By Sandy
at 2018-07-07T19:32
我會了, 我人腦常當機

三法修法

Ida avatar
By Ida
at 2018-06-17T11:05
※ 引述《ivan4292 (神犬)》之銘言: : 關於修法已爬過版上文章,不過還有不清楚部分,故請教各位。 : 公司法 : 1.去年通過之草案,是否會納入今年考試範圍呢? : 2.因自己是補高點106的,故想問高點107年周律,是否有修法講座呢? : 證交法 : 證交法看起來修的不多,讀106年版本還可以嗎 ...

梁傑普化2017-2018正課講義

Eden avatar
By Eden
at 2018-06-17T01:12
如題, 是普化, 不需有機 請回站內信 謝謝 - ...

6/24高點會計師 稅法題庫班 即將開課!!

Kama avatar
By Kama
at 2018-06-17T00:56
【會計師題庫班 開課日andamp;影片介紹】 6/4 中會 鄭泓(鄭凱文)老師 https://reurl.cc/2ee9 5/7 成管會 徐錦華(黃美玲)老師 6/15 高 會 徐錦華(黃美玲)老師 7/3 審計學 羅智成(羅澤鈺)老師 https://reurl.cc/0GGM 6 ...

交換-曾正生物學歷屆解析換英文歷屆試題解析

Agatha avatar
By Agatha
at 2018-06-16T17:57
2018年最新版生物學歷屆試題解析換2018年最新版醫科英文解題制霸,謝謝。 全新,沒寫過。 如有意交換,請站內信。 - ...

高醫生物生化推文討論區

Harry avatar
By Harry
at 2018-06-16T17:46
如題 也是不要害羞儘管發問一起切磋~ 反正遲早要在高醫切磋段考國考吧~ - ...