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 ...