ImageVerifierCode 换一换
格式:DOCX , 页数:59 ,大小:35.68KB ,
资源ID:8627085      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8627085.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计第三版谭浩强主编第68章课后习题答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计第三版谭浩强主编第68章课后习题答案.docx

1、C语言程序设计第三版谭浩强主编第68章课后习题答案C语言第68章课后习题答案第六章 循环语句6.1输入两个正数,求最大公约数和最小公倍数. #include void main() int a,b,num1,num2,temp; printf(请输入两个正整数:n); scanf(%d,%d,&num1,&num2); if(num1num2) temp=num1; num1=num2; num2=temp; a=num1,b=num2; while(b!=0) temp=a%b; a=b; b=temp; printf(它们的最大公约数为:%dn,a); printf(它们的最小公倍数为:%

2、dn,num1*num2/a); 编译已通过6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解: #include void main() char c;int letters=0,space=0,degit=0,other=0;printf(请输入一行字符:n);while(c=getchar()!=n) if(c=a&cA&c=0&c=9) digit+; else other+; printf(其中:字母数=%d 空格数=%d 数字数=%d 其它字符数=%dn,letters,space, digit,other); 6.3求s(n)=a+aa+aaa+aaa之值

3、,其中a是一个数字,n表示a的位数。解: void main() int a,n,count=1,sn=0,tn=0; printf(请输入a和n的值:n); scanf(%d,%d,&a,&n); printf(a=%d n=%d n,a,n); while(count=n) tn=tn+a; sn=sn+tn; a=a*10; +count; printf(a+aa+aaa+=%dn,sn); 6.4 求 (即1+2!+3!+4!+20!)void main() float n,s=0,t=1; for(n=1;n=20;n+) t=t*n; s=s+t; printf(1!+2!+20!

4、=%en,s); 阶乘利用递归,再求和:#includeusing namespace std;long Func(int n)if(1=n)return n;if(n1)return n*Func(n-1);main() long s=0; int i=1; while (i=6) s=s+Func(i); i+; coutsendl;6.5 求 。void main() int k,N1=100,N2=50,N3=10; float s1=0.0,s2=0.0,s3=0.0; for(k=1;k=N1;k+)/*计算1到100的和*/ s1=s1+k; for(k=1;k=N2;k+)/*

5、计算1到50各数平方和*/ s2=s2+k*k; for(k=1;k=N3;k+) /*计算1到10各数倒数之和*/ s3=s3+1.0/k; printf(总和=%8.2fn,s1+s2+s3); 已通过int main() int k=1,i=11,j=51; float s=0.0; while(k=10) s=s+k+k*k+1.0/k; while(k=10 & i=50) s=s+i+i*i; while(i=50 & j=100) s=s+j; j+; i+; k+; 6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。 #includevoid main() i

6、nt i,j,k,n; printf( 水仙花数是:n); for(n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if(i*100+j*10+k=i*i*i+j*j*j+k*k*k) printf(%dn,n); printf(n); 编译已通过153 370 371 4076.7一个数如果恰好等于它的因子之和,这个数就称为“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子。 #include #define M 1000 /*定义寻找范围*/ void main() int k0,k1,k2,k3,k4,k5,k6,k7,k8,k

7、9; int i,j,n,s; for(j=2;j=M;j+) n=0; s=j; for(i=1;i1) printf(%d,%d,k0,k1); if(n2) printf(,%d,k2); if(n3) printf(,%d,k3); if(n4) printf(,%d,k4); if(n5) printf(,%d,k5); if(n6) printf(,%d,k6); if(n7) printf(,%d,k7); if(n8) printf(,%d,k8); if(n9) printf(,%d,k9); printf(n); 方法二:此题用数组方法更为简单. void main() i

8、nt k10; int i,j,n,s; for(j=2;j=1000;j+) n=-1; s=j; for(i=1;ij;i+) if(j%i)=0) n+; s=s-i; kn=i;/*将每个因子赋给k0,k1.k9*/ if(s= =0) printf(%d是一个完数,它的因子是:,j); for(i=0;in;i+) printf(%d,ki); printf(%dn,kn); 6.8 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,求出这个数列的前20项之和. 解: #include void main() int n,t,number=20; float a=

9、2,b=1,s=0; for(n=1;n=number;n+) s=s+a/b; t=a,a=a+b,b=t; printf(总和=%9.6fn,s); 编译已通过=32.6.9球反弹问题 #include void main() float sn=100.0,hn=sn/2; int n; for(n=2;n=10;n+) sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2;/*第n次反跳高度*/ printf(第10次落地时共经过%f米 n,sn); printf(第10次反弹%f米.n,hn); 编译已通过经过299.m反弹0.m6.10猴子吃桃问题#include

10、void main() int day,x1,x2; day=9; x2=1; while(day0) x1=(x2+1)*2; x2=x1; day-; printf(桃子总数=%dn,x1); 编译已通过=1534上面的程序是从最后一天计算,一直到第一天。当while第一次循环,既day=9的时候,X1此时计算的是第9天的桃子数。而X2既是X1前一天的桃子数。计算出第9天的桃子数后,把X1的值赋值给X2,那么X2此时X2就表示第9天的桃子数,再通过while的循环,可以逐步求出第7天,第6天.一直到第一天的桃子数. 这里X2=X1,就是一个赋值的过程,为的是求前一天的桃子数.6.11用迭代

11、法求x= 。求平方根的迭代公式为: 要求前后两次求出的差的绝对值小于0.00001。#include #include void main() float x0,x1,a; scanf(%f,&a); x1=a/2; do x0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)=0.00001); printf(%.3fn,x1); 编译已通过6.12 用牛顿迭代法求方程在1.5附近的根。 #include void main() double x,y;x=1.5; doy=2*x*x*x-4*x*x+3*x-6; x=x-y/(6*x*x-8*x+3);while(y!

12、=0); printf(x=%.3fn,x); 编译已通过x=2.0006.13用二分法求方程在(-10,10)之间的根: #include void main()double x1,x2,y1,y2;x1=-10;x2=10; doy1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3);while(y1!=0); do y2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3);while(y2!=0); printf(x1=%.3f,x2=%.3fn,x1,x2); 编译已通过x1=

13、2.000,x2=2.0006.14打印图案 #include void main() int i,j,k; for(i=0;i=3;i+) for(j=0;j=2-i;j+) printf( ); for(k=0;k=2*i;k+) printf(*); printf(n); for(i=0;i=2;i+) for(j=0;j=i;j+) printf( ); for(k=0;k=4-2*i;k+) printf(*); printf(n); 编译已通过6.15乒乓比赛 #include void main() char i,j,k; /*i是a的对手;j是b的对手;k是c的对手*/for(

14、i=x;i=z;i+) for(j=x;j=z;j+) if(i!=j) for(k=x;k=z;k+) if(i!=k & j!=k) if(i!=x & k!=x & k!=z) printf(顺序为:na-%ctb-%ctc-%cn,i,j,k); 编译已通过7.1用筛选法求100之内的素数. /*用筛选法求100之内的素数*/ #include #define N 101 void main() int i,j,line,aN; for(i=2;iN;i+) ai=i; 6 for(i=2;isqrl(N);i+) for(j=i+1;jN;j+) if(ai!=0 & aj!=0)

15、if(aj%ai=0) aj=0; 11 printf(n); for(i=2,line=0;iN;i+) if(ai!=0) printf(%5d,ai); line+; if(line=10) printf(n); line=0; 21 6,11,21没通过7.2用选择法对10个数排序. /*选择法排序.*/ #include #define N 10 void main() int i,j,min,temp,aN; /*输入数据*/ printf(请输入十个数:n); for (i=0;iN;i+) printf(a%d=,i); scanf(%d,&ai); printf(n); fo

16、r(i=0;iN;i+) printf(%5d,ai); printf(n); /*排序*/ for (i=0;iN-1;i+) min=i; for(j=i+1;jaj) min=j; temp=ai; ai=amin; amin=temp; /*输出*/ printf(n排序结果如下:n); for(i=0;iN;i+) printf(%5d,ai); 编译已通过7.3对角线和: /*计算矩阵对角线元素之和*/ #include #include void main() int a33; int i,j;/i为行j为列 int sum=0; int sum1=0; /输入 for( i=0

17、; i=2; i+) for( j=0; j=2; j+) printf ( 请输入第%d行第%d列的数:, i+1, j+1); scanf (%d,&aij); printf(n); /求和 for( i=0; i=2; i+) for( j=0; j=2; j+) if(i=j) sum = sum+aij; if(i+j=2) sum1= sum1+aij; 7.4插入数据到数组 /*插入数据到数组*/ #include void main() int a11=1,3,6,9,13,15,19,27,30,80; int temp1,temp2,number,end,i,j; prin

18、tf(初始数组如下:); for (i=0;iend) a10=number; else for(i=0;inumber) temp1=ai; ai=number; for(j=i+1;j11;j+) temp2=aj; aj=temp1; temp1=temp2; break; for(i=0;i11;i+) printf(%6d,ai); printf(n); 编译已通过7.5将一个数组逆序存放。 /*数组逆序存放*/#include #define N 5 void main() int aN=8,6,5,4,1,i,temp; printf(n 初始数组:n); for(i=0;iN;

19、i+) printf(%4d,ai); for(i=0;iN/2;i+) temp=ai; ai=aN-i-1; aN-i-1=temp; printf(n 交换后的数组:n); for(i=0;iN;i+) printf(%4d,ai); 无错误7.6杨辉三角 /*打印杨辉三角形*/#include #define N 10 void main() int i,j,aNN; for(i=0;iN;i+) aii=1; ai0=1; for(i=2;iN;i+) for(j=1;j=i-1;j+) aij=ai-1j-1+ai-1j; for(i=0;iN;i+) for(j=0;j=i;j+

20、) printf(%6d,aij); printf(n); printf(n); 7.8鞍点 /*查找鞍点*/ #define N 10 #define M 10 main() int i,j,k,m,n,flag1,flag2,aNM,max,maxi,maxj; printf(n输入行数n:); scanf(%d,&n); printf(n输入列数m:); scanf(%d,&m); for(i=0;in;i+) printf(第%d行?n,i); for(j=0;jm,j+); scanf(%d,&aij; for(i=0;in;i+) for(j=0;jm;j+) printf(%5d

21、,aij); pritf(n); flag2=0; for(i=0;in;i+) max=ai0; for(j=0;jmax) max=aij; maxj=j; for (k=0,flag1=1;kakmax) flag1=0; if(flag1) printf(n第%d行,第%d列的%d是鞍点n,i,maxj,max); flag2=1; if(!flag2) printf(n 矩阵中无鞍点! n); 7.9变量说明:top,bott:查找区间两端点的下标;loca:查找成功与否的开关变量. /*折半查找*/ #include #define N 15 main() int i,j,numb

22、er,top,bott,min,loca,aN,flag; char c; printf(输入15个数(aii-1)n); scanf(%d,&a0); i=1; while(i=ai-1) i+; esle printf(请重输入ai); printf(必须大于%dn,ai-1); printf(n); for(i=0;iN;i+) printf(%4d,ai); printf(n); flag=1; while(flag) printf(请输入查找数据:); scanf(%d,&number); loca=0; top=0; bott=N-1; if(numberaN-1) loca=-1

23、; while(loca=0)&(top=bott) min=(bott+top)/2; if(number=amin) loca=min; printf(%d位于表中第%d个数n,number,loca+1); else if(numberamin) bott=min-1; else top=min+1; if(loca=0|loca=-1) printf(%d不在表中n,number); printf(是否继续查找?Y/N!n); c=getchar(); if(c=N|c=n) flag=0; 7.10/*统计字符数*/ #includevoid main() int i,j,uppn,lown,dign,sp

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1