c語言問題voidnewprintdoublef呼叫正確的

2022-02-27 16:37:40 字數 1111 閱讀 4806

1樓:匿名使用者

你的函式的定義應該改成 void newprint(double(*f)(), double x) ,估計你在輸入的時候多寫了一個括號

答案是 a 和 c

這是因為首先函式指標定義時可以沒有引數,但是在呼叫的時候可以加上引數,所以double(*f)()以及後面的(*f)(x)是沒問題的,其次,呼叫newprint時,傳遞給函式的引數x在newprint中被傳遞給了f,所以答案a輸出的是0.5的正弦值。

為什麼c也是正確的呢,因為sin和&sin都表示函式sin的入口地址。所以結果和a最終輸出結果一樣。如果對c有異議,請追問(另外兩個是不對的,因為都給需要兩個引數的函式傳遞了一個引數)

樓主可以通過下面的程式測試一下 a 和c的正確性。

#include

void newprint(double(*f)(), double x)

main()

2樓:匿名使用者

題目中幾乎所有的**都是錯誤的

void newprint(double(*f)(), ( double x) )  //少個括號,

void newprint(double(*f)(), ( double x) )  //如果是這樣的

答案是a

void newprint(double(*f)(x), ( double x) )  //如果是這樣的

答案是b

c語言函式呼叫問題(一個語句)

3樓:千年椴木

(a++,b++,a+b)。這個語句的意思其實就是順序執行a++,b++,a+b,然後將最終的值作為第一個引數傳遞個fun.所以經過a++,b++,a+b,可算出,最終a= 2,b=3,a+ b =5,因此(a++,b++,a+b) = 5.

c++,即是先將c的值傳個fun,然後自加。因此fun((a++,b++,a+b),c++);即為fun(5,3),所以sum = 8

4樓:二元空間

(a++,b++,a+b) 逗號表示式,a++後為2,b++後為3,最後a+b為5,整個表示式值為5

fun函式為求兩個數的和,5+3=8,執行後c在自增1

c語言問題,C語言問題C語言問題

沒有縮排,看來比較累 但是輸入一串字元以後要輸入結束標誌eof表示你的輸入結束了 如果你是unix,就用ctrl d,dos就用ctrl z include define maxline 1000 maximum input line length int getline char line,int...

c語言問題,C語言問題C語言問題

把檔案中所有逗號用空格替換。把if fp fopen goods.dat rb null 改成fp fopen goods.dat r null 把 feof fp 換成 0。把 一行刪除。以上3 4也可以在while前新增一行 解決 把printf s,2s,d,d n name,price,in...

c語言問題,C語言問題

您好,c語言經典100題 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於10...