c語言問題 求這個程式詳細解釋 謝謝

時間 2021-08-30 11:19:49

1樓:文耕實驗室

char fun(char c)

int main()

putchar('\n');//輸出換行符return 0;//這一句是主函式必要的,告訴程式正常退出。

} 這個程式的意思就是,讓使用者輸入4個字元,如果是大寫字元,都轉換成小寫字元輸出。

執行結果如下:

輸入:open

返回:open

為什麼是這樣?當你一次性輸入四個字元,會存放在乙個堆疊裡邊,scanf中輸入引數是 %c,那麼它會拿走第乙個字元o,剩下的仍然存在堆疊裡邊。程式繼續執行把o轉換之後 輸出(o本身就是 小寫,所以轉換前後結果一樣)。

然後又迴圈回scanf函式**,提取堆疊中第二個字元,p,如此往復四次,輸出open

2樓:匿名使用者

char fun(char c)

這一部分是個子函式,輸入引數是乙個字元c,返回值也是乙個字元。

main()

putchar('\n');

}這是乙個主函式,本意是分四次輸入四個字元,如果是大寫字母就變成小寫,如果輸入的是小寫的,則不變。不過這個程式有問題。只能進行一次變換,至於輸出是什麼,要看你輸入的是什麼。

3樓:匿名使用者

char fun(char c) main() putchar('\n');//輸出回車} 當輸入open回車後 結果是open

4樓:匿名使用者

個人見解 僅供參考

返回 n

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

5樓:鴻子

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

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

6樓:自由的風的我

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

7樓:匿名使用者

#include

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

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

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

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

8樓:我行我素的兔子

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

9樓:時空魔法

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

c語言問題,可以的話最好把整個程式解釋一下。謝謝!

10樓:

void main()

{float a[10],min; //定義a是乙個存放10個浮點數的陣列,

int i=0; //題目中有誤,將用於存放陣列下標的變數應該是整數,下面馬上用到a[i],所以在此應該先給i初值0

float min;

scanf("%f",&a[i]); //從鍵盤輸入乙個實數給 a[0];

min=a[0]; //a[0]在上一句才獲得,所以min的值應該在這賦

for(i=1;i<10;i++)

這一句在程式序中漏了,從鍵盤輸入a[1]到a[9]的值;

if ............

//後面的內容就沒什麼問題和需要解釋的了

11樓:

你這個程式有問題。

第二行scanf("%f",&a[i])中的i沒有賦值,這句話肯定會報錯.

第二句肯定是

for(i = 0; i < 10; i++) //就是給陣列a中的每個元素賦值

程式的意思就是找出陣列a中最小的數,賦值給min首先將a[0]賦值給min,然後將min跟a[1]~a[9]進行比較,將小的數賦值給min,所以最終min就是輸入資料中最小的數

12樓:萢萢

整個程式就是求10個數中的最小值。但是這個程式不算正確的,輸入部分應該需要乙個迴圈。如果是.c檔案的話,float min需要放到scanf前面。

13樓:子玉

首先這個輸入語句不完整,應該是for(i=0;i<10;i++)scanf("%f",&a[i]); 接下來的語句是先令min等於a[0],再把a[1]到a[9]與min即與a[0]比較,如果min比較大,就把min替換成a[i]

不知道解決了麼

求解釋c語言這道題,看不懂程式,解釋一下過程!!謝謝

14樓:折翼鯉魚

你好你這個應該只有兩行輸出啊,

第一行 是 -1 6

第二行是 6

c語言問題,求大神指教,求解釋本程式,最好詳細點,謝謝啦,我是小白,初學者。。

15樓:匿名使用者

main()//程式入口

printf("各位數之和s=%d\n",s);

printf("其反序數=%d\n",a);

}整個程式就是為了得到輸入的數的逆序排列數以及所有數字之和

16樓:章鑫彬

#include

main()

printf("各位數之和s=%d\n",s);

printf("其反序數=%d\n",a);}如:

輸入:123

輸出各位數之和s=1+2+3=6

輸出反序數a=321

17樓:匿名使用者

//我想關鍵就是這個位置吧

while(n)

以n=1032為例:

m=n%10-->2-->m=2 //最後一位數字n=n/10-->n=103 //這裡是整除(也可以理解為去掉最後一位數字)

s+ =m-->s=s+m(0+2)-->s=2;//統計各位數字之和(個位-->十位-->百位......)

判斷n是否為0,n=103!=0

接著執行迴圈;

m=3n=10

s=2+3=5

依次類推,當n=1時,m=1,n=0,s=2+3+0+1=6 此時n=0迴圈結束

//逆序

while(n)

//三次 a=23*10=230,m=0,a=230//四次 a=2300 ,m=1,a=2301//也可以這樣不用a ,當然這樣沒儲存逆序數while(n)

你可以自己除錯,看每個變數的變化情況.(不會的話學習一下,很簡單)

求這道c語言題的答案,要詳細過程,謝謝了

18樓:匿名使用者

#include

int main()

printf("%lf\n",s);}

19樓:gta小雞

#include

float func(int n)

int main()

20樓:匿名使用者

#include

double func(int n)

int main()

沒有嘗試編譯執行,應該沒問題,如果有錯誤的話請追問。

c語言問題。急求詳細解答,C語言問題。急求詳細解答!!

與影 第一個呼叫把i 2的值傳遞給fun2的形參,而形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數,所以呼叫結束後i的值並未改變。雖然fun2的返回值是處理後的i,但是由於並未將函式呼叫...

c語言問題,小白求詳細解答,C語言問題 小白求解答

結果是a how are you 第一次開啟檔案,以 w 方式建立乙個新檔案,寫入how 第二次開啟檔案,以 a 方式追加資訊到檔案,寫入are you c語言問題 小白求解答 問 r,s,t 三個集的關係。t 由 r,s 得出。答,r,s,2 個集 之差 得 t.理由 把 r 裡與 s 相同 的 ...

C語言程式遞迴問題跪求詳細解答

拿乙個等差數列來給你解釋,例如 1 2 3 4 5 100 如果我要計算前5項的和,那麼s5 a1 a2 a3 a4 a5 s5 5 s4 s4 4 s3 s3 3 s2 s2 2 s1 s1 a1 1 根據規律前n項和為 sn n s n 1 且s1 1,根據這兩個條件 我就可以求出任意sn的值,...