CC++程序設計教程 (龔沛曾)課后習題答案全集_第1頁
CC++程序設計教程 (龔沛曾)課后習題答案全集_第2頁
CC++程序設計教程 (龔沛曾)課后習題答案全集_第3頁
CC++程序設計教程 (龔沛曾)課后習題答案全集_第4頁
CC++程序設計教程 (龔沛曾)課后習題答案全集_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、習題一一、1、C2、A3、B4、C5、D6、A7、C8、B二、1、main2、數(shù)字、下劃線3、字符串4、#include、#define5、hex6、.h7、語法錯誤邏輯錯誤8、Insert/Remove Breakpoint9、.cpp10、Fileview三、略*習題二一、1、B2、C3、D4、C5、D6、C7、C8、B9、B10、B11、D二、1、x+y!=a+b2、pow(ln(10)+x*y),3)3、sin(w*u)/(cos(45*3.14/180)+3*x*x) 注:對于函數(shù)cos,其要求的參數(shù)是弧度表示。4、exp(3)+sqrt(2*x+3*y)5、fabs(x-y)+(x

2、+y)/(3*x)6、1.0/(1.0/r1+1.0/r2+1.0/r3)三、1、a>d&&b<=d|a<=d&&b>d(a和b中有且只有一個大于d)2、z=(x>y?x:y)3、x<0&&y<04、x+y>z&&x+z>y&&y+z>x5、int(x*100+0.5)/100.06、d>0&&d<=100&&d%2=07、x%5=0|y%5=08、n%k=0?n/k:n/k+1四、1、略2、主要語句: x%2=

3、0?cout<<"偶數(shù)":cout<<"基數(shù)"3、主要語句: cout<<x/%10<<x/10%10<<x/100;4、主要語句: year%400=0|year%4=0&&year%100!=0?cout<<"閏年":cout<<"非閏年";5、主要語句: y=ln(x*x+3)/ln(10)+3.14/2*cos(40*3.14/180);*第三章一、1.C2.D3.D(該答案后還應附“其他值”)4.C5.B6

4、.C7.A8.C9.B二、(1)輸入兩個正整數(shù)給m和n。(2)20(3)s=288(4)AB20ega5(5)* * * * * *三、(1)c=')' count=0 count>0 count(2)cin>>m>>n m=m-n n=n-m(3)n=m n=n/5 m=m+5四、1、#include "iostream.h"#include "math.h"void main()float x,y; cout<<"input x:"<<endl; cin>

5、>x; if(x<5) y=fabs(x); else if(x<20) y=3*x*x-2*x+1; else y=x/5; cout<<"x="<<x<<",y="<<y<<endl;2、#include "iostream.h"void main() float s,p,t,w; cout<<"input s:"<<endl; cin>>s; switch(int(s)/1000) case 0:

6、p=0;break; case 1:p=0.05;break; case 2:p=0.08;break; case 3: case 4:p=0.1;break; default:p=0.15;break; t=s*p; w=s-t; cout<<"納稅款="<<t<<",實得工資="<<w<<endl;3、#include "iostream.h"void main()int m,count=0; for(m=100;m<1000;m+) if(m%10+m/10%10

7、+m/100=5) count+; cout<<"count="<<count<<endl;4、#include "iostream.h"void main()int m,n; for(m=0;m<=30;m+) for(n=0;n<=30;n+) if(m*2+n*4=90&&m+n=30) cout<<"雞:"<<m<<"兔:"<<n<<endl;5、#include "iost

8、ream.h"void main()float e=1,t=1; int n; for(n=1;1/t>1e-6;n+) t=t*n; e=e+1/t; cout<<"e="<<e<<endl;6、#include "iostream.h"void main()int x,y; for(x=1;x<=100;x+) for(y=1;y<=100;y+) if(x*x+2*x=y*y*y) cout<<"x="<<x<<",y=

9、"<<y<<endl;7、#include "iostream.h"#include "stdio.h"void main()char ch; while(ch=getchar()!='.') if(ch=' ') cout<<endl; else cout<<ch;8、#include "iostream.h"#include "math.h"void main()int m,k1,k2; for(m=0;m<=100

