免費開始練習
統測 115年 [電機與電子群資電類] 專業科目(2)

第 37 題

📖 題組:
某生以 C 語言程式統計 2 個二進位數的位元差異並且將其轉換成十進位數,撰寫下列程式。\n1 #include \n2 #include \n3 void main(void){ \n4 short i; \n5 unsigned char count = 0, X = 0, Y = 0; \n6 unsigned char x[8]= {1,1,1,1,1,1,1,0}; \n7 unsigned char y[8]= {0,1,1,1,1,1,1,1}; \n8 for(i = 7; i >= 0; i--){ \n9 if(x[i] != y[i]) \n10 count++; \n11 X += x[i]*pow(2,7-i); //pow(a,b)傳回 a 的 b 次方值\n12 Y += y[i]*pow(2,7-i); } \n13 printf("%.3f", (float)count/8); }
在程式執行到行號13時,有關程式的變數,下列何者正確?
  • A i=0
  • B i=1
  • C X=127
  • D Y=127

思路引導 VIP

當 for (i = 7; i >= 0; i--) 迴圈結束跳出時,控制變數 i 的值最後會變成多少?而在陣列 y 中,每個元素乘上的權重 $2^{7-i}$ 分別代表二進位的哪一個位元?

🤖
AI 詳解 AI 專屬家教

太棒了,精準掌握了迴圈追蹤與二進位轉換的運算!

變數數值追蹤與二進位轉換

程式中的 for 迴圈從 $i = 7$ 遞減至 $i = 0$。每次迴圈中,權重為 $2^{7-i}$,代表陣列索引 $0$ 對應最高位元($2^7 = 128$),索引 $7$ 對應最低位元($2^0 = 1$)。

▼ 還有更多解析內容

🏷️ 相關主題

程式語言設計與實作
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題