日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C02-程序设计基础提高班(C++)第7周上机任务-指针

發(fā)布時間:2025/5/22 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C02-程序设计基础提高班(C++)第7周上机任务-指针 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

7周:閱讀教材第6章(p164-200),主要內(nèi)容是指針,完成第7周上機(jī)任務(wù);

(回到C02-程序設(shè)計基礎(chǔ)提高班(C++)學(xué)習(xí)安排)


實踐內(nèi)容:

1. (數(shù)組的排序) 按模板中的要求,用指向數(shù)組的指針變量作為形式參數(shù)編寫函數(shù),完成冒泡排序。重點體會:(1)冒泡排序算法;(2)用指向數(shù)組的指針變量作為形式參數(shù),用數(shù)組名(即數(shù)組的地址)作為實際參數(shù),函數(shù)中對于形參的改變實質(zhì)上也就是對實參對應(yīng)內(nèi)存單元的改變;(3)形式參數(shù)中不指定數(shù)組大小,實際數(shù)組的大小也一并作為參數(shù)傳遞。

#include <iostream> using namespace std; void bubble_sort(int *p, int num); //不要對自定義函數(shù)的聲明有任何改動 void output_array(int*, int); int main( ) //不要對main函數(shù)有任何改動 { int a[20]={86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};int b[15]={27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};bubble_sort(a,20); //用冒泡法按降序排序a中元素output_array(a,20); //輸出排序后的數(shù)組bubble_sort(b,15); //用冒泡法按降序排序b中元素output_array(b,15); //輸出排序后的數(shù)組return 0; } //下面定義自定義函數(shù)
2. 編寫函數(shù) int fun(int x, int *pp)。其功能是,求出x的所有奇數(shù)因子,并按照從小到大的順序放在pp指向的內(nèi)存中,函數(shù)返回值為這些整數(shù)的個數(shù)。若x的值為30, 數(shù)組中的數(shù)為1,3,5,15,函數(shù)返回4。

下面是該程序main()函數(shù)的部分代碼作為參考。

int main(void) {int a[50],x,n;____________;n=fun(x,a); cout<<x<<”的奇因子共有”<<n<<”個,分別是:”for(int i=0;i<n;i++)_________________;cout<<endl;______________; }
3. 編寫程序,要判斷兩個有序數(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<<"兩個有序數(shù)組中存在相同的數(shù)字!\n"; else cout<<"兩個有序數(shù)組中不存在相同的數(shù)字!\n"; return 0; }
4. 給定以下三個函數(shù)原型:
void sortl(int*, int*, int*); void sort2(int&,int&,int&); void sort3(int,int,int); 它們的功能都是把三個整數(shù)按升序排列。編寫程序?qū)崿F(xiàn)這三個函數(shù),并且寫main()函數(shù)調(diào)用它們,驗證這三個函數(shù)的正確性。

思考并驗證:(1)三個函數(shù)有何不同,應(yīng)該如何調(diào)用?(2)以函數(shù)sort1(int*, int*, int*)為例說明指針傳遞參數(shù)的過程。

5. 實現(xiàn)函數(shù)fun(char* str1, char* str2, int m),將字符串str1中從第m個字符開始的全部字符復(fù)制到另一個字符串str2中,當(dāng)m值大于str1的長度時,輸出空字符串。

#include <iostream> using namespace std; void fun(char*, char*, int); int main() {char str1[100]="I am a student",str2[100];int m;cin>>m;fun(str1,str2,m); cout<<str2<<endl; return 0; } //fun函數(shù)的定義
6. 用指針編寫函數(shù)fun(char* str1,char* str2,int m, int n),調(diào)用后,str2中獲得str1中從m位置開始的n個符號構(gòu)成的子串。編寫函數(shù)fun,并編制main()函數(shù)調(diào)用,展示其功能。


7. 從鍵盤輸入若干行文字(每行不起過80個字符),統(tǒng)計其中出現(xiàn)的單詞數(shù)目。
提示:這個任務(wù)可以做成若干個版本,逐漸增強(qiáng)功能
(1)一行英文句子中的單詞數(shù)目中間的空格決定,如I am a boy.這是4個單詞。本題中若干行句子形成一篇文章,可以統(tǒng)計一篇文章的詞數(shù)。word中有此功能,好強(qiáng)!
(2)cin函數(shù)輸入字符串時,一旦遇到空格就會結(jié)束讀取,不能用于讀一行。在此,可以cin對象的getline方法完成(詳見課本p434)。
格式:cin.getline(字符數(shù)組(或字符指針),字符個數(shù))
例如:

char ch[81]; //除'\n'外,還可以存放80個字符 cin.getline(ch,81); //讀80個字符或遇'\n'結(jié)束(3)行數(shù)可以先由鍵盤輸入或者設(shè)定一個特殊的符號作為結(jié)束,如果多行文字(對應(yīng)一篇文章)有困難,可以先做統(tǒng)計一行功能。
(4)如果結(jié)合文件,讀入的數(shù)據(jù)來自文件,這個功能將更強(qiáng),用于統(tǒng)計文件中的單詞數(shù)目。
(5)上面默認(rèn)輸入的文字中沒有多余的空格(即不會出現(xiàn)兩個連續(xù)空格,句首和句末沒有空格,每個標(biāo)點符號左右兩邊出現(xiàn)僅只出現(xiàn)一個空格)。如果程序功能更強(qiáng)大些,允許有多余空格的情況,需要在讀入后、統(tǒng)計前,清除多余空格。

轉(zhuǎn)載于:https://www.cnblogs.com/hehe520/archive/2012/10/07/6142692.html

總結(jié)

以上是生活随笔為你收集整理的C02-程序设计基础提高班(C++)第7周上机任务-指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。