10、0;m+) k1=sqrt(m+100); k2=sqrt(m+100+168); if(k1*k1=m+100&&k2*k2=m+100+168) cout<<m<<"是滿足條件的數(shù)"<<endl; 9、二分法的步驟為等分區(qū)間x1,x2成x1,x和x,x2,其中,若f(x)與f(x1)同號,則取x,x2作為新的區(qū)間,否則取x1,x作為新的區(qū)間,依次類推,當新區(qū)間的長度或f(x)的絕對值小于eps時,x 就作為所求的實根。#include "iostream.h"#include "math.

11、h"void main()float x1=0,x2=10,x,y1,y2,y,eps=1e-6; dox=(x1+x2)/2; y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)-270000; y=pow(x,9)-4*pow(x,5)-5*pow(x,3)-270000; if(y1*y>0) x1=x; else x2=x;while(fabs(x2-x1)>eps); cout<<x;第四章一、1、C2、A、D3、A、B、C4、D5、C6、D7、A8、B二、1、6789043212、1443、 m-n=14三、1、 #inclu

12、de "iomanip.h" 0,1 xi=xi-1+xi-2 setw(5)<<xi2、 rand()%100+1 j<ai/2 "A("<<i<<")"3、 bm=0 n<m+4 bm=bm/44、 gets(ch1) gets(ch2) *s1=*s2 r=05、 j=k=l=0 j<M&&k<N cl=aj cl+=bk+ k<N j<M四、1.(1)#include "stdlib.h"#include "i

13、ostream.h"void main()int a44,b44,c44,i,j; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand()%41+30; for(i=0;i<4;i+) for(j=0;j<4;j+) bij=rand()%35+101; cout<<"矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; cout<<&qu

14、ot;矩陣B的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<bij<<' ' cout<<endl; for(i=0;i<4;i+) for(j=0;j<4;j+) cij=aij+bij; cout<<"矩陣C的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<cij<<' ' cout<<endl;(2)#include &qu

15、ot;stdlib.h"#include "iostream.h"void main()int a44,t,i,j; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand()%41+30; cout<<"矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; for(i=0;i<4;i+) for(j=0;j<i;j+) t=aij;

16、aij=aji; aji=t; cout<<"轉(zhuǎn)置后矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; (3)#include "stdlib.h"#include "iostream.h"void main()int a44,b44,c44,i,j,max,imax,jmax; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand(

17、)%41+30; for(i=0;i<4;i+) for(j=0;j<4;j+) bij=rand()%35+101; cout<<"矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; cout<<"矩陣B的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<bij<<' ' co

18、ut<<endl; for(i=0;i<4;i+) for(j=0;j<4;j+) cij=aij+bij; cout<<"矩陣C的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<cij<<' ' cout<<endl; max=c00; for(i=0;i<4;i+) for(j=0;j<4;j+) if(cij>max) max=cij; imax=i; jmax=j; cout<<"max

19、=c"<<imax<<""<<jmax<<"="<<max<<endl;(4)#include "stdlib.h"#include "iostream.h"void main()int a44,b44,i,j; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand()%41+30; for(i=0;i<4;i+) for(j=0;j<4;j+) bij=rand()%35+101;

20、 cout<<"矩陣A的主對角線以下元素內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<=i;j+) cout<<aij<<' ' cout<<endl; cout<<"矩陣B的主對角線以上元素內(nèi)容如下:n" for(i=0;i<4;i+)for(j=i;j<4;j+) cout<<bij<<' ' cout<<endl; (5)#include "stdlib.h"

21、#include "iostream.h"void main()int a44,i,j; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand()%41+30; cout<<"矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; for(j=0;j<4;j+)int t=a0j; a0j=a2j; a2j=t; cout<<"改

22、變后矩陣A的內(nèi)容如下:n" for(i=0;i<4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl;(6)#include "stdlib.h"#include "iostream.h"void main()int a44,i,j,s=0; for(i=0;i<4;i+) for(j=0;j<4;j+) aij=rand()%41+30; cout<<"矩陣A的內(nèi)容如下:n" for(i=0;i&

