国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C++基礎(chǔ)知識(shí)實(shí)例解析(一)

2020-01-26 14:59:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天小編和大家一起通過(guò)幾個(gè)實(shí)例學(xué)習(xí)C++基礎(chǔ)知識(shí),下面進(jìn)行實(shí)例解析:
【1-1】編寫(xiě)一個(gè)程序,實(shí)現(xiàn)一個(gè)整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和雙精度數(shù)除以2的計(jì)算。
【分析】這是一個(gè)典型的函數(shù)重載的程序。聲明函數(shù)div()為除法函數(shù),每個(gè)函數(shù)的功能基本都是一致的,不同的只是形式參數(shù)的類型不同而已。程序代碼如下:

#include <iostream>using namespace std;int division(int x){ return x/2; }long division(long x){ return x/2; }float division(float x){ return x/2; }double division(double x){ return x/2; }int main(){   int a; long b; float c; double d; cout<<"input a,b,c,d:"<<endl; cin>>a>>b>>c>>d; if(a!=0) cout<<a<<"/2="<<division(a)<<endl; else cout<<"input error!"<<endl;   if(b!=0) cout<<b<<"/2="<<division(b)<<endl; else cout<<"input error!"<<endl; if(c!=0) cout<<c<<"/2="<<division(c)<<endl; else cout<<"input error!"<<endl;   if(d!=0) cout<<d<<"/2="<<division(d)<<endl;   else cout<<"input error!"<<endl; return 0;}


【總結(jié)】這是一個(gè)最原始的程序,并且很機(jī)械化。有心的讀者會(huì)發(fā)現(xiàn)上面的程序有許多重復(fù)的地方,這個(gè)正是我們后面模板里面會(huì)講到的內(nèi)容。
【1-2】編寫(xiě)一個(gè)函數(shù),從三個(gè)整數(shù)中找出最大值和最小值,并返回。
【分析】這個(gè)程序要求一次調(diào)用從主調(diào)函數(shù)中獲取兩個(gè)值,這不是值傳遞能夠解決的問(wèn)題,必然會(huì)考慮使用地址傳遞。實(shí)現(xiàn)地址傳遞有兩種方法,一種是指針實(shí)現(xiàn),另一種就是采用引用。變量的引用既方便又直觀,非常利于理解。程序代碼如下:

#include <iostream>using namespace std;void swap(int &a,int &b){ int t; t=a; a=b; b=t;}void max(int a,int b,int c,int &maxnum,int &minnum){ if(a<=b) swap(a,b); if(a<=c) swap(a,c); if(b<=c) swap(b,c);   maxnum=a; minnum=c;}int main(){ int a,b,c,maxnum,minnum; cout<<"input a,b,c:"; cin>>a>>b>>c; max(a,b,c,maxnum,minnum);   cout<<"maxnum="<<maxnum<<endl; cout<<"minnum="<<minnum<<endl; return 0;}

【總結(jié)】這個(gè)程序又兩個(gè)被調(diào)函數(shù),都用到引用。使用引用來(lái)一次返回兩個(gè)參數(shù)值,方便簡(jiǎn)潔。
【1-3】編寫(xiě)一個(gè)函數(shù),求立方體體積,默認(rèn)邊長(zhǎng)為10。
【分析】這個(gè)程序需要用到帶有默認(rèn)形參值的函數(shù)。則在聲明函數(shù)時(shí),為形參賦予默認(rèn)值。當(dāng)函數(shù)調(diào)用時(shí),如果輸入實(shí)參值,則默認(rèn)函數(shù)值不起作用。而在沒(méi)有實(shí)參值輸入的情況下,就使用默認(rèn)形參值進(jìn)行計(jì)算。程序代碼如下:

#include <iostream>using namespace std;float volumn(float a=10,float b=10,float c=10);int main(){   float a,b,c; cout<<"沒(méi)有實(shí)際參數(shù)值時(shí),volumn="<<volumn()<<endl; cout<<"input a,b,c:"; cin>>a>>b>>c;   cout<<"有實(shí)際參數(shù)值時(shí),volumn="<<volumn(a,b,c)<<endl; return 0;}float volumn(float a,float b,float c){ return a*b*c;  }

【總結(jié)】用帶有默認(rèn)參數(shù)值的函數(shù)需要注意的時(shí),默認(rèn)參數(shù)值只能在函數(shù)聲明時(shí)標(biāo)注,而在函數(shù)定義時(shí)則不能標(biāo)注。當(dāng)然,函數(shù)聲明和函數(shù)定義標(biāo)注在一起時(shí)不受這個(gè)限制。
【1-4】編寫(xiě)一個(gè)程序,計(jì)算分別選修2、3和4門課程的學(xué)生的平均分。
【分析】這也是一個(gè)典型的函數(shù)重載的問(wèn)題。這幾個(gè)函數(shù)的區(qū)別在于參數(shù)個(gè)數(shù)不同。程序代碼如下:

#include <iostream>using namespace std;float avg(float,float);float avg(float,float,float);float avg(float,float,float,float);int main(){ cout<<"The first student:"<<avg(80.0f,70.2f)<<endl; cout<<"The second student:"<<avg(80.1f,78.1f,12.3f)<<endl; cout<<"The third student:"<<avg(45.6f,90.1f,78.6f)<<endl; return 0;}float avg(float x,float y) { return (x+y)/2.0;  }float avg(float a,float b,float c) { return (a+b+c)/3; }float avg(float a,float b,float c,float d){ return (a+b+c+d)/4; }

【分析】這幾個(gè)avg函數(shù)重載的出發(fā)點(diǎn)是由于其形參個(gè)數(shù)不同。并且由于函數(shù)體只有一句話,并且沒(méi)有選擇和循環(huán)等復(fù)雜結(jié)構(gòu),故也可以將其定義為內(nèi)聯(lián)函數(shù),以提高程序運(yùn)行效果。

以上就是今天小編跟大家分享的C++經(jīng)典實(shí)例,需要大家親自動(dòng)手操作才能領(lǐng)會(huì)C++語(yǔ)言帶給我們的樂(lè)趣。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天台县| 南阳市| 习水县| 桓台县| 镇平县| 新巴尔虎右旗| 赤壁市| 城口县| 太和县| 曲沃县| 陆良县| 哈巴河县| 汕尾市| 唐海县| 四平市| 龙南县| 余姚市| 新巴尔虎左旗| 准格尔旗| 南康市| 绥江县| 那曲县| 喀喇| 抚州市| 积石山| 库伦旗| 芦溪县| 长宁县| 珲春市| 上犹县| 安图县| 景宁| 通山县| 十堰市| 东至县| 南溪县| 朝阳县| 云霄县| 汶川县| 黎平县| 巴林右旗|