《程序设计基础教程 C语言 教学课件 ppt 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1_ 第6章》由会员分享,可在线阅读,更多相关《程序设计基础教程 C语言 教学课件 ppt 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1_ 第6章(12页珍藏版)》请在金锄头文库上搜索。
1、第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)
2、;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(-)
3、;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;s
4、s=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数组中(
5、其中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+; els
6、e 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(
7、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
8、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.
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,strcm