


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選試題C+程序設計練習答案rLr*版:單項選擇題1. 編寫C+程序一般需經過的幾個步驟依次是()A. 編輯、調試、編譯、連接B. 編輯、編譯、連接、運行C. 編譯、調試、編輯、連接D. 編譯、編輯、連接、運行答案:B2. 設有定義inti;doublej=5;,則10+i+j值的數據類型是()A. intB. doubleC. floatD. 不確定答案:B3. 有關C+編譯指令,以下敘述正確的是()A. C+每行可以寫多條編譯指令B. #include指令中的文件名可含有路徑信息C. C+的編譯指令可以以#AC+中不管#if后的常量表達式是否為真,該部分都需要編譯 案:B4. 在下列成對的
2、表達式中,運算結果類型相同的一對是()A. 7.0 / 和 /28.5 / 和 5 / 2C. /2 和 7/2D. 8/2 和 /答案:A5. 在C+中不返回任何類型的函數應該說明為()A. intB. charC. voidD. double答案:c6. 決定C+語言中函數的返回值類型的是()A. return語句中的表達式類型B.調用該函數時系統(tǒng)隨機產生的類型C.調用該函數時的主調用函數類型D.在定義該函數時所指定的數據類型答案:D7.在C+中,函數原型不能標識()A.函數的返回類型B.函數參數的個數C.函數參數類型D.函數的功能答案:D8.在 int a=3,int *p=&a;中,*
3、p 的值是A.變量a的地址值B.無意義C.變量p的地址值D.3答案:D9.一個函數功能不太復雜,但要求被頻繁調用,則應把它定義為()A. 內聯函數B. 重載函數C. 遞歸函數D. 嵌套函數 答案: A10. 適宜采用 inline 定義函數情況是()A. 函數體含有循環(huán)語句B. 函數體含有遞歸語句C. 函數代碼少、頻繁調用D. 函數代碼多、不常調用 答案: C11. 在函數定義中的形參屬于()A. 全局變量B. 局部變量C. 靜態(tài)變量D. 寄存器變量 答案: B12. C+ 語言中所有在函數中定義的變量,連同形式參數,都屬于()A. 全局變量B. 局部變量C. 靜態(tài)變量D. 函數 答案: B1
4、3. 下列有關重載函數的說法中正確的是()A. 重載函數必須具有不同的返回值類型B. 重載函數參數個數必須相同C. 重載函數必須有不同的形參列表D. 重載函數名可以不同 答案: C14. 使用地址作為實參傳給形參,下列說法正確的是()A. 實參是形參的備份B. 實參與形參無聯系C. 形參是實參的備份D. 實參與形參是同一對象 答案: D15. 備 C+ 中,使用流進行輸入輸出,其中用于屏幕輸入()A. cinB. cerrC. coutD. clog 答案: A16. 若有以下定義,則說法錯誤的是()int a=100,*p=&a;A. 聲明變量p,其中*表示p是一個指針變量B. 變量p 經初
5、始化,獲得變量a 的地址C. 變量p 只可以指向一個整型變量D. 變量p 的值為 100答案: D17. C+ 對 C 語言做了很多改進,即從面向過程變成為面向對象的主要原因是()A. 增加了一些新的運算符B. 允許函數重載,并允許設置缺省參數C. 規(guī)定函數說明符必須用原型D. 引進了類和對象的概念 答案:D18. 3河替換#define PI的語句是()A. float PI;B. con st floatPl=;C. con st PI;D. const ;答案:B19. 如果一個函數沒有返回值,則應選擇下列說明符中的()A. double B. void C. int D. char答案
6、:B20. 8.下列哪種默認參數的聲明是不正確的(C)A. int max(int a, intb, int c, int d=0);B. int max(i nt a, int b, int c=0, int d=0);C. int max(i nt a=0, int b, int c=0, int d=0);D. int max(i nt a, int b=0, int c=0, int d=0);21. 包含哪種語句的函數不能聲明為內聯函數(A)A.循環(huán) B.變量自增自減.else. D.變量聲明22. 已知:const char *ptr; 那么 ptr 應該是(A )。A、指向字符串
7、常量的指針B、指向字符串的常量指針C、指向字符的常量的指針D、指向字符常量的指針23. 11、在C+中,關于下列設置參數默認值的描述中,正確的是(C ).A. 不允許設置參數的默認值B. 設置參數默認值只能在定義函數時設置C. 設置參數默認值時,應該是先設置右邊的再設置左邊的D. 設置參數默認值時,應該全部參數都設置、填空題答案:編譯1. 開發(fā)一個C+語言程序的步驟通常包括編輯、_、連接、運行和調試。2. 假設int a=l,b=2;則表達式(+a/b)*b-的值為_。 答案:23. 下面程序的輸岀結果為#in clude void mai n()(int n um=2,i=6;do(i-;n
8、 um+;while(-i);cout? num? endl;)答案:54. 由 const 修飾的對象稱為 。答案:常對象5. 表達式 cout? endl 還可表示為 。答案: 6. 在 C+ 中,訪問一個指針所指向的對象的成員所用的指向運算符是 答案: -7. C+ 程序的源文件擴展名為答案: cpp8. 在 #include 命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:自定義9. C+ 語言中如果調用函數時,需要改變實參或者返回多個值,應該采取_方式。答案:傳地址或引用10. 若函數的定義處于調用它的函數之前,則在程序開始可以省去該函數的語句。 答案:聲明1
9、1. 在 C+ 中有兩種參數傳遞方式:傳值和O答案:傳引用或地址12. 在函數前面用 _保留字修飾時,則表示該函數表為內聯函數。答案: inline13. C+ 是通過引用運算符 _來定義一個引用的。答案: &14. 局部對象和全局對象中,在同一程序中生存期最長。 答案:全局對象15. 布爾類型標識符是()答案: bool16. 若要使用 C+ 標準類庫,需要指定相應的命名空間,所用的語句是 o答案: using namespace std;17. 使用 new 為 int 數組動態(tài)分配 10 個存儲空間是 。答案: new int 10;18. 在已經定義了整型指針 ip 后,為了得到一個包
10、括 10個整數的數組并由 ip 所指向,應使用 語句 _。答案: int *ip=new int 10;19. 8. C+ 語句 const char * const p= hello ; 所定義的指針 p 和它所指的內容都不能被 O答案:修改20. 如集要把 PI 聲明為值為類型為雙精度實數的符號常量,該聲明語句是 答案: const double PI; 或者 const double PI=;21. 面向對象程序設計的 3 個主要性質是:、繼承、。 答案:封裝,多態(tài)22. 使用 cin 和 cout 進行輸入輸出操作的程序必須包含頭文件 答案:三、改錯題1. #include void
11、main() int i,*p; i=10; *p=i;cout? *p? endl;答案:*p=i;指針即地址沒有被賦值。 修改p=&i ;2. 以下程序實現交換 a,b變量的值,請用下橫線標岀錯誤所在行并給岀修改意見。#in elude void swap(i nt &a 9int &b)(a=a+b;b=a_b;a=a-b;void mai n()(int a=19,b=15;coutv v a= vvavv ,b= vvbv Ven dl;swap(&a,&b);coutv v ” a= vvavv ”,b= vvbv Ven dl;)答案:swap(&a,&b);函數的形參是變量的引
12、用,調用時的實參應該是地址。修改swap(a, b);四、完成程序題(本大題共5小題,每小題4分,共20分)1. 下面是一個三角形三邊,輸岀其面積C+程序,在下劃線處填上正確的語句。#in elude #in elude void area()(double a,b,c;cout? nInput a b c: n;if(a+bc&a+cb&c+ba) (double l=(a+b+c)/2;cout? nThe area is: n?s?endl;elsecout? Error v Vendl;void mai n()(area();答案:ci n?a?b?c;, double s=sqrt(
13、l*(1-a)*(1-b)*(1-c);解析輸入三個邊的長度,由公式得岀三角形的面積double s=sqrt(l*(l-a)*(l-b)*(l-c);2. 下面是一個輸入半徑,輸岀其面積和周長的C+程序,在下劃線處填上正確的語句。#i nclude void mai n()(double rad;cout? nrad= n;cin? rad;double l=*pi*rad;double s=pi*rad*rad;cout? n n The long is : H?I? endl;cout?叮he area is : n?s?endl;)答案:using n amespace std,#de
14、fi ne pi解析進行輸入或輸岀要引入iostream,所以using namespace std;從標點看沒有分號,所以使用宏定義,#define pi。3. 程序實現大寫字母轉換成小寫字母。#in clude void mai n()(char a;cin? a;if()a=a+i;cout? a?endl;)答案: int i=32;, a=A & a=Z斷字解析大寫字母變小寫字母相差32,需要對 i 聲明并初始化。大寫字母變小寫字母。要判符是大寫字母。4. 在下面程序橫線處填上適當內容,使程序執(zhí)行結果為:S=2S=5S=9#include void sum(int i)static
15、int s;Hcout? s= H?s?endl;)void main (void)(inti;for (i=0;)sum(i);答案: s=s+i+2;, iv3,i+5. 下面程序段用來求三角形的面積,首先判斷三邊不符合組成三角形時,返回符合時 出三角形面積。#include #include double area(double a,double b,double c)if( 一)return -1;elsedouble ar,l ;l=(a+b+c)/2;ar=sqrt(l*(l-a)*(l-b)*(l-c);return ar;void main()(double i=O,j=O,k
16、=O;cout?n輸入三角形三邊:n;cin? i? j? k;double s=area(i,j,k);if(sc|a+cb|b+ca, cout? s?endl;解析三角形組成規(guī)則:兩邊之和大于第三邊。 svO 不是三角形,是則輸出s。6. 參數順序不同的函數重載,寫出運行結果。#include using namespace std;void info(char *name,mt age)( cout? H 名稱: H ?name? H ,數量: n?age?endl;void info(int age,char *name) coutvv 名”禰: n?name? M ,數量: H?a
17、ge?endl;int main()( info( H 書包 ” ,16); info(18, n 筆記本 ”); return 0;7. 比較內部 auto 變量和內部 static 變量的不同,寫出運行結果 #include using namespace std;void test ()(xl)? #include using namespace std;void main()(float x,y; coutvvEnter x: cin? x;if(x=-l&x=l) y=x*x;else y=x*x+l;cout? f(x)= vvyv Vendl;2. 用 switch 語句實現計算
18、器的簡單功能。#include using namespace std;void main()float x,y; 求 100 以內的奇數之和#include using namespace std;void main()int i=l,sum=0;while(i=100)sum+=i;i+=2;cout? sum= n? sum? endl;#include using namespace std;void main()int i=l,sum=0;dosum+=i;i+=2;while(i=100);cout? sum= n? sum? endl;#include using namespa
19、ce std;void main()int i,sum;sum=0;for(i=l;i=100;i+=2)sum+=i;cout? sum= n? sum? endl;4. 輸入一個整數,求出它的所有因子。#include using namespace std;void main()int n 9k;cout? nEnter a positive integer:cin? n;cout? nNumber n?n?n Factorsfor(k=l;k=n;k+)if(n%k=0)cout? k?cout? endl; 符 ch5. 定義函數 up(ch), 如字符變量 ch 是小寫字母就轉換成
20、大寫字母并通過 up 返回,否則字 不改變。#include using namespace std; char up (char c)if(c = 97 & c = 123) return (c - 32);elsereturn c;void main()(int i;char c; for(i = 0;i5; i+)( cin? c;cout? up(c)? H ,cout? endl;6. 編寫主程序輸入實數 r 和整數 n, 用函數求 r 的 n 次幕。#include #include double power(double a, int b)int i; double result
21、 =;for(i=0;i b;i+)result = result * a; return result;void main()double r;int n; cout? nr = cin? r;cout? nn =cin? n;cout? rvv 的vv nvv 次幕是:n? power(r,n)? endl;7. 編寫程序計算兩個整數絕對值階乘之差。#include #include using namespace std;int fac(int n)用函數實現交換兩個數 a 和 b 的值方法一:簡單變量作為函數形參 ( 值傳遞 )#include using namespace std;
22、void swap(int x,int y)( int temp; temp=x; x=y; y=temp;Hcoutvvx=vvxvv ,”y= ?y?endl;void main() int a=10,b=20; swap(a,b); coutvva=vvavv” ,n?bb=?endl;方法二:引用作為函數形參 ( 地址傳遞 ) void swap(int &x,int &y) ( int temp;temp=x; x=y; y=temp;coutvv ” x=vvxvv , y”=? y?endl;void main() (int a=10,b=20;cout? na=n?a?n, b
23、= H?b?endl; swap(a,b);cout?na=n?a?n, b= n?b?endl;方法三:指針作為函數形參(地址傳遞)#include using namespace std;swap(int *pl,int *p2)( int temp;temp=*pl; *pl=*p2; *p2=temp; int main()(int a=10,b=20;int *pa=&a,*pb=;swap(pa, &b);cout? na=n ?a ?n,b= n?b;9. 輸入 a,b,c 三個數,調用函數,得到其中最大數。方法一:簡單變量作為函數形參 (值傳遞 ) #include using
24、 namespace std;void sort(int &a, int &b 9 int &c)( int m;if(ba) m=a; a=b; b=m; if(ca) (m=a; a=c; c=m; if(cb) m=c; c=b; b=m; int main()( int a, b, c, ma ;cout? nPlease enter a,b,c: M?endl; cin? a?b? c;sort(a,b,c);coutv vavv ” , ” vvb vv ” , ” vvcv Vendl; return 0;方法二:指針作為函數形參 ( 地址傳遞 ) #include using
25、namespace std;int max(int *x,int *y,int *z); 編寫一個求方程 ax2 + bx + c = 0 的根 的程序,用 3 個函數分別求當 b2-4ac 大于零、等于零、和小于零時的方程的根。要求從主函數輸入 a,b,c 的值 并輸出結果。#include #include void equation_l (int a, int b, int c)(double xl, x2, temp;temp = b*b - 4 * a * c;xl = (-b + sqrt(temp) / (2 * a * ; x2 = (-b - sqrt(temp) / (2
26、* a * ; cout? M 兩個不相等的實根 vv endl; cout? nxl = H? xlvv ,”x2 = H? x2? endl;void equation_2 (int a, int b, int c)(double xl, x2, temp;temp = b*b - 4 * a * c;xl = (-b + sqrt(temp) ) / (2 * a * ;x2 = xl;cout? M 兩個相等的實根 vv endl;cout? Hxl = H? xlvv ,”x2 = H? x2? endl;void equation_3 (int a, int b, int c)(cout? 方程無解 / 兩個虛根 ? endl;)void main() int a, b, c; double temp;cout? M 輸入 a,b,c 的值vv endl;cin?a?b?c;coutvv 方程為: M? avvx*x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)學檢驗質量控制體系與實施要點
- 海外留學生接送與住宿全面質量監(jiān)控補充協(xié)議
- 虛擬現實網絡游戲原創(chuàng)角色道具設計獨家授權合同
- 智能家居設備安裝與全面保養(yǎng)服務長期合同
- 大宗商品物流配送與倉儲一體化承包合同
- 網絡廣告投放與精準營銷服務合同
- 法院執(zhí)行法拍房稅費承擔及支付協(xié)議合同
- 新能源企業(yè)ESG債券發(fā)行合規(guī)性法律審查協(xié)議
- 專業(yè)美容美發(fā)技術培訓與授權服務合同
- 快遞網點加盟快遞業(yè)務代理合同
- 法學博士申請個人自述范文
- 首付協(xié)議簽合同
- 銀行消保崗筆試題及答案
- 2024-2025學年陜旅版(三起)小學英語四年級下冊(全冊)知識點歸納
- 跟著人民幣旅游
- 浮生六記課件
- 中國企業(yè)可持續(xù)發(fā)展報告指南CASS-ESG 6.0-土木工程建筑業(yè)
- 2025浙江杭州學軍中學保送生自主招生數學試卷(含答案詳解)
- TCAWAORG 014-2024 老年綜合評估及干預技術應用規(guī)范
- 生物安全委員會的職責與管理制度
- 《接地線掛設操作》課件
評論
0/150
提交評論