第一篇:C語言實(shí)驗(yàn)報(bào)告
C語言程序設(shè)計(jì)實(shí)驗(yàn)
--------指針應(yīng)用實(shí)驗(yàn)
========================
山東農(nóng)業(yè)大學(xué)實(shí)驗(yàn)報(bào)告
課程名稱: c語言程序設(shè)計(jì)實(shí)驗(yàn) 學(xué)院: 水利土木工程學(xué)院 專業(yè): 道路橋梁與渡河工程 班級: 2013級2班 姓名:
學(xué)號: 20133498
C語言與軟件技術(shù)基礎(chǔ)
實(shí) 驗(yàn) 報(bào) 告
課程名稱 指導(dǎo)老師 班
級
實(shí)驗(yàn)名稱 實(shí)驗(yàn)時(shí)間 姓
名
實(shí)驗(yàn)地點(diǎn) 提交時(shí)間 座
號
一、實(shí)驗(yàn)?zāi)康暮鸵?/p>
1、掌握指針和間接訪問的概念,會定義和使用指針變量。
2、能正確使用數(shù)組的指針和指向數(shù)組的指針變量。
3、能正確使用字符串的執(zhí)針和指向字符串的指針變量。
二、實(shí)驗(yàn)環(huán)境和方法
實(shí)驗(yàn)方法:
(一)綜合運(yùn)用課本所學(xué)的知識,用不同的算法實(shí)現(xiàn)在不同的程序功能。
(二)結(jié)合指導(dǎo)老師的指導(dǎo),解決程序中的問題,正確解決實(shí)際中存在的異常情況,逐步改善功能。
(三)根據(jù)實(shí)驗(yàn)內(nèi)容,編譯程序。
實(shí)驗(yàn)環(huán)境:Windows xp Visual C++6.0
三、實(shí)驗(yàn)內(nèi)容及過程描述
實(shí)驗(yàn)內(nèi)容:編譯以下題目的程序并調(diào)試運(yùn)行。
1、輸入3個(gè)整數(shù),按由大到小的順序輸出,然后將程序改為:輸入3個(gè)字符串,按由小到大順序輸出。
①先編寫一個(gè)程序,以處理輸入3個(gè)整數(shù),按由小到大順序輸出。運(yùn)行程序,分析結(jié)果。②把程序改為能處理輸入3個(gè)字符串,按由小到大的順序輸出。運(yùn)行此程序,分析結(jié)果。③比較以上兩個(gè)程序,分析處理整數(shù)與處理字符串有什么不同?例如:(a)怎樣得到指向整數(shù)(或字符串)的指針。(b)怎樣比較兩個(gè)整數(shù)(或字符串)的指針。(c)怎樣交換兩個(gè)整數(shù)(或字符串)。
2、將一個(gè)3×3的整數(shù)型二維數(shù)組轉(zhuǎn)置,用一個(gè)函數(shù)實(shí)現(xiàn)之。在主函數(shù)中用scanf函數(shù)輸入以下數(shù)組元素:
將數(shù)組0行0列元素的地址作為函數(shù)實(shí)參,在執(zhí)行函數(shù)的過程中實(shí)現(xiàn)行列互換,函數(shù)調(diào)用結(jié)束后在主函數(shù)中輸出已轉(zhuǎn)置的二維數(shù)組。
請思考: ① 二維數(shù)組的指針,某一行的指針、某一元素的指針個(gè)代表什么含義?應(yīng)該怎么表示? ② 怎樣表示i行j列元素及其地址。
3、將n個(gè)數(shù)按輸入時(shí)順序的逆序排列,用函數(shù)實(shí)現(xiàn)。①在調(diào)用函數(shù)時(shí)用數(shù)組名作函數(shù)實(shí)參。
②函數(shù)實(shí)參改為用指向數(shù)組首元素的指針,形參不變。③分析以上二者的不同。
4、寫一個(gè)函數(shù),求一個(gè)字符串的長度。在main函數(shù)中輸入字符串,并輸出其長度。分別在程序中按以下兩種情況處理: ①函數(shù)形參用指針變量。②函數(shù)形參用數(shù)組名。實(shí)驗(yàn)步驟: ① 進(jìn)入Visual C++ 6.0集成環(huán)境。② 輸入自己編好的程序。③ 檢查一遍已輸入的程序是否有錯(cuò)(包括輸入時(shí)輸錯(cuò)的和編程中的錯(cuò)誤),如發(fā)現(xiàn)有錯(cuò),及時(shí)改正。④ 進(jìn)行編譯和連接。如果在編譯和連接過程中發(fā)現(xiàn)錯(cuò)誤,頻幕上會出現(xiàn)“報(bào)錯(cuò)信息”,根據(jù)提示找到出錯(cuò)位置和原因,加以改正。再進(jìn)行編譯,如此反復(fù)直到不出錯(cuò)為止。⑤ 運(yùn)行程序并分析運(yùn)行結(jié)果是否合理。在運(yùn)行是要注意當(dāng)輸入不同的數(shù)據(jù)時(shí)所得結(jié)果是否正確,應(yīng)運(yùn)行多次,分別檢查在不同情況下結(jié)果是否正確。以下是各題源代碼:
1、輸入3個(gè)整數(shù),按由大到小的順序輸出,然后將程序改為:輸入3個(gè)字符串,按由小到大順序輸出。程序①
#include
void swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;} 程序②
#include
printf(“請輸入3行字符:n”);gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)>0)swap(str1,str2);if(strcmp(str1,str3)>0)swap(str1,str3);if(strcmp(str2,str3)>0)swap(str2,str3);printf(“排序結(jié)果為:n”);printf(“%sn%sn%sn”,str1,str2,str3);return 0;}
void swap(char *p1,char *p2){char p[20];strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);}
2、將一個(gè)3×3的整數(shù)型二維數(shù)組轉(zhuǎn)置,用一個(gè)函數(shù)實(shí)現(xiàn)之。#include
3、將n個(gè)數(shù)按輸入時(shí)順序的逆序排列,用函數(shù)實(shí)現(xiàn)。
#include printf(“逆序排列為:n”);for(i=0;i 4、寫一個(gè)函數(shù),求一個(gè)字符串的長度。在main函數(shù)中輸入字符串,并輸出其長度。分別在程序中按以下兩種情況處理: ① 函數(shù)形參用指針變量。 #include