C程序設(shè)計練習(xí)答案_第1頁
C程序設(shè)計練習(xí)答案_第2頁
C程序設(shè)計練習(xí)答案_第3頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選試題C+程序設(shè)計練習(xí)答案rLr*版:單項選擇題1. 編寫C+程序一般需經(jīng)過的幾個步驟依次是()A. 編輯、調(diào)試、編譯、連接B. 編輯、編譯、連接、運行C. 編譯、調(diào)試、編輯、連接D. 編譯、編輯、連接、運行答案:B2. 設(shè)有定義inti;doublej=5;,則10+i+j值的數(shù)據(jù)類型是()A. intB. doubleC. floatD. 不確定答案:B3. 有關(guān)C+編譯指令,以下敘述正確的是()A. C+每行可以寫多條編譯指令B. #include指令中的文件名可含有路徑信息C. C+的編譯指令可以以#AC+中不管#if后的常量表達(dá)式是否為真,該部分都需要編譯 案:B4. 在下列成對的

2、表達(dá)式中,運算結(jié)果類型相同的一對是()A. 7.0 / 和 /28.5 / 和 5 / 2C. /2 和 7/2D. 8/2 和 /答案:A5. 在C+中不返回任何類型的函數(shù)應(yīng)該說明為()A. intB. charC. voidD. double答案:c6. 決定C+語言中函數(shù)的返回值類型的是()A. return語句中的表達(dá)式類型B.調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生的類型C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型D.在定義該函數(shù)時所指定的數(shù)據(jù)類型答案:D7.在C+中,函數(shù)原型不能標(biāo)識()A.函數(shù)的返回類型B.函數(shù)參數(shù)的個數(shù)C.函數(shù)參數(shù)類型D.函數(shù)的功能答案:D8.在 int a=3,int *p=&a;中,*

3、p 的值是A.變量a的地址值B.無意義C.變量p的地址值D.3答案:D9.一個函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,則應(yīng)把它定義為()A. 內(nèi)聯(lián)函數(shù)B. 重載函數(shù)C. 遞歸函數(shù)D. 嵌套函數(shù) 答案: A10. 適宜采用 inline 定義函數(shù)情況是()A. 函數(shù)體含有循環(huán)語句B. 函數(shù)體含有遞歸語句C. 函數(shù)代碼少、頻繁調(diào)用D. 函數(shù)代碼多、不常調(diào)用 答案: C11. 在函數(shù)定義中的形參屬于()A. 全局變量B. 局部變量C. 靜態(tài)變量D. 寄存器變量 答案: B12. C+ 語言中所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于()A. 全局變量B. 局部變量C. 靜態(tài)變量D. 函數(shù) 答案: B1

4、3. 下列有關(guān)重載函數(shù)的說法中正確的是()A. 重載函數(shù)必須具有不同的返回值類型B. 重載函數(shù)參數(shù)個數(shù)必須相同C. 重載函數(shù)必須有不同的形參列表D. 重載函數(shù)名可以不同 答案: C14. 使用地址作為實參傳給形參,下列說法正確的是()A. 實參是形參的備份B. 實參與形參無聯(lián)系C. 形參是實參的備份D. 實參與形參是同一對象 答案: D15. 備 C+ 中,使用流進(jìn)行輸入輸出,其中用于屏幕輸入()A. cinB. cerrC. coutD. clog 答案: A16. 若有以下定義,則說法錯誤的是()int a=100,*p=&a;A. 聲明變量p,其中*表示p是一個指針變量B. 變量p 經(jīng)初

5、始化,獲得變量a 的地址C. 變量p 只可以指向一個整型變量D. 變量p 的值為 100答案: D17. C+ 對 C 語言做了很多改進(jìn),即從面向過程變成為面向?qū)ο蟮闹饕蚴牵ǎ〢. 增加了一些新的運算符B. 允許函數(shù)重載,并允許設(shè)置缺省參數(shù)C. 規(guī)定函數(shù)說明符必須用原型D. 引進(jìn)了類和對象的概念 答案:D18. 3河替換#define PI的語句是()A. float PI;B. con st floatPl=;C. con st PI;D. const ;答案:B19. 如果一個函數(shù)沒有返回值,則應(yīng)選擇下列說明符中的()A. double B. void C. int D. char答案

6、:B20. 8.下列哪種默認(rèn)參數(shù)的聲明是不正確的(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. 包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)(A)A.循環(huán) B.變量自增自減.else. D.變量聲明22. 已知:const char *ptr; 那么 ptr 應(yīng)該是(A )。A、指向字符串

7、常量的指針B、指向字符串的常量指針C、指向字符的常量的指針D、指向字符常量的指針23. 11、在C+中,關(guān)于下列設(shè)置參數(shù)默認(rèn)值的描述中,正確的是(C ).A. 不允許設(shè)置參數(shù)的默認(rèn)值B. 設(shè)置參數(shù)默認(rèn)值只能在定義函數(shù)時設(shè)置C. 設(shè)置參數(shù)默認(rèn)值時,應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的D. 設(shè)置參數(shù)默認(rèn)值時,應(yīng)該全部參數(shù)都設(shè)置、填空題答案:編譯1. 開發(fā)一個C+語言程序的步驟通常包括編輯、_、連接、運行和調(diào)試。2. 假設(shè)int a=l,b=2;則表達(dá)式(+a/b)*b-的值為_。 答案:23. 下面程序的輸岀結(jié)果為#in clude void mai n()(int n um=2,i=6;do(i-;n

