26 執行下列 C 語言程式後產生的輸出為何? #include < stdio.h > main() { int a = 0, b = 0; if( ((a=1) < b) && ((b=2) < a) ) { a += 10; b += 10; }printf(“%d, %d\n”, a, b);} (a)11,12 (b)11,10 (c)1,2 (d)1,0
#include < stdio.h >
main() {
int a = 0, b = 0;
if( ((a=1) < b) && ((b=2) < a) ) {
a += 10; b += 10;
}
printf(“%d, %d\n”, a, b);
}
答案:登入後查看
統計: A(41), B(58), C(85), D(124), E(0) #852259
統計: A(41), B(58), C(85), D(124), E(0) #852259
詳解 (共 10 筆)
#1189288
- 運算 x && y ,y 只在 x 為 true 時才進行評估
- a=1會執行但因為a<b不成立, 所以後面的判斷式沒有再執行的必要, 因此b還是0而非2
- 答案D
12
0
#1163647
1. if( ((a=1)<b)&& ((b=2)<a) ) { => 這行敍述使 a=1 , b=2
2. 但是, 其邏輯不成立, 所以 a += 10; b += 10; 的敍述不會被執行
3. so , a=1 , b,2
2
1
#1311410
上機測試的確是(D)
2
0
#1359286
這題可能要送分,只是沒人提出釋疑?不同編譯器可能會執行C或D選項
2
0
#1105419
原題目
#include <stdio.h>
main() {
int a = 0, b = 0;
if( ((a=1)<b)&& ((b=2)<a) ) {
a += 10; b += 10;
}
printf(“%d, %d
”, a, b);
}
1
0
#1117341
這題我看不懂
0
1
#1117382
有人可以解釋一下嗎
0
1
#5622510
0
0