C語(yǔ)言實(shí)驗(yàn)六實(shí)驗(yàn)報(bào)告——指針(共6頁(yè))_第1頁(yè)
C語(yǔ)言實(shí)驗(yàn)六實(shí)驗(yàn)報(bào)告——指針(共6頁(yè))_第2頁(yè)
C語(yǔ)言實(shí)驗(yàn)六實(shí)驗(yàn)報(bào)告——指針(共6頁(yè))_第3頁(yè)
C語(yǔ)言實(shí)驗(yàn)六實(shí)驗(yàn)報(bào)告——指針(共6頁(yè))_第4頁(yè)
C語(yǔ)言實(shí)驗(yàn)六實(shí)驗(yàn)報(bào)告——指針(共6頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、 實(shí)驗(yàn)項(xiàng)目名稱(chēng)指針二、 實(shí)驗(yàn)?zāi)康?掌握指針的基本概念和基本用法。包括:變量的地址和變量的值,指針變量的說(shuō)明、指針變量的初始化、指針的內(nèi)容與定義格式、指針的基本運(yùn)算等;2掌握數(shù)組與指針的關(guān)系并能夠利用指針解決數(shù)組的相關(guān)問(wèn)題;3掌握字符串與指針的關(guān)系并能夠利用指針處理字符串的問(wèn)題;4掌握指針與函數(shù)的關(guān)系并能夠利用指針處理函數(shù)問(wèn)題;5了解指向指針的指針的概念及其使用方法;6能夠使用指針進(jìn)行程序設(shè)計(jì)。三、 實(shí)驗(yàn)內(nèi)容有關(guān)指針的程序設(shè)計(jì)1編程實(shí)現(xiàn):任意輸入的10個(gè)數(shù),求其平均值。 要求: (1)10個(gè)數(shù)采用scanf語(yǔ)句讀入。 (2)利用指針實(shí)現(xiàn)對(duì)這10個(gè)數(shù)的訪(fǎng)問(wèn)。 (3)要

2、求平均值的精度為小數(shù)后面2位。 2編程實(shí)現(xiàn):將一個(gè)任意整數(shù)插入到一個(gè)已排序的整數(shù)數(shù)組中,插入后數(shù)組中的數(shù)仍然保持有序。 要求: (1)整數(shù)數(shù)組由初始化方式輸入。任意整數(shù)由scanf函數(shù)輸入;(2)實(shí)現(xiàn)過(guò)程采用指針處理;(3)輸出原始數(shù)組數(shù)據(jù)以及插入數(shù)據(jù)后的數(shù)組數(shù)據(jù)并加以相應(yīng)說(shuō)明。3編寫(xiě)函數(shù)newcopy(char *new,char *old),它的功能是刪除old所指向的字符串中的小寫(xiě)字母,并將所得到的新串存入new中。 要求: (1)在主函數(shù)中以初始化方式輸入一個(gè)字符串;(2)調(diào)用newcopy()函數(shù);(3)在主函數(shù)中輸出處理后的結(jié)果。4編程實(shí)現(xiàn):輸入三個(gè)整數(shù),按由大到小的順序輸出。 要

3、求: (1)通過(guò)scanf函數(shù)輸入三個(gè)數(shù)據(jù)并存入三個(gè)變量中;(2)利用指針實(shí)現(xiàn)從大到小輸出;(3)修改程序,將三個(gè)整型數(shù)據(jù)改為字符型數(shù)據(jù),輸入三個(gè)字符,按從大到小數(shù)順序輸出;(4)修改程序,將三個(gè)字符型數(shù)據(jù)改為字符串?dāng)?shù)據(jù),輸入三個(gè)字符串,按從小到大順序輸出;(5)體會(huì)指針對(duì)不同數(shù)據(jù)處理的特點(diǎn)。 四、 實(shí)驗(yàn)步驟及結(jié)果一、#include void main()int a10,n,sum=0;float aver;/* 定義平均數(shù)為浮點(diǎn)型*/int *p=a;/*初始化*/printf(Please input 10 numbers:n);for (n=0;n10;+n)scanf(%d,&an)

4、;/*輸入十個(gè)數(shù)*/for (n=0;n10;+n)sum=sum+*(p+n);/*使用指針訪(fǎng)問(wèn)數(shù)據(jù)*/aver=(float)sum/n;printf(Average is %.2f,aver);/*精確到小數(shù)點(diǎn)后兩位*/二、#include void arr(int *a,int n);/*定義排序函數(shù)*/void insert(int *a,int num);/*插入并排序函數(shù)*/int n=10;/*定義數(shù)據(jù)個(gè)數(shù),可修改*/void main()int *a,num,j,k,b10;printf(請(qǐng)輸入個(gè)數(shù)據(jù):n);for (j=0;jn;+j)scanf(%d,&bj);/*輸入原