23、lt;4;i+)for(j=0;j<4;j+) cout<<aij<<' ' cout<<endl; for(i=0;i<4;i+) for(j=0;j<4;j+) if(i=j|i+j=3) s=s+aij; cout<<"對角線元素之和為:"<<s<<endl;第五章習題一、選擇題1. 下列敘述錯誤的是_A_。 (A)主函數(shù)中定義的變量在整個程序中都是有效的。 (B)復合語句中定義的變量只在該復合語句中有效。 (C)其它函數(shù)中定義的變量在主函數(shù)中不能使用。 (D)形

24、式參數(shù)是局部變量。2. 若函數(shù)的形參為一維數(shù)組,則下列說法中錯誤的是_B、C_。 (A)形參數(shù)組可以不指定大小。(B)調(diào)用函數(shù)時的對應實參必須是數(shù)組名。 (C)調(diào)用函數(shù)時,系統(tǒng)會為形參數(shù)組分配存儲單元。 (D)函數(shù)中對形參的修改將會影響實參值。3. 若函數(shù)的類型和return語句中的表達式的類型不一致,則_D_。 (A)編譯時出錯。(B) 運行時出現(xiàn)不確定結(jié)果。 (C)不會出錯,且返回值的類型以return語句中表達式的類型為準。 (D)不會出錯,且返回值的類型以函數(shù)類型為準。4. 在函數(shù)調(diào)用語句f (g(x,y),z=x+y,(x,y);中,實參的個數(shù)是_A_。 (A) 3 (B) 4 (C

25、)5 (D)75. 以下關于定義重載函數(shù)的要求中,錯誤的是_D_。(A)要求參數(shù)個數(shù)不同。(B)要求至少有一個參數(shù)類型不同。(C)要求參數(shù)個數(shù)相同時,參數(shù)類型不同。(D)要求函數(shù)的返回值不同。6. 下面的函數(shù)定義正確的是_D_。(A) float f(float x;float y) (B) float f(float x,y) return x*y; return x*y;(C) float f(x,y) (D) float f( int x, int y) int x,y ; return x*y; return x*y;7. 下面函數(shù)頭的定義格式正確的是_C_。(A) void sort

26、(int an,int n) (B) void sort(int a,int n)(C) void sort(int a,int n) (D) void sort(int a,n)8. 以下幾種模板函數(shù)的定義錯誤的是_C_。(A) template <class T>T fun1(T a,int b) (C) template <class T>void fun1(int a,int b) T i; 9. 下面4個程序中輸出結(jié)果是125的有_C_個。(1). #include "iostream.h"void cube(int x) x=x*x*x;

27、 void main()int x=5;cube(x); cout<<x;(3). #include "iostream.h"int cube(int x) x=x*x*x; return(x); void main()int x=cube(5);/將x改為5cout<<x;(A) 1 (B)2(C)3(D)410. 下面函數(shù)說明正確的是_C_。(A)void f1(int a=3, int b, int c);(B)void f2 int a, int b=3, int c);(C)void f3(int a, int b, int c=3);(D

28、)void f4(int a, int b, int 3);11. 設函數(shù)m()的說明形式為void m(int,int *); 利用函數(shù)m()對數(shù)5和整數(shù)j作函數(shù)m()定義的計算,正確的調(diào)用形式為_C_。(A) m(&5,&j) (B) m(5,j) (C)m(5,&j) (D) m(&5,j)12. 設函數(shù)的說明為:int fun(int a,int &x); 則下面調(diào)用該函數(shù)正確的是_B_。(A) fun( a, n); (B) x=fun( a, n);(C) fun( a10, n); (D)x=fun( a, n);二、寫運行結(jié)果1、2、3、

