1樓:滄海嫣雲
第一題選d,for迴圈表示printf執行3次,第一次呼叫f(a)後,a=2,b=1,
c=4,返回f(a)的值就是7。
然後第二次迴圈,再次執行printf,a、b的初始值仍然是2、0,而c初值為4。因為c是靜態變數(靜態變數用「static」定義),其值被永久性儲存,不會因函式退出而被覆蓋。所以再次呼叫f(a)後,a=2,b=1,c=5,返回f(a)的值是8。
第三次迴圈跟第二次乙個道理。c初始值是5。
第二題,void表示無返回值,而add的功能是返回兩個數的和,即c;所以應把void改成與c型別相同的float。
第三題的空,你不是已經填了嗎,這是求x^y
2樓:
d 注意static型資料的數值只要程式不退出就累加。
第二個函式缺少返回值,注意返回值的的型別要和返回的數值的型別一致。
第三個應為【j=1】;【y>0];[y--] 目的:y等於幾就乘以幾個x
3樓:砍侃看
第一題選擇d。這裡需要注意的是變數b和c的區別。b是f()函式的區域性變數,每次呼叫f()時b都會被分配記憶體並且賦值為0,在呼叫完f()後被銷毀。
而變數c加了static關鍵字後為一靜態變數,c在執行的一開始就被分配記憶體並且賦值為3,而不是在呼叫f()時分配記憶體,在程式結束後被銷毀。因此c在執行迴圈三次的過程中值依次變為4,5,6。而a和b的值始終儲存不變。
第二題就更明顯了,void是無返回的意思,可還是在你的程式裡確出現了return關鍵字,這是返回了乙個值的意思,當然要出錯。如果你把void換成float或者把 return c; 去掉就沒錯了。但是卻掉 return c; 後你的程式就沒意義了。
第三題就是求x的y次方。應該是
int j=1;
for(;y>0;--y)
j*=x;
for(;y>0;--y)是控制迴圈次數的,j*=x;當然是為了求x的y次方了,挺簡單的。
4樓:匿名使用者
1.選d
因為定義的是個靜態變數static int c=3;它被主函式呼叫之後是不釋放的
2.是函式型別錯誤
既然是void空函式了,怎麼又有返回值呢!
一道C語言題!會的請看看,謝謝,一道c語言的題目請各位幫幫忙,急得很,先謝謝大家了!!!
if str1 i 0 str1 i 9 這一句錯了!應該為if str1 i 0 str1 i 9 最後的輸出printf nshu zi ge shu wei d j 1 中j 1改為j,不需要再加1了!還有建議前面定義str2 n 時進行賦值str2 n 否則程式的輸出結果後會跟有怪異字元,不...
C語言填空題,c語言程式填空題?
1 ch 2 printf n 用程式驗證過了。希望能幫到你。1 ch ch 1 2 ch ch 1 你試一下,應該是,1 是進行行輸出控制,2 是因為迴圈是先輸出,在修改ch的值,所以換行後需要,現將ch減1 1,ch 2,printf n c語言程式填空題?解題思路是 如果x 0,就重寫y的值,...
c語言程式設計題急,C語言程式設計題,急求!!!!
包含命令拼錯了 直接把演算法寫到輸出那裡 定義的float型別,記得scanf的時候是 f,不是 d include main include main 你把scanf語句放前面試試啊,程式如下 includes main 程式自己寫吧,對提高你的能力有幫助.思路 先用三個變數a bc存輸出 再根據...