C++基礎知識實例解析(一)
今天小編和大家一起通過幾個實例學習C++基礎知識,下面進行實例解析:
【1-1】編寫一個程序,實現(xiàn)一個整數(shù)、長整數(shù)、浮點數(shù)和雙精度數(shù)除以2的計算。
【分析】這是一個典型的函數(shù)重載的程序。聲明函數(shù)div()為除法函數(shù),每個函數(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; }
【總結】這是一個最原始的程序,并且很機械化。有心的讀者會發(fā)現(xiàn)上面的程序有許多重復的地方,這個正是我們后面模板里面會講到的內容。
【1-2】編寫一個函數(shù),從三個整數(shù)中找出最大值和最小值,并返回。
【分析】這個程序要求一次調用從主調函數(shù)中獲取兩個值,這不是值傳遞能夠解決的問題,必然會考慮使用地址傳遞。實現(xiàn)地址傳遞有兩種方法,一種是指針實現(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; }
【總結】這個程序又兩個被調函數(shù),都用到引用。使用引用來一次返回兩個參數(shù)值,方便簡潔。
【1-3】編寫一個函數(shù),求立方體體積,默認邊長為10。
【分析】這個程序需要用到帶有默認形參值的函數(shù)。則在聲明函數(shù)時,為形參賦予默認值。當函數(shù)調用時,如果輸入實參值,則默認函數(shù)值不起作用。而在沒有實參值輸入的情況下,就使用默認形參值進行計算。程序代碼如下:
#include <iostream> using namespace std; float volumn(float a=10,float b=10,float c=10); int main() { float a,b,c; cout<<"沒有實際參數(shù)值時,volumn="<<volumn()<<endl; cout<<"input a,b,c:"; cin>>a>>b>>c; cout<<"有實際參數(shù)值時,volumn="<<volumn(a,b,c)<<endl; return 0; } float volumn(float a,float b,float c) { return a*b*c; }
【總結】用帶有默認參數(shù)值的函數(shù)需要注意的時,默認參數(shù)值只能在函數(shù)聲明時標注,而在函數(shù)定義時則不能標注。當然,函數(shù)聲明和函數(shù)定義標注在一起時不受這個限制。
【1-4】編寫一個程序,計算分別選修2、3和4門課程的學生的平均分。
【分析】這也是一個典型的函數(shù)重載的問題。這幾個函數(shù)的區(qū)別在于參數(shù)個數(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; }
【分析】這幾個avg函數(shù)重載的出發(fā)點是由于其形參個數(shù)不同。并且由于函數(shù)體只有一句話,并且沒有選擇和循環(huán)等復雜結構,故也可以將其定義為內聯(lián)函數(shù),以提高程序運行效果。
以上就是今天小編跟大家分享的C++經(jīng)典實例,需要大家親自動手操作才能領會C++語言帶給我們的樂趣。
您可能感興趣的文章
- 04-02c語言沒有round函數(shù) round c語言
- 01-10深入理解C++中常見的關鍵字含義
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10c++中inline的用法分析
- 01-10用C++實現(xiàn)DBSCAN聚類算法
- 01-10全排列算法的非遞歸實現(xiàn)與遞歸實現(xiàn)的方法(C++)
- 01-10C++大數(shù)模板(推薦)
- 01-10淺談C/C++中的static與extern關鍵字的使用詳解
- 01-10深入C/C++浮點數(shù)在內存中的存儲方式詳解
- 01-10貪心算法 WOODEN STICKS 實例代碼


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載