c語言中printfd12輸出的值是多少?為

2022-01-01 09:47:36 字數 4436 閱讀 7701

1樓:匿名使用者

結果未定義,與位元組序有關

大端模式下,輸出12849,小端模式,輸出12594

2樓:陽光上的橋

輸出的內容是12849,因為'12'在記憶體裡面是兩個位元組,0x310x32,%d把它作為一個整數處理,由於高低位元組交換結果就是:0x3231,你可以用%x輸出驗證,10進位制就是12849。

3樓:匿名使用者

我的答案是12594。不同的cpu有不同的位元組序型別 這些位元組序是指整數在記憶體中儲存的順序 這個叫做主機序。有兩種:

1. little endian(小頭):將低序位元組儲存在起始地址2. big endian(大頭):將高序位元組儲存在起始地址

所以答案可能不一樣。基本過程是,為'12'在記憶體裡面是兩個位元組,%d把它作為一個整數處理 0x310x32,由於我的是大端,結果就是:0x3132,輸出十進位制就是12594。

4樓:消失掉de記憶

輸出的'12'的十進位制,自動轉換了,不行你用'13'試下

5樓:又是一朝暮

這樣不行吧,你要想輸出12就直接在printf中寫就行了,直接在第一個雙引號中寫

6樓:匿名使用者

%d 是控制輸出的 值的格式,表示是以十進位制 格式輸出;希望這裡可以幫到你

7樓:匿名使用者

我執行的結果是12594。原因還在探索中。

為什麼c語言中printf("%d",1<0<5);輸出是1和!!!8為0。**等答案。謝謝!~

8樓:歷英耀計哲

與數學中不同,c語言中這是個邏輯表示式

1<0<5

的意思就是

1<0為假,因此其值就是

0,這時表示式就是

0<5了,0<5自然是真,那麼整個表示式就是1了

c語言:printf("%d",1.2 - 1.0 == 0.2)的輸出結果是什麼,以及,為什麼

9樓:windy笨笨狗

首先算1.2-1.0實際是多少?

為什麼不是0.2要回答這個問題,得先了解計算機內部是如何表示數的我們都知道,計算機用位來儲存及處理資料。每一個二進位制數(二進位制串)都一一對應一個十進位制數。

最簡單的轉換為二進位制看一下。

拿0.1舉個粒子,它的二進位制數 :0.

0001100011....。這是一個二進位制無限迴圈小數,但計算機記憶體有限,我們不能用儲存所有的小數位數。那麼在精度與記憶體間如何取捨呢 ?

答案是:在某個精度點直接捨棄。當然,代價就是,0.

1在計算機內部根本就不是精確的0.1,而是一個有舍入誤差的0.1。

所以並不是所有的小數再計算機裡都是精確的。二進位制能精確地表示位數有限且分母是2的倍數的小數。

故一個1.2-1.0並非是0.2,0.2只是一個精度有限的近似值,故不等於0.2,false即0

詳細的可以檢視再計算機內部怎麼表示數的望採納

10樓:匿名使用者

輸出為0, 因為不相等。就是假,也就是0

浮點數一般不用於比較操作,因為精度問題會產生比較奇怪的結果,如上。

c語言中,printf的%d可以輸出多少資料長度 %ld可以輸出多少?

11樓:

1、%ld表示資料按十進位制有符號長型整數輸入或輸出,如果是32位,輸出4位元組。

2、%d表示資料按十進位制有符號整型數輸入或輸出,如果編譯器32位,可以輸出8位元組。

示例:printf("%5d\n",1000);//預設右對齊,左邊補空格

printf("%-5d\n",1000);//左對齊,右邊補空格

printf("%+d%+d\n",1000,-1000);//輸出正負號

printf("%d%d\n",1000,-1000);//正號用空格替代,負號輸出

printf("%x%#x\n",1000,1000);//輸出0x

printf("%.0f%#.0f\n",1000.0,1000.0)//當小數點後不輸出值時依然輸出小數點

printf("%g%#g\n",1000.0,1000.0);//保留小數點後後的0

printf("%05d\n",1000);//前面補0

擴充套件資料

printf()函式的呼叫格式為:printf("《格式化字串》",《參量表》)。printf()是c語言標準庫函式,在stdio.

h中定義。輸出的字串除了可以使用字母、數字、空格和一些數字符號以外,還可以使用一些轉義字元表示特殊的含義。

