




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、實驗項目名稱指針二、實驗目的1掌握指針的基本概念和基本用法。包括:變量的地址和變量的值,指針變量的 說明、指針變量的初始化、指針的內(nèi)容與定義格式、指針的基本運算等;2掌握數(shù)組與指針的關(guān)系并能夠利用指針解決數(shù)組的相關(guān)問題; 3掌握字符串與指針的關(guān)系并能夠利用指針處理字符串的問題; 4掌握指針與函數(shù)的關(guān)系并能夠利用指針處理函數(shù)問題; 5了解指向指針的指針的概念及其使用方法; 6能夠使用指針進行程序設(shè)計。三、實驗內(nèi)容有關(guān)指針的程序設(shè)計 1編程實現(xiàn):任意輸入的 10 個數(shù),求其平均值。 要求:(1)10 個數(shù)采用 scanf 語句讀入。(2)利用指針實現(xiàn)對這 10 個數(shù)的訪問。(3)要求平均值的精
2、度為小數(shù)后面 2 位。2編程實現(xiàn): 將一個任意整數(shù)插入到一個已排序的整數(shù)數(shù)組中,插入后數(shù)組中的 數(shù)仍然保持有序。要求:( 1)整數(shù)數(shù)組由初始化方式輸入。任意整數(shù)由 scanf 函數(shù)輸入; (2)實現(xiàn)過程采用指針處理;(3)輸出原始數(shù)組數(shù)據(jù)以及插入數(shù)據(jù)后的數(shù)組數(shù)據(jù)并加以相應(yīng)說明。3編寫函數(shù) newcopy(char *new ,char *old ),它的功能是刪除 old 所指向的 字符串中的小寫字母,并將所得到的新串存入 new中。要求:(1)在主函數(shù)中以初始化方式輸入一個字符串; ( 2)調(diào)用 newcopy()函數(shù); (3)在主函數(shù)中輸出處理后的結(jié)果。4編程實現(xiàn):輸入三個整數(shù),按由大到小
3、的順序輸出。要求:( 1)通過 scanf 函數(shù)輸入三個數(shù)據(jù)并存入三個變量中;(2)利用指針實現(xiàn)從大到小輸出;(3)修改程序,將三個整型數(shù)據(jù)改為字符型數(shù)據(jù),輸入三個字符,按從大到小數(shù) 順序輸出;(4)修改程序,將三個字符型數(shù)據(jù)改為字符串數(shù)據(jù),輸入三個字符串,按從小到 大順序輸出;(5)體會指針對不同數(shù)據(jù)處理的特點。四、實驗步驟及結(jié)果#include <> void main() int a10,n,sum=0;float aver;/* 定義平均數(shù)為浮點型 */ int *p=a;/* 初始化 */ printf("Please input 10 numbers:n&qu
4、ot;);for (n=0;n<10;+n) scanf("%d",&an);/* 輸入十個數(shù) */for (n=0;n<10;+n) sum=sum+*(p+n);/* 使用指針訪問數(shù)據(jù) */ aver=(float)sum/n;printf("Average is %.2f",aver);/*精確到小數(shù)點后兩位 */#include <>void arr(int *a,int n);/* 定義排序函數(shù) */void insert(int *a,int num);/* 插入并排序函數(shù) */ int n=10;/* 定義數(shù)
5、據(jù)個數(shù),可修改 */void main()int *a,num,j,k,b10;printf(" 請輸入個數(shù)據(jù): n");for (j=0;j<n;+j)scanf("%d",&bj);/* 輸入原始數(shù)據(jù) */a=&b0;/* 初始化 */arr(a,n);/* 調(diào)用排序函數(shù) */printf(" 排序好的數(shù)據(jù)為: n");for (j=0;j<n;+j)printf("%d ",*(a+j);/* 輸出排序好的原始數(shù)據(jù) */ printf("n 請輸入要插入的數(shù): "
6、;); 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;k<10;+k)for (j=0;j<n-k-1;+j)if (*(a+1+j)<*(a+j) h=*(a+1+j); *(a+1+j)=*(a+j); *(a+j)=h;void insert(int *a,int num)void arr(int *a,int n);
7、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);void main()char *n
8、ew1,*old,a10;/*new 是不能當做變量,所以用 new1*/ old=a;new1=a;/* 字符串的初始化 */ printf(" 請輸入字符串: 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)>'
9、;z' | (* old)<'a')* (new1+j)=* old;+j;/* 排除原字符串中的小寫字母,將其他字符存入新字符串 */ *(new1+j)='0'/* 結(jié)束新字符串,否則新字符串的輸出會故障 */ 四、 #include <> void main() void exchange(int *q1,int *q2,int*q3);int a,b,c,*q1,*q2,*q3; printf(" 請輸入個數(shù): n"); scanf("%d,%d,%d",&a,&b,&am
10、p;c);q1=&a;q2=&b;q3=&c;/* 將三個數(shù)的地址存入 q1q2q3 中 */ exchange(q1,q2,q3);/* 調(diào)用排序函數(shù) */ printf("3 個數(shù)從大到小排列為: n%d,%d,%d",a,b,c);void exchange(int *q1,int *q2,int *q3)void swap(int *q1,int *q2);/*調(diào)用交換函數(shù) */if (*q1<*q2)swap(q1,q2);/* 若*q1 小于 *q2 ,交換地址位置 */if (*q1<*q3)swap(q1,q3);if (
11、*q2<*q3)swap(q2,q3);void swap(int *q1,int *q2)/* 交換函數(shù) */int n;n=*q1;*q1=*q2;*q2=n;修改程序, 將三個整型數(shù)據(jù)改為字符型數(shù)據(jù), 輸入三個字符, 按從大到小數(shù)順序 輸出:只需將程序中的所有 int 改為 char ,將%d改為%c即可。修改程序, 將三個字符型數(shù)據(jù)改為字符串數(shù)據(jù), 輸入三個字符串, 按從小到大順 序輸出:#include<>#include<> #include<>int cmp(char *p1,char *p2) /* 字符串比較函數(shù) */int i=0;
12、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;i<3-1;i+)/* 選擇排序 */for(j=i+1;j<3;j+) if(cmp(ai,aj)>0)temp=ai; ai=aj; aj=temp;void main()int i;char s381,*p3;/*
13、 設(shè)定每個字符串不超過字節(jié) */ printf(" 請輸入 3個字符串: n");for(i=0;i<3;i+)gets(si); pi=si; sort(p); printf(" 字符串從小到大排序為: n"); for(i=0;i<3;i+) printf("%sn",pi);五、思考題或?qū)嶒灨邢?小結(jié)函數(shù)指針、數(shù)組指針、字符串指針的使用。 對于指針的使用,最重要的是搞清楚函數(shù)指針、數(shù)組指針和字符串指針的概念, 不能混亂起來。函數(shù)指針變量指向一個函數(shù), 然后通過該指針變量調(diào)用此函數(shù)。 函數(shù)指針中, 函 數(shù)名代表該函數(shù)的入口地址。 函數(shù)指針只能指向函數(shù)的入口而不能指向函數(shù)中的某一條 指令處,因此不能用 *(p+1) 表示函數(shù)的下一條指令。數(shù)組元素的指針就是數(shù)組元素的地址。 C 語言中規(guī)定數(shù)組名代表
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑設(shè)計風格與美學原則知識梳理
- 合同主體變更相關(guān)問題分析模板
- 2024年聚合物多元醇(POP)項目資金申請報告代可行性研究報告
- 2024-2025學年北京石景山區(qū)高三(上)期末歷史試卷(含答案)
- 2025國家能源集團遼寧電力有限公司畢業(yè)生直招擬錄用情況筆試參考題庫附帶答案詳解
- 2024年光導纖維導光環(huán)項目資金籌措計劃書代可行性研究報告
- 2025年上半年安徽馬鞍山當涂縣事業(yè)單位統(tǒng)一筆試招聘81人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蕪湖無為市城市管理局招聘27人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽池州青陽縣事業(yè)單位招聘69人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽安慶望江縣數(shù)據(jù)資源管理局數(shù)據(jù)中心選調(diào)事業(yè)單位人員5人易考易錯模擬試題(共500題)試卷后附參考答案
- 特種作業(yè)人員進場報審表
- (19)風機盤管焓濕圖
- -淹溺PPT模板課件
- 呼吸機的撤離-PPT課件
- 工作交接表模板(2)
- (7)(萬通地產(chǎn))養(yǎng)老地產(chǎn)日本案例考察總結(jié)報告
- 全國大學生英語競賽c類真題及答案
- 庫車縣“7.9”天山煉化油儲罐火災撲救戰(zhàn)評
- 金屬結(jié)構(gòu)制造安全作業(yè)指導書
- 眼外傷-PPT課件
- 教學-主動脈夾層PPT課件
評論
0/150
提交評論