c語言題求詳細解釋此程式是如何執行的謝謝

2021-03-04 05:37:09 字數 1784 閱讀 8275

1樓:匿名使用者

x是個靜態變數,它不會隨f函式執行的結束而銷燬,f中的a是個區域性變數,它會隨f函式執行的結束而銷燬,當第一次執行f(a)時,x=3,x=x+1,x變為4;a=7,a=a+1,a變為8,主函式裡的a還是7;

當第二次執行f(a)時,x=4,x=x+1,x變為5;a=7,a=a+1,a變為8,主函式裡的a還是7;

2樓:匿名使用者

static標識x為靜態變數,編譯時賦值為3不是執行時每次賦值為3.若寫為static int x=0;x=3;則每次賦值為三。本題應該為8,4,8,5,

c語言程式問題,求詳細解釋,謝謝!

3樓:鴻子

因為prt函式的引數是復&c(c的地制址), &c就是prt函式bai的區域性du變數,它的zhi值在prt函式裡改變,main函式中不會改變。daoc的值是20是因為++的特性,語句結束之後再加1.

把*(z++),換成z++,直接檢視z的地址變化,就很容易理解了。把**發給你,你自己實驗下。

4樓:自由的風的我

函式內執行完z++後,是z的地址變了,而不是z指向的值即c的值變了,當返回到主函式後,z對應的一段儲存空間就被系統收回了,再一次呼叫函式後,是一個新的指標z指向了c,從而z的值不改變

5樓:匿名使用者

#include

void prt(int *x ,int *y, int *z)main()

這樣就變了,bai原因是:du

你用的傳址,++*x 將該地址實際資料改變zhi了 *x=*x+1,而dao *(z++) 只是改變地址增加,回數值並不變,你

答兩次呼叫都是c的地址,一樣

6樓:我行我素的兔子

prt函式沒有返回值,而主程式中a、b、c的值是不變的,呼叫prt函式多少遍結果都是一樣的。

7樓:時空魔法

x y z是區域性指標 修改這三個值儲存的地址 不會影響 abc的儲存的地址

c語言一道求程式執行結果題,一直看不懂,求大蝦詳細解釋下!謝謝了! 5

8樓:匿名使用者

分太少rep明顯該函式是尋找字串裡含有ad的字元然後分別替換為st就是這樣

rep(char *s,char *s1,char *s2)}main()

c語言一道求程式執行結果題,一直看不懂,求大蝦詳細解釋下!謝謝了!

9樓:匿名使用者

tt(int *a,int *b)

while(r); //迴圈執行的過程:

// x=y=36; y=r=28; r=x%y=36%28=8(36除以28的餘數); r不等於0,繼續迴圈

// x=y=28; y=r=8; r=x%y=28%8=4; r不等於0,繼續迴圈

// x=y=8; y=r=4; r=x%y=8%4=0; r等於0,結束迴圈

*a/=y; // 即u/=y; u=28/4=7*b/=y; // v/=y; v=36/4=9}main()

10樓:匿名使用者

dowhile(r);

輾轉相除法 得到x和y的最大公約數 y (此處y= 4)tt(int *a,int *b) 形參為指標tt(&u,&v); 將存放ū和v的記憶體地址作為實參傳出

11樓:狼族遺孤

沒有標頭檔案也可以執行?

C語言程式輸出結果,求大神詳細解釋

include void fun int p 注意所有符號要是在英文狀態下輸入main 輸出結果是21 1 首先要明白,因為這樣定義的fun函式執行完後並不能影響原來a的值,因而main程式中輸出的a值就是預先賦的1 要想函式執行完後改變a的值,則需要 與 來傳遞引數。參考下面的程式 include...

c語言程式題急求答案,C語言程式題 急求答案!!!

1 b 018a,0 其中 和後面的一個字元為一個字元,因此程式總共有8個字元,也就是 0,1,8,a,0,2 b for a 0,b 1 a b 2 a 2,b 第一次a 0 1 2,第二次a 2 0 2條件成立,第三次a 4而b 1,因此b 2 1條件不成立,所以執行2次迴圈 3 b for x...

求這段程式的解釋,c語言,求這段程式的解釋

這段 的作用是判斷,輸入回車以前的這個單詞裡有多少個abc,有多少個其他的字元 teacher 這個單詞裡有a和c各一個,所以v0的答案是2,其他的字元是7 2 5個,所以v1的答案是5 判斷某一串字元中,有多少個c字元 v0 以及有多少個非a,非b和非c v1 的字元 c語言,求這段程式的解釋 每...