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

下載本文檔

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

文檔簡介

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

2、成對的表達式中,運算結(jié)果類型相同的一對是()A. 7.0 2.0 和 7.0 2B. 52.0 和52C. 7.0 2和72D. 82和 6.0 2.0答案: A5. 在 C+中不返回任何類型的函數(shù)應(yīng)該說明為()A. intB. charC. voidD. double答案: C6. 決定 C+語言中函數(shù)的返回值類型的是()A. return 語句中的表達式類型B. 調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生的類型C. 調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型D. 在定義該函數(shù)時所指定的數(shù)據(jù)類型答案: D7. 在 C+中,函數(shù)原型不能標識()A. 函數(shù)的返回類型B. 函數(shù)參數(shù)的個數(shù)C. 函數(shù)參數(shù)類型D. 函數(shù)的功能答案:

3、D8.在 int a=3,int *p=&a;中, *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

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

5、明變量 p,其中 * 表示 p是一個指針變量B. 變量 p經(jīng)初始化,獲得變量 a的地址C. 變量 p只可以指向一個整型變量D. 變量 p的值為 100答案: D17. C+對 C語言做了很多改進,即從面向過程變成為面向?qū)ο蟮闹饕蚴牵ǎ〢. 增加了一些新的運算符B. 允許函數(shù)重載,并允許設(shè)置缺省參數(shù)C. 規(guī)定函數(shù)說明符必須用原型D. 引進了類和對象的概念答案: D18 3. 可替換 #define PI 3.1415926的語句是()A. float PI 3.1415926;B. const float PI=3.1415926;C. const PI(3.1415926);D. cons

6、t 3.1415926;答案: B19如果一個函數(shù)沒有返回值,則應(yīng)選擇下列說明符中的()。A. doubleB. voidC. intD. char答案: B20 8. 下列哪種默認參數(shù)的聲明是不正確的(C)A. int max(int a, int b, int c,int d=0);B. int max(int a, int b, int c=0, int d=0);C. int max(int a=0, int b, int c=0, int d=0);D. int max(int a, int b=0, int c=0, int d=0);21包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)(A)

7、A. 循環(huán)B.變量自增自減C.if.elseD. 變量聲明22已知: const char *ptr ;那么 ptr應(yīng)該是( A )。A、 指向字符串常量的指針B、 指向字符串的常量指針C、 指向字符的常量的指針D、 指向字符常量的指針23 11、在 C+中, 關(guān)于下列設(shè)置參數(shù)默認值的描述中, 正確的是(C ) .A. 不允許設(shè)置參數(shù)的默認值B. 設(shè)置參數(shù)默認值只能在定義函數(shù)時設(shè)置C. 設(shè)置參數(shù)默認值時 , 應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的D. 設(shè)置參數(shù)默認值時 , 應(yīng)該全部參數(shù)都設(shè)置二、填空題1. 開發(fā)一個 C+語言程序的步驟通常包括編輯、 _、連接、運行和調(diào)試。答案:編譯2.假設(shè) int a

8、=1,b=2;則表達式 (+a/b)*b-的值為 _。答案: 23. 下面程序的輸出結(jié)果為 _。#include void main()int num=2,i=6;doi-;num+;while(-i);coutnumendl;答案: 54. 由 const 修飾的對象稱為 _。答案:常對象5. 表達式 cout7. C+程序的源文件擴展名為 _。答案: cpp8.在 #include 命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:自定義9.C+語言中如果調(diào)用函數(shù)時,需要改變實參或者返回多個值,應(yīng)該采取_方式。答案:傳地址或引用10.若函數(shù)的定義處于調(diào)用它的函數(shù)之前,

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

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

11、文件_答案: iostream.h三、改錯題1. #include void main()int i,*p; i=10;*p=i;cout*pendl;答案: *p=i; 指針即地址沒有被賦值。修改 p=&i;2. 以下程序?qū)崿F(xiàn)交換 a,b 變量的值,請用下橫線標出錯誤所在行并給出修改意見。#include void swap(int &a,int &b)a=a+b;b=a-b;a=a-b;void main()int a=19,b=15;couta=a,b=bendl;swap(&a,&b);couta=a,b=bendl;答案: swap(&a,&b); 函數(shù)的形參是變量的引用,調(diào)用時的實

