關於C 的基礎問題求解答,求高手解答C 入門問題!!!

時間 2021-08-30 09:59:02

1樓:妖刀路過

1. 答案不是1,你可以用vc驗證一下,應該是0.66667

2. 對於這個問題,你可能沒有理解清楚型別轉換,在win32的前提下,int佔4個位元組,double佔8哥位元組,而你的x*y,呼叫了隱式型別轉換,乘法以後的值為double型,所以sizeof以後就為8個位元組

3. ++可以為前置運算或者後置,優先順序有關,肯定

4,你可以用sizeof看一下這個數,4個位元組,為float型別,不知道你怎麼覺得它是double型的

5. 我推薦你可以用編譯器去做做看,然後再看看書

6. '\0'就是字串的結束識別符號,在記憶體中佔有一個位元組,但沒有任何意義,比如說“hello”,它在記憶體中其實佔用了6個位元組,因為最後面還有一個 '\0',所以它的作用在於常常來判斷一個字串是否結束

7 字元在記憶體中按照ascii的方式儲存,所以對其進行算術運算的時候,實際上是對ascii的值進行雲遠

8 a=(--i==j++)?--i:++j;首先這條語言沒有起到作用,因為在?前面是一個賦值運算,一直為1,然後就是後置運算子的問題,看看書

2樓:匿名使用者

第一個是強制轉換型別嗎。。

第二個是x和y相乘的結果的型別所佔大小,不是三個字母佔多少

之後同求

3樓:匿名使用者

1.是用什麼格式輸出的?不同格式答案不同

求高手解答c++入門問題!!!

4樓:王愛飛

問題1很明顯,翻譯成如下**相信你理解地更好:

long a = 0;

long b = 1;

dowhile(a < 10);

long c = b;

很顯然,是10的階乘

問題2,顯然你沒有理解什麼是“遞迴”(函式的遞迴呼叫)下面就以 long c = ab(5); 來做一個分析:

(1) ab(5) = 5 * ab(4);//因為4 > 1(2) ab(4) = 4 * ab(3);//因為3 > 1(3) ab(3) = 3 * ab(2);//因為2 > 1(4) ab(2) = 2 * 1;//因為2 = 1有了上述的分解過程,相信你明白了是怎麼回事了吧。

若任然不明白,建議你去看看c++程式設計的基礎書籍

5樓:匿名使用者

long a = 0, b = 1;

p1:a++;

b *= a;

if( a < 10 )

goto p1;

long c = b;

幫你翻譯一下你就懂了.

a賦值0,b賦值1;

標號p1:

a加1結果賦值給a; 第一次 a=1; 第二次 a=2;......

b乘a結果賦值給b; 第一次 b=1*1 第二次 b=1*2; 第三次 b=2*3; 四次 b= 6*4;.....

如果a小於10那麼轉到標號p1處執行.否則往下執行.

b的值賦值給c;

long ab( long x )

關鍵是 ( x > 1 ) return x * ab( x - 1 );

這一句,

翻譯一下就是 ,如果ab(5)的話就是

(x>1)return 5*(4*(3*(2*1)))

需要把此句的 ab(x-1)擴套進去.直到x>1不滿足後執行否則返回1.

這裡我用的字母是大寫,因為我輸入法切換小寫解釋起來不方便.只要你看懂就行了.

6樓:吃力

能不能把你的程式寫完整一下啊?

c語言入門問題,求解答,c語言基礎問題,求解答

說的具體點,你想實現什麼。c語言基礎問題,求解答 輸入兩個整型數a 5,b 9 兩個整型指標pointer 1個pointer 2分別指向a和b的地址。判斷 if aswap函式的本意,應該是將pointer 1和pointer 2所指地址中的值進行交換。但是錯誤典例中的swap,只是交換了p 1和...

C語言問題,求解答,C語言問題,求大神解答

f函式中的a每次使用外面傳入的2,b是區域性變數,後每次都是1,c是靜態變數,函式每次執行會在上次值 1 所以最後執行三次,輸出為789 聽不清啊 程式的輸出是 789 c語言問題,求解答 執行abc a 1 首先進行巨集代換過程,是把 a 1去替代 定義的巨集函式 x x 中的x,即得到式子 a ...

英語問題,求高手解答,英語問題求 解答

有觀點指出 孩子們對在學校裡接受的 純 教育有錯誤的理解。suggested that 這裡是賓語從句 science that they study at school!這是同位語從句 先行詞是science,從句裡they study 是主謂結構,不缺成分,因此不是定語從句 定語從句必須缺少成分...