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

下載本文檔

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

文檔簡(jiǎn)介

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

2、對(duì)是A. 和2B. 5和52C. 2和72D. 82和答案:A5. 在C+中不返回任何類(lèi)型的函數(shù)應(yīng)該說(shuō)明為A. intB. charC. voidD. double答案:C6. 決定C+語(yǔ)言中函數(shù)的返回值類(lèi)型的是A. return語(yǔ)句中的表達(dá)式類(lèi)型B. 調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類(lèi)型C. 調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類(lèi)型D. 在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類(lèi)型答案:D7. 在C+中,函數(shù)原型不能標(biāo)識(shí)A. 函數(shù)的返回類(lèi)型B. 函數(shù)參數(shù)的個(gè)數(shù)C. 函數(shù)參數(shù)類(lèi)型D. 函數(shù)的功能答案:D8. 在int a=3,int *p=&a;中,*p的值是A. 變量a的地址值B. 無(wú)意義C. 變量p的地址值D.

3、3答案:D9. 一個(gè)函數(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)語(yǔ)句B. 函數(shù)體含有遞歸語(yǔ)句C. 函數(shù)代碼少、頻繁調(diào)用D. 函數(shù)代碼多、不常調(diào)用答案:C11. 在函數(shù)定義中的形參屬于A. 全局變量B. 局部變量C. 靜態(tài)變量D. 寄存器變量答案:B12. C+語(yǔ)言中所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于A. 全局變量B. 局部變量C. 靜態(tài)變量D. 函數(shù)答案:B13. 以下有關(guān)重載函數(shù)的說(shuō)法中正確的選項(xiàng)是A. 重載函數(shù)必須具有不同的返回值類(lèi)型B. 重載函數(shù)

4、參數(shù)個(gè)數(shù)必須相同C. 重載函數(shù)必須有不同的形參列表D. 重載函數(shù)名可以不同答案:C14. 使用地址作為實(shí)參傳給形參,以下說(shuō)法正確的選項(xiàng)是A. 實(shí)參是形參的備份B. 實(shí)參與形參無(wú)聯(lián)系C. 形參是實(shí)參的備份D. 實(shí)參與形參是同一對(duì)象答案:D15. 在C+中,使用流進(jìn)行輸入輸出,其中用于屏幕輸入A. cinB. cerrC. coutD. clog答案:A16. 假設(shè)有以下定義,則說(shuō)法錯(cuò)誤的選項(xiàng)是int a=100,*p=&a;A. 聲明變量p,其中*表示p是一個(gè)指針變量B. 變量p經(jīng)初始化,獲得變量a的地址C. 變量p只可以指向一個(gè)整型變量D. 變量p的值為100答案:D17. C+對(duì)C語(yǔ)

5、言做了很多改良,即從面向過(guò)程變成為面向?qū)ο蟮闹饕蚴茿. 增加了一些新的運(yùn)算符B. 允許函數(shù)重載,并允許設(shè)置缺省參數(shù)C. 規(guī)定函數(shù)說(shuō)明符必須用原型D. 引進(jìn)了類(lèi)和對(duì)象的概念答案:D183.可替換#define PI 3.1415926的語(yǔ)句是 A. float PI 3.1415926; B. const float PI=3.1415926;C. const PI(3.1415926);D. const 3.1415926;答案:B19如果一個(gè)函數(shù)沒(méi)有返回值,則應(yīng)選擇以下說(shuō)明符中的 。A. double B. void C. int D. char答案:B208.以下哪種默認(rèn)參數(shù)的聲明是不

6、正確的CA. 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包含哪種語(yǔ)句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)A C.if.else 22已知:const char *ptr ; 那么ptr 應(yīng)該是 A 。A、 指向字符串常量的指針B、 指向字符串的常量指針C、 指向字符的常量的指針D、 指向字符常量的指針2311、在C+中,關(guān)于以下設(shè)

7、置參數(shù)默認(rèn)值的描述中,正確的選項(xiàng)是 C . A. 不允許設(shè)置參數(shù)的默認(rèn)值 B.設(shè)置參數(shù)默認(rèn)值只能在定義函數(shù)時(shí)設(shè)置 C.設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的 D.設(shè)置參數(shù)默認(rèn)值時(shí),應(yīng)該全部參數(shù)都設(shè)置 二、 填空題1. 開(kāi)發(fā)一個(gè)C+語(yǔ)言程序的步驟通常包括編輯、_、連接、運(yùn)行和調(diào)試。答案:編譯2. 假設(shè)int a=1,b=2;則表達(dá)式(+a/b)*b-的值為_(kāi)。答案:23. 下面程序的輸出結(jié)果為_(kāi)。#include <iostream.h>void main()int num=2,i=6;doi-;num+;while(-i);cout<<num<<e