29、4、5、6、三程序填空1. 【程序說明】分段函數(shù)為 【程序段】 float y(float x) if(x<=0) return (x*x-x+1); else return x*x*x+x+3; 2. 【程序說明】函數(shù)backmove()是把字符指針x所指長度為n的字符串后移動m個位置,移出的字符移到串首。m、n為非負整數(shù)。如“abcdefghij”,后移動3個位置,成“hijabcdefg”?!境绦蚨巍?void backmove(char *x,int n,int m) int i,j;char w; for(j=0;j<m;j+) w= *(x+n-1); for(i=0;

30、 i<n-1;i+) *(x+n-1-i)= *(x+n-2-i) ; *x= w ; 3. 【程序說明】函數(shù)index()為查找字符串sub是否是字符串st的子串。若是,返回sub在st中首次出現(xiàn)的下標,否則返回-1。字符串sub和st非空。如sub: " cd ",st: "abcdefcd ",返回2?!境绦颉?include “iostream.h”#include <stdio.h>void main()char s180,s280; int index(char ,char ); gets(s1);gets(s2); if(

31、index(s1,s2) cout<<"子串在字符串中首次出現(xiàn)的下標:"<<index(s1,s2); else cout<<"找不到"int index(char st,char sub)int i,j,k; for(i=0;sti!='0'i+) for(j=i,k=0;subk!= '0'&&stj=subk ; k+,j+); if(subk= '0') return(i); return(0);4. 【程序說明】函數(shù)root為用二分法求方程f(x

32、)=0在x1,x2的實根,精度為eps。二分法求根的基本思想為 f(x)在區(qū)間a,b上連續(xù),f(a) 與 f(b)異號,區(qū)間中點 c=(a+b)/2 的 f(c) 符號和 f(a) 符號確定 c 代替 a 或 b,使根所在區(qū)間每次減半,直到|a- b|<eps或|f(c)|<eps,c 即為所求的根,其中eps為精度。下面程序為求方程 在1,7區(qū)間的實根,精度取10-6?!境绦颉?#include “math.h”#include <iostream.h> double root(double x1, double x2, double eps=1e-6) double

33、 f(double x); double x,y,y1; y1=f(x1); do x=0.5*(x1+x2); y=f(x); if(y1*y>0.0)x1=x; else if (y1*y<0.0) x2=x; while(fabs(y)>=eps&&fabs(x2-x1)>=eps); return(x); double f(double x)return x*x*x-5*x*x+16*x-80;void main()cout<<root(1,7)<<endl;5. 【程序說明】下面程序的功能是求出二維數(shù)組中最大的元素所在的

34、行號和列號?!境绦颉?define SIZE1 3#define SIZE2 4#include “iostream.h”float max_value(float xSIZE2,int &ii,int &jj) float max; max=x00; for(int i=0;i<SIZE1;i+) for(int j=0;j<SIZE2;j+) if(xij>max) max=xij; ii=i; jj=j; return(max);void main()int i,j,t1,t2;float aSIZE1SIZE2; cout<<"e

35、nter the array:n"for(i=0;i<SIZE1;i+) for(j=0;j<SIZE2;j+) cin>> aij; cout<<"max value is" << max_value(a,t1,t2);cout<<" line="<<t1<<"row="<<t2<<endl;(6)【程序說明】函數(shù)convert的功能是將一個十進制整數(shù)轉(zhuǎn)換為二到十六進制的字符串。#include "iost

36、ream.h"void convert(int m,int h,char ch) char b17="0123456789ABCDEF" int c10,i=0,k=0; do c i+ =m%h; while(m=m/h)!=0); for(-i;i>=0;-i) chk+=b ci ; chk='0'void main()char ch10;int m,h; cin>>m>>h; convert(m,h,ch); cout<<ch<<endl;四、編寫程序1.#include <ios

37、tream.h>void replace(char s,char c1,char c2)char *p=s; while(*p!='0') if(*p=c1) *p=c2; p+; void main()char s80,c1,c2; cin>>s; cin>>c1>>c2; replace(s,c1,c2); cout<<s<<endl;2.方法一、#include <iostream.h>double area(double r,double *girth,double pi=3.14159)*g

38、irth=2*pi*r;return(pi*r*r);void main()double r,len,s; cin>>r; s=area(r,&len); cout<<"len="<<len<<",s="<<s<<endl;方法二#include <iostream.h>void fun(double r,double &girth,double &area,double pi=3.14159)girth=2*pi*r;area=pi*r*r;void main()double r,len,s; cin>>r; fun(r,len,s); cout<<"len="<<len<<",s="<<s<

溫馨提示

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

最新文檔

評論

0/150

提交評論