c語言的細節問題,C語言細節問題

時間 2021-10-30 03:53:33

1樓:匿名使用者

ctime()函式返回值的字串末尾自帶\n

2樓:狂唱

二年極一共有多少個語言?

3樓:葉孤心遠

1、在對scanf()函式傳參的時候,數值和字元型別變數前加上&,而字串變數前不用

原因:對於數值和字串型別變數而言,變數名不代表記憶體地址,需要在變數名前加上地址符&。

而字串其變數名代表記憶體地址,所以不需要。

2、c語言中的資料型別的分類:基本資料型別:字元型、整型、單精度、雙精度浮點型、

中級資料型別:陣列、指標、結構體、聯合體、列舉。

3、float和double的區別:float可以精確到的數值為小數點後7位,而double可以精確到的數值為小數點後15位。

4、&表示按位與,&&表示邏輯與。|按位或,||邏輯或。^位異或。

5、其中10的二進位制:0000 1010

則-10的二進位制:a:對10取反:1111 0101

b:對取反後的值加1:1111 0110

所以-10的二進位制為:1111 0110

4樓:敲黑板劃重點

顯而易見,得出 結論一:這是一種非常危險的程式設計習慣。 結論二:這是一個非常有效的探索編譯器的測試程式。

5樓:

這是計算機方面的問題,我還真回答不了,因為我小學二年級畢業,知識太少了

6樓:

你看一下ctime函式的功能吧,它將把t變成day month date hours:minutes:seconds year\n\0。

就是說它自動在末尾加上了一個\n並在其後加一個結束符\0。

7樓:海帶

關於c語言的細節問題,比如判斷一個數是奇數還是偶數掃描一次b的只是看是否在判斷一個數的情況下。用b判斷要不要繼續,可以判斷用字元型cai去判斷執行兩次。

8樓:旅慧穎

用巨集定義實現比較兩個數的大小

即a>=b時返回a, 否則返回b

c語言有幾個巨集定義是大家需要掌握的:

__file__包含當前檔名的字串

__line__表示當前行號的整數

c語言細節問題

9樓:

顯而易見,得出

結論一:這是一種非常危險的程式設計習慣。

結論二:這是一個非常有效的探索編譯器的測試程式。

結論三:程式設計師實際中是不會寫這樣的程式的!

很顯然,輸出結果取決於編譯器:

vc++6.0   和   vs2010

5   5   4

3   3   3

linux下gcc編譯器

5   5   5

5   4   3

接下來,我們分組討論:

第一:        printf("%d %d %d\n", i, ++i, ++i);

對vc++6.0和vs2010

顯然,編譯器識別了:++在前,要先進行++運算,再將運算結果輸出,即輸出i的值。

需要注意的是:

它是從右往左,做一次++,i = 4作為一個輸出結果壓入棧;然後,再做一個++,  i = 5作為一個結果壓入棧;這個特點非常明顯。

先算第二個  ++i  ,得到4,存入棧

再計算第一個  ++i  ,得到5,存入棧

最後,先輸出5,再是依次彈棧取值5 ,4,實現輸出:5   5   4

一句話:先++,多個++,一個一個來。一個++,一次入棧,一個結果。

對linux下的gcc

顯然,編譯器識別了:++在前,要先對變數進行++運算,在將運算結果輸出。

需要注意的是:

它也是從右往左,直接就是先進行  兩次  ++  運算,因為是自增以後在入棧,所以,i = 5,然後,將2個5依次壓入棧,這是它的特點。

最後,先輸出5,再是依次彈棧取值5 ,5,實現輸出:5   5   5

一句話:先++,多個++,一次性搞完全部++。

第二:    printf("%d %d %d\n", j, j++, j++);

對vc++6.0和vs2010

顯然,編譯器識別了:++在後,沒有需要在printf前,進行運算。所以,先全部輸出y,再一個一個++運算。

一句話:printf所有y,再搞完所有的++。

對linux下的gcc

顯然,編譯器識別了:++在後,沒有需要在printf前,進行運算。所以,從右到左,一個一個來。每個都是先 printf 輸出 y ,再++運算。

先將最後一個y值, 3,入棧,再進行++,y = 4;

再將第二個y值, 4,入棧,在進行++,y = 5;

最後,先輸出5,再是依次彈棧取值4,3,實現輸出:5   4   3

一句話:一個一個來,每個都是先printf,再++

很好,分析完畢,重複我們得出的結論:

結論一:這是一種非常危險的程式設計習慣。

結論二:這是一個非常有效的探索編譯器的測試程式。

