關於c語言以下程式的運算結果為()

時間 2022-01-25 20:50:15

1樓:吉祥二進位制

(a>b)?b++:(++a>4)?b++;a+++; //你寫的最後一個+是不是沒有呀

應該是下面這樣的吧

(a>b)?b++:( (++a>4)? b++ : a++);

順序很容易理解,c語言標準中明確規定,?:為一個順序點,上面的式子可以簡化為:

if (a >b ) b++;

else if (++a > 4) b++;

else a++;

這估計就是二級考試裡面的題。真正在寫c程式時,?: 一般不會巢狀。

歡迎到 0x30 帖吧討論更多計算機相關的知識 。。

2樓:宛丘山人

你的程式有錯誤,前面少了標頭檔案和主程式前的型別說明,c=語句的倒數第2個分號應是冒號,a+++應為a++, 修改後應為:

#include

void main()

執行結果是:3 2 2

因為開始時,a=1 b=2 a>b為假,執行(++a>4)? b++:a++;

a自加為2,++a>4為假,執行a++,因為是a++,先返回2賦值給c,再自增為3。所以執行列印結果為3 2 2

3樓:

c=(a>b)?b :( a>4)?b :a ;

按運算優先順序,計算a>b 值為假,則運對 ( a>4)?b :a ;進行訂算。'這又是一個三元運運算元。 a>4顯為假,此時a=2

計算a ,

最後a=3,b=2,c值首先為 ( a>4)?b :a的運算結果,即a 的值,即c=2

4樓:

先比較(a>b)因為a《b,所以b++這部不走。

(++a>4)還是不成立

a++;

別看那麼複雜,其實你只要一層一層撥開,就不復雜了這段程式一點意義也沒有,教你們c語言的老師汪汪只是理論,實際寫**可能豬頭一個

5樓:

c=(a>b)?b++:(++a>4)?b++:a+++;

可以看成這樣:然後從左往右看

c = (a>b)?b++:((++a>4)?b++:a++);

6樓:

c=(a>b)?b++:(++a>4)?b++;a+++;

這句巢狀了問號表示式,先判斷a>b,很明顯為否所以執行第一個冒號後面的問號表示式(++a>4)?b++:a++,++a使a變成2,但還是小於4,於是執行該問號表示式冒號後面的a++;因為是a++,所以a在這句話中沒改變值仍然是2返回個c,於是c就等於2,然後a加1,a變成3(記住++在後面的是在這句執行完後才加的,以分號為標誌)

c語言有以下程式,...,程式執行後的輸出結果為( )

c語言:以下程式的執行結果是()

7樓:匿名使用者

答案錯誤。應該11。

或者**有誤。

void main()

if(j%2==0)// j=10,所以滿足條件,執行j*=20後,j=200。繼續迴圈。

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

8樓:寸正騎士

最終結束迴圈的條件是i>1000,故i輸出為1001,與j無關

9樓:

i=10,j=10→j=200,i=11 程式結束

10樓:

怎麼會是1001?是11啊!

11樓:毓城督欣暢

函式sub中的引入引數是是形式參考,比方說第一個sub(x3,x4);

函式最先執行的語句是:intx=

x3,inty=

x4;//把x3跟x4的值賦給x跟y

所以函式裡面改變的是x跟y的值,而x跟y在函式結束後就被清除了,所以受改變的只有全域性變數x1,第一次執行sub的時候,x=

x3;x1

=x;//x1==10;

同理,第二次的時候x1的值就等於x2了,所以x1最終值為40,其他值不變,輸出結果是:

10,20,

40,40

12樓:招濯竭初彤

^#define

sw(x,y)

這個巨集的作用就是在不借助第三變數的情況下,交換x和y的值,^是位異或運算子,x^=y相當於x=x^y,具體什麼是位異或運算,可以在網上輕意找到相關教材。

b=01代表8進位制數的1,1在任何進位制計數系統中都相等。

關於c語言的問題

13樓:已存在這個名字

&是取地址,*是取該地址的值。

第一個是錯誤的函式宣告,這是語法錯誤。

第二個是正確的函式宣告,引數型別是一個指向linklinst的指標。

14樓:暴孝不詞

1.自頂向下、逐步求精

2.空間複雜度

3.c語言

程式檔案的編譯錯誤分哪為兩類

4.可執行程式

5.機器語言

6.obj7.b

15樓:於悠逸呼縱

#include

"conio.h"

#include

"stdio.h"

main()

這樣就對了。

