【C語言教學手冊(四版)-練習題解答】

 第8章

C語言教學手冊(四版)-博客來網址

      8. 區域、全域與靜態變數

24. 試完成下面的程式碼,使得每呼叫 counter() 函數一次,便會印出 "counter() 已被呼 叫 n 次了" 字串,其中 n 為 counter() 被呼叫的次數(counter() 函數裡計數的變數請 用靜態變數來撰寫)

 

#include <stdio.h> 
void counter (); 
int main() 
{

  counter();

  counter();

  count++;

}

void counter()

{   

static int n=0;

printf("counter()已被呼叫%d 次了...\n",++n);

}

 

25. 利用 24 題的 counter() 函數來追蹤 prog8_12 所定義的遞迴函數 fib(),在遞迴的過程中 一共被呼叫幾次。例如,若計算 fib(5),則程式碼的輸出為

 

#include <stdio.h>

void counter();

int fib(int );

int main()

{

fib(5);

}

void counter(void)

{

static int n=0;

printf("counter()已被呼叫%d 次了\n",++n);

}

int fib(int n)

{

counter();

if(n==1 || n==2)

return 1;

else

return fib(n-1)+fib(n-2);

}

26. 試利用 24 題所撰寫的 counter() 函數來追蹤習題 19 所撰寫的 rpower() 函數,在計算 rpower(2.0,9) 的過程中,rpower() 函數一共被呼叫幾次。

#include <stdio.h>

void counter();

double rpower(double,int);

int main()

{

double b=2.0;

int n=9;

printf("%f^%d=%f\n" ,b ,n , rpower (b,n) );

}

void counter(void)

{

static int n=0;

printf("counter()已被呼叫%d 次了\n",++n);

}

double rpower(double b, int n)

{

counter();

if(n==0)

return 1.0;

else

return (b*rpower(b,n-1));

}

 

 

 

 


 

(不好意思小宣傳一下我的繪圖 希望大家喜歡)

 

\\

這是我的海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

謝謝大家:))

裡面有許多繪圖作品~ 

希望大家支持我會繼續努力

請多多指教哦

 

 

ps

p新的貼圖終於出來了💜💜💜

可愛的海苔貓-第三代

 

海苔貓繪圖作品\\

希望大家支持~~

arrow
arrow
    文章標籤
    C語言 解答 呼叫
    全站熱搜

    海苔貓Nori 發表在 痞客邦 留言(0) 人氣()