12、參應(yīng)該是地址。修改 swap(a, b);四、完成程序題 ( 本大題共 5小題,每小題 4分,共 20分 )1.下面是一個三角形三邊,輸出其面積C+程序,在下劃線處填上正確的語句。#include #include void area()double a,b,c;coutc&a+cb&c+ba)double l=(a+b+c)/2;_coutThe area is:sendl;elsecoutErrorabc; ,double s=sqrt(l*(l-a)*(l-b)*(l-c);解析輸入三個邊的長度,由公式得出三角形的面積double s=sqrt(l*(l-a)*(l-b)*(l-c);2

13、.下面是一個輸入半徑,輸出其面積和周長的C+程序,在下劃線處填上正確的語句。#include _;_;void main()double rad;coutrad;double l=2.0*pi*rad;double s=pi*rad*rad;cout n The long is: lendl;coutThe area is: sendl;答案: using namespace std,#define pi 3.14159解析進行輸入或輸出要引入iostream,所以 using namespace std;從標點看沒有分號,所以使用宏定義, #define pi 3.14159。3. 程序?qū)崿F(xiàn)

14、大寫字母轉(zhuǎn)換成小寫字母。#include void main()char a;_;cina;if(_)a=a+i;couta=A & a=Z解析大寫字母變小寫字母相差32,需要對 i 聲明并初始化。大寫字母變小寫字母。要判斷字符是大寫字母。4. 在下面程序橫線處填上適當內(nèi)容,使程序執(zhí)行結(jié)果為:S=2S=5S=9#include void sum(int i)static int s;_;couts=sendl;void main (void)int i;for (i=0;_)sum(i);答案: s=s+i+2; , i3,i+5.下面程序段用來求三角形的面積,首先判斷三邊不符合組成三角形時,

15、返回-1 ,符合時輸出三角形面積。#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=0,j=0,k=0;coutijk;double s=area(i,j,k);if(s0)cout 不是三角形 c|a+cb|b+ca, coutsendl;解析三角形組成規(guī)則:兩邊之和大于第三邊。s0不是三角形,是則輸出s。6參數(shù)順序不同的函數(shù)重載

16、, 寫出運行結(jié)果。#includeusing namespace std;void info(char *name,int age) cout名稱: name,數(shù)量: ageendl;void info(int age,char *name) cout 名稱: name,數(shù)量: ageendl;int main() info(書包 ,16);info(18,筆記本 );return 0;7比較內(nèi)部 auto 變量和內(nèi)部 static變量的不同 , 寫出運行結(jié)果。#includeusing namespace std;void test () int x=10;/動態(tài)變量 xstaticint

17、y=10; /靜態(tài)變量 ycoutauto_x= x ,static_y= y;void main( ) int i; for(i=0;i3;i+)test ( );五、編程題1. 求分段函數(shù) y=f(x) 的值, f(x) 的表達式如下:x2 1(x1). #include using namespace std;void main()float x,y;coutx;if(x=-1&x=1)y=x*x;else y=x*x+1;coutf(x)=yendl;2. 用 switch 語句實現(xiàn)計算器的簡單功能。#include using namespace std;void main()flo

18、at x,y;/運算數(shù)char oper;/運算符coutxopery;switch(oper)case +: coutx+y=x+yendl;break;case -: coutx-y=x-yendl;break;case *: coutx*y=x*yendl;break;case /: if(y=0)coutdivisor is zero!n;break;coutx/y=x/yendl;break;default: coutoperator has no effect!n;3. 求 100 以內(nèi)的奇數(shù)之和#include using namespace std;void main()int

