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

時間 2021-08-30 09:58:46

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語言基礎問題,求解答

a 0 b 1的值為1,因為a 0的意思就是把0賦給a,結果肯定是1 如果是a 0,那麼要a等於0才是1 b 1同理。a b是表示a和b都要是1結果才是1 a b是表示a和b裡面只要有一個1結果就是1while a 表示只要是a不是0就要執行while裡面的語句。while a 表示!a的值不是0就...

c語言問題求高手解答,C語言問題求高手解答

幫你寫好了,這裡幫你編譯執行了,沒任何問題,不放心的話你自己試試struct staff int main void if head null puts 沒有任何資料,抱歉!else current head while current null current head while current...

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

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