c語言菜鳥級問題急待高手解答詳細分析步驟

2022-06-12 17:30:03 字數 792 閱讀 7106

1樓:搶人頭了

這個題應該是這樣的,首先要知道運算子的優先順序和結合性,另外還要知道++k和k++的區別,++k是即時生效的,即當時就會生效,而k++是這一句執行完才會生效

先說前半邊k++*++k

因為*、++是右結合的,而且*優先順序最高,因為是右結合,所以此時最先看++k,這樣k就是3,然後是k++還是3,所以前邊是3*3是9

再說後半邊

此時也許你會認為k是4,但是此時k其實是3,因為k++還沒生效,因為++生效必須在這一句執行完才會生效,所以還是先看--k,此時就是2,然後k--也是2,因為k--也不會生效,所以2*2=4

最後一加就是13

但是當這句執行完之後k就會是2

2樓:

分析: ++k和--k的運算優先順序高於*,所以從左至右++k和--k先運算,而k++和k--的優先順序低於*,所以先計算*再按照從左至右計算k++,k--

可得:(1)++k以後k = 3,則有3*3 =9;

(2)--k以後k=2,則有2*2=4;

(3)再計算k++,則有k=3;

(4)再計算k--,則有k=2。

最有結果9+4 =13,k=2.

3樓:匿名使用者

++在前表示先加後用 ++在後表示先用後加,

根據運算法則,先算k++*++k,則先k++時值還是2,++k時值是3,其實k++*++k就是先計算k的變化,再相乘,值為9,而後面k--沒值,--k後值是2,所以k--*--k=4,9+4=13,還不懂就在visual c++試試

C語言程式問題,求高手 C語言問題,求大佬解答

我嫌麻煩是否可以把print star 換成別的字母 是可以的,可以按照你說的換成void a 也行。這只是初學者用用。你以後開發大程式,這麼多函式,你能分得清什麼函式做什麼用麼?所以要養成好習慣。括號是帶參。下劃線也沒有什麼固定的意義,就是增加程式的可讀性。不懂再問。望 可以。裡面是用來放引數的 ...

菜鳥級c 問題

s1 s2這句處於for中間塊,所以它有兩方面的功能。1 先賦值,將s2的字元逐個複製給s1。2 後判定,注意 s1 s2的邏輯值為 s1,而 s1又來自於 s2,所以,歸根結底它是想判定 s2是否為空,如果為空,迴圈將立即結束。因為中間位置為條件判定位。而 s1 s2,放到for迴圈內部顯然是不作...

c語言編寫程式困惑高手解答,C語言程式設計問題 求高手解答

while count printf 4d link h number link h number 0 count 這個演算法主要是雙while迴圈這裡。首先while count while i 3 內迴圈的意思是每數三次排除乙個當前元素。如果不等於3的話迴圈繼續往下數,等於3的話迴圈終止,進行迴...