




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.6.3习题解答编程题1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主调函数调用这两个函数,并输出结果。两个整数由键盘输入。分析:求两个数a和b的最大公约数:设这个数为x,则x一定小于等于a和b中的较小者min(a,b)。在区间1, min(a,b)中能找到的最后一个同时被a和b整除的那个数,就是a和b的最大公约数x。求两个数a和b的最小公倍数:设这个数为x,则x一定大于等于a和b中的较大者max(a,b),而小于等于a*b。在区间max(a,b), a*b 中找到的第一个能同时整除a和b的那个数,就是a和b的最小公倍数x。参考程序代码:#include stdio.hf1(int a, int b)/*求最大公约数*/ int x,i; for(i=1;i=(ab)?a:b);i=a*b;i+) if(i%a=0&i%b=0) x=i; break; printf(n最小公倍数为: %dn,x);void main() int a,b; printf(n请输入两个数:n); printf(a=);scanf(%d, &a); printf(b=);scanf(%d, &b); f1(a, b); f2(a, b);运行结果:请输入两个数:a=4b=16最大公约数为:4最小公倍数为:162.编写一个函数,其功能是对于给定的一个时间数(秒为单位),以“时:分:秒”的格式输出。参考程序代码:#include print_time(long second)int hour,minute;hour=(second/3600)%24;second%=3600;minute=second/60;second%=60;printf(%d:%d%ldn, hour, minute, second);void main()long s;printf(请输入秒数:);scanf(%ld, &s);print_time(s);运行结果:请输入秒数:72782:1:183.编写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。分析:素数指的是是指该数除了1和本身,不再有其他因子。考虑到完全平方数的因素,只需要考察从2到该数的平方根这个区间,如果该区间中没有因子,则该数是素数,否则不是素数。参考程序代码:#include stdio.h#include math.hf(int x)/*判断x是否素数*/int i,sign=0;for(i=2;i1)注意选择好合适的参数类型和返回值类型。在main()函数中,输入下列三组数据:(a)n=0,x=7;(b)n=1,x=2;(c)n=3,x=4求出相应的函数值。分析:该函数为分段函数,当n1时为勒让德多项式,可以利用函数的递归调用求其值。参考程序代码:#include stdio.hdouble pn(double x, int n)if(n=0) return 1;if(n=1) return x;return 1.0*(2*n-1)*x-pn(x,n-1)-(n-1)*pn(x,n-2)/n;main()double pn(double x,int n);double x;int n;printf(n请输入参数x与nn);printf(x=);scanf(%lf,&x);printf(nn=);scanf(%d,&n);printf(函数值为: %lfn,pn(x,n);运行结果:请输入参数x与n:x=7n=0函数值为:1.000000请输入参数x与n:x=2n=1函数值为:2.000000请输入参数x与n:x=4n=3函数值为:2.8333336.写一个函数,输入一个十六进制数,输出相应的十进制数。参考程序代码:#include stdio.h #include string.h int translat(char c) if(c=0) return c-0; if(c=a & c=A & c=F) return c-55; return -1;/其他字符返回-1 int Htoi(char *str) int i,stat,n=0; int length=strlen(str); if(length=0) return 0; for(i=0;i=0) n=n*16+stat; return n; void main() char Hex20; printf(输入十六进制数:); gets(Hex); printf(相应的十进制数为:%d,Htoi(Hex); 运行结果:输入十六进制数:10相应的十进制数为:167.输入一个整数,将它逆序输出。要求定义并调用函数reverse(number),它的功能是返回number的逆序数。例如,reverse(12345)的返回值是54321。参考程序代码:#include reverse(int number)printf(n该数的逆序数为:n);while (number 0) /num大于0就不停循环 printf(%d,number%10); /输出个位 number /= 10; /除以10 printf(n);void main() int num; printf(n请输入您的数据:n);scanf(%d,&num); reverse(num);运行结果: 请输入您的数据:12345该数的逆序数为:543218.编写一个函数,找出任一整数的全部因子。参考程序代码:#include stdio.hf(int x)/*找出x的所有因子*/int i;printf(n该数的所有因子为:n);for(i=1;i=x;i+)if(x%i=0)printf( %d, i);void main()int a;printf(请输入一个整数:n);scanf(%d,&a);f(a);运行结果:请输入一个整数:10该数的所有因子为:1 2 5 109.用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。N的位数不确定,可以是任意位数的整数。参考程序代码:#include stdio.hvoid convert(n)int n;int i;if(i=n/10)!=0)convert(i);putchar(n%10+0);main()int number;printf(n输入整数:);scanf(%d,&number);printf(n输出是:);if(number=3天数days加1输出天数参考程序代码:#include stdio.hstatic int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31;int sum_day(month,day)int month,day;int i;for(i=1;i=3)days=days+1;printf(是该年的%d天.n,days);运行结果:请输入日期(年,月,日)2008,11,262008年11月26日是该年的331天。11.编写一个C语言源程序,里面只有一句代码“int a=0”或“int a; a=0;”(注意:源文件中没有main函数)。分别进行编译看能不能通过编译,并思考这是为什么。提示:C语言以函数为程序的基本单位。分析:大家已经知道C程序由函数组成。换而言之,C语言是一种面向过程的编程语言,过程亦即函数。这意味着C程序中的任何有效语句必须放在函数中。int a; a=0;中的第一个语句为声明语句,可以通过编译;但是第二个语句为赋值语句,因此其不能通过编译;int a=0;为声明,并非有效语句,因此可以通过编译。12汉诺塔问题是一个古老的数学问题。经典汉诺塔问题是三柱的,它起源于印度。意思是:第一个柱(A柱)上有n个碟子,从底向上碟子大小依次减小,目标是通过第二个柱(B柱)把所有碟子移到第三个柱(C柱)上,但不能把大的碟子放到小的碟子上面。提示:解决三柱汉诺塔问题的经典算法是递归算法,先考虑把A柱上面的n-1个碟子通过C柱移到B柱上,然后把A柱剩下的一个碟子移到C柱上,最后用三柱汉诺塔经典算法把B柱上所有的碟子(n-1)个通过A柱移到C柱上。参考程序代码:int count=0;void move(char a,char c) printf(No%-3d:%c-%c ,count,a,c); if(count%5=0) printf(n);void Hanoi( int n, char a, char b, char c) if (n=1) count
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公寓建筑方案设计机构(3篇)
- 网球日语基础知识培训班课件
- 有关天气的绘画课件
- 主板选购教学设计方案
- 党校建筑方案设计汇报(3篇)
- 沉浸式建筑培训方案设计(3篇)
- 月子餐培训知识点大全课件
- 房开建筑方案设计(3篇)
- 新能源车间安全操作规程与培训方案
- 2025年学历类自考专业(建筑工程)建筑结构试验-混凝土及砌体结构参考题库含答案解析(5套)
- 加油站资金安全知识培训课件
- 2025年专职网格员笔试题及答案
- 2025年重庆交安考试题库及答案
- 高中数学《新课程标准》考试试题及答案
- 2025年岗前安全培训试题及答案
- 2025年甘肃兰州市事业单位招考笔试《公共基础知识》题库(共50题)及答案
- 地铁站基坑施工监测方案
- 2025-2026年秋季学期教研工作计划及工作行事历
- 物业外包方管理课件
- 卫星运行教学课件
- 初中分班班会课件
评论
0/150
提交评论