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è),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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 j = 5;,則10+i+j值的數(shù)據(jù)類(lèi)型是()A. intB. doubleC. floatD. 不確定 答案: B3. 有關(guān)C+編譯指令,以下敘述正確的是()A. C+每行可以寫(xiě)多條編譯指令B. #include 指令中的文件名可含有路徑信息C. C+的編譯指令可以以#或/幵始D. C+中不管# if后的常量表達(dá)式是否為真,該部分都需要編譯 答案: B4. 在下列成對(duì)

2、的表達(dá)式中,運(yùn)算結(jié)果類(lèi)型相同的一對(duì)是()A. 7.0 2.0 和7.0 2B. 52.0 和52C. 7.0 2和72D. 82和6.0 2.0答案: 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. 在

3、int a=3,int *p=&a ;中,*p 的值是()A. 變量a的地址值B. 無(wú)意義C. 變量p的地址值D. 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+吾言中所有在函數(shù)中定義的變量,連同形式參數(shù),都屬于(

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

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

6、3.1415926;答案: B19. 如果一個(gè)函數(shù)沒(méi)有返回值,則應(yīng)選擇下列說(shuō)明符中的()。A. double B. void C. int D. char答案: B20. 8. 下列哪種默認(rèn)參數(shù)的聲明是不正確的(C)A. int max(int aB. int max(int aC. int max(int a=0D. int max(int aint b , int c , int d=0) ;int b , int c=0 , int d=0) ; , int b , int c=0 , int d=0) ;, int b=0 , int c=0 , int d=0) ;21. 包含哪種語(yǔ)

7、句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)(A)A.循環(huán) B. 變量自增自減 C.if.else D.變量聲明22. 已知: const char *ptr ;那么 ptr 應(yīng)該是( A )。A、 指向字符串常量的指針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í)設(shè)置C. 設(shè)置參數(shù)默認(rèn)值時(shí) , 應(yīng)該是先設(shè)置右邊的再設(shè)置左邊的D. 設(shè)置參數(shù)默認(rèn)值時(shí) , 應(yīng)該全部參數(shù)都設(shè)置二、 填空題1. 幵發(fā)一個(gè)C+語(yǔ)言程序的步驟通常包括編輯、連接、運(yùn)行和調(diào)試。答案:編

8、譯2. 假設(shè) int a=1,b=2; 則表達(dá)式(+a/b)*b-的值為 _。答案: 23. 下面程序的輸出結(jié)果為 _。#include <iostream.h>void main()int num=2,i=6;doi-;num+;while(-i);cout<<num<<endl;答案: 54. 由const修飾的對(duì)象稱為 。答案:常對(duì)象5. 表達(dá)式 cout<<end1 還可表示為 _。答案:n'6. 在C+中,訪問(wèn)一個(gè)指針?biāo)赶虻膶?duì)象的成員所用的指向運(yùn)算符是 。答案: ->7. C+程序的源文件擴(kuò)展名為 。答案: cpp8.

9、在#“elude命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是_的頭文件。答案:自定義9. C+語(yǔ)言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取方式。答案:傳地址或引用10. 若函數(shù)的定義處于調(diào)用它的函數(shù)之前,則在程序開(kāi)始可以省去該函數(shù)的 _ 語(yǔ)句。答案:聲明11. 在C+沖有兩種參數(shù)傳遞方式:傳值和_。答案:傳引用或地址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í)符是()答案: bo

10、ol16若要使用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 int 10;18. 在已經(jīng)定義了整型指針 ip 后,為了得到一個(gè)包括 10個(gè)整數(shù)的數(shù)組并由 ip 所指 向,應(yīng)使用語(yǔ)句 _。答案: int *ip=new int 10;19. 8. C+中語(yǔ)句con st char * const p= “ hello ”;所定義的指針 p和它所指的 內(nèi)容都不能被 _。答案:修改20. 如果要把PI聲明為值為3.14159類(lèi)型為雙精度實(shí)數(shù)的符號(hào)常量,該聲明語(yǔ)句 答案:c

