C程序設(shè)計第四版譚浩強習題例題第7章

上傳人:仙*** 文檔編號:34284876 上傳時間:2021-10-20 格式:DOC 頁數(shù):27 大小:235KB
收藏 版權(quán)申訴 舉報 下載
C程序設(shè)計第四版譚浩強習題例題第7章_第1頁
第1頁 / 共27頁
C程序設(shè)計第四版譚浩強習題例題第7章_第2頁
第2頁 / 共27頁
C程序設(shè)計第四版譚浩強習題例題第7章_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C程序設(shè)計第四版譚浩強習題例題第7章》由會員分享,可在線閱讀,更多相關(guān)《C程序設(shè)計第四版譚浩強習題例題第7章(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、. 第7章函數(shù) 例7.1 #include int main() { void print_star(); void print_message(); print_star(); print_message(); print_star(); return 0; } void print_star() { printf("***********************************\n"); } void print_message() { printf("How do you do!\n"); } 例7.

2、2 int max(int x,int y) { int z; z=x>y?x:y; return(z); } #include int main() { int max(int x,int y); int a,b,c; printf("please enter two integer number:"); scanf("%d,%d",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } 精品 . 例7.3 #include int

3、 main() { int max(float x,float y); float a,b; int c; printf("please enter two integer number:"); scanf("%f,%f",&a,&b); c=max(a,b); printf("max is %d\n",c); return 0; } int max(float x,float y) { float z; z=x>y?x:y; return(z); } 例7.4 #include int main() {

4、float add(float x,float y); float a,b,c; printf("please enter a and b:"); scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f\n",c); return 0; } float add(float x,float y) { float z; z=x+y; return(z); } 精品 . 例7.5 #include int main() { int max4(int a,int b,int

5、 c,int d); int a,b,c,d,max; printf("please enter 4 interger number:"); scanf("%d %d %d %d",&a,&b,&c,&d); max=max4(a,b,c,d); printf("max=%d\n",max); return 0; } int max4(int a,int b,int c,int d) { int max2(int a,int b); int m; m=max2(a,b); m=max2(m,c); m=max2(m,d); return(m

6、); } int max2(int a,int b) { if(a>=b) return a; else return b; } #include int main() { int max4(int a,int b,int c,int d); int a,b,c,d,max; printf("please enter 4 interger number:"); scanf("%d %d %d %d",&a,&b,&c,&d); max=max4(a,b,c,d); printf("max=%d\n",max); retu

7、rn 0; } int max4(int a,int b,int c,int d) 精品 . { int max2(int a,int b); return(max2(max2(max2(a,b),c),d)); } int max2(int a,int b) { return(a>b?a:b); } 例7.6 #include int main() { int age(int n); printf("NO.5,age:%d\n",age(5)); return 0; } int age(int n) { int c

8、; if(n==1) c=10; else c=age(n-1)+2; return(c); } 例7.7遞歸方法求n! #include int main() { int fac(int n); int n,y; printf("input a interger number:"); scanf("%d",&n); y=fac(n); printf("%d!=%d\n",n,y); return 0; } int fac(int n) { int f; if(n<0) printf("n<0,data er

9、ror!"); else if(n==0||n==1) f=1; else f=fac(n-1)*n; return(f); 精品 . } 例7.8漢諾塔 #include int main() { void hanoi(int n,char one,char two,char three); int m; printf("input the number of diskes:"); scanf("%d",&m); printf("The step to move %d diskes:\n",m); hanoi(m,A,B

10、,C); } void hanoi(int n,char one,char two,char three)//將N-1個盤子從一座移到另一座。 { void move(char x,char y);//用到這個函數(shù),提前聲明 if(n==1) move(one,three);//最后一步1-3 else { hanoi((n-1),one,three,two);//小和尚工作n-1個盤子借用3由1搬到2 move(one,three);//老和尚工作最大盤子由1搬到3 hanoi((n-1),two,one,three);//小和尚工作n-1個盤子借用2

11、由1搬到3,完成工作 } } void move(char x,char y)//將一個盤子從一座移到另一座 { printf("%c-->%c\n",x,y); } 例7.9 #include int main() { int max(int x,int y); 精品 . int a[10],m,n,i; printf("enter 10 interger numbers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=1,m=a[0],n

12、=0;i<10;i++) { if (max(m,a[i])>m) { m=max(m,a[i]); n=i; } } printf("The largest number is %d\nit is the %dth number.\n",m,n+1); } int max(int x,int y) { return(x>y?x:y); } 例7.10 #include int main() { float average(float array[10]); float score[10],aver

13、; int i; printf("enter 10 scores:\n"); for(i=0;i<10;i++) scanf("%f",&score[i]); printf("\n"); aver=average(score); printf("average score is %5.2f\n",aver); return 0; } float average(float array[10]) { int i; float aver,sum=array[0]; for (i=1;i<10;i++) sum=sum+array[i];

14、精品 . aver=sum/10; return(aver); } 例7.11 #include int main() { float average(float array[10],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; printf("The average of class A is %6.2f\n",average(score1,5)); printf

15、("The average of class B is %6.2f\n",average(score2,10)); return 0; } float average(float array[10],int n) { int i; float aver,sum=array[0]; for (i=1;i int main() { void sort(int array[],int n);

16、 int a[10],i; printf("enter array:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sort(a,10); printf("The sorted array:\n"); for(i=0;i<10;i++) printf("%d ",a[i]); 精品 . printf("\n"); return 0; } void sort(int array[],int n) { int i,j,k,t; for(i=0;i

17、=i+1;j int main() { int max_value(int array[][4]); int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("Max value is %d\n",max_value(a)); return 0; } int max_valu

18、e(int array[][4]) { int i,j,max; max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(array[i][j]>max) max=array[i][j]; return(max); } 例7.14 #include float Max=0,Min=0; int main() 精品 . { float average(float array[],int n); float ave,score[10]; int i; printf("

19、Please enter 10 score:"); for(i=0;i<10;i++) scanf("%f",&score[i]); ave=average(score,10); printf("max =%6.2f\nmin=%6.2f\naverage=%6.2f\n",Max,Min,ave); return 0; } float average(float array[],int n) { int i; float aver,sum=array[0]; Max=Min=array[0]; for(i=1;i

20、array[i]>Max) Max=array[i]; else if(array[i] int a=3,b=5; int main() { int max(int a,int b); int a=8; printf("max=%d\n",max(a,b)); return 0; } int max(int a,int b) { int c; c=a>

21、b?a:b; 精品 . return(c); } 例7.16 #include int main() { int f(int); int a=2,i; for (i=0;i<3;i++) printf("%d\n",f(a)); return 0; } int f(int a) { auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c); } 例7.17 #include int main() { int fac(int

22、n); int i; for (i=1;i<=5;i++) printf("%d!=%d\n",i,fac(i)); return 0; } int fac(int n) { static int f=1; f=f*n; return(f); } 精品 . 例7.18 #include int main() { int max(); extern int A,B,C; printf("Please enter three interger numbers\n"); scanf("%d %d %d",&A,&B

23、,&C); printf("max is %d\n",max()); return 0; } int A,B,C; int max() { int m; m=A>B?A:B; if(C>m)m=C; return(m); } 例7.19 file1.c #include int A; int main() { int power(int); int b=3,c,d,m; printf("enter the number a and its power m:\n"); scanf("%d,%d",&A,&m);

24、 c=A*b; printf("%d*%d=%d\n",A,b,c); d=power(m); printf("%d**%d=%d\n",A,m,d); return 0; } 精品 . file2.c extern A; int power(int n) { int i,y=1; for(i=1;i<=n;i++) y*=A; return(y); } 例7.20 file1.c #include int main() { extern void enter_string(char str[]); e

25、xtern void delete_string(char str[],char ch); extern void print_string(char str[]); char c,str[80]; enter_string(str); scanf("%c",&c); delete_string(str,c); print_string(str); return 0; } file2.c void enter_string(char str[80]) { gets(str); } file3.c void delete_string(char st

26、r[],char ch) { int i,j; for(i=j=0;str[i]!=\0;i++) if(str[i]!=ch) str[j++]=str[i]; str[j]=\0; } file4.c 精品 . void print_string(char str[]) { printf("%s\n",str); } 習題 1. #include int divisor(x,y) { int r; if(x

27、 r=x%y; x=y; y=r; } return(x); } int multiple(int x,int y) { int z; z=x*y/divisor(x,y); return(z); } int main() { int a,b; printf("請輸入兩個整數(shù)a和b:"); scanf("%d,%d",&a,&b); printf("a和b的最大公約數(shù)為%d.\n",divisor(a,b)); printf("a和b的最小公倍數(shù)為%d.\n",multiple(a,b)); return 0; }

28、精品 . 2. #include #include float d; void disc1(float a,float b,float c) { printf("方程有兩不等實根:x1=%5.2f,x2=%5.2f\n",(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)); } void disc2(float a,float b,float c) { printf("方程有兩相等實根:x1=x2=%5.2f\n",-b/(2*a)); } void disc3(float a,float b,floa

