c語言程式設計
1、指標的基礎及指標運算
2、資料交換
3、字串反轉及字串連線
4、陣列元素奇偶排列
8.3.1練習:
(1)定義乙個整形指標變數p,使它指向乙個整形變數a,定義乙個浮點型指標q,使它指向乙個浮點型變數b,同時定義另外乙個整形變數c並賦初值3.
(2)使用指標變數,呼叫scanf函式分別輸入a和b的值
(3)通過指標間接訪問並輸出a,b的值
(4)按十六進製制方式輸出p,q的值以及a,b的位址。
(5)將p指向c,通過p間接訪問c的值並輸出
(6)輸出p的值及c的位址,並與上面的結果進行比較
執行結果:
實驗**:
#include int程式分析:該題比較簡單,但出現了乙個錯誤:main ()
scanf("%d%f",p,q);
由於p和q本身就是位址,就不需要&,但是我開始還是習
慣性的加了,就變成了地扯的地扯了,執行時就亂碼;
8.3.2練習:
(1)定義兩個函式,分別為void swap(int a,int b)和 void swap2(inta,int b), 用於交換a,b的值。
(2)從主函式中分別輸入兩個整形變數a,b
(3)從主函式中分別呼叫上述兩個交換函式,並列印輸出交換後a,b的結果
執行結果:
實驗**:
#include程式分析:這個題老師上課講過,由於上課我跟同學討論//函式宣告
void swap1(int x,int
y);void swap2(int *x,int *y);
main()
void swap1(int x,int
y)void swap2(int *x,int *y)
了一下,寫這個程式時就比較順利;
8.3.3練習:
(1)定義兩個字元指標,通過gets()函式輸入兩個字串
(2)定義乙個函式char reverse(charstr),通過指標
(3)定義乙個函式char link(charstr1,char*str2),通過指標移動方式將兩個字串連線起來
(4)從主函式中分別呼叫上述函式,輸入字串並列印輸出結果。
執行結果:
實驗**:
# include # include程式分析:這個程式我卡了很久:令結束字元為空;char *reverse(char *str);
char *link(char *str1,char *str2);
intmain()
char *reverse(char *str)
p--;
while(q
return
str;
}char *link(char *str1,char *str2)
putchar('\0
');return
str1;
}
首先在前面加標頭檔案:
# include ;putup
('\0')。但是還出現 了
乙個噁心的錯誤:在while後面加了「;」 我檢查好久,通過把其他函式先
消去;檢查錯誤的函式,檢查出來;
8.3.4練習:
(1)定義乙個整形一維陣列,任意輸入陣列的元素,其中包含奇數和偶數
(2)定義乙個函式,實現將陣列元素奇數在左,偶數在右的排列
(3)在上訴定義的函式中,不允許再增加新的陣列
(4)從主函式中分別呼叫上述函式,列印輸出結果
執行結果:
實驗**:
# include #define n 10程式分析:寫該程式時,並沒有什麼問題,但是一直執行不出來;後來發現:n==10,要輸入10個數才有用。void arrsort(int a,int
n);int
main()
void arrsort(int a,int
n)}
收穫:
1、學習到指標,通過實驗對指標有了進一步的了解,指標是乙個位址,在輸出時不需要用取址運算子&;
2、乙個功能可以有多個表達,像令結束字元為空:加乙個標頭檔案conio,在main函式內加putchar('\0');也可以使用null;
3、在學習中,上課時跟同學討論會加深對題目的理解與印象,課堂上應與同學老師多加交流;
4、當你在檢查錯誤的時候,對於**的理解其實也會有所幫助,有疑惑先驗證,在思考為什麼;
不足:
1、在實驗時,沒有足夠的細心,經常犯一些習慣性的錯誤:eg輸出時scanf後面習慣性加取址運算子、寫完乙個語句習慣性的加「;」;
2、平時與同學交流的還比較少,不會經常的思考多種方法去做乙個效果;
3、課後的訓練太少了,實驗之前寫了幾個題的**,就會有立竿見影的效果,能更快的完成實驗;
4、檢查程式時,沒有帶著一顆糾錯的心去看問題,而是覺得自己的**肯定沒有錯,事實卻是一堆的錯誤;
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章 指標實驗
1 問題的簡單描述 流程圖如下 2 實驗 includeint main 輸出結果 3 問題分析 無。1 問題的簡單描述 流程圖如下 2 實驗 includevoid swap1 int x,int y void swap2 int x,int y int main void swap1 int x...
第八章實驗
實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的使用。includeusing namespace std templa...