11、o nst double Pl(3.14159); 或者 const double PI = 3.14159;21 面向?qū)ο蟪绦蛟O(shè)計(jì)的 3個(gè)主要性質(zhì)是: 、繼承、 。答案:封裝,多態(tài)22 .使用cin和cout進(jìn)行輸入輸出操作的程序必須包含頭文件 答案: iostream.h三、改錯(cuò)題1. #include <iostream.h>void main()int i,*p;i=10;*p=i; cout<<*p<<endl;答案: *p=i; 指針即地址沒(méi)有被賦值。修改 p=&i;2. 以下程序?qū)崿F(xiàn)交換 a,b 變量的值,請(qǐng)用下橫線標(biāo)出錯(cuò)誤所在行并給出

12、修改意 見(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="<<a<<",b="<<b<<endl;答案: swap

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

14、/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)*(l-c);2. 下面是一個(gè)輸入半徑,輸出其面積和周長(zhǎng)的C+程序,在下劃線處填上正確的語(yǔ)句。#inclu

15、de <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;答案: using namespace std,#define pi 3.14159解析進(jìn)行輸入或輸出要引入

16、 iostream, 所以 using namespace std; 從標(biāo)點(diǎn)看 沒(méi)有分號(hào),所以使用宏定義, #define pi 3.14159。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. 在下面程序橫線處填上適當(dāng)內(nèi)容,使程序執(zhí)行

17、結(jié)果為:S=2S=5S=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

18、,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;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&

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

20、t;<<name«",數(shù)量:"<<age<<endl;int main() info(" 書(shū)包 ",16); info(18," 筆記本 ");return O;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

21、="<< 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 (xv 1)y= x2 (- 1< x < 1)x2 1(x>1). #include viostream> using namespace std;void main()float x,y; coutvv"Enter x: " cin>>x;if

22、(xv-1) y=x*x-1;else if(x>=-1&&xv=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>&g

23、t;y;switch(oper)case '+': 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

24、is zero!n"break;cout<<"x/y="<<x/y<<endl; break; default: cout<<"operator has no effect!n" 3. 求 100 以內(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<<

25、endl;#include <iostream>using namespace std;int i=1,sum=0;void main()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="<<su

26、m<<endl;4. 輸入一個(gè)整數(shù),求出它的所有因子#include <iostream>using namespace std;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. 定

27、義函數(shù) up(ch) ,如字符變量 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<&

28、lt; endl;6. 編寫(xiě)主程序輸入實(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;double r;void main()int n;cout<<"r = "cin>>r;cout<<"n = "

29、;cin>>n;cout<< 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

30、 main( ) int x,y,c1,c2;cout<<"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;

31、void swap(int x,int y) int temp;temp=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 &

32、amp;y) int temp;temp=x; x=y; y=temp;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="<&

33、lt;b<<endl;方法三 : 指針 作為函數(shù)形參 ( 地址傳遞 ) #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;最大數(shù)9輸入 a,b,c 三個(gè)數(shù)

34、,調(diào)用函數(shù),得到其中 方法一 : 簡(jiǎn)單變量作為函數(shù)形參 (值傳遞 ) #include<iostream>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&g

35、t;>a>>b>>c;sort(a,b,c) ;cout<<a<< ” , ”<<b<<” , ”<<c<<endl; return 0;方法二 : 指針作為函數(shù)形參 ( 地址傳遞 )#include <iostream>using namespace std;函數(shù)聲明int max(int *x,int *y,int *z); /int main( ) int a,b,c;cin>>a>>b>>c;輸出 3 個(gè)數(shù)中的最大者cout<<

36、;"max(a,b,c)="<< max(&a,&b,&c)<<endl; /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.

37、h >#include < math.h >void equation_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<<" 兩個(gè)不相等的實(shí)根 "<< endl;cout<<"x1 = "<< x1<<", x2 =

38、"<< 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<<" 兩個(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>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論