C02-程序设计基础提高班(C++)第7周上机任务-指针
第7周:閱讀教材第6章(p164-200),主要內(nèi)容是指針,完成第7周上機(jī)任務(wù);
(回到C02-程序設(shè)計(jì)基礎(chǔ)提高班(C++)學(xué)習(xí)安排)
實(shí)踐內(nèi)容:
1. (數(shù)組的排序) 按模板中的要求,用指向數(shù)組的指針變量作為形式參數(shù)編寫函數(shù),完成冒泡排序。重點(diǎn)體會:(1)冒泡排序算法;(2)用指向數(shù)組的指針變量作為形式參數(shù),用數(shù)組名(即數(shù)組的地址)作為實(shí)際參數(shù),函數(shù)中對于形參的改變實(shí)質(zhì)上也就是對實(shí)參對應(yīng)內(nèi)存單元的改變;(3)形式參數(shù)中不指定數(shù)組大小,實(shí)際數(shù)組的大小也一并作為參數(shù)傳遞。
2. 編寫函數(shù) int fun(int x, int *pp)。其功能是,求出x的所有奇數(shù)因子,并按照從小到大的順序放在pp指向的內(nèi)存中,函數(shù)返回值為這些整數(shù)的個(gè)數(shù)。若x的值為30, 數(shù)組中的數(shù)為1,3,5,15,函數(shù)返回4。
下面是該程序main()函數(shù)的部分代碼作為參考。
3. 編寫程序,要判斷兩個(gè)有序數(shù)組中是否存在相同的數(shù)字
#include<iostream> using namespace std; bool commmonNum(int *a,int n1,int *b,int n2) { //要完成的代碼 } int main() { int a[]={1,4,7,8}; int b[]={2,5,6,9,10}; int n1=sizeof(a)/sizeof(a[0]); int n2=sizeof(b)/sizeof(b[0]); bool flag=commmonNum(a,n1,b,n2); if(flag==true) cout<<"兩個(gè)有序數(shù)組中存在相同的數(shù)字!\n"; else cout<<"兩個(gè)有序數(shù)組中不存在相同的數(shù)字!\n"; return 0; }
4. 給定以下三個(gè)函數(shù)原型:
void sortl(int*, int*, int*); void sort2(int&,int&,int&); void sort3(int,int,int); 它們的功能都是把三個(gè)整數(shù)按升序排列。編寫程序?qū)崿F(xiàn)這三個(gè)函數(shù),并且寫main()函數(shù)調(diào)用它們,驗(yàn)證這三個(gè)函數(shù)的正確性。
思考并驗(yàn)證:(1)三個(gè)函數(shù)有何不同,應(yīng)該如何調(diào)用?(2)以函數(shù)sort1(int*, int*, int*)為例說明指針傳遞參數(shù)的過程。
5. 實(shí)現(xiàn)函數(shù)fun(char* str1, char* str2, int m),將字符串str1中從第m個(gè)字符開始的全部字符復(fù)制到另一個(gè)字符串str2中,當(dāng)m值大于str1的長度時(shí),輸出空字符串。
6. 用指針編寫函數(shù)fun(char* str1,char* str2,int m, int n),調(diào)用后,str2中獲得str1中從m位置開始的n個(gè)符號構(gòu)成的子串。編寫函數(shù)fun,并編制main()函數(shù)調(diào)用,展示其功能。
7. 從鍵盤輸入若干行文字(每行不起過80個(gè)字符),統(tǒng)計(jì)其中出現(xiàn)的單詞數(shù)目。
提示:這個(gè)任務(wù)可以做成若干個(gè)版本,逐漸增強(qiáng)功能
(1)一行英文句子中的單詞數(shù)目中間的空格決定,如I am a boy.這是4個(gè)單詞。本題中若干行句子形成一篇文章,可以統(tǒng)計(jì)一篇文章的詞數(shù)。word中有此功能,好強(qiáng)!
(2)cin函數(shù)輸入字符串時(shí),一旦遇到空格就會結(jié)束讀取,不能用于讀一行。在此,可以cin對象的getline方法完成(詳見課本p434)。
格式:cin.getline(字符數(shù)組(或字符指針),字符個(gè)數(shù))
例如:
(4)如果結(jié)合文件,讀入的數(shù)據(jù)來自文件,這個(gè)功能將更強(qiáng),用于統(tǒng)計(jì)文件中的單詞數(shù)目。
(5)上面默認(rèn)輸入的文字中沒有多余的空格(即不會出現(xiàn)兩個(gè)連續(xù)空格,句首和句末沒有空格,每個(gè)標(biāo)點(diǎn)符號左右兩邊出現(xiàn)僅只出現(xiàn)一個(gè)空格)。如果程序功能更強(qiáng)大些,允許有多余空格的情況,需要在讀入后、統(tǒng)計(jì)前,清除多余空格。
轉(zhuǎn)載于:https://www.cnblogs.com/hehe520/archive/2012/10/07/6142692.html
總結(jié)
以上是生活随笔為你收集整理的C02-程序设计基础提高班(C++)第7周上机任务-指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 装箱拆箱陷阱揭秘
- 下一篇: s3c2440移植MQTT