下面程序的運(yùn)行結(jié)果是#include "stdio.h"void fun(int k,int *p) { int a,b; if(k==1|| k==2)
下面程序的運(yùn)行結(jié)果是#include "stdio.h" void fun(int k,int *p) { int a,b; if(k==1|| k==2) *p=1; else { fun(k-1,&a); fun(k-2,&b); *p=a+b; } }main(){ int x; fun(6,&x); printf("%d\n",x);}
正確答案:8本題主要考查函數(shù)的遞歸調(diào)用。在本題中,程序首先定義了一個無返回類型的fun函數(shù),該函數(shù)帶有一個整型變量的形參和一個指針型的變量形參。從函數(shù)體中我們可以看出,該遞歸函數(shù)的出口是形參k的值等于1或2,如果運(yùn)行到函數(shù)出口,則指針變量形參p的值等1。在主函數(shù)中,首先定義了一個整型變量x,然后調(diào)用fun函數(shù),傳遞的實(shí)參分別為6和變量x的地址,然后程序運(yùn)行fun函數(shù),在fun函數(shù)中,首先定義了兩個整型變量a和b,然后判斷形參變量k的值是否到達(dá)函數(shù)出口,這時,k的值為6,沒有到達(dá)出口,然后程序分別遞歸執(zhí)行fun(5,
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。