5、始數(shù)據(jù)*/a=&b0;/*初始化*/arr(a,n);/*調(diào)用排序函數(shù)*/printf(排序好的數(shù)據(jù)為:n);for (j=0;jn;+j)printf(%d ,*(a+j);/*輸出排序好的原始數(shù)據(jù)*/printf(n請(qǐng)輸入要插入的數(shù):);scanf(%d,&num);printf(插入%d后的數(shù)據(jù)為:n,num);insert(a,num);/*調(diào)用插入并排序函數(shù)*/void arr(int *a,int n)/*排序函數(shù)*/int k,j,h;for (k=0;k10;+k)for (j=0;jn-k-1;+j)if (*(a+1+j)*(a+j)h=*(a+1+j);*(a+1+j)=

6、*(a+j);*(a+j)=h;void insert(int *a,int num)void arr(int *a,int n);int j,k;*(a+n)=num;/*將插入的數(shù)排在數(shù)組最后一位*/arr(a,n+1);/*將新數(shù)組重新排序*/for (j=0;j(n+1);+j)if (*(a+j)=num)k=j;break;/*找到插入的數(shù)在數(shù)組中的位置*/for (j=0;j(n+1);+j)printf(%d ,*(a+j);printf(n插入的數(shù)據(jù)排在數(shù)組的第%d位,k+1);三、#include void newcopy(char *new1,char *old);voi

7、d main()char *new1,*old,a10;/*new是不能當(dāng)做變量,所以用new1*/old=a;new1=a;/*字符串的初始化*/printf(請(qǐng)輸入字符串:n);scanf(%s,a);newcopy(new1,old);/*調(diào)用函數(shù)*/printf(新的字符串為:n);printf(%s,new1);void newcopy(char *new1,char *old)int n,j=0;for (;* old!=0;+old)if (* old)z | (* old)a)* (new1+j)=* old;+j;/*排除原字符串中的小寫(xiě)字母,將其他字符存入新字符串*/*(n

8、ew1+j)=0;/*結(jié)束新字符串,否則新字符串的輸出會(huì)故障*/四、#include void main()void exchange(int *q1,int *q2,int*q3);int a,b,c,*q1,*q2,*q3;printf(請(qǐng)輸入個(gè)數(shù):n);scanf(%d,%d,%d,&a,&b,&c);q1=&a;q2=&b;q3=&c;/*將三個(gè)數(shù)的地址存入q1q2q3中*/exchange(q1,q2,q3);/*調(diào)用排序函數(shù)*/printf(3個(gè)數(shù)從大到小排列為:n%d,%d,%d,a,b,c);void exchange(int *q1,int *q2,int *q3)void

9、swap(int *q1,int *q2);/*調(diào)用交換函數(shù)*/if (*q1*q2)swap(q1,q2);/*若*q1小于*q2,交換地址位置*/if (*q1*q3)swap(q1,q3);if (*q2*q3)swap(q2,q3);void swap(int *q1,int *q2)/*交換函數(shù)*/int n;n=*q1;*q1=*q2;*q2=n;修改程序,將三個(gè)整型數(shù)據(jù)改為字符型數(shù)據(jù),輸入三個(gè)字符,按從大到小數(shù)順序輸出:只需將程序中的所有int改為char,將%d改為%c即可。修改程序,將三個(gè)字符型數(shù)據(jù)改為字符串?dāng)?shù)據(jù),輸入三個(gè)字符串,按從小到大順序輸出:#include #inc

10、lude #include int cmp(char *p1,char *p2) /* 字符串比較函數(shù)*/int i=0;while (*(p1+i)=*(p2+i)if (*(p1+i+)=0) return 0; /* 這里是先判斷*(p1+i)=0,然后再是i+ */return (*(p1+i)-*(p2+i);void sort(char *a3) /*排序函數(shù)*/ char *temp;int i,j;for(i=0;i3-1;i+)/* 選擇排序*/ for(j=i+1;j0)temp=ai;ai=aj; aj=temp; void main() int i;char s381,

11、*p3;/* 設(shè)定每個(gè)字符串不超過(guò)字節(jié)*/ printf(請(qǐng)輸入3個(gè)字符串:n); for(i=0;i3;i+) gets(si); pi=si; sort(p); printf(字符串從小到大排序?yàn)椋簄); for(i=0;i3;i+) printf(%sn,pi); 五、 思考題或?qū)嶒?yàn)感想小結(jié)函數(shù)指針、數(shù)組指針、字符串指針的使用。對(duì)于指針的使用,最重要的是搞清楚函數(shù)指針、數(shù)組指針和字符串指針的概念,不能混亂起來(lái)。函數(shù)指針變量指向一個(gè)函數(shù),然后通過(guò)該指針變量調(diào)用此函數(shù)。函數(shù)指針中,函數(shù)名代表該函數(shù)的入口地址。函數(shù)指針只能指向函數(shù)的入口而不能指向函數(shù)中的某一條指令處,因此不能用*(p+1)表示函數(shù)的下一條指令。數(shù)組元素的指針就是數(shù)組元素的地址。C語(yǔ)言中規(guī)定數(shù)組名代表數(shù)組中首元素的地址

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論