(完整版)實驗08-1參考答案_第1頁
(完整版)實驗08-1參考答案_第2頁
(完整版)實驗08-1參考答案_第3頁
(完整版)實驗08-1參考答案_第4頁
(完整版)實驗08-1參考答案_第5頁
免費預(yù)覽已結(jié)束,剩余5頁可下載查看

下載本文檔

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

文檔簡介

1、實驗八指針程序設(shè)計班級: 學(xué)號: 姓名: 評分: 一.【實驗?zāi)康摹?、理解指針、地址和數(shù)組間的關(guān)系。2、掌握通過指針操作數(shù)組元素的方法。3、掌握數(shù)組名作為函數(shù)參數(shù)的編程方式。4、進一步掌握 C程序的調(diào)試方法和技巧。二.【實驗內(nèi)容和步驟】1、程序調(diào)試題A.目標(biāo):進一步學(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 <st

2、dio.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");re

3、turn 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é)果:(提示:通過屏幕截圖,貼粘程序運行界面)。Input iin m:1S 312345G78910AFtet* move =89101224 5G 7Press any keij to continue2、完善程序,并調(diào)試運行程序題目(1)分類統(tǒng)計。程序功能:輸入一行文字,分類統(tǒng)計其中的大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。(注:程序文

4、件保存在“第1題”文件夾中)打開projl.cpp文件,在兩條星線之間填入相應(yīng)的代碼, 使程序完成該功能。例如:輸入:bFaE3 +8=1B輸出:大寫字母個數(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)

5、計其中的大寫字母、小寫字母、/數(shù)字、空格以及其他字符的個數(shù)。/要求:利用指針方法來處理。/*/for(i=0;*p!='0'p+)大寫字母小寫字母數(shù)字字符空格字符其他字符if(*p>='A' && *p<='Z') count0+;continue; / else if(*p>='a' && *p<='z') count1+;continue;/else if(*p>='0' && *p<='9')

6、count2+;continue;/else if(*p=' ') count3+;/else count4+;/*/ 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 C

7、har: ");break;case 4:printf("Other Char: ");break;printf("%dn",counti); 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面題目(2)排序。程序功能:輸入一個整數(shù) n (1<nw 10),然后輸入n個整數(shù)存入數(shù)組a中,要求定義一個函數(shù) voidsort(int list , int n),用選擇法對list數(shù)組中的元素升序排列,其中:n為list數(shù)組中的元素個數(shù)。在 main函數(shù)中調(diào)用sort函數(shù)實現(xiàn)排序,最后輸出排序后的結(jié)果。(注:程序文件保存在“第2題”文件夾中)打開

8、proj2.cpp 文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。調(diào)試正確的源程序清單程序功能:輸入一個整數(shù)n (1<nW10),然后輸入n個整數(shù)存入數(shù)組a中,定義并調(diào)用一個/函數(shù)void sort(int list , int n),用選擇法對list數(shù)組中的元素按升序排/歹U,其中: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+)