結論三:程式設計師實際中是不會寫這樣的程式的!

10樓:倒黴熊

printf 格式符後面的引數都是 從後往前運算的,例如第一個 i那個,先計算最後 的 ++i,是先讓i+1,然後再使用,所以輸出為4

倒數第二個++i,同理輸出為5

倒數第三個的i 就是5了

下面的j同理

11樓:韓日希

3,4,5

3,3,4

這樣對嗎?如果我沒記錯的話,我學完基本語法就沒碰過c了。

一個先加,一個後加。

12樓:

其實這種的沒有必要扣這麼細,這種用法在實際程式設計中很少很少用

13樓:倫悅宜

5 5 4

5 4 3

一個c語言細節問題。

14樓:匿名使用者

想知道能不能,最簡單的辦法,把樣本擴大到十萬級以上,兩個程式分別執行,拿秒錶掐時間

c語言細節問題

15樓:來自杏花村大氣的木星

《c primer plus》這本書中有說明,你搞來仔細去看看。

scanf()輸入double時,必須使用%lf,否則得到的是一個隨機數。此時跟3相比較,當然不相等。

scanf()輸入float時,使用%f。

使用printf()輸出double或float時,都可以使用%f

16樓:梧桐

scanf()輸入double型資料x時,輸入格式為scanf("%lf",&x),注意,這裡使用的是%lf輸入資料型別為float時,使用的是%f

17樓:求學解惑

浮點數直接與整形數比較沒有意義,因為浮點數存在精度問題

c語言問題,找不到細節錯誤?

18樓:紫薇參星

你的c語言程式的問題是在字母超出26個時,除了需要將字母重置為'a',還需要將其列印出來並加1

改完的c語言程式如下(改動的地方見註釋)

#include

int main()

int i,row,j,m,n;

m=10;

n=10;

char a;

a='a';

for(row=1;row<=17;row++)for(i=1;i<=19;i++)

if(i>=m&&i<=n)

if(a=='[')elseelseelse if(row>=9){m=m+1;

n=n-1;

printf("\n");

return 0;

另外,我給你一個我寫的更簡潔的程式,你看看吧#include

#include

int main()

int i,j,n=9,count=0;

for(i=1;i<=2*n-1;i++){for(j=1;j<=abs(n-i);j++){printf("+");

for(j=1;j<=2*n-1-2*abs(n-i);j++){printf("%c",(char)('a'+count++%26));

for(j=1;j<=abs(n-i);j++){printf("+");

printf("\n");

return 0;

19樓:匿名使用者

有一種情況下少輸出了一個 if(a=='[')a='a'

這個時候a沒有輸出

把下面的else去掉就可以了

任何情況下都輸出a的值

詢問一個c語言的細節問題

20樓:匿名使用者

a 正確

b正確,沒有形參

c正確,原型中可以省略形參名

d錯誤,形參無型別

c語言程式設計注意點細節

21樓:匿名使用者

找一本認真的從頭看完,自己再多動手編點程式。有興趣的話可以去一些論壇上看看,能力足夠的話,可以做一些acm的題目。基礎打好後再看一些進階的書籍。細節方面主要是指標。

學習方法是一方面,心態可能是更重要的一面。只要想再學,總會學會的。

22樓:匿名使用者

這麼模糊的問題,你還是直接baidu,google會比較好。

如果你說的是c++,你可以看一些effective c++ ,essential c++之類的。

C語言問題,找不到細節錯誤,C語言程式 除錯出錯,找不到問題在哪,求大神指教!

紫薇參星 你的c語言程式的問題是在字母超出26個時,除了需要將字母重置為 a 還需要將其列印出來並加1 改完的c語言程式如下 改動的地方見註釋 include int main int i,row,j,m,n m 10 n 10 char a a a for row 1 row 17 row for...

C語言問題,C語言問題C語言問題

選a首先,空格也是一種字元,b d選項分別把空格賦給了c1,c1 其次,c選項不完整,排除 不僅a這樣,10a20b也是可以的。 聽不清啊 答案a 10a 20b cr 是正確的。因為scanf d c 時,會忽略數字前面的空格,遇到非數字字元就會結束讀取 非數字字元會留待下一次讀取,即被後面的 c...

C語言問題,C語言問題

include void main 最後輸出 1 2 2 3 cca 2,b 2,c 4 2.設計一個程式 計算0xaf 01234567,字元 a 的ascii碼值 十進位制 是多少,101 代表的字元是什麼,32678 1的準確結果是多少,1.456e6 35的準確結果是多少,12345 6的準...