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

答案:登入後查看
統計: 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
#3960469
if( ((a=1) < b) &...
(共 252 字,隱藏中)
前往觀看
5
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
#3763384
if( ((a=1) < b) &...
(共 131 字,隱藏中)
前往觀看
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

私人筆記 (共 1 筆)

私人筆記#3548984
未解鎖
正常要用==但是他用=所以a變成1然後判...
(共 44 字,隱藏中)
前往觀看
0
0