8、 um+;while(-i);cout? num? endl;)答案:54. 由 const 修飾的對象稱為 。答案:常對象5. 表達(dá)式 cout? endl 還可表示為 。答案: 6. 在 C+ 中,訪問一個指針?biāo)赶虻膶ο蟮某蓡T所用的指向運算符是 答案: -7. C+ 程序的源文件擴展名為答案: cpp8. 在 #include 命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:自定義9. C+ 語言中如果調(diào)用函數(shù)時,需要改變實參或者返回多個值,應(yīng)該采取_方式。答案:傳地址或引用10. 若函數(shù)的定義處于調(diào)用它的函數(shù)之前,則在程序開始可以省去該函數(shù)的語句。 答案:聲明1

9、1. 在 C+ 中有兩種參數(shù)傳遞方式:傳值和O答案:傳引用或地址12. 在函數(shù)前面用 _保留字修飾時,則表示該函數(shù)表為內(nèi)聯(lián)函數(shù)。答案: inline13. C+ 是通過引用運算符 _來定義一個引用的。答案: &14. 局部對象和全局對象中,在同一程序中生存期最長。 答案:全局對象15. 布爾類型標(biāo)識符是()答案: bool16. 若要使用 C+ 標(biāo)準(zhǔn)類庫,需要指定相應(yīng)的命名空間,所用的語句是 o答案: using namespace std;17. 使用 new 為 int 數(shù)組動態(tài)分配 10 個存儲空間是 。答案: new int 10;18. 在已經(jīng)定義了整型指針 ip 后,為了得到一個包

10、括 10個整數(shù)的數(shù)組并由 ip 所指向,應(yīng)使用 語句 _。答案: int *ip=new int 10;19. 8. C+ 語句 const char * const p= hello ; 所定義的指針 p 和它所指的內(nèi)容都不能被 O答案:修改20. 如集要把 PI 聲明為值為類型為雙精度實數(shù)的符號常量,該聲明語句是 答案: const double PI; 或者 const double PI=;21. 面向?qū)ο蟪绦蛟O(shè)計的 3 個主要性質(zhì)是:、繼承、。 答案:封裝,多態(tài)22. 使用 cin 和 cout 進(jìn)行輸入輸出操作的程序必須包含頭文件 答案:三、改錯題1. #include void

11、main() int i,*p; i=10; *p=i;cout? *p? endl;答案:*p=i;指針即地址沒有被賦值。 修改p=&i ;2. 以下程序?qū)崿F(xiàn)交換 a,b變量的值,請用下橫線標(biāo)岀錯誤所在行并給岀修改意見。#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);函數(shù)的形參是變量的引

12、用,調(diào)用時的實參應(yīng)該是地址。修改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解析進(jìn)行輸入或輸岀要引入iostream,所以using namespace std;從標(biāo)點看沒有分號,所以使用宏定義,#define pi。3. 程序?qū)崿F(xiàn)大寫字母轉(zhuǎn)換成小寫字母。#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. 在下面程序橫線處填上適當(dāng)內(nèi)容,使程序執(zhí)行結(jié)果為: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. 參數(shù)順序不同的函數(shù)重載,寫出運行結(jié)果。#include using namespace std;void info(char *name,mt age)( cout? H 名稱: H ?name? H ,數(shù)量: n?age?endl;void info(int age,char *name) coutvv 名”禰: n?name? M ,數(shù)量: H?a

17、ge?endl;int main()( info( H 書包 ” ,16); info(18, n 筆記本 ”); return 0;7. 比較內(nèi)部 auto 變量和內(nèi)部 static 變量的不同,寫出運行結(jié)果 #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 語句實現(xiàn)計算

18、器的簡單功能。#include using namespace std;void main()float x,y; 求 100 以內(nèi)的奇數(shù)之和#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. 輸入一個整數(shù),求出它的所有因子。#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. 定義函數(shù) up(ch), 如字符變量 ch 是小寫字母就轉(zhuǎn)換成

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. 編寫主程序輸入實數(shù) r 和整數(shù) n, 用函數(shù)求 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. 編寫程序計算兩個整數(shù)絕對值階乘之差。#include #include using namespace std;int fac(int n)用函數(shù)實現(xiàn)交換兩個數(shù) a 和 b 的值方法一:簡單變量作為函數(shù)形參 ( 值傳遞 )#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;方法二:引用作為函數(shù)形參 ( 地址傳遞 ) 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;方法三:指針作為函數(shù)形參(地址傳遞)#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 三個數(shù),調(diào)用函數(shù),得到其中最大數(shù)。方法一:簡單變量作為函數(shù)形參 (值傳遞 ) #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;方法二:指針作為函數(shù)形參 ( 地址傳遞 ) #include using

25、namespace std;int max(int *x,int *y,int *z); 編寫一個求方程 ax2 + bx + c = 0 的根 的程序,用 3 個函數(shù)分別求當(dāng) b2-4ac 大于零、等于零、和小于零時的方程的根。要求從主函數(shù)輸入 a,b,c 的值 并輸出結(jié)果。#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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論