1樓:中華城不倒翁
#include
void f4(int n)
//直接執行。
printf("%d",n%10); n除10取餘。%是取餘運算子。
}//繼續執行上一層剩下的。
printf("%d",n%10);
}//繼續執行上一層剩下的。
printf("%d",n%10);
void main()
自習看一看就明白了。其實遞迴也很簡單。
2樓:網友
首先是f4(123)
總執行結果是:執行f4(12);列印3。
執行f4(12),因為f4(12)的執行結果是:執行f4(1),列印2。結合上面的式子,所以總執行結果是:執行f4(1),列印2;列印3。
執行f4(1),沒什麼好說的了,列印1。
所以總執行結果為:列印1;列印2;列印3。
此類題目應注意一下列印出的字元的先後順序。
3樓:張進
他的輸出並不是一百二十三,應該1,2和3。 樓主如果把函式f4輸出函式改為:
printf("%d",n%10); 加一個換行符。
即會發現1,2,3並不在一行,因為他們是在三個層次不同的遞迴函式中輸出來的。
在執行過程中,先後呼叫了 f4(123) 輸出123%10 即 3f4(123%10) 即f4(12) 輸出12%10 即 2f4(12%10) 即f4(1) 輸出1%10 即 1又因為遞迴時採用棧的模式(先進後出),故先輸出1然後是2和3.
希望對你有幫助。
求下列c語言題目詳解
4樓:我們必將知道
1. 設變數定義為:int s[ ]helloworld";,則陣列s中有___13___個元素。(注意加上\0)
2. 設變數定義為:int a[2]=,p=&a[0]+1;,則*p的值是___3__。
3. 表示式 !!8的值是__1___
4. 下列程式段的輸出結果是__15___
#define min(x,y) (x)<(y)?(x) :y)printf("%d",10*min(10,15));
5. 設a為整型變數,初值為12,執行完語句 a+=a-=a*a後,a的值是___264__。
6. 下列程式的輸出結果是___6__。
#include
main()
5樓:匿名使用者
個元素,helloworld這是12個元素,最後字串結束標誌是'\0',所以又13個。
2. 首先int *p =&a[0]+1 ,這聚會等價於p指向了a[1],即p= &a[1],所以*p= a[1] =3
3.首先8非0,所以!8=0,那麼!!8=14.答案是15(絕對是15!!)應為define是簡單的文字替換所以10*min(10,15)等價於。
所以是,a+=a-=a*a等價於。
1).a=a-a*a = 12-12*12= -132;
2).a= a+a = 132+(-132) =2646.首先算的是5>4?3:2 值是3,所以變為8>7?6:3,因為8>7所以值為6
求解一道c語言題
求解一道基礎的c語言題
2023年9月二級c語言一道題
6樓:匿名使用者
char 是字元變數,所以 'd',或是 32都是正確的表示,因為每個字元都有其ascii碼,是一個128以內的整數。而'65' 是一種錯誤的表示形式。
float 要求浮點數,但c語言裡還有一個機制就是資料型別的自動轉換,如可以允許函式的引數從整形數自動轉換成浮點數。這也就是說b與d從這一點上來說都可是正確的。
但這個題的第三個考點是:void ,也就濁fun函式沒有返回值,所以t=fun(..是錯的。
所以答案是d
7樓:
char 是特殊的 int , 儲存空間佔用大小一樣a 不對,應為 abc 有三個 char 大小;
b 沒有返回值。
c 同a
8樓:匿名使用者
a雙引號括起來的是字串;
b是一個賦值語句;
c單引號括了兩個字元了;
9樓:匿名使用者
因為先d是因為 輸入32實際是輸入的ascii碼的32位 實際上他已經被強制轉換為char型別了。
一道c語言題,求解,急!
c語言習題求解第十題
10樓:匿名使用者
第一題首先,將i,j,k賦值為3;
i&j 3&3 位與 同時為1則1,否則為0,那麼3和3位與那麼就是3,不變;
~i 3 按位取反,0變1,1變0
這個就是按位取反的結果,在二進位制中11表示十進位制的3,取反後,其餘的0將會變成1,負數在記憶體中是一個非常大的值。
-4|3 位或 同時為0則0,否則為1 看圖上,如果將後面那兩個零補上,那就是所有位都是1了,有符號的整形數表示-1;
第二題3異或3 兩個值不相同為1,否則為0
那麼兩個相同的值異或就是0,接下來3再和0異或,所有值與0異或都是其本身的值,所以還是3
第三題3*3=9
9>>2 右移 9在二進位制1001,香油挪兩位就是 0010在十進位制中表示2,那麼2位與3就等於2;
另外,那麼熱心網友你的第三題是不是計算錯了。
11樓:匿名使用者
1, 結果 -1 ~i|i&j; 優先順序 ~ 故等價於 (~i)|(i&j) =3)|(3&3)=>4|3 =>1
2,結果 3 i^=j^=i; ^是從右至左結合故等價於 i^=(j^=i)=>i^=(j=3^3)=>i^=0 =>i=3^0 =>i=3 =>表示式結果為33,j*k>>2&i 結果 2 遵循先算術,再移位,後位運算故等價於 ((j*k)>>2)&i =>3*3)>>2)&3=>(9>>2)&3 =>2&3 故結果為 2
c語言習題求解第四題
12樓:飄零的狐狸
第一行 y=x++-1;
x 先使用 再加一 y=2-1=1 x=3第二行 y=++x-1;
x先加一 再使用 x=4 y=4-1=3第三行 y=--z+1;
z先減一 再使用 z=2 y=2+1=3最後一行。
z++先使用再 加一 所以 仍然是4++z先加一 但是前面已經是5再加一 變成6--z先減一 再使用 變為5
求c語言題目,求C語言題目
c語言經典100題 程式1 題目 有1,2,3,4個數字,能組成多少個互不相同且無重複數字的三位數 都是多少 1.程式分析 可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去 掉不滿足條件的排列.2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成.利潤 i 低於或等於1...
C語言結構體題目求點撥,求解一道c語言題目 結構體的!!
1,3分別初始化cnum 0 x和cnum 0 y2,7分別初始化cnum 1 x和cnum 1 y因此輸出的結果為3 1 2 6 只是輸出一個6 結果是6 cnum 0 x 1 cnum 0 y 3 cnum 1 x 2 cnum 1 y 7 printf d n cnum 0 y cnum 0 ...
c語言的題,求解答,C語言題目,求解答
在這個函式里t只是一個用來傳值的引數,在主函式里呼叫findmax函式是通過t將陣列元素的個數傳給findmax的,所以在使用時t相當於一個常量。比如說int s 那麼t 3 開始時 p 0,k 0,p執行p p 1,k 0,ps k 執行k p,p p 2,k 1,p執行p p 3,k 1,p t...