8、ndl;答案:54. 由const修飾的對(duì)象稱(chēng)為_(kāi)。答案:常對(duì)象5. 表達(dá)式cout<<end1 還可表示為_(kāi)。答案:n6. 在C+中,訪(fǎng)問(wèn)一個(gè)指針?biāo)赶虻膶?duì)象的成員所用的指向運(yùn)算符是_。答案:->7. C+程序的源文件擴(kuò)展名為_(kāi)。答案:cpp8. 在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:自定義9. C+語(yǔ)言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取_方式。答案:傳地址或引用10. 假設(shè)函數(shù)的定義處于調(diào)用它的函數(shù)之前,則在程序開(kāi)始可以省去該函數(shù)的_語(yǔ)句。答案:聲明11. 在C+中有兩種參數(shù)傳遞方式:傳值和_。答案:

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

10、+中語(yǔ)句const char * const p=“hello”;所定義的指針p和它所指的內(nèi)容都不能被_。答案:修改20 如果要把PI聲明為值為類(lèi)型為雙精度實(shí)數(shù)的符號(hào)常量,該聲明語(yǔ)句是_。答案:const double PI(3.14159);或者const double PI3.14159;21面向?qū)ο蟪绦蛟O(shè)計(jì)的3個(gè)主要性質(zhì)是:_、繼承、_。答案:封裝,多態(tài)22使用cin和cout進(jìn)行輸入輸出操作的程序必須包含頭文件_答案:三、改錯(cuò)題1. #include <iostream.h>void main()int i,*p;i=10;*p=i;cout<<*p<&l

11、t;endl;答案:*p=i;指針即地址沒(méi)有被賦值。修改p=&i;2. 以下程序?qū)崿F(xiàn)交換a,b變量的值,請(qǐng)用下橫線(xiàn)標(biāo)出錯(cuò)誤所在行并給出修改意見(jiàn)。#include <iostream.h>void swap(int &a,int &b)a=a+b;b=a-b;a=a-b;void main()int a=19,b=15;cout<<"a="<<a<<",b="<<b<<endl;swap(&a,&b);cout<<"a=&q

12、uot;<<a<<",b="<<b<<endl;答案:swap(&a,&b);函數(shù)的形參是變量的引用,調(diào)用時(shí)的實(shí)參應(yīng)該是地址。修改swap(a, b);四、完成程序題(本大題共5小題,每題4分,共20分)1. 下面是一個(gè)三角形三邊,輸出其面積C+程序,在下劃線(xiàn)處填上正確的語(yǔ)句。#include <iostream.h>#include <math.h>void area()double a,b,c;cout<<"Input a b c:"_if(a+b&g

