實驗08-1參考答案_第1頁
實驗08-1參考答案_第2頁
實驗08-1參考答案_第3頁
實驗08-1參考答案_第4頁
實驗08-1參考答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗八 指針程序設(shè)計班級: 學(xué)號: 姓名: 評分: 一【實驗?zāi)康摹?、理解指針、地址和數(shù)組間的關(guān)系。2、掌握通過指針操作數(shù)組元素的方法。3、掌握數(shù)組名作為函數(shù)參數(shù)的編程方式。4、進(jìn)一步掌握C程序的調(diào)試方法和技巧。二【實驗內(nèi)容和步驟】1、程序調(diào)試題A目標(biāo):進(jìn)一步學(xué)習(xí)掌握程序調(diào)試的方法和技巧。B內(nèi)容:有n個整數(shù),使各數(shù)順序往后循環(huán)移動m個位置(m<n)。編寫一個函數(shù)實現(xiàn)以上功能,在主函數(shù)中輸入n個整數(shù)并輸出調(diào)整后的n個整數(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è)置斷點 */ x0=k; 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。2、完善程序,并調(diào)試運行程序題目(1)分類統(tǒng)計。程序功能:輸入一行文字,分類統(tǒng)計其中的大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。(注:程序文件保存在“第1題”文件夾中)打開proj1.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。例如:輸入:bFaE3 +8=1B輸出:

