26 執行下列 C 語言程式後,產生的輸出為何?#include <stdio.h>#include <iostream>int main(){ double i; i=4.5+1/2; printf("%f", i); system("PAUSE"); return 0;}
(A)4.5
(B)5.0
(C)5
(D)2.75
#include <stdio.h>
#include <iostream>
int main()
{
double i;
i=4.5+1/2;
printf("%f", i);
system("PAUSE");
return 0;
}
(A)4.5
(B)5.0
(C)5
(D)2.75
答案:登入後查看
統計: A(102), B(103), C(20), D(11), E(0) #806937
統計: A(102), B(103), C(20), D(11), E(0) #806937
詳解 (共 8 筆)
#1189858
在數學上 1 / 2 = 0.5
但在C語言程式,整數的/就回傳整數,浮點數的/就回傳浮點數。
例如:
int a = 5;
int b = 2;
a / b 就會回傳 2 這個整數(int除int)
double a = 5.0;
double b = 2.0;
a / b 則會回傳 2.5 這個浮點數(double除double)
但在C語言程式,整數的/就回傳整數,浮點數的/就回傳浮點數。
例如:
int a = 5;
int b = 2;
a / b 就會回傳 2 這個整數(int除int)
double a = 5.0;
double b = 2.0;
a / b 則會回傳 2.5 這個浮點數(double除double)
題目先算1/2(int/int)只回傳整數部分0
因此答案會是i=4.5+0=4.5
10
0
#1335362
double i;
i=4.5+(double)1/2;
這時後i才是5.000000
2
0
#1359470
其實這題應該無解吧..小數點後面還有很多0沒標示到,這種答案不精確
1
0
#1125744
有誰會啊
0
0
#1178286
答案應該是(B) 5.0才對吧!
計算方式: 1/2=0.5 >>> 0.5+4.5=5.0
0
0
#1054450
不明白,有人會嗎?
0
0