版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验4函数与指针程序填空1.本题分值:io题目描述:输入日期的年份和月份,求该月有多少天。 要求编写函数int day num(i nt year,i ntmon th),求出以year为年份、以mo nth为月份的某个月的天数。以下是完成此项工作的程 序,请在计算机上调试程序以补足其中的空格。代码:/通过日期求某月的天数。#in cludeusing n amespace std;void mai n()int daynu m(i nt year,i nt mon th);int y,m,d;cinym;if(y=3000 | m12)cout输入错误!endl;return 0;d=day
2、num(_(1)_);/以y、m作实参调用函数,求出该月的天数cout此月的天数为dendl;int daynu m(i nt year,i nt mon th)int days;switch(m on th)case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break;case 4:case 6:case 9:case 11: days=30; break;case 2: if(year%4=0& year%100!=0 | year%400=0)days=29;elsedays=28;break;return _(2)
3、_;2.本题分值:10题目描述:编写一个函数,用来求字符串 s的任意子串。函数原型为voidSubStri ng ( char s , int start , int len , char d);其中s是原字符串,d用来存放s中从第start个字符开始( K start strlen(s),长度为 len的子串。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。代码:#in clude using n amespace std;void mai n()void SubStri ng(char s , i nt start, int len, char d);char s81,d8
4、1;int m, n;gets(s); /输入一个字符串的值存放在字符数组s中,以回车结束coutstrle n(s) | n strle n(s) | m+n strle n( s)+1)coutm 、n 值超过了范围! n;return 0;SubStri ng(_(1)_);coutde ndl;II从s中第start个字符开始取出长度为len的子串放入d中void SubStri ng(char s , i nt start, int len, char d)int k,j;for(j=0,k=start-1;j=_;j+,k+)dj=sk;dle n=0:3.本题分值:10题目描述:
5、验证哥德巴赫猜想:对任意输入的正整数n,验证6n以内的偶数都可分解为两个素数(质数)之和。以下程序中,函数 bool divide(int n)是用来将偶数n分解为两个质数的;若分解成功,则返回 true ;否则返回false。函数bool lsPrime(int m) 是 用来判断m是否为质数的;若是,则函数返回 true ;否则返回false。请在计算机上调试 以下程序,补足其中的空格。代码:#in clude #in clude using n amespace std;void mai n()bool divide(i nt n);int i,n;cinn;if(n6)cout输入数据
6、出错n;return 0;for(i=6;i=n ;i+=2)if(divide(i)= = _(1)_)/对i进行分解,并判断分解是否成功cout猜想错误n;return 0;bool divide(i nt n)bool IsPrime(i nt n);int i,m;for(i=3;i n/2)return false;cout n =i+me ndl;return true;bool lsPrime(i nt m)in t p,i;p=sqrt(m);for(i=2;i=p;i+)if(m%i=0) return false; return _(3)_;4.本题分值:10题目描述:编写
7、一函数addup,统计字符串s中字母、数字、空格和其它字符的个数,并且用几个全局变量记录上述统计结果。以下是完成此项工作的程序,请在计算机上调试程序 以补足其中的空格。代码:#in clude using n amespace std;int letter, digit, space, other; /void mai n()void addup(char s);char str101;cout 输入字符串:n;gets(str);addup(str);cout字母个数:letter 其他字符个数:otherendl;全局变量,数字个数:digit,空格个数:space=a & si=A &
8、si=0 & si=9)digit+;elseif(si=32)space+;else_(2)_;letter+;5.本题分值:4题目描述:用递归方法求n的阶乘n!,递归公式为:n!=1(n等于0或1),n!= n x (n-1)! (n 大 于1)要求编写递归函数int fact(intn);以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。代码:#in elude using n amespace std;void mai n()int fact(i nt n);int n,f;cout 请输入整数 n (n0):;cinn;f=fact( n);cout n !=fe nd
9、l;/求阶乘int fact(i nt n)int f;if(n=0 | n _(1)_) f=1;else f=_(2)_;return f;程序设计6.本题分值:10 题目标题:判断完数。题目描述:判断正整数n是否为完数。已知一个数如果恰好等于除它本身外的所有因子之和,这 个数就称为完数。此程序要求编写函数bool wanshu(int n),判断n是否为完数,若n是,则函数返回true ;否则返回false。然后主函数通过该函数的返回值,在屏幕上输出判断 结果。输入描述:输入一个正整数 n。输出描述:若n是完数,则输出yes;否则输出no。 样例输入:28样例输出:yes7.本题分值:1
10、0题目标题:伦敦奥运会倒计时。题目描述:假定现在已是2012年,请编写程序,计算2012年伦敦奥运会倒计时的天数并输出。已知伦敦奥运会的开幕日期是2012年7月27日。用户输入日期的范围必须是2012年1月1日2012 年 7 月 26 日。要求程序中编写函数int CountDown(int year,int month,int day) ,来计算从用户输入的日期year-month-day到伦敦奥运会开幕日之间的倒数天数。提示:所求天数=mo nth这个月的总天数一day+(mo nth+1到6月所有这些月份天数之和)+27。输入描述:用户输入的日期的格式必须是year mon thday。其中year应是2012
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论