c語言問題

時間 2022-07-01 11:35:08

1樓:後景逸

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");

}如果這個程式有什麼不懂得話,可以提出來,隨時幫你解析

希望我的答案對你有點幫助……

2樓:匿名使用者

指標型變數,儲存指向資料的位址,如:

當呼叫change時如果這麼寫:change(p1,p2);

在實際呼叫時,會將變數p1和p2中存放的位址壓入堆疊傳送給函式進行運算

在程式返回時,系統不會自動將壓入堆疊的位址更新回p1和p2這樣在呼叫函式之前和之後指標內容都沒有改變,改變的是壓入堆疊的資料,呼叫函式後就被自動捨棄了。

3樓:匿名使用者

如果互換指標的指向,中間變數應該也是同型別指標,引數應該是有關指標的指標:

#include

void change(int **p1,int **p2)如果互換變數值,就是你給出的**。

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...

c語言問題,C語言問題?

這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...