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

答案:登入後查看
統計: 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)
 
題目先算1/2(int/int)只回傳整數部分0
因此答案會是i=4.5+0=4.5
10
0
#5073198
因為1/2的分子分母都是整數所以0.5無...
(共 50 字,隱藏中)
前往觀看
2
0
#1335362

double i;

 i=4.5+(double)1/2;


這時後i才是5.000000

2
0
#1178451
答案沒錯  是4.5http://ide...
(共 36 字,隱藏中)
前往觀看
1
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