版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任崗前培訓(xùn)課件
- 如何講試卷業(yè)務(wù)培訓(xùn)
- 江西省贛州市寧都縣多校2024-2025學(xué)年五年級上學(xué)期期中語文試題(含答案)
- 河南省百師聯(lián)盟聯(lián)考2024-2025學(xué)年高二上學(xué)期10月月考英語試題(含答案無聽力原文及音頻)
- 福建省廈門市同安區(qū)2024-2025學(xué)年九年級上學(xué)期11月期中數(shù)學(xué)試題(無答案)
- 期中摸底測試(1-4單元)(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版 -
- 大跨度拱形鋼結(jié)構(gòu)施工技術(shù)13
- 高中語文專題二雜說第3課日喻課件蘇教版選修唐宋八大家散文蚜
- 晏子使楚課件
- 江蘇省徐州市邳州市2023-2024學(xué)年九年級上學(xué)期期中抽測化學(xué)試卷(含答案解析)
- 數(shù)據(jù)挖掘(第2版)PPT全套完整教學(xué)課件
- (2023年)吉林省吉林市【統(tǒng)招專升本】計算機真題(含答案)
- 步進(jìn)驅(qū)動器zd2hd542說明書
- 學(xué)習(xí)弘揚勞模工匠精神
- 【超星爾雅學(xué)習(xí)通】女性學(xué):女性精神在現(xiàn)代社會中的挑戰(zhàn)網(wǎng)課章節(jié)答案
- 安徽綠沃循環(huán)能源科技有限公司12000t-a鋰離子電池高值資源化回收利用項目(重新報批)環(huán)境影響報告書
- 2022年陜西省中考語文試卷含答案
- 原油電脫水處理技術(shù)
- 脊柱脊髓疾病的MRI診斷
- 《底層邏輯》讀書筆記
- 紅樓夢81至100回讀書筆記3篇
評論
0/150
提交評論