C语言程序设计1-6章课后习题(7)

来源:网络收集 时间:2025-06-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

习题6

1.#include

int max(int a,int b) //定义求最大公约数函数max {

int r; //定义中间变量

r

}

while((r=a%b)!=0) { a=b; b=r; }

return b;

int min(int a,int b) //定义求最小公倍数函数min {

int d;

d=max(a,b);

return a*b/d; //返回最小公倍数的值

}

void main() { int a,b,x,y; printf(\ scanf(\ }

解析:由于两个正整数a、b的最大公约数和最小公倍数之间x=max(a,b); //调用函数max y=min(a,b); //调用函数min printf(\输出最大公约数 printf(\输出最小公倍数

是有关系的,所以呢···设最大公约数为x,最小公倍数为 y,则有y=a*b/x(程序中定义的min函数中设的最小公倍数的值 为d,故a*b/d),将a、b的值带入函数,返回最小公倍数的值,最小公倍数离不开最大公约数,故,在其函数中调用求解最大公约数的函数。 2.#include

void f(char ch) //定义函数f {

int i=0,j=0,k=0;

while(ch!='*') //进入循环,终止字符为'*' { }

printf(\输出数字个数

i,字母个数j,其他字符个数k

}

void main() { char ch; ch=getchar();

f(ch); //调用函数f

if(ch>='0'&&ch<='9')

i++; else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) j++; else k++; ch=getchar(); //继续输入字符

}

解析:此题我们不妨先设定一个终止字符‘*’,定义函数,进入循环体,当你输入的字符不是‘*’时,按照你输入的字符类型进行判定以及累加,循环未结束时要再次进行字符输入,所以“ch=getchar()”一句不要忘记···主函数中调用其函数实现其函数功能。 3.#include

int f(int n) //定义判定水仙花数的函数f {

int a,b,c,i;

for(i=100;i<=n;i++) //判定100-n的水仙花数循环 { a=i;

b=(i/10); c=i/100; if(i==a*a*a+b*b*b+c*c*c)

printf(\输出100-n的所有水仙

花数

}

return i;

}

void main() { int n; }

scanf(\输入n f(n); //调用函数f

解析:关于水仙花数呢···我们在前面习题中有所了解,是仅限于三位数的,所以我们要从100-999中进行此项寻找水仙花数的任务,当然了,你想找的范围比这个小也可以。首先定义判定水仙花数的函数,将三位数的各位数字表示出来,若符合水仙花数则将其返回主函数,在主函数中输入n,寻找100-n中的水仙花数···您输入的n要是超过999或者小于100,这个···就不好办了…

4.#define f(a,b)(a=a+b,b=a-b,a=a-b) //定义宏f,实现两个数互换 #include void main() { int i,j; scanf(\ }

解析:那啥···关于这个宏定义吧···其实我还是比较迷惑的,“#define(实参表达式1,实参表达式2?)(宏说明)”,貌似就是这样,本题实现两数交换,故设出两数a、b,先将两数之和的值赋给a,而a-b的值就是原来的a,我们现在让其值等于b,同理,a也是这样,此时,两数的值就交换了,再printf(\输出调用前两数的值 f(i,j); //调用宏

printf(\输出调用宏以后两数的值

在主函数中调用宏即可。 5.#include

int Fib(int n) //定义函数Fib {

if(n==0) return 0; else if(n==1) return 1; else

return Fib(n-1)+Fib(n-2); //递归调用Fib

}

void main() { int n; }

解析:此题只要运用函数的递归调用方可完成···额···应该是吧··· 6.#include

int f(int x) //定义函数f,求(m+n)! {

int a; if(x==0) a=1; else

a=x*f(x-1); //递归调用,求(m+n-1)! scanf(\输入n的值

printf(\调用函数Fib,并输出

return a;

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库C语言程序设计1-6章课后习题(7)在线全文阅读。

C语言程序设计1-6章课后习题(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/305725.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219