4、大寫字母個數(shù):3小寫字母個數(shù):2數(shù) 字 個 數(shù):3空 格 個 數(shù):1其他字符個數(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; /請在兩條星線之間填入相應(yīng)的代碼, 輸入一行文字,分類統(tǒng)計其中的大寫字母、小寫字母、/數(shù)字、空格以及其他字符的個數(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); 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(2)排序。程序功能:輸入一個整數(shù)n(1<n10),然后輸入n個整數(shù)存入數(shù)組a中,要求定義一個函數(shù)void sort(int list,int n),用選擇法對list數(shù)組中的元素升序排列,其中:n為list數(shù)組中的元素個數(shù)。在main函數(shù)中調(diào)用sort函數(shù)實現(xiàn)排序,最后輸出排序后的結(jié)果。(注:程序文件保存在“第2題”文件夾中)打開proj2.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:輸入一個整數(shù)n(1<

8、n10),然后輸入n個整數(shù)存入數(shù)組a中,定義并調(diào)用一個/ 函數(shù)void sort(int list,int n),用選擇法對list數(shù)組中的元素按升序排/ 列,其中:n為list數(shù)組中的元素個數(shù)。最后輸出排序后的結(jié)果。/提示:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include <stdio.h>void main() int i, a10;void sort(int *, int); for(i=0; i<10; i+) scanf("%d", &ai);/請在兩條星線之間填入相應(yīng)的代碼, 調(diào)用sort函數(shù),對數(shù)組a中的元素按照

9、升序排列/*/sort(a,10);/*/printf("The result is: "); for(i=0;i<10;i+)printf("%d ",ai); /輸出排序后的結(jié)果printf("n");/定義一個函數(shù)void sort(int *p,int n),用選擇法對指針p指向的數(shù)組中的元素按升序/排列,其中:n為數(shù)組中的元素個數(shù)。void sort(int *p, int n)int i,j,iMin,temp;/請在兩條星線之間填入相應(yīng)的代碼, 用選擇法對指針p指向的數(shù)組中的元素升序排列/其中:n為list數(shù)組中的

10、元素個數(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;/*/ 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(3)找最長的字符串。程序功能:連續(xù)輸入5個以空格分隔的字符串(字符串的長度不超過80),輸出其中長度最長的字符串。例如:輸入:li wang zhang jin xiao,輸出:zhang。(注:程序文件保存在“第3題”文件夾中)打開proj3.cpp文

11、件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:連續(xù)輸入5個字符串(字符串的長度不超過80),輸出其中長度最長的字符串。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void main( ) int i,MaxLen; char str80, longest80, *p; printf("Input 5 strings: "); scanf("%s",str);/輸入第一個字符串strcpy(longe

12、st,str);MaxLen=strlen(str);/將第一個字符串設(shè)置為初始的最長字符串 p=str;/將指針p指向字符串str /請在兩條星線之間填入相應(yīng)的代碼, 輸入其它4個字符串,查找其中最長的字符串。/要求:利用指針方法來處理。/*/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); 運行結(jié)果:(提示:通過屏幕截圖

13、,貼粘程序運行界面)。題目(4)找最大的字符串。程序功能:連續(xù)輸入5個以空格分隔的字符串(字符串的長度不超過80),輸出其中最大的字符串。例如:輸入:li wang zha jin xiao,輸出:zha。(注:程序文件保存在“第4題”文件夾中)打開proj4.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:連續(xù)輸入5個字符串(字符串的長度不超過80),輸出其中最大的字符串。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(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);/輸入第一個字符串strcpy(max,str);/將第一個字符串設(shè)置為初始的最大字符串 p=str;/將指針p指向字符串str /請在兩條星線之間填入相應(yīng)的代碼, 輸入其它4個字符串,查找其中最大的字符串。/要求:利用指針方法來處理。/*/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); 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(5)刪除字符。程序功能:編寫一個函數(shù)delchar(s,c),該函數(shù)將字符串s中出現(xiàn)的所有c字符刪除。在主程序中輸入一個字符c和一個字符串s,調(diào)用delchar(s,c)函數(shù)刪除字符串s中所有的c字符,然后輸出刪除后的字符串。例如:輸入字符a和字符串liwangzhajinxiao,輸出:liwngzhjinxio。(注:程序文件保存在“第5題”文件夾中)打開proj5.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。

16、 調(diào)試正確的源程序清單 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(6)字符串復(fù)制。程序功能:編寫一個函數(shù)strmcpy(s,t,m),該函數(shù)將字符串t中從m個字符開始的全部字符復(fù)制到字符串s中去。在主程序中輸入一個字符串t和一個開始位置m,調(diào)用strmcpy(s,t,m)函數(shù),然后輸出字符串s的結(jié)果。例如:輸入字符串liwangzhajinxiao和開始位置2,輸出:wangzhajinxiao。(注:程序文件保存在“第6題”文件夾中)打開proj6.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:編寫一個函數(shù)strmcpy(s,t

17、,m),將字符串t中從m個字符開始的全部字符復(fù)制到字符串s中去。/ 在主程序中輸入一個字符串t和一個開始位置 m,調(diào)用strmcpy(s,t,m)函數(shù),然后輸出字符/ 串s的結(jié)果。/例 如:輸入字符串liwangzhajinxiao和開始位置2,輸出:wangzhajinxiao。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(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); /請在兩條星線之間填入相應(yīng)的代碼, 調(diào)用strmcpy(s,t,m)函數(shù),將字符串t中從m個字符開始的全部/字符復(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; /請在兩條星線之間填入相應(yīng)的代碼, 將字符串t中從m個字符開始的全部字符復(fù)制到字符串s中去。/要求:利用指針方法來處理。/*/ for(i=0;i<m;i+,*t+);strcpy(s,t);/*/ 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(7)字符串連接。程序功能:編寫一個函數(shù)strmcat(s,t),該函數(shù)將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。在主程序中輸入兩個字符串s和t,調(diào)用strmcat(s,t)函數(shù),然后輸出字符串s的結(jié)果。例如:輸入字符串LiXiao和Wei,輸出:LiXiaoWei。(注:程序文件保存在“第7題”文件夾中)打

20、開proj7.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。 調(diào)試正確的源程序清單/程序功能:編寫一個函數(shù)strmcat(s,t),將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。/ 在主程序中輸入兩個字符串s和t,調(diào)用strmcat(s,t)函數(shù),然后輸出字符串s的結(jié)果。/例 如:輸入字符串LiXiao和Wei,輸出:LiXiaoWei。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(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); /請在兩條星線之間填入相應(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; /請在兩條星線之間填入相應(yīng)的代碼, 將字符串t復(fù)制到字符串s中去,并返回字符串s的首地址。/要求:利用指針方法來處理。/*/ k=strlen(s);for(i=0;i<=strlen(t);i+)*(s+k+i)=*(t+i);/*/ return s; 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(8)字符串排序。程序功能:編寫一個sort函數(shù),實現(xiàn)對5個字符串按從大到小進(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); /請在兩條星線之間填入相應(yīng)的代碼,

24、 調(diào)用sort函數(shù),實現(xiàn)對5個字符串按從大到小進(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; /請在兩條星線之間填入相應(yīng)的代碼, 實現(xiàn)對5個字符串按從大到小進(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);/*/ 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。題目(9)在數(shù)組中查找指定元素。程序功能:輸入一個整數(shù)n(1<n10),然后輸入n個整數(shù)存入數(shù)組a中,再輸入一個整數(shù)x,在數(shù)組a中查找x,如果找到則輸出相應(yīng)的下標(biāo),否則輸出“Not found”。要求定義一個函數(shù)search(int list,int n,int x),在數(shù)組list中查找元素x,若找到則返回相應(yīng)下標(biāo),否則返回-1,其中:n為list數(shù)組中的元素個數(shù)。在main函數(shù)中調(diào)用search函數(shù)實現(xiàn)程序功能。(注:程序文件保存在“第9題”文件夾中)打開proj9.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完

溫馨提示

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

最新文檔

評論

0/150

提交評論