C語言輸出問題,C語言的輸出問題?

時間 2022-06-14 09:25:02

1樓:匿名使用者

%d的名字叫做格式說明符.

格式說明符由兩部分組成,前面是%號

後面是一個小寫字母

不同的格式說明符代表不同的輸出格式,

這裡,前面這個%d就是將對應的變數c以整數形式輸出.

後面這個%d就是將對應的變數d以整數形式輸出.

%f是浮點數格式,

也就是將變數以小數點的形式輸出,

比如c=1;

printf("%f",c);

那螢幕上就會顯示1.000000(浮點數預設小數點後6位)還有%p代表指標,

%c代表字元等等

小兄弟你多看看書好不好?

問出這麼搞笑的問題...

2樓:

%d表示資料的輸出型別為整型,如1 2 3 4 5都是整型的資料%f表示資料的輸出型別為浮點型,如1.1 2.6 3.6都是浮點型的 資料

a+u=%d (這個%d是後面你要輸出的c的資料型別) 也就是a+u=c

b+u=%d (這個%d是後面你要輸出的d的資料型別) 也就是b+u=d

3樓:你好問吧

格式控制,控制後面的輸出項以什麼型別輸出的

你上面定義 c d 是int 型別的,所以輸出用%d

如果定義成單精度或雙精度的就用%f

4樓:匿名使用者

%d是輸出整型

%f是輸出浮點型

5樓:

鬱悶,你是學c的嗎?好好看書!

%d是輸出數字的ok

%c是輸出字元的ok

%s是輸出字串ok

c語言輸出問題?

6樓:聽不清啊

因為c語言的格式輸出,它具有自動「四捨五入」的功能的。

7樓:lf心似煙

因為你是輸出的%9.3f

c語言的輸出問題?

8樓:自我程式設計

(a+b,b+c,c+a)是逗號表示式,從左往右順序執行,最後返回最右邊的表示式,也就是c+a。所以傳遞給函式第一個實參是4,第二個實參是9(d+e)。所以最後函式返回的是13。

9樓:匿名使用者

func函式只有兩個引數

第一個引數是逗號表示式,逗號表示式的值由最末項決定,所以是c+a,即4

第二個引數是d+e,即9

顯然結果是4+9,13

關於c語言的輸出問題?

10樓:

由於char型別比int型別級別低,c規定不同型別表示式的結果取較高階的型別,常數整數被預設是int型,所以a-1的型別是int型,因此輸出按int型別處理;a-1是8個1,最高位是1,輸出時被解釋為負數,用1在左側擴充套件到32位,它就是-1。而a = a-1的等號右側同樣是int型,但左側是unsigned char型,賦值規則規定要將右側的型別轉換為左側型別賦給左側變數,那麼結果是unsigned char型,儘管也是8個1,最高位也是1,但因按「無符號」型對待,所以輸出時用0擴充套件到32位,結果就是255。你可以做個試驗,把第一個**的printf("%d",a-1);改成printf("%d",a=a-1);輸出肯定也是255,。

這裡的關鍵是輸出是用%d控制的,它是對應int型的,就要看對原變數按無符號型擴充套件還是按有符號型擴充套件了。

11樓:夏天的小紅花

為何第一種形式的**輸出結果不是255而是-1?

這是因為a-1時,是兩個不同型別的量做減法,系統自動把unsigned char轉換為現多位數的int,進行相減。結果當然是-1。

而第二種形式的輸出結果就是255,這是因為系統把-1賦值給一個unsigned char時,因-1的機器碼是32位二進位制1,所以,它只把8位的二進位制1賦給a,而a是一個unsigned char,它的表示範圍為0~255,所以,在unsigned char的解釋下,8位二進位制數11111111就是十進位制255了。

12樓:匿名使用者

char是8位的資料型別,0再減1就是0xff,如果是無符號數它就表示255,有符號就是-1,你形式中中直接以%d輸出當然結果就是-1,形式二中是將它賦值給了unsigned char,再輸出,結果就是255,當然如果你在

c語言輸出問題

13樓:

我在你**的基礎上,稍微改了點,你看下,是否就是輸出你想要的#include

main ()}

14樓:聽不清啊

程式中少了幾個變數的宣告。

輸出的不是從0到1000,這是因為你把step的值定為了50的緣故啊。

下面是把step改為了10的執行結果:

#include

main ()}

15樓:兄弟連教育北京總校

標準c語言庫函式fprintf/printf格式字串的轉換說明形式是這樣的:

%[標誌][最小輸出寬度][.精度][長度修正符]型別

方括號括起來是可選項。

