統測
115年
[電機與電子群資電類] 專業科目(2)
第 37 題
📖 題組:
某生以 C 語言程式統計 2 個二進位數的位元差異並且將其轉換成十進位數,撰寫下列程式。
1 #include <stdio.h>
2 #include <math.h>
3 void main(void){
4 short i;
5 unsigned char count = 0, X = 0, Y = 0;
6 unsigned char x[8]= {1,1,1,1,1,1,1,0};
7 unsigned char y[8]= {0,1,1,1,1,1,1,1};
8 for(i = 7; i >= 0; i--){
9 if(x[i] != y[i])
10 count++;
11 X += x[i]*pow(2,7-i); //pow(a,b)傳回 a 的 b 次方值
12 Y += y[i]*pow(2,7-i); }
13 printf("%.3f", (float)count/8); }
某生以 C 語言程式統計 2 個二進位數的位元差異並且將其轉換成十進位數,撰寫下列程式。
1 #include <stdio.h>
2 #include <math.h>
3 void main(void){
4 short i;
5 unsigned char count = 0, X = 0, Y = 0;
6 unsigned char x[8]= {1,1,1,1,1,1,1,0};
7 unsigned char y[8]= {0,1,1,1,1,1,1,1};
8 for(i = 7; i >= 0; i--){
9 if(x[i] != y[i])
10 count++;
11 X += x[i]*pow(2,7-i); //pow(a,b)傳回 a 的 b 次方值
12 Y += y[i]*pow(2,7-i); }
13 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$)。
▼ 還有更多解析內容