9、scanf("%d”, &ai);/請在兩條星線之間填入相應(yīng)的代碼,調(diào)用sort函數(shù),對數(shù)組a中的元素按照升序排列/*/ 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,i

10、Min,temp;請在兩條星線之間填入相應(yīng)的代碼,用選擇法對指針p指向的數(shù)組中的元素升序排列其中:n為list數(shù)組中的元素個數(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é)果:(提示:通過屏幕截圖,貼粘程序運行界面)。10 596382741IhE result is:123456789 1BFyess kgy to cnctinue.題目(3)找最長的

11、字符串。 程序功能:連續(xù)輸入5個以空格分隔的字符串(字符串的長度不超過80),輸出其中長度最長的字符串。 例如:輸入:li wang zhang jin xiao ,輸出:zhang。(注:程序文件保存在“第 3題”文件夾中)打開proj3.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。調(diào)試正確的源程序清單/程序功能:連續(xù)輸入 5個字符串(字符串的長度不超過 80),輸出其中長度最長的字符串。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include <stdio.h>#include <string.h> void main()in

12、t i,MaxLen;char str80, longest80, *p;printf("Input 5 strings:");將第一個字符串設(shè)置為初始的最長字符串scanf("%s",str);輸入第一個字符串strcpy(longest,str);MaxLen=strlen(str);/p=str;/將指針p指向字符串str/請在兩條星線之間填入相應(yīng)的代碼,輸入其它4個字符串,查找其中最長的字符串。/要求:利用指針方法來處理。/*/for(i=0;i<4;i+) scanf("%s",p); if(strlen(p)>

13、MaxLen) MaxLen=strlen(p); strcpy(longest,p); /*/printf("The longest string is: %s n", longest); 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。Input 5 strings : my nan吐 is gIieii ruidong rlhe lonsfest string is : puidongFrees key to cont inue題目(4)找最大的字符串。程序功能:連續(xù)輸入5個以空格分隔的字符串(字符串的長度不超過80),輸出其中最大的字符串。例如:輸入:li wa

14、ng zha jin xiao ,輸出:zha。(注:程序文件保存在"第 4題”文彳夾中)打開proj4.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。調(diào)試正確的源程序清單/程序功能:連續(xù)輸入 5個字符串(字符串的長度不超過 80),輸出其中最大的字符串。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include <stdio.h>#include <string.h>void main()int i;char str80, max80, *p;printf("Input 5 strings:");sca

15、nf("%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);/*/printf("The max string is: %s n", max); 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。I n

16、put & strings : m少 name is pui dnny The max string is - rul Pi*es:s any hey to continue題目(5)刪除字符。程序功能:編寫一個函數(shù) delchar(s,c),該函數(shù)將字符串s中出現(xiàn)的所有c字符刪除。在主 程序中輸入一個字符c和一個字符串s,調(diào)用delchar(s,c)函數(shù)刪除字符串s中所有的c字符,然后輸出刪除后的字符串。例如:輸入字符a和字符串li wangzhajinxiao ,輸出:li wngzhjinxio 。(注:程序文件保存在“第5題”文彳夾中)打開proj5.cpp文件,在兩條星線之間

17、填入相應(yīng)的代碼,使程序完成該功能。調(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é)果。例如:輸入字符串li wangzhajinxiao和開始位置2,輸出:wangzhajinxiao 。(注:程序文件保存在“第6題”文彳夾中)打開proj6.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。調(diào)試正確的源程序清單/程序

18、功能:編寫一個函數(shù)strmcpy(s,t,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, cha

19、r *t, int m);printf("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, c

20、har *t, int m)int i;/請在兩條星線之間填入相應(yīng)的代碼,將字符串t中從m個字符開始的全部字符復(fù)制到字符串s中去。/要求:利用指針方法來處理。/*/for(i=0;i<m;i+,*t+);strcpy(s,t);/*/ 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。I n put a string : nvnli&nI'uidon9I n put beg-in posit ion : 2the re suit Le : name i.sc:henpuijlongpgsb key to coratLnue,該函數(shù)將字符串t復(fù)制到字符串s的末端,并且題目

21、(7)字符串連接。程序功能:編寫一個函數(shù) strmcat(s,t)返回字符串s的首地址。在主程序中輸入兩個字符串s和t ,調(diào)用strmcat(s,t) 函數(shù),然后輸出字符串s的結(jié)果。幽L:輸入字符串Li Xiao和Wei,輸出:Li Xiao Wei。(注:程序文件保存在“第7題”文件夾中)打開proj7.cpp文件,在兩條星線之間填入相應(yīng)的代碼,使程序完成該功能。調(diào)試正確的源程序清單/程序功能:編寫一個函數(shù)strmcat(s,t),將字符串t復(fù)制到字符串s的末端,并且返回字符串s的首地址。/在主程序中輸入兩個字符串s和t ,調(diào)用strmcat(s,t) 函數(shù),然后輸出字符串s的結(jié)果。例 如:

22、輸入字符串 LiXiao 和 Wei,輸出:LiXiaoWei 。/提 示:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)容。#include <stdio.h>#include <string.h> void main()char s80, t80, *p;char * strmcat(char *s, char *t);printf("Input the first string:");scanf("%s",s);printf("Input the second string:");scanf(&quo

23、t;%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(char *s, char *t)int i,k;/請在兩條星線之間填入相應(yīng)的代碼,將字符串t復(fù)制到字符串s中去,并返回字符串s的首地址。/要求:利用指針方法來處理。/*/k=strlen(s);for(i=0;i<=strlen;i+)*(s+k+i)=*(t+i);/*/return s; 運行結(jié)果:

24、(提示:通過屏幕截圖,貼粘程序運行界面Input the f ipst st ping-: nynane1 nput the second. string-: Isclienr'uj.dlonThe result is :e isqheraruldanrPress an*; key to continue.題目(8)字符串排序。程序功能:編寫一個sort函數(shù),實現(xiàn)對5個字符串按從大到小進行排序。在主程序中輸入5字符串,調(diào)用sort函數(shù)進行排序,然后輸出排序后的結(jié)果。例如:輸入字符串Li Xiao Wang Zhang Yu ,輸出:Zhang Yu Xiao Wang Li 。(注:程

25、序文件保存在"第 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:");函數(shù),實現(xiàn)對5個字符串按從大到小進行排序。for(i=0;i<5;i+) scanf("%s",si);/請在兩條星線之間填入相應(yīng)的代碼,調(diào)用s

26、ort/*/ 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個字符串按從大到小進行排序。(選擇法)/要求:利用指針方法來處理。/*/for(i=0;i<n-1;i+)iMax=i;for(j=i+1;j<n;j+) if(strcmp(pj,piMax)&

27、gt;0) iMax=j;strcpy(t,pi);strcpy(pi,piMax);strcpy(piMax,t);/*/ 運行結(jié)果:(提示:通過屏幕截圖,貼粘程序運行界面)。門,E八計算機學(xué)院2U11QI、實驗、文藥復(fù)習(xí)一.Input 5 s trinsrs : Li KIaq W*ng Zh就ny VuThe result is: Shang ¥u Xiao Uang Li曜善意 any kg9 tn c口題目(9)在數(shù)組中查找指定元素。程序功能:輸入一個整數(shù) n (1<nwi0),然后輸入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.cp

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論