29、t c) { printf("方程有兩不等實根:x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n",-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a)); } int main() { float a,b,c; printf("請輸入a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); d=b*b-4*a*c; if(d>0) disc1(a,b,c); else if(fabs(d)<=1e-6) disc2(a,b,c); else disc3(a,b,c); re

30、turn 0; } 3. #include 精品 . #include void f(int a) { int i,n=(int)sqrt(a),t; for(i=2,t=1;i<=n;i++) { if(a%i==0) { t=0; printf("這是一個合數(shù).\n");break; } } if(t) printf("這是一個素數(shù).\n"); } int main() { int a; printf("請輸入一個正整數(shù)a:"); scanf("%d",&a)

31、; f(a); return 0; } 4. #include void f(int a[3][3]) { int i,j,t; for(i=0;i<=2;i++) for(j=0;j

32、 printf("%5d",a[i][j]); printf("\n"); } printf("\n"); f(a); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) printf("%5d",a[i][j]); printf("\n"); } } 5. #include #include void f(char a[]) { int i,t; char b; t=strlen(a); for(i=0;i<=t/2;i++) {

33、b=a[i]; a[i]=a[t-i-1]; a[t-i-1]=b; } } void main() { char ch[80]; gets(ch); f(ch); puts(ch); } 精品 . 6. #include void f(char a[],char b[]) { int i,j; for(i=0;a[i]!=\0;i++); for(j=0;b[j]!=\0;i++,j++) a[i]=b[j]; } void main() { char ch1[80]="How do you

34、 do!",ch2[]="Fine,thank you,and you?"; f(ch1,ch2); puts(ch1); } 7. #include void f(char a[80],char b[40]) { int i,j; for(i=0,j=0;a[i]!=\0;i++) if(a[i]==A||a[i]==E||a[i]==I||a[i]==O||a[i]==U||a[i]==a||a[i]==e||a[i]==i||a[i]==o||a[i]==u) { b[j]=a[i]; j++; } b[j]

35、=\0; } int main() { char ch1[80]="How are you?Fine,thank you,and you?",ch2[40]; f(ch1,ch2); puts(ch2); return 0; } 8. 精品 . #include void f(int n,int ch[]) { ch[0]=n/1000; ch[1]=(n-ch[0]*1000)/100; ch[2]=(n-ch[0]*1000-ch[1]*100)/10; ch[3]=n%10; } void main()

36、 { int n,i,ch[4]; printf("輸入一個四位整數(shù):\n"); scanf("%d",&n); f(n,ch); for(i=0;i<=3;i++) printf("%c ",ch[i]+48); } 9. #include int upp,low,num,space,other; void f(char c[]) { int i; for(upp=0,low=0,num=0,space=0,other=0,i=0;c[i]!=\0;i++) { if(c[i]>=A&&c[i]<=Z) upp

37、++; else if(c[i]>=a&&c[i]<=z) low++; else if(c[i]>=0&&c[i]<=9) num++; else if(c[i]== ) space++; else other++; } } void main() { char ch[80]; printf("輸入一句英文,限80字符內(nèi):\n"); gets(ch); f(ch); printf("大寫字母%d個,小寫字母%d個,數(shù)字%d個,空格%d個,其他%d個\n",upp,low,num,space,other); 精品 . }

38、 10. #include void f(char a[100],char b[40][30]) { int i,m,n,k,g; for(i=m=n=k=g=0;a[i]!=\0;i++) { if (a[i]>=a&&a[i]<=z||a[i]>=A&&a[i]<=Z) { b[m][n]=a[i];//m單詞位置n單詞長度 n++; } else { if(k

39、n=0; m++; } } printf("最長的單詞為:\n"); puts(b[g]); } void main() { char a[100],b[40][30]; printf("請輸入一句英文:\n"); gets(a); f(a,b); } 11. 精品 . #include void f(char a[10]) { int i,j; char ch; for(i=0;i<=8;i++) for(j=i+1;j<=9;j++) if(a[i]>a[j]) {

40、 ch=a[i]; a[i]=a[j]; a[j]=ch; } } void main() { char a[10]; printf("請輸入10個字符:\n"); gets(a); f(a); puts(a); } 12. #include float f(float a,float b,float c,float d,float x) { float z; z=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c); return (z); } void mai

41、n() { float a,b,c,d,x; printf("請輸入a,b,c,d:\n"); scanf("%f,%f,%f,%f",&a,&b,&c,&d); printf("方程為%f*x*x*x+%f*x*x+%f*x+%f=0\n",a,b,c,d); x=1.0; while(a*x*x*x+b*x*x+c*x+d>1e-6) x=f(a,b,c,d,x); printf("方程在1附近的根為:%f\n",x); 精品 . } 13. #include float p(int n,float x) { flo