scanf裡面不要亂加空格和一些其他的東西。

16樓:時讓所香

inti=1;

i=(i++)+(++i);結果是i=3,當自增自減運算子用於算術運算時,採用集體統一原則,即i取值在開始時是相同的,在本題中,i集體等於1,第一個括號內結果為1,第二個括號內的結果為2,因此最終結果為3

17樓:牛良檀水

1、使用函式或過程

2、空間複雜度

3、4、機器語言

5、機器語言

6、obj7、b

18樓:蕭芙老婷

答案應該是4

先計算i++,這時候(i++)中的i為1,但是i自增長為2,再計算++i,(++i)中i為3,

所以i=

1+3=4

19樓:滿元修倫庚

答案不好說,這和編譯器有關,因為各個編譯器的運算規則是不一樣的。我機子的結果是4,還好理解。由於圓括號優先順序最高,而且運算順序為從左到右。。

i++是用完再加,++i是加完再用,所以(i++)運算後仍為1,(i++)運算結果為2,故最後相加結果為1+1=2

20樓:伯君雅陸香

www.csdn.net

是個學程式設計的好**,中國最大程式設計師**,註冊會員後就可以在裡面提問,測試自己的程式設計能力,拜師等等

歡迎採納!

c語言 閱讀以下程式,當輸入資料的形式為 25,13,10 正確的輸出結果 為 (d) 。 為什麼不是a?

21樓:匿名使用者

先說一點需要的知識

scanf:

① 遇空格、「回車」、「跳格」鍵,結束當前輸入② 遇寬度結束,結束當前輸入

③ 遇非法輸入,結束所有輸入

scanf的返回值表示輸入成功的數的個數,若遇到輸入意外返回eof你的這個程式,輸入逗號是遇到非法字元,scanf結束所有輸入同時返回1(因為第一個值是正確的)

也就是說

如果

printf("%d",ret);

如果輸入的是

25,13,10

則程式會列印1,x的值是輸入的第一個數25,但y z卻是申請空間時的隨機數,所以最後的printf("x+y+z=%d",x+y+z);輸出是不確定的

22樓:匿名使用者

23 52 12

c語言以下程式的輸出結果為( )

23樓:匿名使用者

程式的功能是是將字串str2連線到字串str1的後面,並輸出連線後的字串str1

因此輸出結果為computerlanguage

在c語言中,計算機程式通常有哪幾種錯誤?

24樓:大野瘦子

1、系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。

2、語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。

3、邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。

25樓:匿名使用者

在計算機程式中,通常可能發生以下三種型別的錯誤:

(1)語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。含有語法錯誤的程式是不能通過編譯的,因此程式將不能執行。

(2)邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。例如整型變數的取值超出了有效的取值範圍、在scanf函式遺漏了取地址運算子&、陣列元素引用中下標越界、在應當使用複合語句時沒有使用複合語句等。

由於含有邏輯錯誤的程式仍然可以執行,因此這是一種較難發現、較難除錯的程式錯誤,在程式設計、除錯中應予特別注意。

(3)系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。例如折半查詢法是在已經排序的陣列上進行的,但實際的資料並沒有進行排序、程式中需要開啟一個已經存在的檔案,但這個檔案由於其他原因丟失等。

c語言,以下程式的輸出結果是,C語言問題 以下程式的輸出結果是?

輸出1 3 這是遞迴了,所以先是fun 3 進入後發現3 2 1,所以又繼續func 3 2 也就是fun 1 進入發現1 2 0,就執行prinft,輸出1,然後fun 1 就返回了 返回出去正好是fun 3 的prinft,輸出3 進入fun 3 進入fun 1 輸出1退出fun 1 輸出3退出...

C語言題,以下程式的輸出結果是,c語言題 以下程式的輸出結果是。 include stdio h void main i?

初出茅廬 include stdio.h main printf d n a 結果是31,我說的只是原理,你可以根據上面別人說的過程就會明白的。 經過理論分析i 1時,進入程式,執行語句a 3 即a a 3,a 3,再執行a 5,即a a 5 3 5 8 然後馬上輸出結果a 8,你用單步追蹤法,也可...

c語言有以下程式,c語言 有以下程式 include stdio h main

2870 其實是兩個數 28 70 那3個if的意思其實就是要求x使得 x 7 0 x 1 3 0 x 3 1 x 2 2 0 x 2 0 春雨 潤物 terranlong說得已經很對了。如果還看不明白話把程式排版一下就好看了 include main printf n 程式不建議那樣寫,編碼的原則...