1樓:
printf是從右至左計算參數列的,你自己算一下剛好是30,31。
2樓:匿名使用者
典型的未定義行為,無解
參見下鏈解釋
3樓:熊熊佳力
1答案應該是b,這個沒什麼好解釋的(就是指標變數指向變數的地址)
2 答案應該是d 如果直接用字串對字元陣列初始化的話字元陣列的長度要比實際字串長度大1的
因為字串在字元陣列中是以'\0'結束的,這個你也可以用sizeof() 分別測試一下
我已經測試過了a比b大1的
3 答案應該是d,這個沒的說,括號的作用就是避免二義
4答案應該是c,不要把 int *ptr();搞混了,題上的是返回一個整形資料的指標函式,後者是一個
返回指標的函式
5 答案是a,呵呵,這個你好好想一下就明白了
6 答案是a 4
7答案是23 這個你要好好看一看,特別是(&arr+1)它和(arr+1)區別很大,前者在地址上加了
1而後者在地址上加了1*sizeof(int);
8.這道題你是不是搞錯了,你仔細看看有很多錯誤的。
9.答案是 b 為了幫助你理解,對此程式我寫了段**
#include
void main()
void func(char str[100])
為什麼會出現這種情況呢,原因是因為兩者有著本質性的區別,第一個sizeof(str)中的str是一個
地址常量,它索引著一段大小為100的記憶體堆,而第二個sizeof(str)中的str是一個字元指標變數
sizeof(str)的結果就是一個字元指標變數所具有的記憶體,它的記憶體應該是為4的
10答案是d
二:1.
錯,應該放在靜態儲存區(或全域性資料區的)2對
3. 對
4.錯,不可能是float 型的5.對
三1. int main(void)
printf(「index value %d\n」,index);
return 0;}2.
char*f()
;char s[4]=;//關鍵字的開頭是不能大寫的,還有就是符號『也不對
return s;//ruturn 第一個字母也不能大寫,
}void main()
//你這道題的本意是想通過函式呼叫來獲得一個字串的首地址從而在主函式中輸出,
//但是,有一點這個程式沒有考慮到那就是當被調函式結束後那個char s[4] 所佔記憶體將自動
//作業系統**,因為它只是個動態區域性變數,所以要想達到目的應該是宣告成靜態變數的
//static char s[4],還有一點錯誤就是字串都要'\0'結尾否則輸出的字串的將不會是你想要的那樣
3.這道題沒什麼錯誤,能達到預期的效果,除了有幾處拼寫錯誤,例如你第一個是getmmnory而第二個是
getmemory這一點你注意一下就可以了
void getmenory(char**p)
void test(void)
4.這道題沒什麼語法錯誤,除了單引號格式不對,還有就就違反了字串都要以'\0'結尾這一約定
5.這道題沒有什麼語法錯誤,就是有個字串函式寫錯了strcopy,應該寫成 strcpy的
四:你這道題具體是讓做什麼的,我不是太明白,是讓建一個動態連結串列啊還是靜態連結串列啊,
請你把問題寫詳細點
五。int judgment(int a,int length )//這個函式是判斷是否對稱的
void main(void)
while(num>=10);
a[length]=num;
if( judgment(a,length))
printf("是\n");
}如果這個程式有什麼不懂得話,可以提出來,隨時幫你解析
希望我的答案對你有點幫助……
C語言問題C語言問題,C語言問題C語言問題
include include int main b k p b k 0 puts b return 0 c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock print...
C語言問題,C語言問題C語言問題
這題考的是自動型別轉換,由編譯系統自動完成,轉換是 向上 靠的 舉個例子 include stdio.h void main 你編譯一下就會有警告 conversion from double to float possible loss of data 也就是說系統預設轉化了a,b的資料型別為do...
c語言問題,C語言問題
1 c2 a 3 d4 a 5 d6 b 7 a8 a9 d c語言問題 include define n 30 typedef struct student student r n int main void num 1 for i 0 ir max score max j if max i if...