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