




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)八 指針程序設(shè)計(jì)班級(jí): 學(xué)號(hào): 姓名: 評(píng)分: 一【實(shí)驗(yàn)?zāi)康摹?、理解指針、地址和數(shù)組間的關(guān)系。2、掌握通過指針操作數(shù)組元素的方法。3、掌握數(shù)組名作為函數(shù)參數(shù)的編程方式。4、進(jìn)一步掌握C程序的調(diào)試方法和技巧。二【實(shí)驗(yàn)內(nèi)容和步驟】1、程序調(diào)試題A目標(biāo):進(jìn)一步學(xué)習(xí)掌握程序調(diào)試的方法和技巧。B內(nèi)容:有n個(gè)整數(shù),使各數(shù)順序往后循環(huán)移動(dòng)m個(gè)位置(m<n)。編寫一個(gè)函數(shù)實(shí)現(xiàn)以上功能,在主函數(shù)中輸入n個(gè)整數(shù)并輸出調(diào)整后的n個(gè)整數(shù)。改正程序中的錯(cuò)誤,使其實(shí)現(xiàn)程序的功能。(注:程序文件保存在“調(diào)試示例”文件夾中,文件名為error08.cpp) 調(diào)試正確的源程序清單#include <stdio
2、.h>void mov(int *, int, int);int main() int m, n, i, a80, *p; printf("Input n, m:"); scanf("%d%d",&n,&m); for(p=a,i=0;i<n;i+) scanf("%d",p+); mov(a,n,m); printf("After move: "); for(i=0;i<n;i+) printf("%5d",ai);printf("n");
3、 return 0;void mov(int *x, int n, int m) int i,j,k; for(i=0;i<m;i+)k=xn-1; for(j=n-1;j>0;j-) xj=xj-1; /* 調(diào)試時(shí)設(shè)置斷點(diǎn) */ x0=k; 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。2、完善程序,并調(diào)試運(yùn)行程序題目(1)分類統(tǒng)計(jì)。程序功能:輸入一行文字,分類統(tǒng)計(jì)其中的大寫字母、小寫字母、數(shù)字、空格以及其他字符的個(gè)數(shù)。(注:程序文件保存在“第1題”文件夾中)打開proj1.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。例如:輸入:bFaE3 +8=1B輸出:
4、大寫字母?jìng)€(gè)數(shù):3小寫字母?jìng)€(gè)數(shù):2數(shù) 字 個(gè) 數(shù):3空 格 個(gè) 數(shù):1其他字符個(gè)數(shù):2 調(diào)試正確的源程序清單#include <stdio.h>#include <string.h>void main( )int i,count5=0,0,0,0,0; char str80,*p; printf("Input a line char: ");gets(str);p=str; /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 輸入一行文字,分類統(tǒng)計(jì)其中的大寫字母、小寫字母、/數(shù)字、空格以及其他字符的個(gè)數(shù)。/要求:利用指針方法來處理。/*/ for(i=0;*p!=
5、39;0'p+)if(*p>='A' && *p<='Z') count0+;continue; /大寫字母else if(*p>='a' && *p<='z') count1+;continue; /小寫字母else if(*p>='0' && *p<='9') count2+;continue; /數(shù)字字符else if(*p=' ') count3+; /空格字符else count4+
6、; /其他字符/*/printf("The result is: n");for(i=0;i<5;i+)switch(i)case 0:printf("Upper Char: ");break;case 1:printf("Lower Char: ");break;case 2:printf("Digit Char: ");break;case 3:printf("Space Char: ");break;case 4:printf("Other Char: ");br
7、eak;printf("%dn",counti); 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(2)排序。程序功能:輸入一個(gè)整數(shù)n(1<n10),然后輸入n個(gè)整數(shù)存入數(shù)組a中,要求定義一個(gè)函數(shù)void sort(int list,int n),用選擇法對(duì)list數(shù)組中的元素升序排列,其中:n為list數(shù)組中的元素個(gè)數(shù)。在main函數(shù)中調(diào)用sort函數(shù)實(shí)現(xiàn)排序,最后輸出排序后的結(jié)果。(注:程序文件保存在“第2題”文件夾中)打開proj2.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:輸入一個(gè)整數(shù)n(1<
8、n10),然后輸入n個(gè)整數(shù)存入數(shù)組a中,定義并調(diào)用一個(gè)/ 函數(shù)void sort(int list,int n),用選擇法對(duì)list數(shù)組中的元素按升序排/ 列,其中:n為list數(shù)組中的元素個(gè)數(shù)。最后輸出排序后的結(jié)果。/提示:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include <stdio.h>void main() int i, a10;void sort(int *, int); for(i=0; i<10; i+) scanf("%d", &ai);/請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 調(diào)用sort函數(shù),對(duì)數(shù)組a中的元素按照
9、升序排列/*/sort(a,10);/*/printf("The result is: "); for(i=0;i<10;i+)printf("%d ",ai); /輸出排序后的結(jié)果printf("n");/定義一個(gè)函數(shù)void sort(int *p,int n),用選擇法對(duì)指針p指向的數(shù)組中的元素按升序/排列,其中:n為數(shù)組中的元素個(gè)數(shù)。void sort(int *p, int n)int i,j,iMin,temp;/請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 用選擇法對(duì)指針p指向的數(shù)組中的元素升序排列/其中:n為list數(shù)組中的
10、元素個(gè)數(shù)。/要求:利用指針方法來處理。/*/for(i=0;i<n;i+)iMin=i;for(j=i+1;j<n;j+)if(*(p+iMin)>*(p+j)iMin=j;temp=*(p+i);*(p+i)=*(p+iMin);*(p+iMin)=temp;/*/ 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(3)找最長(zhǎng)的字符串。程序功能:連續(xù)輸入5個(gè)以空格分隔的字符串(字符串的長(zhǎng)度不超過80),輸出其中長(zhǎng)度最長(zhǎng)的字符串。例如:輸入:li wang zhang jin xiao,輸出:zhang。(注:程序文件保存在“第3題”文件夾中)打開proj3.cpp文
11、件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:連續(xù)輸入5個(gè)字符串(字符串的長(zhǎng)度不超過80),輸出其中長(zhǎng)度最長(zhǎng)的字符串。/提 示:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void main( ) int i,MaxLen; char str80, longest80, *p; printf("Input 5 strings: "); scanf("%s",str);/輸入第一個(gè)字符串strcpy(longe
12、st,str);MaxLen=strlen(str);/將第一個(gè)字符串設(shè)置為初始的最長(zhǎng)字符串 p=str;/將指針p指向字符串str /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 輸入其它4個(gè)字符串,查找其中最長(zhǎng)的字符串。/要求:利用指針方法來處理。/*/for(i=0;i<4;i+)scanf("%s",p);if(strlen(p)>MaxLen)MaxLen=strlen(p);strcpy(longest,p);/*/ printf("The longest string is: %s n", longest); 運(yùn)行結(jié)果:(提示:通過屏幕截圖
13、,貼粘程序運(yùn)行界面)。題目(4)找最大的字符串。程序功能:連續(xù)輸入5個(gè)以空格分隔的字符串(字符串的長(zhǎng)度不超過80),輸出其中最大的字符串。例如:輸入:li wang zha jin xiao,輸出:zha。(注:程序文件保存在“第4題”文件夾中)打開proj4.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:連續(xù)輸入5個(gè)字符串(字符串的長(zhǎng)度不超過80),輸出其中最大的字符串。/提 示:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void ma
14、in( ) int i; char str80, max80, *p; printf("Input 5 strings: "); scanf("%s",str);/輸入第一個(gè)字符串strcpy(max,str);/將第一個(gè)字符串設(shè)置為初始的最大字符串 p=str;/將指針p指向字符串str /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 輸入其它4個(gè)字符串,查找其中最大的字符串。/要求:利用指針方法來處理。/*/for(i=0;i<4;i+)scanf("%s",p);if(strcmp(p,max)>0)strcpy(max,p);
15、/*/ printf("The max string is: %s n", max); 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(5)刪除字符。程序功能:編寫一個(gè)函數(shù)delchar(s,c),該函數(shù)將字符串s中出現(xiàn)的所有c字符刪除。在主程序中輸入一個(gè)字符c和一個(gè)字符串s,調(diào)用delchar(s,c)函數(shù)刪除字符串s中所有的c字符,然后輸出刪除后的字符串。例如:輸入字符a和字符串liwangzhajinxiao,輸出:liwngzhjinxio。(注:程序文件保存在“第5題”文件夾中)打開proj5.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。
16、 調(diào)試正確的源程序清單 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(6)字符串復(fù)制。程序功能:編寫一個(gè)函數(shù)strmcpy(s,t,m),該函數(shù)將字符串t中從m個(gè)字符開始的全部字符復(fù)制到字符串s中去。在主程序中輸入一個(gè)字符串t和一個(gè)開始位置m,調(diào)用strmcpy(s,t,m)函數(shù),然后輸出字符串s的結(jié)果。例如:輸入字符串liwangzhajinxiao和開始位置2,輸出:wangzhajinxiao。(注:程序文件保存在“第6題”文件夾中)打開proj6.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:編寫一個(gè)函數(shù)strmcpy(s,t
17、,m),將字符串t中從m個(gè)字符開始的全部字符復(fù)制到字符串s中去。/ 在主程序中輸入一個(gè)字符串t和一個(gè)開始位置 m,調(diào)用strmcpy(s,t,m)函數(shù),然后輸出字符/ 串s的結(jié)果。/例 如:輸入字符串liwangzhajinxiao和開始位置2,輸出:wangzhajinxiao。/提 示:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void main( ) char s80, t80;int m;void strmcpy(char *s, char *t, int m); printf
18、("Input a strings: "); scanf("%s",t);printf("Input begin position: ");scanf("%d",&m); /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 調(diào)用strmcpy(s,t,m)函數(shù),將字符串t中從m個(gè)字符開始的全部/字符復(fù)制到字符串s中去。/*/strmcpy(s,t,m);/*/printf("The result is: %s n", s); void strmcpy(char *s, char *t, int m) i
19、nt i; /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 將字符串t中從m個(gè)字符開始的全部字符復(fù)制到字符串s中去。/要求:利用指針方法來處理。/*/ for(i=0;i<m;i+,*t+);strcpy(s,t);/*/ 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(7)字符串連接。程序功能:編寫一個(gè)函數(shù)strmcat(s,t),該函數(shù)將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。在主程序中輸入兩個(gè)字符串s和t,調(diào)用strmcat(s,t)函數(shù),然后輸出字符串s的結(jié)果。例如:輸入字符串LiXiao和Wei,輸出:LiXiaoWei。(注:程序文件保存在“第7題”文件夾中)打
20、開proj7.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:編寫一個(gè)函數(shù)strmcat(s,t),將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。/ 在主程序中輸入兩個(gè)字符串s和t,調(diào)用strmcat(s,t)函數(shù),然后輸出字符串s的結(jié)果。/例 如:輸入字符串LiXiao和Wei,輸出:LiXiaoWei。/提 示:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void main( ) char s80, t80, *p;char
21、* strmcat(char *s, char *t); printf("Input the first string: "); scanf("%s",s); printf("Input the second string: "); scanf("%s",t); /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 調(diào)用strmat(s,t)函數(shù),將字符串t復(fù)制到字符串s中去。/*/p=strmcat(s,t);/*/printf("The result is: %s n", p); char * strmcat
22、(char *s, char *t) int i,k; /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 將字符串t復(fù)制到字符串s中去,并返回字符串s的首地址。/要求:利用指針方法來處理。/*/ k=strlen(s);for(i=0;i<=strlen(t);i+)*(s+k+i)=*(t+i);/*/ return s; 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(8)字符串排序。程序功能:編寫一個(gè)sort函數(shù),實(shí)現(xiàn)對(duì)5個(gè)字符串按從大到小進(jìn)行排序。在主程序中輸入5字符串,調(diào)用sort函數(shù)進(jìn)行排序,然后輸出排序后的結(jié)果。例如:輸入字符串Li Xiao Wang Zhang Yu,輸出:
23、Zhang Yu Xiao Wang Li。(注:程序文件保存在“第8題”文件夾中)打開proj8.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單#include <stdio.h>#include <string.h>void main( )int i; char s580;void sort(char (*p)80, int n); printf("Input 5 strings: ");for(i=0;i<5;i+) scanf("%s",si); /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼,
24、 調(diào)用sort函數(shù),實(shí)現(xiàn)對(duì)5個(gè)字符串按從大到小進(jìn)行排序。/*/sort(s, 5);/*/printf("The result is: ");for(i=0;i<5;i+) printf("%s ",si); printf("n"); void sort(char (*p)80, int n) int i,j,iMax;char t80; /請(qǐng)?jiān)趦蓷l星線之間填入相應(yīng)的代碼, 實(shí)現(xiàn)對(duì)5個(gè)字符串按從大到小進(jìn)行排序。(選擇法)/要求:利用指針方法來處理。/*/ for(i=0;i<n-1;i+)iMax=i;for(j=i+1;
25、j<n;j+) if(strcmp(pj,piMax)>0) iMax=j;strcpy(t,pi);strcpy(pi,piMax);strcpy(piMax,t);/*/ 運(yùn)行結(jié)果:(提示:通過屏幕截圖,貼粘程序運(yùn)行界面)。題目(9)在數(shù)組中查找指定元素。程序功能:輸入一個(gè)整數(shù)n(1<n10),然后輸入n個(gè)整數(shù)存入數(shù)組a中,再輸入一個(gè)整數(shù)x,在數(shù)組a中查找x,如果找到則輸出相應(yīng)的下標(biāo),否則輸出“Not found”。要求定義一個(gè)函數(shù)search(int list,int n,int x),在數(shù)組list中查找元素x,若找到則返回相應(yīng)下標(biāo),否則返回-1,其中:n為list數(shù)組中的元素個(gè)數(shù)。在main函數(shù)中調(diào)用search函數(shù)實(shí)現(xiàn)程序功能。(注:程序文件保存在“第9題”文件夾中)打開proj9.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 23649:2025 EN Chemicals for the leather tanning industry - Determination of cyclosiloxanes
- 【正版授權(quán)】 ISO 3518:2025 EN Essential oil of sandalwood (Santalum album L.)
- 【正版授權(quán)】 ISO 18162:2024 EN Biotechnology - Biobanking - Requirements for human neural stem cells derived from pluripotent stem cells
- 2025年度標(biāo)準(zhǔn)托盤租賃及全程跟蹤服務(wù)協(xié)議
- 二手機(jī)械二手交易與環(huán)保處理服務(wù)合同(2025版)
- 2025年度二手房購(gòu)房貸款保險(xiǎn)合同范本
- 2025年辦公設(shè)備升級(jí)改造項(xiàng)目合作協(xié)議
- 生產(chǎn)計(jì)劃的周期性評(píng)審與調(diào)整
- 農(nóng)業(yè)生產(chǎn)的安全防護(hù)措施計(jì)劃
- 如何制定子女的教育基金計(jì)劃
- 小學(xué)二年級(jí)體育課《團(tuán)身滾動(dòng)》教案
- 8.3 摩擦力 同步練習(xí)-2021-2022學(xué)年人教版物理八年級(jí)下冊(cè)(Word版含答案)
- 級(jí)本科診斷學(xué)緒論+問診課件
- 初中足球選拔測(cè)試標(biāo)準(zhǔn)
- 《現(xiàn)代漢語(yǔ)詞匯》PPT課件(完整版)
- 法社會(huì)學(xué)(上課)
- 沉積學(xué)與古地理
- 生理學(xué)教學(xué)大綱
- 化工原理課程設(shè)計(jì)(換熱器)
- 環(huán)保鐵1215物質(zhì)安全資料表MSDS
- “君子教育”特色課程的探索
評(píng)論
0/150
提交評(píng)論