1樓:匿名使用者
大括號中的變數是臨時開設的,即使與外面的變數重名但也不是同一個變數,大括號結束後,這些變數被捨棄,大括號中凡是用到臨時變數的,不會去訪問外面同名變數。
a=3,b=2,c=1;這些變數是main函式定義的
c-=++b; 即b++; [a=3,b=3,c=1], c-=b;[a=3,b=3,c=-2]
b*=a+c; 即b*=1;[a=3,b=3,c=-2]
大括號新開臨時變數b和c,簡便起見,我們可以新起名bb和cc以免自己搞混, 大括號中凡是用到b的都改成bb,用到c的改成cc
bb=5,cc=12[a=3,b=3,c=-2,bb=5,cc=12]
cc/=bb*2; [a=3,b=3,c=-2,bb=5,cc=12/(5*2)=1]
a-=cc;[a=2,b=3,c=-2,bb=5,cc=1]
printf輸出a,bb,cc:2,5,1
a+=--cc;即cc--;[a=2,b=3,c=-2,bb=5,cc=0], a+=0
printf輸出a,b,c:2,3,-2
2樓:鉞森莉
本題主要考察變數的作用域問題。
第一個printf語句中變數b和c的作用域只在當前{}內,故應輸出2,5,1。
第二個printf語句中變數a的作用域為整個main函式,而變數b和c的作用域則為main函式的前三句及當前printf語句這四句。所以
c-=++b c=c-(++b)=1-3=-2b*=a+c b=b*(a+c)=3*(3-2)=3a-=c a=a-c=3-1=2
a+=--c a=a-(--c)=2-0=2故第二個printf輸出為2,3,-2。
為什麼第二個printf沒有輸出
3樓:聽不清啊
scanf語句書寫有錯,應該是:
下面的同樣需要改正)
這是要等輸入第一個實數的實部、虛部後,再輸出第二條提示資訊的。
4樓:風若遠去何人留
在第一個printf下面是scanf
程式在等你輸入呢。
比如輸入1.1 2.2
然後就會輸出第二行,並等你輸入下一個scanf的資料。
再輸入一組,比如3.3 4.4
就可以輸出結果了。
5樓:你叫我來幹啥
一個printf後面的scanf不是輸入請求嗎?你需要輸入才會往下走啊!
為什麼如下的c程式,執行時第2個printf會輸出兩遍?
6樓:
上述問題和io輸入機制有關,當你按下enter停止輸入時候,輸入快取中還存在著一個enter字元。只需清除快取中的資訊即可。
將以下語句插入scanf之後,即可
fflush(stdin);
有以下程式,為什麼2個printf輸出的結果不一樣
為什麼第二次printf輸出的值和第一次的不一樣?
7樓:匿名使用者
while語句解析如下:
n <=1; //n is 0
n++; // n is 1
print...; // n is 1;
// 回到迴圈條件檢查
n++<= 1; // 跳出迴圈,執行n++, 結束後n=2print... // n is 2
8樓:51cto學院
之所以兩次不一樣,那是因為前面那個printf是在while迴圈裡面的,而後面那個printf是while迴圈外面的。
如果是下面這麼寫的,那兩個printf輸出就一樣。
while(n++<=1)
你要注意while迴圈的範圍。
c語言 位域 第二個printf該輸出多少 並解釋為什麼
9樓:風若遠去何人留
a b c的位域分別是2 3 5
所以 對應最小值為1, 最大值分別為3 7 31超過位的值將階段。
賦值依次為
4 15 32
於是a=0 b=7 c=0
為什麼第一個不用printf也能輸出,而第二個不能呢?
10樓:金色潛鳥
第一個,列印語句放在開關語句裡了,滿足某case 就直接列印了。
第二個,開關語句裡只有賦值沒有輸出列印,所以要另加列印語句。
11樓:
第一個用了4個printf(),而第二個只用了1個printf(),怎麼叫第1個不用printf也能輸出?
12樓:迷夢錯亂
是這樣子的,第一個printf的語句比較短,只輸出單個字元,並沒輸出任何變數值.
當a=1則輸出a
a=2就輸出b
a=3就輸出c
a=不等於1,2,3就輸出d
說一下語句
①#include
main()
}不明白繼續問我,望採納,謝謝
13樓:亞馬遜選品管家
都有用printf啊。
14樓:咕咕啃骨頭
第一個,少了好多break啊- -
15樓:匿名使用者
你兩個不都用了printf?
php輸出echo5 11 5為什麼輸出為
無情的香菜 1.字串與數字運算,字串會自動轉化成數字,再做運算。2.字串轉化成數字 從字串的第一個字元起,如果第一個是數字,向右直到不是數字為止,如 123abc 轉化為123 如果第一個不是數字,直接轉化為數字0。3.你的第一個echo相當於 5 1 1 5 字串轉化成數字後就是5 5,第二個同理...
int a 2 printfu ,a 輸出為 65534 為什麼?麻煩解釋一下!!謝謝
風若遠去何人留 出現這種情況,是用的16位編譯器.int佔2位元組.賦值int a 2 補碼形式儲存,實際儲存為0xfffe用 u輸出,會轉為無符號數 unsigned int 也就是輸出0xfffe為原碼的正數值,即65534 三笑牌拳頭 printf u a 中u是unsigned int的意思...
C語言為什麼我的結果輸出不出來,C語言 為什麼輸入之後沒有沒有輸出結果?
p a 這是什麼賦值方法?字串之間的賦值要用memcpy,memcpy p,a,100 如果只是單純的 p a的話,p是char 型別,p就是char型別,而a是一個int 型別,即一個地址,地址一般使用32位資料來儲存 64位機器使用64位資料儲存 這麼賦值的話,p並不是a的地址,而是a的地址中的...