C语言程序设计项目教程习题答案(5)

2019-03-10 11:04

int max(int x,int y) { return (x>y?x:y); }

6.定义两个函数,分别求两个整数的最大公约数和最小公倍数,在主函数中输入两个整数后调用这两个函数,并输出最大公约数和最小公倍数。

#include

int multiple(int x,int y); int divisor(int m,int n); main() { int a,b;

scanf(\

printf(\最大公约数为%d\\n\ printf(\最小公倍数为%d\\n\}

int multiple(int x,int y) { int i,z; for(i=x;i<=x*y;i++) if(i%x==0&&i%y==0) {z=i;break;} return z; }

int divisor(int x,int y) {

int z,i; for(i=y;i>=1;i--) if(x%i==0&&y%i==0) {z=i;break;} return z; }

7.编写一个函数,由参数传入一个字符串,分别统计此串中字母、数字和其他字符的个数,在主函数中输入字符串并显示统计结果。

#include #include int alph,digit,others; void count(char str[]); main( ) {

char text[80];

printf(\输入字符串:\\n\ gets(text);

printf(\字符串是:\ puts(text);

strcat(text,\ alph=0; digit=0; others=0; count(text);

printf(\字母,%d数字,%d其它字符\\n\}

void count(char str[]) {

int i;

for(i=0;str[i]!='\\n';i++) {

if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) alph++;

else if(str[i]>='0'&&str[i]<='9') digit++; else

others++; } }

8.已知Fibonacci数列:

0n?0??Fib(n)??1n?1?Fib(n-1)?Fib(n-2)n??2?定义递归函数求Fib(n),并输出前20项。 #include \int fib(int n); main( ) { int i,n=19; for(i=0;i<=n;i++) printf(\}

int fib(int n) { if (n==0) return 0;

if (n==1) return 1; if (n>1) return fib(n-1)+fib(n-2); }

9.定义函数求f=(n+m)!+n!,m、n均为任意正整数。要求使用递归调用。

#include \ int f(int x); main() { int i,m,n; int sum; printf(\ scanf(\ sum=f(n+m)+f(n); printf(\}

int f(int x) { int i,j; if(x==0||x==1)return 1; else return(x*f(x-1)); }

10.按以下要求编写三个函数:

① 接收职工的姓名和职工号 ② 按职工号由小到大排序

③ 输入一个职工号,输出该工号的职工姓名 在主函数中调用这些函数。 #include \#include \#define N 10 struct message { int num; char name[20]; }sta[N];

void in() { int i; for(i=0;i

void sort() { int i,j; struct message sta1; for(i=0;ista[j].num) {sta1=sta[i];sta[i]=sta[j];sta[j]=sta1;} } }

struct message search(int a) { int i,ma,mi; mi=sta[0].num; ma=sta[N-1].num; while(a!=mi||a!=ma) { if(a<(int)((mi+ma)/2)) ma=(int)((mi+ma)/2); else if(a<(int)((mi+ma)/2)) mi=(int)((mi+ma)/2); else break; } for(i=0;i

main() { int i,num; struct message sta0; printf(\ in(); sort(); printf(\ for(i=0;i

}

printf(\

11.设计程序完成下列公式的计算。

已知 y?f(x,n)

f(x?2.3,n)?f(x?3.2,n?3)2nx2x4nx其中 f(x,n)?1???????1?(n?0) 2!4!(2n)!当x=5.6,n=7时,求y的值。要求通过函数嵌套和递归调用完成计算。

#include \int fatc(int n) { int i; int p=1; for(i=1;i<=n;i++) p=p*i; return p; }

double f(double x,int n) { double sum=1,p=1; int i,s=1; for(i=2;i<=2*n;i+=2) { s=-s; p=p*x*x; sum=sum+s*p/fatc(i); } return sum; }

main() { double y,x=5.6; int n=7; y=f(x,n)/(f(x+2.3,n)+f(x-3.2,n+3)); printf(\ return 0; } 返回


C语言程序设计项目教程习题答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2022年中国瓶装水行业市场供需预测报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: