日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

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ù)傳遞。

#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ù)的個(gè)數(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<<”個(gè),分別是:”for(int i=0;i<n;i++)_________________;cout<<endl;______________; }
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í),輸出空字符串。

#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è)符號構(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ù))
例如:

char ch[81]; //除'\n'外,還可以存放80個(gè)字符 cin.getline(ch,81); //讀80個(gè)字符或遇'\n'結(jié)束(3)行數(shù)可以先由鍵盤輸入或者設(shè)定一個(gè)特殊的符號作為結(jié)束,如果多行文字(對應(yīng)一篇文章)有困難,可以先做統(tǒng)計(jì)一行功能。
(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)容,希望文章能夠幫你解決所遇到的問題。

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