c 初學,急需這道題的詳解

時間 2023-08-18 23:40:14

1樓:聽不清啊

這是因為題目採取了一個遞迴函式。當引數值小於字元5的時候就先進行遞迴呼叫。只有當引數等於字元5的時候才進行輸出。然後逐級返回,這樣就形成了543210的輸出。

2樓:最大的寶寶

遞迴相當於一個分層的呼叫:

0) 先分析recur(0)。先假設recur中沒有if語句,那麼recur(0)將輸出兩個0。現在有了if,則**會變成:

0; recur(1); 0;

1) 同樣如上分析recur(1),則它執行的是。

1; recur(2); 1;

如同數學上的代入一樣,把0)中的recur(1)換成1)中的**,有。

0; 1; recur(2); 1; 0;

依次recur(c),直到c=5,就得到了黑板上的數值。

小結一下讀遞迴的方法:

1、弄清遞迴函式recur“當前層”的功能(比如有什麼輸出),不要著急反覆遞迴。

2、recur(char c) 的引數是傳值的,不會影響當前層的c,所以我可以在分析時毫不猶豫地寫出當前層的兩個cout的結果,如果出現傳地址的引數,在分析上就要更加謹慎。

有的書講遞迴,不從大局出發,就直接細講到了堆疊的變化,恐怕會把人搞得更懵。

一道c++題目,求詳解

3樓:匿名使用者

第四個不對 第一個呼叫時 傳遞給a的值是0 其他兩個是常量 第二個道理一樣 第三個 沒有引數傳入 系統自動賦值a為0

4樓:緣來丶緣淺

在這個題目中,在提供的方法中有三個引數,其中b和c都是有預設值的,a沒有,所以,按照選項看下來,test(0),這個是將a = 0,由於沒有給出b, c,它們將使用預設值,合法。

執行截圖:test(0, 0),會將a = 0,由於給出了b引數的值,所以,b將不再使用預設值,二是b = 0,合法;

執行截圖:test(),沒有對引數a賦值,而a又沒有預設值,不合法;

執行截圖:test(0, 0, 0),a = 0,b和c都將不是用預設值,而是進行賦值b = 0, c = 0,合法。

執行截圖:這條題目主要考察的是函式呼叫的引數賦值和引數預設值,看見樓下好像解釋錯了,所以貼上執行結果,其中,將引數的值輸出,有圖有真相。

一道c++題目,求詳解

5樓:班長龍龍

a 答案 :this指標是在指向類成員本身,但是友元函式並不在類裡面,而是在類外面。

b 答案 :友元函式不能直接訪問類的成員,只能訪問物件成員。所以在實參時要給出訪問的物件。

c 答案 :一個類的成員函式也可以作為另一個類的友元,但必須先定義這個類。

d 答案 :必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函式原型,友元函式的說明可以出現在類的任何地方,包括在private和public部分; 所以d答案是錯誤的。

一道c++題目,求詳解

6樓:網友

a char str //這裡沒指定長度,就可以由後面的初始化數目決定,所以是對的。

b char str[2];長度為2,而後面初始化個數為3,超過陣列長度了。

c char str[2][3]:這是兩行三列的陣列,而後面的初始化為三行兩列,當然錯誤了。

d char str():這樣是宣告函式,故後面的賦值當然是錯的。

7樓:匿名使用者

;//n必須大於等於3,};n必須大於等於。

d:沒有這種寫法。

8樓:網友

b,定義包含兩個元素,定義了三個 錯誤。

c,定義兩個包含三個元素的陣列 應該是{a,b,c},{a,b,c}

d,是函式定義,該用[ ]

9樓:我能

b中char str[2]表示定義長度為2的字元陣列,而後面對其進行賦初值賦了三個值,故錯。

c中charstr[2][3]表示定義行數為2,列數為3的二維字元陣列,而後面定義時行數為3(裡面有3個小括號),故錯。

d中char str()無此形式。

詳解英語選擇題,這道題為什麼選C

後面那句話是修飾debt,而不是修飾he.所以刪除b有片語為 in situation即 在什麼樣的局面或情況中而沒有on situation 所以,ad不對 希望滿意 首先是非限制性定語從句,whose指代人,排除b。in this that situation是固定片語,排除 a d。所以選c ...

求問這道題怎麼做,請詳解,這道題裡面break和continue都是什麼作用

這題,明白是這個結果,關鍵的地方有三點,1 讀懂for迴圈2 瞭解這裡的自加運算子3 熟悉continue break語法首先從第一點開始分析 老實說,這裡完全是為了考你對for的掌握程度,是否真的理解了。通常實際開發,不會這麼缺心眼的寫法。標準寫法,for的三個條件都會給你。即for 初值,條件,...

初學者問題這道C語言題答案是是什麼?請解釋一下,謝謝了

選a,k是先計算k k 1,然後才使用k的值,第一次判斷時,k 4,第二次判斷時,k 0,不執行迴圈體,迴圈結束。c語言初學者問題? 兩種辦法,1,使用scanf s,這是scanf的安全版本,需要一個引數限制最多讀取的位元組數,例如最多讀取double型別大小的那麼多位元組數 2,在工程屬性的前處...