1樓:大懶水母
這個題選a。分析如下。
b選項中080,c中0開頭表示八進位制,八進位制數碼範圍0-7,所以b項錯誤。
浮點型的基本形式:有符號的數字(包括小數點),後面緊跟e或e,最後時一個有符號數表示10的指數。
c選項中。-1e3,點(.)後不能帶有負號。
d選項中,中缺少指數部分。
請問這道c語言題怎麼做?
2樓:珈樂的烤玉米腸機
從main函式開始,逐句分析:
main函式的第一句定義了三個int(整型)變數a, i, k,a的值被初始化為4;
第二句是一個迴圈,該迴圈將i的值定義為0,當i的值小於2時,迴圈條件通過,每迴圈一次,i的值就會加1,由此可知,該迴圈會執行兩次
在迴圈體中,包含了語句k=f(a++)由後置遞增符的性質可知,後置遞增符會先使用變數的值,使用完後,對變數進行遞增。由此可知,傳入函式的值即為a的值。
進入函式,f(int a)中的a的值即為傳入的值,為4。逐句分析f()函式:
第一句,定義整型變數b的值為0,該變數的生存期和作用域為這個函式。
第二句,定義靜態整型變數c的值為9,該變數的作用域為這個函式,但是生存期為整個檔案。
第三句,由於使用的是後置遞增符,先使用值,後遞增,所以c的值被賦給a後才會增加,後接b++。本語句結束後,c和b的值都增加了1,c的值變成了10,b的值變成了1。
第四句,return以變數a的值作為返回值。
回到main函式的第二句,k的值被修改成為了f()函式的返回值,即在f()函式中a的值。要注意的是,以傳值方式傳入函式的值並不會改變值本身,而是相當於在函式中複製了一個副本使用。
該語句執行完畢後,main函式中的變數a的值增加了1。
此時是for迴圈的第一次迴圈結束,進入第二次迴圈,同樣的傳入a的值,由於之前遞增過一次,所以現在它的值是5。重新進入f()函式。
在f()函式中,由於其他的變數的生存期是函式,在上一次f()函式結束時,變數b被銷燬了,所以重新進入變數後,變數b的值又變回了0。但由於c的生存期沒有結束,c的值不變,所以重新進入函式後,c的值仍然是的值賦給a,所以在執行語句return a;時變數a的值是10,即函式的返回值是10。
返回後該值賦給k,使得k的值變成了10。迴圈結束,跳出迴圈。
第三句,執行printf()函式,螢幕上輸出的值是10。
第四句,return 0; 程式結束。
本題主要的難點在於對變數生存期的判定,即對static關鍵字的理解與掌握,忽視了函式中擁有檔案生存期的變數在使用時值得變化原理。同時,後置遞增運算子同樣也是引起疑惑的原因之一。
3樓:匿名使用者
注意,函式f返回的的是形參a的值,而形參a的值由表示式
a=c++決定注意變數c的儲存型別是static,所以即便推出了函式,變數的原值都會儲存。
共呼叫了2次f函式,第二次呼叫f函式時,b值已經自增為10,所以列印輸出10
c語言這道題該怎麼做 沒有思路,C語言這道題怎麼做
最大子矩陣,最大連續子陣列進階,動態規劃初級,poj1050 題目描述 現給出一個n n矩陣,要求求出擁有最大和的子矩陣的和。例如 這樣的一個矩陣,最大子矩陣的和為15 分析 最大子矩陣可以看為求最大連續子陣列拓展到二維陣列上,因為矩陣的性質同樣在橫向豎向上需要連續,那麼可以想辦法將這個二維陣列簡化...
這道c語言題求大神詳細講解,C語言中,這道題怎麼做?大神求教
i 0 進入迴圈。不滿足if i 2 i i變為1,s i s變為1 滿足while i 7 繼續迴圈。滿足if i 2 i i變為2,continue 跳過迴圈體中後版續語句。權滿足while i 7 繼續迴圈。不滿足if i 2 i i變為3,s i s變為4 滿足while i 7 繼續迴圈。...
請問這道題怎麼寫,這道題怎麼寫
你可以用一下那個作業幫,然後就可以出來詳細的解答。不定積分結果不唯一求導驗證應該能夠提高湊微分的計算能力先寫別問唉。對不起 並沒有看到你的提示什麼呀,把題應該拍一下上傳了 請問這道題怎麼寫?傳不上去。26.以 a 為原點,ab 為正向作數軸。2 p在射線ab 上運動,若 p 在 a,b 之間,pm,...