19、 i=1,sum=0;while(i=100)sum+=i;i+=2;coutsum=sumendl;#include using namespace std;void main()int i=1,sum=0;dosum+=i;i+=2;while(i=100);coutsum=sumendl;#include using namespace std;void main()int i,sum;sum=0;for(i=1;i=100;i+=2)sum+=i;coutsum=sumendl;4. 輸入一個整數(shù),求出它的所有因子。#include using namespace std;void m

20、ain()int n,k;coutn;coutNumber nFactors ;for(k=1;k=n;k+)if(n%k=0)coutk ;coutendl;5.定義函數(shù) up(ch) ,如字符變量ch 是小寫字母就轉(zhuǎn)換成大寫字母并通過up 返回,否則字符ch 不改變。#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 ; i c;cout up(c), ;cout endl;6.編寫主程

21、序輸入實數(shù)r 和整數(shù) n,用函數(shù)求 r 的 n 次冪。#include #include doublepower(doublea, intb)int i;double result = 1.0;for(i=0;i b;i+)result = result * a;return result;void main()double r;int n;coutr;coutn;cout r的 n 次冪是: power(r,n) endl;7編寫程序計算兩個整數(shù)絕對值階乘之差。#include #include using namespace std;intfac (intn)/計算一個整數(shù)絕對值的階乘 i

22、nt i,f=1; n=abs(n); for(i=1;i=n;i+) f=f*i; return(f);void main( ) int x,y,c1,c2;coutxy;c1= fac(x); /調(diào)用函數(shù) fac ,求 x 絕對值的階乘c2=fac(y); /調(diào)用函數(shù) fac ,求 y 絕對值的階乘cout “the outcome is”c1 -c2endl;8. 用函數(shù)實現(xiàn) 交換兩個數(shù) a 和 b 的值。方法一 : 簡單變量作為函數(shù)形參 ( 值傳遞 ) #include using namespace std;void swap (intx,inty) int temp;temp=x;

23、 x=y; y=temp;coutx=x, y=yendl;void main() int a=10,b=20;swap(a,b );couta=a, b=bendl;方法二 :引用作為函數(shù)形參( 地址傳遞 )voidswap(int&x,int&y) int temp;temp=x;x=y;y=temp;coutx=x, y=yendl;void main() int a=10,b=20;couta=a, b=bendl;swap( a,b );couta=a, b=bendl;方法三 :指針作為函數(shù)形參( 地址傳遞 )#include using namespace std;swap(in

24、t*p1 ,int*p2 ) int temp;temp=*p1; *p1=*p2; *p2=temp; int main( )int a=10,b=20;int *pa=&a,*pb=;swap ( pa,&b);couta= a ,b= b;9輸入 a,b,c三個數(shù),調(diào)用函數(shù),得到其中最大數(shù) 。方法一 :簡單變量作為函數(shù)形參( 值傳遞 )#includeusing namespace std;voidsort(int &a, int &b, 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;

25、b=m; int main( )int a, b, c, ma ;coutPlease enter a,b,c:abc;sort(a,b,c);couta” , ” b” , ” cendl;return 0;方法二 :指針作為函數(shù)形參( 地址傳遞 )#include using namespace std;int max(int *x,int *y,int *z);/函數(shù)聲明int main( ) int a,b,c;cinabc;coutmax(a,b,c)= max(&a,&b,&c)*m) *m=*y; if(*z*m) *m=*z;return(*m);10.編寫一個求方程ax2 +

26、 bx + c = 0的根的程序,用3 個函數(shù)分別求當b2-4ac 大于零、等于零、和小于零時的方程的根。要求從主函數(shù)輸入a,b,c的值并輸出結(jié)果。#include #include voidequation_1(int a, int b, int c)double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = (-b - sqrt(temp) ) / (2 * a * 1.0);cout 兩個不相等的實根 endl;coutx1 = x1, x2 = x2 endl;void equation_2 (int a, int b, int c)double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = x1;cout 兩個相等的實根 endl;coutx1 = x1, x2 = x2 endl;void equation_3 (int a, int b, int c)cout 方程無解 / 兩個虛

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論