格式化字串包含三種物件,分別為:

(1)字串常量;

(2)格式控制字串;

(3)轉義字元。

12樓:匿名使用者

c語言中,printf的%d可以輸出多少資料長度和%ld可以輸出分別如下:

一、printf中%d輸出的最大即是2的32次方個長度;

二、%ld輸出的最大即是2的64次方個長度。

13樓:wolf_騎士

32位處理器中:%d輸出的是2的32次方個長度,而%ld輸出的是2的64次方個長度。

14樓:

printf中%d輸出的最大即是2的32次方個長度;

而%ld輸出的最大即是2的64次方個長度。

c語言中有 int a=012; 而printf("%d",a)為什麼輸出結果是10 ?如果int a=025呢?拜託各位大神

15樓:連張謙

int a=0xx;是表示八進位制,輸入時是顯示十進位制的,012轉回十進位制是10,025是21。

16樓:赧唱仇心宜

012代表的是8進位制轉換成10進位制就是10,025則表示21

c語言中 printf("\n")輸出是什麼結果?printf("%d")什麼意思?為什麼?

17樓:郎秀英費緞

printf("\n");是個換行,\n是轉義字元,表示換行printf("%d",a);完整應該這麼用,a是你要輸出的變數名。%d是個佔位符,它為一個int型資料站位,一個printf中可以有多個佔位符。如:

printf("%d%d%f",x,y,z);

%f也是佔位符,它為float型資料站位,佔位符的對應關係是順序對應的,即第幾個佔位符給第幾個變數站位,與資料型別無關。

其它的一些轉義字元和佔位符規則,煩請自行查詢printf函式的使用說明,不贅敘。

18樓:登梅花仍娟

printf("%d\n",

c&c);

表示輸出表示式c&c的值。

而c&c是表示將變數c與自己進行與運算,結果為c。如:

intc=12;

c&c=

12&12

=1100

&1100

=1100=c

(1100為12的二進位制)

所以最後輸出結果為變數c的值,即等價於:printf("%d\n",c);

19樓:謇士恩淦丁

printf("\n")輸出是一個回車符

printf("%d")應該是printf("%d",i)之類的,是把i這個變數按%d的格式輸出,也就是整數形式輸出

20樓:勇素芹代雨

\n是一個轉義字元,意思是換行,如果你只輸出\n的話會看到游標到了另一行。

printf("a\nb")則可以看到明顯效果:a在上b在下。

printf("%d",

x)是以整數的形式輸出一個數,後面必須加一個引數,表示被輸出的數。

c語言中printf("%d",(a=2)&&(b=-2))的輸出結果是?及原因?

21樓:天萱翠乙

printf("%d",(a=2)&&(b=-2));

這是個不正確的表示式,為什麼?a=2,b=-2

&&與運算結果應該是0,但系統輸出卻是1,這和c編譯器靈活性質有關,c程式有強大的容錯能力,故此有這樣的的結果。個人的觀點。

22樓:召時芳以媚

結果是1

a=2和b=-2都是賦值語句不是==

都是恆非零

相當於a=2;

b=-2;

printf("%d",a&&b);

所以兩者都為真

所以(a=2)&&(b=-2)也為真

那就是1了撒

23樓:承翮滑飛舟

第一個人說的是對的。

c語言中printfd5dnab其中d和5d什麼區別

d 輸出整型 nd 輸出的整型寬度至少為n位,右對齊,5d即寬度至少為5位,位數大於5則輸出實際位數 0nd 用得比較多,表示輸出的整型寬度至少為n位,不足n位用0填充printf 05d 1 輸出 00001printf 5d 1 輸出 1 為空格 d是指以十進位制的形式輸入或輸出一個整 數 5d...

c語言中變數指標輸出問題,C語言中變數指標輸出問題

這和printf用 s的規則相關。首先ps是一個指向字元型資料的指標 printf用 s修飾輸出時需要提供一個指標,這個指標指向的資料是字元型的,但printf將按照字串的規則來進行輸出,也就是輸出完這個指標指向的字元後,自動將指標加1,並判斷指向的字元是否為0,否則將輸出直至指向的資料為0為止,或...

c語言中如何輸入輸出文字,C語言中如何輸入輸出文字

需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 20 gets a puts a 3 編譯器執行test.cpp檔案,此時可以輸入文字。4 按回車,此時會輸出剛才輸入的文字...