有個c語言程式看不懂了求大神詳解

2021-12-16 14:50:45 字數 3498 閱讀 5861

1樓:匿名使用者

for(表示式1;表示式2;表示式3)在表示式2值為真(1)的時候繼續執行。

首先讀入ch[0],ch[0]=='6',ch[i]-'0'是吧字元的數字轉換為int數字,所以s=s*10+6,此時s=6然而,i++之後i==2,此時a[2]=='a',表示式2不成立退出迴圈,於是酒輸出6

2樓:匿名使用者

只執行了一次for迴圈,因為當i+=2的時候ch[i]是為字元'a'的,所以條件不成立。直接是10*0+'6'-'0' == 6。

3樓:匿名使用者

i= 0

chi[0] 是 '6' 滿足 ch[0]>='0' && ch[0]<='9'

執行s=10*s+ch[i]-'0'; 即s=10*0+『6』-『0』=6

s從零變為6

i+=2

i從零變為2

i=2ch[2]是'a' 不符合ch[2]>='0' && ch[2]<='9'  這時for迴圈就結束了

所以printf 輸出是6

4樓:

char 對應的是ascii碼,你帶進去跟著算一下就好了

5樓:匿名使用者

應該是不符合條件退出了,至於什麼原因,暫不清楚

有個關於c語言函式的程式看不懂,求大神詳解

6樓:你在看使用者名稱吧

分析程式:

a=6,b=2;

c=f(a)/f(b);

得 c=f(6)/f(2);

再由函式

int f(int x)

{ int y;

y=x++*x++;

return y;

可得f(6)=6*6=36  //因為是x++,先進行運算,(優先順序的判斷),所以是6*6=36

同理f(2)=2*2=4

所以c=36/4=9

7樓:匿名使用者

y=x++*x++;相當於y=x*x; x++; x++;

則當x=6時,計算得到的y=36

當x=2時,計算得到的y=4

結果必然是9

而x++雖然實際上計算了,但並未影響到y的取值。

8樓:

你要注意++運算子優先順序和*的優先順序

一個c語言程式看不懂,求大神指教

9樓:匿名使用者

12.a=5,a-->5是比較a>5不成立,結果為0,然後a--,a=4。

此時!(a-->5), 為(!(0)),即(1),while迴圈條件成立。

a=4,執行a+=4,a=8.由於後面沒有break,所以還會執行a+=5.a=13.

然後break。

此時a-->5,13>5成立,結果為1,然後a=12.

而(!1)=(0),while迴圈條件不成立。結束迴圈。

輸出a,即12.

10樓:匿名使用者

#include

main()

}printf("%d\n",a);

}a=5,經過while後a=4,從case 5執行a+=5(即a=a+5),所以a=,9.

a=9,不滿足while語句,退出迴圈,

執行輸出,a=9.

11樓:匿名使用者

結果是12

a-->5,按照符號的優先等級表示的是a--大於5,顯然a--是4,所以!(a-->5)為真。執行switch。

switch(a),a現在為4,跳到case 4,a+=4表示a=a+4就是等於8,然後執行case 5:,a+=5等於13.然後break跳出switch。回到while。

!(a-->5)顯然為非真,跳出while,前面執行了a--,所以a最終等於12.

c語言程式看不明白求大神講解裡面的 數怎麼調換的 20

12樓:

t=s[i]; 先把要s[i]放到t

s[i]=s[j]; 再把s[j]放到s[i]s[j]=t; 最後把t也就是s[i]放到s[j]這不就把s[i]和s[j]的值交換了嗎?

c語言,求大神解釋函式裡的引數有點看不懂請解釋

13樓:

函式的參

複數分形式引數和制

實際引數,在函式的定義體中bai的引數du是形式引數,在函式被調zhi用處是實dao際引數。

//函式的定義體

float add(float x,float y)

引數x,y都是形式引數。

//呼叫add函式

c=add(a,b);  //引數a,b都是實際引數。

程式從main()函式開始執行,當執行到c=add(a,b);位置時,程式就要跳轉到add()函式體中執行

這時,就有一個傳參的過程,即實參—>形參傳值,亦即a—>x,b—>y。實參變數a,b和形參變數

x,y在記憶體中是屬於不同的儲存單元,當add()函式執行完成後,將函式返回值賦值給主函式main()

中的變數c,而形參x,y的記憶體空間被作業系統**,而實參a,b的記憶體空間直到main()函式執行後記憶體

空間才被系統**。

c語言這個程式的結果是什麼?求大神分析下,實在是看不懂

14樓:左手煙雨

c2[3] 越界

修改如下:

#include

main()

輸出:englishgood

15樓:匿名使用者

輸出結果是:englishgood

16樓:人質

將c2字串加到c1末尾,輸出結果

17樓:丨我是樓上的丨

englishgood

c1[i]='\0',是表示c1結束

求大神講解一下,這個c語言的程式流程。。。 看不懂

18樓:樓主_回頭是岸

int a=3 b=4 c=5 t=99

if(bbai不成立

du不執

zhi行

a=c; //a=5

c=t; // c=99

if(adao出 a=4 b=5 c=99*************************解釋的夠專仔屬細了吧

19樓:漫步輪迴歲月

首先看第copy一個if語句的條件 :b < a不成bai立,所以dut=a不執行。

a=c;c=t;(a為5, c為99)

再看zhi

第二個if語句的條件:daoa < c && b < c成立,所以t=b執行(t為4)

b=a;a=t;(b為5, a為4)

所以:a=4 , b=5, c=99

作為c語言小白,完全看不懂這個程式,誰能給我詳細點解釋一

x的n次方 等於x x x 乘了n次。求c語言大神解釋一下這個程式,我看不懂.100 math代表常用數學函式的標頭檔案 convert方法傳入一個十六進位制的數字的字串,比如 1aec 其中1代表1,abcdef分別代表11,12,13,14,15,16。和十進位制類似,十進位制每16進一位。co...

剛剛接觸C語言,書上的這個看不懂,求詳細解釋,謝謝

我推薦學習c語言bai的書籍是 c primer plus中文版du 開發工具是 vs2008 或者 vs2010如果zhi有條件,可以找一dao個好老師或者好師傅回.我認答為一本好書和 剛接觸正常,多看幾遍就好了 c語言問題。這道題看不懂啊,求大神詳細解釋下,謝謝 這是 統計 字串 中字元個數的。...

一道c程式題目,我看不懂,求高手指點

int8 t代表 復8位帶符號整數,範制圍就bai 是 128 127了,du至於uint8 t的範圍就是0 255了,0xd3 16 13 3 211,然後float型的資料都是zhi用2的多少次方來表示dao的,所以0.45 0.0 11100 迴圈,精度會有問題 int8 t是自己定義的吧?你...