13、t;c&&a+c>b&&c+b>a)double l=(a+b+c)/2;_cout<<"The area is:"<<s<<endl;elsecout<<"Error"<<endl;void main()area();答案:cin>>a>>b>>c;,double s=sqrt(l*(l-a)*(l-b)*(l-c);解析輸入三個(gè)邊的長(zhǎng)度,由公式得出三角形的面積double s=sqrt(l*(l-a)*(l-b)

14、*(l-c);2. 下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C+程序,在下劃線(xiàn)處填上正確的語(yǔ)句。#include <iostream>_;_;void main()double rad;cout<<"rad="cin>>rad;double l=2.0*pi*rad;double s=pi*rad*rad;cout<<"n The long is:"<<l<<endl;cout<<"The area is:"<<s<<endl;答

15、案:解析進(jìn)行輸入或輸出要引入iostream, 所以u(píng)sing namespace std;從標(biāo)點(diǎn)看沒(méi)有分號(hào),所以使用宏定義,。3. 程序?qū)崿F(xiàn)大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母。#include <iostream.h>void main()char a;_;cin>>a;if(_)a=a+i;cout<<a<<endl;答案:int i=32;,a>=A && a<=Z解析大寫(xiě)字母變小寫(xiě)字母相差32,需要對(duì)i聲明并初始化。大寫(xiě)字母變小寫(xiě)字母。要判斷字符是大寫(xiě)字母。4. 在下面程序橫線(xiàn)處填上適當(dāng)內(nèi)容,使程序執(zhí)行結(jié)果為:S=2S=5

16、S=9#include <iostream.h>void sum(int i)static int s;_;cout<<"s="<<s<<endl;void main (void)int i;for (i=0;_)sum(i);答案:s=s+i+2;,i<3,i+5. 下面程序段用來(lái)求三角形的面積,首先判斷三邊不符合組成三角形時(shí),返回-1,符合時(shí)輸出三角形面積。#include <iostream.h>#include <math.h>double area(double a,double b,d

17、ouble 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;cout<<"輸入三角形三邊:"cin>>i>>j>>k;double s=area(i,j,k);if(s<0)cout<<"不是三角形"<<endl;else_答案:a+b>c|a+c>b|b+c>a,cout<&l

18、t;s<<endl;解析三角形組成規(guī)則:兩邊之和大于第三邊。s<0不是三角形,是則輸出s。6參數(shù)順序不同的函數(shù)重載,寫(xiě)出運(yùn)行結(jié)果。#include<iostream>using namespace std; void info(char *name,int age) cout<<"名稱(chēng):"<<name<<",數(shù)量:"<<age<<endl; void info(int age,char *name) cout<<"名稱(chēng):"<&l

19、t;name<<",數(shù)量:"<<age<<endl; int main() info("書(shū)包",16); info(18,"筆記本"); return 0; 7比較內(nèi)部auto變量和內(nèi)部static變量的不同,寫(xiě)出運(yùn)行結(jié)果。#include<iostream>using namespace std;void test () int x=10; / 動(dòng)態(tài)變量x static int y=10; / 靜態(tài)變量y cout<<"auto_x="<<

20、x <<",static_y=" <<y; void main( ) int i; for(i=0;i<3;i+) test ( ); 五、編程題1.求分段函數(shù)y=f(x)的值,f(x)的表達(dá)式如下: x2 1 (x<1) y= x2 (1x1) x2 1 (x>1) . #include <iostream>using namespace std;void main()float x,y;cout<<"Enter x: "cin>>x;if(x<-1)y=x*x-1;e

21、lse if(x>=-1&&x<=1)y=x*x;else y=x*x+1;cout<<"f(x)="<<y<<endl;2. 用switch語(yǔ)句實(shí)現(xiàn)計(jì)算器的簡(jiǎn)單功能。#include <iostream>using namespace std;void main()float x,y; /運(yùn)算數(shù)char oper; /運(yùn)算符cout<<"Enter x,oper,y: "cin>>x>>oper>>y;switch(oper)ca

22、se '+': cout<<"x+y="<<x+y<<endl; break;case '-': cout<<"x-y="<<x-y<<endl; break;case '*': cout<<"x*y="<<x*y<<endl; break;case '/': if(y=0) cout<<"divisor is zero!n" bre

23、ak; cout<<"x/y="<<x/y<<endl; break;default: cout<<"operator has no effect!n"3. 求100以?xún)?nèi)的奇數(shù)之和#include <iostream>using namespace std;void main()int i=1,sum=0;while(i<=100)sum+=i;i+=2;cout<<"sum="<<sum<<endl;#include <ios

24、tream>using namespace std;void main()int i=1,sum=0;dosum+=i;i+=2;while(i<=100);cout<<"sum="<<sum<<endl;#include <iostream>using namespace std;void main()int i,sum;sum=0;for(i=1;i<=100;i+=2)sum+=i;cout<<"sum="<<sum<<endl;4. 輸入一個(gè)整數(shù)

25、,求出它的所有因子。 #include <iostream>using namespace std;void main()int n,k;cout<<"Enter a positive integer: "cin>>n;cout<<"Number "<<n<<" Factors "for(k=1;k<=n;k+) if(n%k=0)cout<<k<<" "cout<<endl;5. 定義函數(shù)up(ch)

26、,如字符變量ch是小寫(xiě)字母就轉(zhuǎn)換成大寫(xiě)字母并通過(guò)up返回,否則字符ch不改變。#include < iostream >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 < 5 ; i+) cin>>c;cout<< up(c)<<", " cout<< endl;6. 編寫(xiě)主程序

