阿摩線上測驗 登入

申論題資訊

試卷:103年 - 103 地方政府特種考試_四等_資訊處理:程式設計概要#30783
科目:程式設計
年份:103年
排序:0

申論題內容

二、請回答下列 C 語言程式問題:
請問下列函式,f1(0.5, 6.5)的輸出為何(該數字的精確度到小數點後第一位)?
(5 分)
double f1(double x, double y) {
int a=2, b=1, c=1;
x+=(a+b+c==2*b);
x-=a*b/x;
return (x+c);
}

詳解 (共 1 筆)

詳解 提供者:hchungw
當呼叫f1(0.5, 6.5)時,x初始值為0.5,y的值為6.5(儘管y在函式內並未被使用)。
變數a、b、和c分別被初始化為2、1、和1。
x += (a + b + c == 2 * b);
計算a + b + c得4,2 * b得2,判斷式(4 == 2)為false,等同於0。
因此,這一步不改變x的值,x仍然是0.5。
x -= a * b / x;
計算a * b / x得2 / 0.5,等於4。
x減去4,結果是0.5 - 4,等於-3.5。
返回x + c;
c的值為1,因此-3.5 + 1等於-2.5。
最終,函式返回-2.5,這就是f1(0.5, 6.5)的結果。