




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章习题6-1更正下面函数中的错误。(1)返回求x和y平方和的函数。 (2)返回求x和y为直角边的斜边的函数。 sum_of_sq(x,y) hypot(double x,double y) double x,y; h=sqrt(x*x+y*y); return(x*x+y*y); return(h); 解:/*c6_1(1).c*/ /*c6_1(2).c*/(1) (2)double sum_of_sq(double x,double y) double hypot(double x,double y) return(x*x+y*y); double h; h=sqrt(x*x+y*y);return(h);习题6-2下面函数的功能是什么?(1)itoa (int n, char s ) (2)int htod(char hex ) int i,dec=0; static int i=0,j=0; for(i=0;hexi!=0;i+)int c; if(hexi=0&hexi=A&hexi=a&hexi=f) itoa(n/10,s); dec=dec*16+hexi-a+10; si+=c; return(dec); else (3) void stod(int n) if(j=0) sj+=0; int i; sj=0; if(n0) i=j=0; putchar(-);n=-n; if(i=n/10)!=0) stod(i); putchar(n%10+0); 答案:(略)习题6-3编写已知三角形三边求面积的函数,对于给定的三个量(正值),按两边之和大于第三边的规定,判别其能否构成三角形,若能构成三角形,输出对应的三角形面积。要求主函数输入10组三角形三边,输出其构成三角形的情况。/*c6_3.c*/ #include #include double s(double a,double b,double c)double s,ss;if(a+bc|a+cb|b+ca) printf(Error Data); return -1; s=(a+b+c)/2;ss=sqrt(s*(s-a)*(s-b)*(s-c);printf(S=%lf,ss);return ss;void main()int i;double a,b,c;for(i=0;i10;i+) scanf(%lf %lf %lf,&a,&b,&c); s(a,b,c);习题6-4分别编写求圆面积和圆周长的函数,另编写一主函数调用之,要求主函数能输入多个圆半径,且显示相应的圆面积和周长。答案:(略)习题6-5设有两个一维数组a100,b100,试编写程序分别将它们按升序排序,再将a、b两数组合并存入c数组。使得c数组也按升序排序。若a、b有相等的元素,则把a数组的相等元素优先存入c数组中(其中c数组为c200)。/*c6_5.c*/#include #include void sort(int a,int size)int i,j,k,min;for(i=0;isize-1;i+) min=i; for(j=i+1;jaj) min=j; k=ai; ai=amin; amin=k;void main()int a100,b100,c200;int i,ia,ib,ic;for(i=0;i100;i+) ai=2*i+1;bi=2*i+2;sort(a,100);sort(b,100);ia=0;ib=0;ic=0;for(;) if(aiabib)cic+=bib+; else cic+=aia+;ib+; if(ia=100) for(;ib100;ib+) cic+=bib;break; if(ib=100) for(;ia100;ia+) cic+=aia;break; for(i=0;iic;i+) printf(%4d,ci);习题6-6编写一程序,把MN矩阵a的元素逐列按降序排列。假设M、N不超过10,分别编写求一维数组元素值最大和元素值最小的函数,主函数中初始化一个二维数组a1010,调用定义的两函数输出每行、每列的最大值和最小值。/*c6_6.c*/#includeint test(int t)int i;for(i=2;i=t/2;i+) if(t%i=0)return 0;return 1;void main()int n;scanf(%d,&n);printf(result=%d,test(n);习题6-7编写一判别素数的函数,在主函数中输入一个整数,输出该数是否为素数的信息。/*c6_7.c*/num(x)int x;int i,l; for(i=2;ix;i+) if(x%i) l=1; else l=0; return(l);#include“stdio.h main()int a,l; printf(Input a value of a:); scanf(%d,&a); num(a);if(l) printf(It is a prime.);else printf(It is not a prime.);习题6-8编写程序,实现由主函数输入m、n,按下述公式计算并输出的值。/*c6_8.c*/#include int func(int n)int i,s=1;for(i=1;i=n;i+) s=s*i;return s;void main()int m,n;scanf(%d %d,&m,&n);printf(%d,func(m)/(func(n)* func(m-n);习题6-9编写一个将两个字符串连接起来函数(即实现strcat函数的功能),两个字符串由主函数输入,连接后的字符串也由主函数输出。/*c6_9.c*/#include int strcat1(char *s1,char *s2) int t; while(*s1) s1+; while(*s2) *s1=*s2; s1+; s2+; *s2=0; void main() char *s1=Test1; char *s2=Test2; strcat1(char *s1, char *s2) printf(%s,s1); /*puts(s1);*/习题6-10编写一个实现strcmp函数功能的函数,并试用主函数调用之。/*c6_10.c*/#include int strcmp(char *s1,char *s2)int t;while(t=(*s1-*s2)=0 ) s1+; s2+; if(*s1=0) break;return t;void main()char *s1=Test1;char *s2=Test2;printf(strcmp %s,%s=%d,s1,s2,strcmp(s1,s2);习题6-11编写一个实现strcpy函数功能的函数,并试用主函数调用。答案:(略)习题6-12编写一个实现strlen函数功能的函数,并试用主函数调用之。/*c6_12.c*/#include int strlen(char *s)int t=0;while(*(s+t) t+;return t;void main()char *s1=Test1;printf(strlen %s =%d,s1,strlen(s1);习题6-13编写一函数,调用6.11题的函数,将字符数组char110的前5个字符复制到字符数组char210中。主函数实现字符数组char110的初始化,并输出复制后的字符数组ch210的内容。答案:(略)习题6-14编写一函数实现用弦截法求方程x3-3x2+3x-9=0的近似根。主函数完成各系数值的输入及所求得的根值的输出。/*c6_14.c*/#include #include float f(float x)float y;y=(x-3.0)*x+3.0)*x-9.0;return (y);float xpoint(float x1,float x2)float x;x=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return (x);float root(float x1,float x2)float x,y,y1;y1=f(x1);dox=xpoint(x1,x2);y=f(x);if(y*y0) y1=y; x1=x;else x2=x;while(fabs(y)0.0001);return (x);void main()float x1,x2,f1,f2,x;do printf(n Input X1,X2:); scanf(%f,%f,&x1,&x2); f1=f(x1); f2=f(x2);while(f1*f2=0);x=root(x1,x2);printf(Root is %f,x);习题6-15编写一函数实现用牛顿迭代法求方程ax3+bx2+cx+d=0在x=1附近的一个实根。主函数完成各系数值的输入及所求得的根值的输出。迭代公式: f(xn)xn+1=xn- - f(xn) |xn+1-xn|1e-5/*c6_15.c*/#include float root(a,b,c,d)float a,b,c,d;float x=1,x1,f,f1;dox1=x; f=(a*x1+b)*x1+c)*x1+d; f1=(3*a*x1+2*b)*x1+c; x=x1-f/f1; while(fabs(x-x1)=0.00001);return(x);main()float a,b,c,d;printf(Enter values to a,b,c,dn);scanf(%f%f%f%f,&a,&b,&c,&d);printf(nx=%8.4fn,root(a,b,c,d);习题6-16编写程序完成用递归方法求n阶勒让德多项式的值。递归公式为: 1 n=0Hn(x)= x n=1 (2n-1)xHn-1(x)-(n-1)Hn-2(x)/n n1 /*c6_16.c*/#include double func(int n,double x)switch(n) case 0:return 1; case 1:return x; default: return (2*n-1)*x*func(n-1,x)-(n-1)*func(n-2,x)/n;void main()double x=0.1;int n=5;printf(%lf,func(n,x);习题6-17编写计算最小公倍数的函数,试由主函数输入两个正整数a和b调用它。计算最小公倍数的公式为:lcm(u,v)=u*v/gcd(u,v) (u,v0)其中,gcd(u,v)是u、v的最大公约数。lcm(u,v)是u、v的最小公倍数。/*c6_17.c*/int getgcd(int m,int n)int temp; while(m!=n) if(mn) temp=m,m=n,n=temp; m=m-n; return(m); int getlcm(int m,int n)return(m*n/getlcm(m,n); #include stdio.h main()int m,n,t; printf(Enter values to m,n:n); scanf(%d%d,&m,&n); t=getlcm(m,n); printf(%d,t);习题6-18编写一个计算x的y次幂的递归函数,x为double型,y为int型,函数返回值为double型。函数中使用下面的格式: power(x,0)=1.0; power(x,y)=power(x,y-1)*x;要求从主程序输入浮点数,调用这个递归函数,求其整数次幂。/*c6_18.c*/#include double power(double x,int y)switch(y) case 0:return 1; default:return power(x,y-1)*x;void main()double x=2;int y=5;printf(%lf,power(x,y);习题6-19将6.3题改为用带参数的宏名来求面积。/*c6_19.c*/#include #define n(a,b,c) (a+b+c)/2#define s(a,b,c,n) sqrt(n(a,b,c)*(n(a,b,c)-a)*(n(a,b,c)-b)*(n(a,b,c)-c)#include stdio.hmain()float a,b,c,d; for(i=0;ic&a+cb&b+ca&a0&b0&c0) d=s(a,b,c,n); printf(It can form a trianglen); printf(“d=%f,d); else printf(It can not form a trianglen);习题6-20编写一个实现将十六进制数转换成相应十进制数的函数,并试用主函数调用之。/*c6_20.c*/#include int HexToInt(char *s)int n=0,t;char c;while(c=*s+) t=0; if (0=c&c=9)t=c-0; if (A=c&c=F)t=c-A+10; if (a=c&c=f)t=c-a+10; n=n*16+t;return n;void main()char *s=A00D;printf(%d,HexToInt(s);习题6-21编写一个将英文字符串中所有字的首字符转换成相应大写字符的函数,并试用主函数调用。答案:(略)习题6-22编写一函数aver(a,n),其中a是整型一维数组,n是a数组的长度,要求通过全局变量pave和nave将a数组中正数和负数的平均值传递给调用程序。/*c6_22.c*/#include double pave,nave;void aver(int a,int n)int i;int v1=0,v2=0,t1=0,t2=0;for(i=0;i0) v1+=ai; t1+;else v2+=ai; t2+;pave=(double)v1/t1;nave=(double)v2/t2;void main()int a6=1,4,5,-8,-1,-2;aver(a,6);printf(%lf,%lf,pave,nave);习题6-23编写一程序,每调用一次函数,显示一静态局部变量中的内容,然后为其加1。答案:(略)习题6-24输入10个学生的3门课的成绩,分别用函数求:(1) 每个学生的平均分;(2) 每门课的平均分;(3) 按学生平均分降序排列输出学生信息;(4) 统计不及格学生,输出其相应信息。(5) 编写一菜单主函数,菜单内容包括以上四部份。/*c6_24.c*/#include #include #define N 2int aN5=1,50,70,80,0,2,70,80,90,0;void func1()int i,j;double s;for(i=0;iN;i+) s=0; for(j=1;j4;j+)s+=aij; ai4=s; printf(No:%d, avg=%lf n,ai0,s/3);void func2()int i,j;double s;for(i=1;i4;i+) s=0; for(j=0;jN;j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点解析-四川省马尔康市7年级上册期中测试卷难点解析试卷(含答案详解)
- 护理学导论试题一及答案
- DSPE-PEG2000-BR2-生命科学试剂-MCE
- 在线课件使用说明
- 2-trans-4-trans-Octadienoyl-CoA-生命科学试剂-MCE
- Deoxy-thalidomide-C4-NH2-生命科学试剂-MCE
- 模具制造2025年数字化设计与仿真技术在航空航天领域的应用报告
- 2025年智能卡芯片行业当前竞争格局与未来发展趋势分析报告
- 土木检测员理论知识培训课件
- 2025年互联网营销行业当前市场规模及未来五到十年发展趋势报告
- GB 11122-2025柴油机油
- 全国职业技能竞赛焊工理论考试题库
- 中医健康养生知识宣教课件
- 经外周静脉穿刺中心静脉(PICC)置管
- 北京八中校史馆设计大纲(参考使用)
- 钢材销售通用版合同(2篇)
- GB 2716-2018食品安全国家标准植物油
- GB 19572-2004低压二氧化碳灭火系统及部件
- 贸易公司绩效考核分配方案(暂行)1
- 劳动保障监察执法课件
- #20kV设备交接和预防性试验规定
评论
0/150
提交评论