版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验 4 函数与指针程序填空1. 普通参数本题分值: 10题目描述: 输入日期的年份和月份,求该月有多少天。要求编写函数 int daynum(int year,int month),求出以 year 为年份、以 month 为月份的某个月的天 数。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。 代码:字符数组参数本题分值: 10题目描述: 编写一个函数,用来求字符串 s 的任意子串。函数原型为 void SubString ( char s , int start , int len , char d ) ;其中 s是原字符串,d用来存放 s中从第 start 个字符开始(
2、 1startstrlen(s) ), 长度为 len 的子串。以下是完成此项工作的程序,请在计算机上调试程序以补足 其中的空格。代码:#include <iostream>using namespace std;int main( )void SubString(char s , int start, int len, char d );char s81,d81;int m,n;gets(s); 嵌套调用本题分值: 10题目描述: 验证哥德巴赫猜想:对任意输入的正整数 n,验证 6n 以内的偶数 都可分解为两个素数(质数)之和。以下程序中,函数 bool divide(int n
3、)是用 来将偶数 n 分解为两个质数的;若分解成功,则返回 true ;否则返回 false。函 数 bool IsPrime(int m)是用来判断 m 是否为质数的;若是,则函数返回 true ; 否则返回 false。请在计算机上调试以下程序,补足其中的空格。代码:#include <iostream>#include <cmath>using namespace std;int main()bool divide(int n);int i,n;cin>>n;if(n<6)cout<<"输入数据出错 n"retur
4、n 0;for(i=6;i<=n;i+=2)if(divide(i)= false) 全局变量本题分值: 10题目描述: 编写一函数 addup,统计字符串 s 中字母、数字、空格和其它字符的 个数,并且用几个全局变量记录上述统计结果。 以下是完成此项工作的程序, 请 在计算机上调试程序以补足其中的空格。代码:#include <iostream>using namespace std;int letter, digit, space, other; 递归调用本题分值: 4题目描述:用递归方法求 n 的阶乘 n!,递归公式为:n!=1(n 等于 0 或 1),n!= n
5、15;(n-1)! (n 大于 1)要求编写递归函数 int fact(int n); 以下是完成此项工作的程序,请在计算机 上调试程序以补足其中的空格。代码:#include <iostream>using namespace std;int main()int fact(int n);int n,f;本题分值: 10题目标题: 判断完数。题目描述:判断正整数 n 是否为完数。已知一个数如果恰好等于除它本身外的所有因子 之和,这个数就称为完数。此程序要求编写函数 bool wanshu(int n),判断 n 是否 为完数,若 n 是,则函数返回 true ;否则返回 false
6、。然后主函数通过该函数的 返回值,在屏幕上输出判断结果。输入描述:输入一个正整数 n。输出描述:若n是完数,则输出 "yes";否则输出"no"。样例输入:28样例输出:yes#include<iostream> using namespace std; bool wanshu(int n);int main()int m;cin>>m;if(wanshu(m)cout<<"yes"<<endl; elsecout<<"no"<<endl; r
7、eturn 0;bool wanshu(int n)int s=0;for(int i=1;i<n;i+)if (n%i=0) s=s+i;if (s=n) return true;else return false;7.本题分值: 10题目标题: 伦敦奥运会倒计时。题目描述:假定现在已是 2012年,请编写程序,计算 2012年伦敦奥运会倒计时的天数并输 出。已知伦敦奥运会的开幕日期是 2012年 7月27日。用户输入日期的范围必须 是 2012年 1 月 1日 2012年 7月 26日。要求程序中编写函数 int CountDown(int year,int month,int da
8、y),来计算从用户输入的日期 year-month-day 到伦敦奥运会 开幕日之间的倒数天数。提示:所求天数 = month 这个月的总天数 day+(month+1 到 6 月所有这些月 份天数之和 )+27。输入描述:用户输入的日期的格式必须是 year month day。其中 year 应是 2012, month 必须满足 1 month 7。输入的数据之间用空格隔开。输出描述: 输出为一行“距离 2012伦敦奥运会还有 x天。”,其中 x为求出的倒计时的 天数。如果输入的数据不满足条件,输出“ ERROR”!。 样例输入:2012 2 5 样例输出: 距离 2012 伦敦奥运会还
9、有 173 天。#include<iostream>using namespace std;int CountDown(int year,int month,int day);int main()int y,m,d; cin>>y>>m>>d; if(y!=2012|m<1|m>12) cout<<"error"<<endl;else cout<<"距离伦敦奥运会还有 "<<CountDown(y,m,d)<<"天"
10、<<endl;return 0;int CountDown(int year,int month,int day)int s=0;switch(month)case 1: s=31-day+151+27; break;case 2: s=29-day+122+27; break;case 3: s=30-day+91+27; break;case 4: s=31-day+61+27; break;case 5: s=31-day+30+27; break;case 6: s=30-day+27; break;case 7: s=27-day; break; return s;8.本
11、题分值: 10题目标题: 神奇的英文回文。题目描述: 许多英语单词无论是顺读还是倒读,其词形完全一样,都是同一个单词,如 dad (爸爸)、noon(中午)、level(水平)等,这样的词称为回文词。 在最权威的 牛 津英语大词典 里,最长的回文词是 tattarrattat ,是个象声词, 表示敲门的声音。 英语的回文句更有趣味 (忽略其中的标点符号) 。最著名的一句为: “Madam,I 'm Adam.”(小姐,我是亚当。)据说,这是亚当在伊甸园里初见夏娃作自我介绍时 说的话。现要求编写一个函数 bool huiwen(char *p) 判断输入的一个单词是否为回文 词,p 是指
12、向要输入的字符串的指针,如果是返回 true,否则返回 false。 输入描述: 输入一个单词后回车。输出描述: 若该单词是回文词,则输出“ yes”;否则输出“ no ”。 样例输入:level样例输出: yes#include <iostream>using namespace std;bool huiwen(char*p);int main( )char s80; cin>>s;if(huiwen(s) cout<<"yes"<<endl;elsecout<<"no"<<end
13、l;return 0;bool huiwen(char*p)int i=0,n=0,k;while(pi!='0')i=i+1;k=i-1;for(int j=0;j<i;j+)if(pj=pk) n=n+1;elsereturn false;k=k-1; if(n=i) return true;9.本题分值: 10题目标题: 生成指定字符构成的字符串。题目描述: 编写一个函数,用于生成一个由若干个指定字符构成的字符串,其原型为: void mystr(char c,int n, char *p);其中,参数 c 是构造字符串的字符, n 是字符 串中字符的个数, p 是
14、生成的字符串的首地址。要求:编写主函数,在主函数中进行字符和字符个数的输入,然后再调用 mystr 函数生成字符串,最后在主函数中将生成的字符串输出。输入描述:输入字符 c 和正整数 n,之间用空格隔开。(正整数 n 的值不超过 50) 输出描述:输出为由 n 个字符 c 构成的字符串样例输入:# 4样例输出:#include <iostream>using namespace std;void mystr(char c,int n,char *p);int main()char a,b30;int m; cin>>a>>m; mystr(a,m,b); c
15、out<<b<<endl;return 0;void mystr(char c,int n,char *p)for(int i=0;i<n;i+,p+) *p=c; *p='0'10. 递归调用本题分值: 10题目标题: Fibonacci 数列问题。题目描述:有一个有趣的古典数学问题: 有一对兔子,从出生后第 3 个月起每个月都生1 对兔子,小兔子长到第 3 个月后每个月又生 1 对兔子。假设所有兔子都不死, 问每个月兔子的总对数为多少提示:不满 1 个月的为小兔子,满 1 个月不满 2 个月的为中兔子,满 3 个月 以上的为老兔子。 每对老兔子
16、每个月会生 1 对小兔子。因此,每个月的兔子总数 依次为 1,1,2,3,5,8,13,。这就是 Fibonacci 数列。该数列的递归定义如下: f(n)= 1 (n等于 1 或 2);f(n)= f(n-1)+ f(n-2) (n>2)请编写递归函数 int fib(int n) ,求出第 n 个月兔子的总对数。 输入描述:输入一个正整数 n,表示求第 n 个月兔子的总对数。输出描述:输出为一行“第 n个月兔子的总对数为 f”,f值为求出的数列第 n项的值 f(n)。 样例输入:2样例输出:第 2 个月兔子的总对数为 1#include<iostream>using na
17、mespace std;int fib(int n)if(n=1|n=2)return 1;elsereturn fib(n-1)+fib(n-2);int main()int m,i=0;cin>>m;cout<<fib(m)<<endl;return 0;11题目描述: 输入一个字符串 s 存放到字符数组中,将 s 中下标为偶数的字符 从小到大排序(重新排放位置) , 其它字符的位置不变。输出排序后得到的新字 符串。以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。 代码:#include <iostream>using nam
18、espace std;int main( )char s81,t;int k,j,len;cin>>s; / 输入一个字符串 len=strlen(s); / 求出字符串中字符的个数 for(k=0;k<=len-1;k+=2) /k 代表字符串中从首到尾 ,每个下标为偶数的字符的 下标for(j=k+2;j<=len-1; j+=2)if(sk >sj) / 不是从小到大 ,则交换t=sk;sk=sj; sj=t; cout<<s<<endl; return 0;2题目描述: 一群学生有 5 个人,按照身高由低到高,排成一队。请编程实现 这一过程。要求,程序中编写函数 void sort(double height ,int n),对 n 个学 生的身高由低到高排序。主函数调用该函数后,输出排序结果。#include<iostream>using namespace std;int main()void sort(d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度山砂项目砂石资源采购合同6篇
- 2025年房产买卖居间服务合同规范样本
- 动漫教育发展:2025年《动漫欣赏课》课件展示2篇
- 2025年度个人汽车交易合同范本2篇
- 2025年度纳税担保期限与税务合规合同
- 2025年度个人与公司间的借款逾期罚息合同3篇
- 二零二五年度生态餐饮原物料绿色配送服务合同3篇
- 2025年度个人房屋租赁合同范本(含租金支付方式)2篇
- 2025年度新型电梯销售及居间服务合同协议书范本3篇
- 2025年度门面租赁合同租赁双方权利义务协议4篇
- SYT 6968-2021 油气输送管道工程水平定向钻穿越设计规范-PDF解密
- 冷库制冷负荷计算表
- 肩袖损伤护理查房
- 设备运维管理安全规范标准
- 办文办会办事实务课件
- 大学宿舍人际关系
- 2023光明小升初(语文)试卷
- GB/T 14600-2009电子工业用气体氧化亚氮
- 申请使用物业专项维修资金征求业主意见表
- 房屋买卖合同简单范本 房屋买卖合同简易范本
- 无抽搐电休克治疗规范
评论
0/150
提交评论