C語言問題求教是不是所有有關簡單的函式的問題都可以用這樣的方法實現?有什麼弊端嗎

時間 2022-08-14 18:57:07

1樓:匿名使用者

沒多大的弊端

#define就是預處理的時候處理下,簡單點就是讀你檔案的時候 讀完 馬上 根據你的#define來做查詢替換工作

printf("%d",s(i,n)); 換成 printf("%d",i>n?i:n);

不過一般#define s(a,b) a>b?a:b 都要再加個括號避免替換出差錯#define s(a,b) (a>b?a:b)

如printf("%d",s(2,1)*4); 如果是你那樣寫的話 就是 printf("%d",2>1?2:1*4); 即 printf("%d",2>1?2:4);

#define s(a,b) (a>b?a:b) 就是 printf("%d",(2>1?2:1)*4); 2*4=8 了解了嗎

2樓:匿名使用者

可以啊 不會有什麼弊端 只要你明白預編譯相當於將整個式子替換進去 不要把函式表示式弄錯了就行了~

3樓:匿名使用者

不知道你所說的簡歷的函式問題是指的什麼?不過發現你的巨集定義有點小小的瑕疵。覺得這樣定義會好一些。#define s(a,b) ((a)>(b)?(a):(b))

不過巨集定義只是簡單的替換,所以使用的時候要小心。

c語言的兩個問題: 所有的遞迴程式均可以用非遞迴演算法實現?遞迴函式中的形式引數是自動變數嗎? c語言中

4樓:匿名使用者

c語言所有遞迴都bai可以用非遞迴演算法實du現,最典型的就是

zhi迭代法dao,有時比遞迴更容專易理解。至

於遞迴中屬的形式引數是自動變數,沒明白樓主的意思,形參就是形參啊,形參變數也是變數,其記憶體分配在棧區,隨著函式的結束,其記憶體也會被釋放,形參的生命週期與函式生命週期相同哈(同生共死)

5樓:匿名使用者

||#include

unsigned int fibonacci(int n);

int main( void )

return 0;

}unsigned int fibonacci(int n)這種演算法效屬率比較低

**不清楚可以hi我

6樓:賊寇在何方

1.是的,借助堆疊都可以實現

2.是的

以下對c語言函式的有關描述中,不正確的描述是哪個?(選擇是問題補充裡)

7樓:哈包祥明

這個是多選題 答案abc 函式可以巢狀呼叫但不可以潛逃定義;函式可以沒有返回值(void);可以放在多個檔案中;在c中,呼叫函式時,只能把實參的值傳送給形參,形參的值不能傳送給實參,這就是傳說中的單向傳遞。 做選擇題 你要注意高溫字詞:比如說必須,只能等等(太絕對)還有其他的詞這裡就不一一說了

8樓:倒霉熊

a:不可以巢狀定義,可以遞迴呼叫

b:不一定有函式值,像void型別。

c:可以放在多個檔案中,包含相應的標頭檔案,就像庫函式的呼叫,包含相應的標頭檔案即可。

d:這個正確,函式值傳遞,是單向傳遞。

所以abc

9樓:匿名使用者

a 不能巢狀定義

b 不一定要有返回值可以是空

c 不一定要在同一源程式檔案中,可以呼叫外部檔案的函式加extern就行了abc

10樓:匿名使用者

a 肯定不能巢狀定義啊

c 可以不同檔案

另外,回一下ls void也是返回值吧,只不過是void而已,本質上還是有返回值的

最近參加了幾場c語言筆試題:經常要求不使用庫函式來實現字串處理這樣的問題,請問這是什麼意思呢。是不

11樓:匿名使用者

不用庫函式的意思是不使用和字串處理相關的庫函式,比如字串的複製,這個功能有庫函式strcpy直接實現,直接用strcpy誰都會...還筆試什麼呢?這個意思實際上就是讓你寫個函式來實現和strcpy這個函式一樣的功能了。

printf和scanf只是輸入輸出需要用到,但是筆試的時候似乎用不上的吧,一般來說只需要寫出需要實現的功能對應的函式就可以了(至少我只經歷過這種情況),不用寫出完整的可執行測試**。如果說要求輸入輸出的話,printf和scanf我覺得是可以使用的。

12樓:匿名使用者

這個問題就考lz自己想辦法了,方法是有的就怕人想不到。舉個例子

str1="abc",str2="def";要實現這兩字串的交換,可以用指標+中間變數來實現,可以不用到庫函式

所謂的字串處理函式就是指函式,計算長度,交換,相加等等

13樓:匿名使用者

printf scanf這些基本的都是可以用的 比如說strcpy,strcmp之類的不能用吧

14樓:匿名使用者

printf scanf是相當大的函式,不太可能自己寫的

關於c語言的學習有什麼建議嗎

c語言問題(不要c++) 回溯和深搜不是太明白,希望可以用盡量簡單的方法來詳細有條理地解釋一下,最

求教c語言程式設計問題,求教c語言程式設計問題

include void main if m n t n else t m for k t k 1 k if m k 0 n k 0 如上 include int main if n 0 printf n else if n 0 printf 兩數的最大公約數為 0 n兩數的最小公倍數為 0 n e...

c語言問題求教

貌似風輕 c是讀取乙個字元 s是讀取乙個字串 這裡的 1s是只讀取輸入的字串的第乙個字元,其實作用和 c差不多 在你的程式裡,之所以會出現差別是受到了前面 的影響 前乙個輸入scanf d a 這裡你輸入了乙個數字和乙個回車符 之後如果你使用scanf c b 讀字元,那麼程式會發現輸入流裡已經有乙...

求教一道c語言問題,求教一道C語言問題

while str i getchar n 這裡的問題,根本就不能實現將鍵盤中輸入的數字存入str i 中的功能,可以改為 while i 測試結果 建議 可以將列印資料的地方加個空格,不然顯示好難看 虹灬穎鳶 int n,str 80 i 0,j 0,min,max,temp1,temp2 cha...

求教c語言中的函式指標問題,C語言有關函式指標的乙個題目,看不懂,求解答

施瓦辛格 pite ret pite taskfunction pite message msg unsigned char pite taskfunction pite message msg 上邊是函式指標宣告的一種 type pointer parameter list pointer 為函式...

幾道C語言問題求教望高手解答

1,語句 x y z 執行後 x 值就是 y z 也即 5 那麼條件就為真,你是不是要寫為 x y z 2,算術運算的優先順序高於邏輯運算 故先計算出 兩邊 表示式的結果在進行 與運算 故為 1 3,執行 y z x 後 y z 故 y z 為真 故 x 1 第一題改為if x y z 要小心呀 x...