懂c語言的請看看!c語言!??

時間 2023-05-21 07:18:10

1樓:pc秋月

(1) r=func((x--,y++,x+y),z--)這句是對函式func的呼叫,前面的函式定義表明,形式引數是a和b, 而呼叫的時候是把實際的值按順序一一傳遞給形參,也就是(x--,y++,x+y)的值給a,而z--的值給b.先看一下表示式(x--,y++,x+y)的值,這是一個逗號表示式,它的值就是最後一個逗號之後的表示式即x+y的值,而前面的x--,y++是在整個表示式(x--,y++,x+y)運算完成之後才將x減1,把y加1的.因此(x--,y++,x+y)的值就是6+7即13,將傳遞給形參a;再看z--,與--這兩個運算子當寫在變數名後面時是先參與當前表示式的運算後進行加或減,因此是直接將z的值即8傳給形參b,至此,形參a的值是13,形參b的值是8.而函式func的功能很顯然是返回兩個引數的和,因此這次呼叫結果是13+8即21,這個值賦給r.

2)for(i=0;i另外,你的問題的第一行應該是func而不是fun.

2樓:西部紫狼

程式執行從主函式開始,x,y,z,r均被定義為整型變數,並將x,y,z分別賦以初值6,7,8。

第二句呼叫函式c。在這條語句中,(x――,y++,x+y)是一個逗號表示式,它的值是逗號表示式的最後一個成員的值,在此,(x――,y++,x+y)的值是x+y的值,x――的意思是先取x的原值6作為逗號表示式第一個成員的值,而後自減1,x變成5;同樣,y++也是先取y的原值7作為逗號表示式第二個成員的值,而後y自加1,變成8;x+y的值即為5+8=13。【注:

x――或y++在此程式中的意思是先取x,y的原值做為逗號表示式的前兩項的值,即逗號表示式的前兩項值為6,7,而後分別自減1,自加1,x,y的值則變成了5,8。在執行x+y時,則用的是減1,加1後的x,y值,即5+8=13。所以表示式(x――,y++,x+y)也就是(6,7,13),而這個表示式的值就是最後一個成員的值,即13。

注意:此刻x,y已分別變為5,8,假如程式中要求輸出x,y的值的話,那麼就會輸出5,8。】

在呼叫函式時,要進行引數的傳遞,函式c有兩個引數,一個是逗號表示式的值,一個z――的值,而逗號表示式的值我們在前面已經算出,為13;z――同上面所說,先用z的原值8,再自減1變為7。所以將實參13,8傳遞給函式c的引數a和b,繼而,程式轉向函式c執行;a,b分別為13,8,c=a+b=21,將c值返回給主函式的r,再回到主函式,輸出r的值為21,程式執行完畢。

自加,自減的那兩種形式(x――和――x)一定要區別開,認真看書會明白的。不知我上面的講解您是否滿意,還望多多賜教!!

3樓:網友

r=func((x--,y++,x+y),z- -你看,這個函式呼叫後的值附給r,然後,再看函式的定義,裡面有兩個引數a,b,(x--,y++,x+y)的值對應的引數a,z--的值對應的引數b,你再拿書看一下a++,a是如何先呼叫再加還是加了後呼叫,你就再按照上面的分析,對應就可以算出來了!

for(i=0;i

首先,迴圈不用或了,0到m,然後,a+=f(i)這是一個語句,語句中被迴圈控制,所以是一直執行這個語句,這句和上面的一樣,搞懂是如何先呼叫再加還是加了後呼叫再看一下函式f就可以了!像這種分析就ok了!

4樓:伸手得來

第一個問題:

開始你已經定義了一個函式懂 fun( int a,int b)返回兩個引數的和,下面在主函式main()中r=fun((x--,y++,x+y),z- -表示呼叫函式fun( int a,int b) ,此時等價於:a=(x--,y++,x+y),b=z--,r=c=a+b.

第二個問題:for(i=0;ii從0到m迴圈 每次迴圈a=a+f(i)

5樓:大眼勁

f(i) 返回一個倍精度型的數。

for(i=0;i就是 i從0到m迴圈 每次迴圈a=a+f(i)

6樓:咴忻

找本c的書,看一下子程式的部分。

7樓:匿名使用者

一看就知道是書上的題,這樣的題沒什麼實際價值,就是在那裡繞彎兒而已,誰自己寫程式有這樣繞彎的?以後遇到了別再做了!

c語言!??

8樓:小天學長

!表示邏輯非,是邏輯運算子,運算物件是真或假。

若表示a不等於0,就寫成a!=0;假設a等於1,那a!=0;就是真的,true。

c語言中的符號分為10類:算術運算子、關係運算子、邏輯運算子、位操作運算子、賦值運算子、條件運算子、逗號運算子、指標運算子、求位元組數運算子和特殊運算子。其中邏輯運算子用於邏輯運算,包括與(&&或(||非(!

三種

擴充套件資料

1、算術運算子。

用於各類數值運算。包括加(+)減(-)乘(*)除(/)求餘(或稱模運算,%)自增(++自減(--共七種。

2、關係運算子。

用於比較運算。包括大於(>)小於(<)等於(==大於等於(>=小於等於(<=和不等於(!=六種。

3、邏輯運算子。

用於邏輯運算。包括與(&&或(||非(!)三種。

4、位操作運算子。

參與運算的量,按二進位制位進行運算。包括位與(&)位或(|)位非(~)位異或(^)左移(《右移(>>六種。

5、賦值運算子。

用於賦值運算,分為簡單賦值(=)複合算術賦值(+=和複合位運算賦值(&=三類共十一種。

6、條件運算子。

這是一個三目運算子,用於條件求值(?:

7、逗號運算子。

用於把若干表示式組合成一個表示式(,)

8、指標運算子。

用於取內容(*)和取地址(&)二種運算。

9、求位元組數運算子。

用於計算資料型別所佔的位元組數(sizeof)。

10、特殊運算子。

有括號(),下標,成員(→,等幾種。

c語言中!

9樓:十七夜教育說

c語言中!表示邏輯運算中的非運算。

」是c語言中的非運算子,在變數前面使用它,會構建非運算表示式,表示式的返回結果是個布林值(也就是隻有true或false)。對變數使用時,如果變數不是布林資料型別,將會強制轉化為布林型別再使用,如整形變數123將被轉化為true,整形變數0將被轉化為false。

c語言:是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

c語言運算子:是說明特定操作的符號,它是構造c語言表示式的工具。c語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算子處理,除了常見的三大類,算術運算子、關係運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子,比如位運算子。

優先順序:c語言中,運算子的運算優先順序共分為15級。1級最高,15級最低。

在表示式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算子優先順序相同時,則按運算子的結合性所規定的結合方向處理。

c語言中的「!」

10樓:熱詞課代表

最近」盤「字很流行,盤是什麼意思?為什麼能成為網路熱詞?

11樓:塗智聊璧

1.第一題是以'\0'表示結束符。並不是你輸入的0.它會轉換成ascii碼就不等於'\0'了。你鍵盤是輸入不了'\0'字元的!呵呵!

2.輸出應該是10

28第一次進入時。i

2,進入函式。

fun(),b

a[i]+b

5函式結束b=

5+b=10;第二次迴圈:i=

3,進入函式。

fun():b=a[3]+b

出了函式。fun()就是:b=

14+b=28

12樓:厙淑蘭封嬋

這段程式應該是尋找一個字串的子串,如果找到則返回1,否則返回0

程式中這行**中for(i

0;str[i];i++)

str[i]的意思是:判斷字串str的第i個字元是否為'\0'即空字元。

如果為空則代表已到達字串尾部則退出迴圈,否則繼續執行迴圈。

其實這行**for(i

0;str[i];i++)

與for(i

0;str[i]!=0';i++)等價,c語言規定字元'\0'即0,也就是為假。

str[i]!=0'即str[i]不為假,也就是說str[i]為真。

substr[k]==str[j]

這句的意思是判斷字串substr的第k個字元是否與str的第i個字元相等,如果相等則繼續迴圈,否則退出迴圈。

如果還不清楚可以聯絡我^_^

13樓:酈萱仰黛

外層迴圈中第二個引數str[i]代表什麼。

為什麼這麼寫。

什麼意思啊?

str[i]的意思是為真就執行,否則不執行。光個str[i]怎麼知道為不為真?

答:在c語言在以0為假,非0為真。你輸的是字元,所以對應的ascii碼是多少。

所以每段字元以'\0'自動加在字串後,'\0['的ascii=0所以字串都執行完到''\0'後退出迴圈。

內層迴圈substr[k]==str[j]什麼意思?

與上面一樣意思。

for迴圈。

括號中不應該是條件嗎。

是條件如。if(1)

printf("ok")

elseprintf("on")

執行這句一定是。

輸出ok為非0)

if(0)printf("0")

elseprintf("1")

一定是輸出1

第一個為0,非0才為真)

懂了麼?

14樓:忻丹彤雀恬

i%2就是除2取餘數。

inti,sum=1;

for(i=0;i<=40;i+3)

sum=sum*2;

i控制月份數。

sum為兔子數。

用for迴圈控制對數。

每3個月翻一倍。

懂C語言的進,懂c語言的進入

include這個地方最好還是寫一下,因為有些編輯器不寫這個,程式是執行不了的,這樣寫屬於標準的c語言 void main 主函式前加void,和上句是一樣的解釋。printf the result for i 1 i 10 i printf d a i 冒泡法是較大 小 的數排在前面,要看你的排序...

高手進來看看C語言c,求高手解釋下 C語言 C 語言 C 語言的區別?及年代背景?

我修改成c語言的了,並且能編譯通過了,可以執行了只是,執行的結果,對不對,我沒有驗證。include include void data double a,int x,int m,int n break case 25 演算法同上 for y i 2 y i 2 y break a i j sum ...

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...