1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      C語言函數(shù)解析答案軟件 c語言題目解析軟件

      C語言函數(shù)問題:請問這個程序的輸出答案是什么,需要解釋為什么答案是這個。

      2, 6, 42, 3

      創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務鳳翔,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792

      開始看到這個程序,我覺得明顯有問題,可是運行了下,卻極其正常。找了下資料發(fā)現(xiàn),得主要是static和局部、全局量的作用域的問題。

      注意這兩點,然后再去分析程序:

      1.靜態(tài)局部變量在程序編譯時被首次初始化,即以后的函數(shù)調用不再進行初始化,而是使用上次調用結束時的值。靜態(tài)量數(shù)據(jù)有單獨的存儲區(qū)。

      2.全局變量在整個函數(shù)有效,但是當某個局部變量與全局變量同名時,在該局部變量所在域內,只有該局部變量有效,與其同名的全局變量無效。

      在所述程序中,全局變量i在for的{}內是無效的,起作用是靜態(tài)局部變量i。而靜態(tài)變量編譯時初始值為1。另,for的循環(huán)控制部分在{}外,起作用的全局量i。

      在下面的分析中1.指第一次循環(huán),依此類推。

      int Square(int i)

      {

      return i*i; //返回i^2給調用者;

      }

      main()

      {

      int i=0; //i=0;

      i = Square(i); //調用Square,i=i^2,即0=0^2=0;

      for ( ; i3; i++) //1.第一輪循環(huán),i(全局)為0,滿足條件

      { //2.第二輪循環(huán)開始i=1

      //3.第三輪開始,i為2

      //4.i=3,不符,循環(huán)退出

      static int i=1; //程序編譯時被賦值為1,以后不再賦值。

      //1.此時用的是編譯時被賦的值,即1;

      //2.i(局部)為上次調用結束時的結果2

      //3.原理同上,此時為6

      i += Square(i); //1.i=1+1*1=2

      //2.i=2+2*2=6

      //3.i=6+6*6=42

      printf("%d, ", i); //1.輸出:2+,+空格

      //2.輸出:6+,+空格

      //3.輸出:42+,+空格

      } //1.第一次循環(huán)結束,i(全局,原為0)+1,值為1

      //2.第二輪循環(huán)結束,i(全局)+1,是2

      //3.第三輪循環(huán)結束,i為3

      printf("%d\n", i);//輸出外部變量i,其值為循環(huán) 退出時的值3.

      }

      其實,把外部變量換個名字是一樣的效果。更容易明白。如下:

      int main(int argc, char* argv[])

      {

      int j=0;

      j = Square(j);

      for ( ; j3; j++)

      {

      static int i=1;

      i += Square(i);

      printf("%d, ", i);

      }

      printf("%d\n", j);

      return 0;

      }

      C語言函數(shù)遞歸調用習題,求答案解析

      由于是遞歸調用,所以,程序在打印結果的時候是從最內層函數(shù)開始打印,于是,就得到136.因為遞歸調用其實是嵌套調用,只是嵌套的是函數(shù)自身。這樣,需要將最內層的函數(shù)執(zhí)行完畢,才開始執(zhí)行外層的,一層一層往外執(zhí)行完畢,最后是main函數(shù)。若將遞歸還原為順序程序,流程是這樣:樓主得到的631其實是從6開始被存放到某堆棧中的,這樣,1便成為最頂上的數(shù),而6成為最底部的數(shù)。而最后打印的時候,需要彈棧,出棧順序為:自頂向下出棧,于是,得到的結果為136樓主的解題過程是對的,但可能沒理解遞歸的意義。建議樓主翻閱關于遞歸的相關文章看看。

      不用注冊的C語言函數(shù)查詢軟件哪里有啊!!!!

      提供兩個連接給你,自己去下載:

      第一個:

      第二個:


      分享文章:C語言函數(shù)解析答案軟件 c語言題目解析軟件
      文章分享:http://ef60e0e.cn/article/dosijhi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        长武县| 林州市| 商都县| 宁化县| 东明县| 乐清市| 黄陵县| 全椒县| 金堂县| 和硕县| 克东县| 隆尧县| 乌拉特中旗| 舟山市| 安塞县| 靖西县| 侯马市| 陇西县| 百色市| 大厂| 华容县| 仁寿县| 江华| 沾益县| 阜平县| 肃宁县| 太仆寺旗| 定南县| 司法| 内江市| 吉林省| 成武县| 金塔县| 瓮安县| 新平| 丰宁| 中卫市| 镇雄县| 醴陵市| 确山县| 岚皋县|