標誌是0或多個標誌字元,可以是任意順序,常用有以下幾個:

- 左對齊,預設是右對齊。

+ 帶符號的值前面總是有個符號,也就是正數前面有+號,負數前面有-號。

0 輸出值的寬度小於最小寬度的話,用0填充,預設是用空格填充。

最小輸出寬度是10進位制整數常量,開頭不能是0,不然變成上面的0標誌了。如果輸出的值小於這個寬度,根據上面的對齊標誌決定左對齊還是右對齊,剩下的用填充字元填充,預設是空格,用0標誌指定的話是0。

精度一般是小數點後面跟1個十進位制數,對於整型,表示要輸出的最少位數,不足的話前面會補0,對於小數,表示小數點後面輸出幾位小數。

長度修正符修正後面型別的輸出長度。l表示long或unsigned long,ll表示long long int或unsigned long long int,h表示short或unsigned short,hh表示為char或unsigned char,l表示long double。

最後的型別就是常見的d,o,x,f,c,s一類的。

所以printf("%-0.4d",m)表示的是左對齊,0填充,保留小數點後4位。

1.保留n位有效數值用 %.n

2.既要表示數值間距n個字元,同時又要保留數值m位有效數值用%n.m

關於c語言輸出問題

c語言輸出問題。

16樓:匿名使用者

char outp[100];

在子函式裡面定義,雖然指標返回了

但是函式返回的時候就釋放記憶體了

17樓:

你犯了c之大忌——返回了區域性陣列的指標。能正確輸出

一、二個元素是你的運氣好,因為函式返回時,陣列已被釋放了,如果後來那裡沒有被「別人」佔居,你就能輸出正確資料來;若被」別人「改寫了,你一個正確的也得不到了。一句話,那裡已不是你的**所能正確控制的空間了。你應該把陣列安排在主函式裡或宣告為全域性陣列,而把它的指標傳給函式去處理其中的元素才對。

c語言輸出問題

18樓:匿名使用者

① :要知道字元型資料最終儲存到計算機中是以二進位制形式存放的,而這個二進位制就是該字元的ascll碼,因此當然可以把字元和數字互相賦值,但是要注意一下賦值範圍,例如你定義sc為有符號的char型,那麼你只可以把-128-127之間的整數賦給sc,如果超過了就會發生溢位錯誤,得不到想要的結果。

② :要知道螢幕列印輸出和紙張列印(即在印表機輸出)的區別,當你在螢幕輸出時,你使用\b符號,它表示退一格,那麼\b後面的一個字元就會把前面的替換掉,而用印表機輸出時,儘管退格了,但是\b後面的字元只是重疊在被掩蓋的字元上面,原來的那個字元還保留,但是與\b後面的一個字元重疊顯示。

19樓:匿名使用者

賦值127沒錯,但是結果是溢位後的結果

\t是製表符 \r是退行 當然不一樣了

\" 中的\是轉義用的,也就是把他後面的"當字元列印

20樓:昌雨文

有符號的signed的型別的取值範圍是-128~127,當然可以取到127了。

輸出結果為:

127abcefg (\b是退格的轉義字元)

abc def (\t 游標表示向前移動四格或八格,可以在編譯器裡設定)

abcdef(一個回車符)hij

abc"def"hij

21樓:匿名使用者

#include

int main()

22樓:匿名使用者

127代表+127,所以可以賦值。至於下面的問題,自己去查查轉義字元方面的知識,轉義字元使用率也算頗高。

C 序輸出問題,C語言反序輸出問題

這麼給你說吧。string arr new string hello word 你這個是對的,但是你想倒序輸出的時候就有問題了。你這個沒必要用字串陣列,字串也有索引的。string arr hello word for int i i 0 i 這個是在vs2008裡的語法,你用的response...

再問c語言問題,是關於指標的反序輸出問題的。答案是

1次 p不空 執行f p 1 1.printf c p 壓棧 堆疊情況 printf c p 壓棧 p 1 2次 p不空 執行f p 1 2.printf c p 壓棧 堆疊情況 2.printf c p p 3 1.printf c p p 1 3 次 p不空 執行f p 1 3.printf c...

c語言指標輸出,C語言指標輸出 char str 2 printf c n , str printf x n , str printf x n ,str

在char str 2 中,str指向了字元 2 的地址,str的記憶體中裝的是字元 2 的地址,但自己也有一個地址,它的地址就是 str。getmemory str 傳入的是指標str自己的記憶體地址,而非它指向的地址 getmemory str 傳入的是指標str指向的地址,而非它自己的地址 首...