42、at y; if(n==0)y=1; else if(n==1)y=x; else y=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n; return (y); } void main() { float x,y; int n; printf("請輸入正整數(shù)n和實數(shù)x:\n"); scanf("%u,%f",&n,&x); y=p(n,x); printf("%f\n",y); } 14. #include void f0(double a[10][5]) { int i,j; d

43、ouble sum,aver; for(i=0;i<=9;i++) { sum=0,aver=0; for(j=0;j<=4;j++) sum+=a[i][j]; aver=sum/5.0; printf("第%d名學生的平均分為:%5.1lf分\n",i+1,aver); } } 精品 . void f1(double a[10][5]) { int i,j; double sum,aver; for(j=0;j<=4;j++) { sum=0,aver=0; for(i=0;i<=9;i++) sum+=

44、a[i][j]; aver=sum/10.0; printf("第%d門學科的平均分為:%5.1lf分\n",j+1,aver); } } void f2(double a[10][5]) { int i,j,s,t; double max; for(j=0;j<=4;j++) { max=0; for(i=0;i<=9;i++) if(max

45、,s+1,max); } } void f3(double a[10][5]) { int i,j; double s,t,y; for(i=0;i<=9;i++) { s=t=y=0; for(j=0;j<=4;j++) { s+=a[i][j]*a[i][j]; t+=a[i][j]/5.0; } y=s/5.0-t*t; 精品 . printf("第%d名學生的平均分方差為:%5.1lf\n",i+1,y); } } void main() { double a[10][5]={{1,2,

46、3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25},{26,27,28,29,30},{31,32,33,34,35},{36,37,38,39,40},{41,42,43,44,45},{46,47,48,49,50}}; f0(a); f1(a); f2(a); f3(a); } 15. #include #include void f(int a[10],char b[10][20]) { int i,j,t; 精品 .

47、 char ch[20]; for(i=0;i<=8;i++) for(j=i+1;j<=9;j++) if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; strcpy(ch,b[i]); strcpy(b[i],b[j]); strcpy(b[j],ch); } } void g(int k,int a[10],char b[10][20]) { int i,m=1; if(k>a[4]) { for(i=9;i>=5;i--) {i

48、f(k==a[i])printf("%d %s\n",a[i],b[i]);} m=0; } else { for(i=0;i<=4;i++) {if(k==a[i])printf("%d %s\n",a[i],b[i]);} m=0; } if (m) printf("輸入職工號錯誤\n"); } void main() { int i,k,a[10]={2411,2123,2135,2147,2169,2172,2184,2196,2108,2110}; char b[10][20]={"馬云","李娜","張靚穎","吳彥祖",

49、"劉德華","孫燕姿","田震","那英","梁朝偉","劉燁"}; for(i=0;i<=9;i++) printf("%d %s\n",a[i],b[i]); printf("\n"); f(a,b); for(i=0;i<=9;i++) printf("%d %s\n",a[i],b[i]); printf("please enter a number:\n"); scanf("%d",&k); g(k,a,b); 精品 . } 16. #include #include #include

50、h.h> int f(char ch[]) { int i,y=0,n; n=strlen(ch); for (i=0;i=48&&ch[i]<=57) y+=(ch[i]-48)*pow(16,i); else if(ch[i]>=65,ch[i]<=90) y+=(ch[i]-65+10)*pow(16,i); else if(ch[i]>=97,ch[i]<=102) y+=(ch[i]-97+10)*pow(16,i); } return (y); } void main() { int t;

51、 char ch[4]; printf("輸入一個十六進制數(shù)(4字節(jié)):\n"); scanf("%s",&ch); t=f(ch); 精品 . printf("十六進制數(shù)%s轉(zhuǎn)化為十進制數(shù)為%d:\n",ch,t); } 17. #include void f(int n) { int i; if (i=n/10) f(i); putchar(n%10+0); } main() { int n; printf("輸入一個整數(shù):\n"); scanf("%d",&n); printf("輸出字符串

52、:"); if (n<0) { putchar(-); n=-n; } f(n); printf("\n"); } 18. #include #include int leap(int y) { int l; if(y%400==0||y%4==0&&y%100!=0)//判斷閏年,&&優(yōu)先級高于|| l=1; else l=0; return(l); } 精品 . void main() { int y,m,d,a=0,i,s;//年y月m日n,求和s,循環(huán)增量i int b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; scanf("%d,%d,%d",&y,&m,&d); for (i=1;i2?leap(y):0)+d+a;//閏年加一天 printf("%d年%d月%d日是%d年第%d天\n",y,m,d,y,s); } 如有侵權(quán)請聯(lián)系告知刪除,感謝你們的配合! 精品

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!