27、輸入實(shí)數(shù)r和整數(shù)n, 用函數(shù)求r的n次冪。#include < iostream.h >#include < math.h >double power(double a, int b)int i;double result = 1.0;for(i=0;i< b;i+)result = result * a;return result;void main()double r;int n;cout<<"r = "cin>>r;cout<<"n = " cin>>n;cout<

28、< r<<"的"<< n<<"次冪是:"<< power(r,n)<< endl;7編寫(xiě)程序計(jì)算兩個(gè)整數(shù)絕對(duì)值階乘之差。#include <iostream>#include <math.h>using namespace std;int fac(int n) /計(jì)算一個(gè)整數(shù)絕對(duì)值的階乘 int i,f=1; n=abs(n); for(i=1;i<=n;i+) f=f*i; return(f); void main( ) int x,y,c1,c2; cou

29、t<<"please enter x, y : " cin>>x>>y; c1=fac(x); /調(diào)用函數(shù)fac,求x絕對(duì)值的階乘 c2=fac(y); /調(diào)用函數(shù)fac,求y絕對(duì)值的階乘 cout<<“the outcome is ”<<c1-c2<<endl; 8. 用函數(shù)實(shí)現(xiàn)交換兩個(gè)數(shù)a和b的值。方法一: 簡(jiǎn)單變量作為函數(shù)形參(值傳遞) #include <iostream>using namespace std;void swap(int x,int y) int temp;temp

30、=x; x=y; y=temp; cout<<"x="<<x<<", y="<<y<<endl;void main() int a=10,b=20;swap(a,b);cout<<"a="<<a<<", b="<<b<<endl; 方法二: 引用作為函數(shù)形參 (地址傳遞)void swap(int &x,int &y) int temp; temp=x; x=y; y=temp;

31、cout<<"x="<<x<<", y="<<y<<endl;void main() int a=10,b=20;cout<<"a="<<a<<", b="<<b<<endl;swap(a,b);cout<<"a="<<a<<", b="<<b<<endl;方法三: 指針作為函數(shù)形參 (地址傳遞)#

32、include <iostream>using namespace std;swap(int *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); cout<<"a=" <<a <<",b= "<<b;9輸入a,b,c三個(gè)數(shù),調(diào)用函數(shù),得到其中最大數(shù)。方法一: 簡(jiǎn)單變量作為函數(shù)形參(值傳遞)#include<i

33、ostream> using namespace std; void sort(int &a, int &b, int &c) int m; if(b>a) m=a; a=b; b=m; if(c>a) m=a; a=c; c=m; if(c>b) m=c; c=b; b=m; int main( ) int a, b, c, ma ; cout<<"Please enter a,b,c:"<<endl; cin>>a>>b>>c; sort(a,b,c); cout

34、<<a<<”,”<<b<<”,”<<c<<endl; return 0; 方法二: 指針作為函數(shù)形參 (地址傳遞)#include <iostream>using namespace std;int max(int *x,int *y,int *z); /函數(shù)聲明 int main( ) int a,b,c;cin>>a>>b>>c; cout<<"max(a,b,c)="<< max(&a,&b,&c)&l

35、t;<endl; /輸出3個(gè)數(shù)中的最大者 return 0;int max(int *x, int *y, int *z) /函數(shù)定義 int *m=x;if(*y>*m) *m=*y;if(*z>*m) *m=*z;return(*m);10. 編寫(xiě)一個(gè)求方程ax2 + bx + c = 0的根 的程序,用3個(gè)函數(shù)分別求當(dāng)b2-4ac大于零、等于零、和小于零時(shí)的方程的根。要求從主函數(shù)輸入a,b,c的值并輸出結(jié)果。#include < iostream.h >#include < math.h >void equation_1 (int a, int

36、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<<"兩個(gè)不相等的實(shí)根"<< endl;cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;void equation_2 (int a, int b,

37、 int c)double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = x1;cout<<"兩個(gè)相等的實(shí)根"<< endl;cout<<"x1 = "<< x1<<", x2 = "<< x2<< endl;void equation_3 (int a, int b, int c)cout<<"方程無(wú)解/兩個(gè)虛根"<< endl;void main()int a, b, c;double temp;cout<<"輸入a,b,c的值"<< endl;cin>>a>>b>>c;cout<<"方程為:"<< a&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論