C02-程序设计基础提高班(C++)第5周上机任务

第5周:阅读教材第4章(p88-133),主要内容是函数

(回到C02-程序设计基础提高班(C++)学习安排)

1. 求满足条件n=a!+b!+c!的所有三位数n并输出,要求用自定义函数实现求阶乘。

参考程序:

#include <iostream>
using namespace std;
long fac(int n); //函数的声明

//下面定义main()函数完成任务,其中求阶乘的工作调用fac()函数完成

//下面定义fac(),实现求阶乘的功能 

2. 编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,调用函数回答以下问题(请包括在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务。)

bool isPrimer(int n)
{

}
bool isPalindrome(int n)
{

}

(1)输出10000以内的所有素数。
(2)输出10000以内的所有回文数。
(3)输出10000以内的所有回文素数。
(4)若一个素数的反序数仍为素数,则称它为可逆素数。求10000以内的所有可逆素数。

3. 先听故事,再编程序。故事是这样的:话说sin和cos是一对夫妇。一天,sin去听相声了,cos在家。过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数。cos问:你是谁啊?他说:我是你的老公sin啊。cos说:你不是去听相声了吗?怎么成这幅摸样了?他说:是啊,太乐了!故事讲完了。不懂吗?好好学高数。否则,挂了不冤。

编程序求出sin(π/2)、sin(56°)、cos(87°)、cos(π/3)

#include <iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double);  //声明用于求sin(x)的自定义函数
double mycos(double);  //声明用于求cos(x)的自定义函数
double myabs(double);   //程序中需要求精度的绝对值,也用自定义函数完成吧
int main( )
{
 cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
 cout<<"sin(56°)的值为"<<mysin((56.0/180)*pi)<<endl;
 cout<<"cos(87°)的值为"<<mycos((87.0/180)*pi)<<endl;
 cout<<"cos(π/3)的值为"<<mycos(pi/3)<<endl;
 return 0;
}
//下面定义mysin函数

//下面定义mycos函数

//下面定义myabs函数

4. 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编程序计算共有多少种不同的走法?
提示:设n阶台阶的走法数为f(n)。如果只有1个台阶,走法有1种(一步上1个台阶),即f(1)=1;如果有2个台阶,走法有2种(一种是上1阶,再上1阶,另一种是一步上2阶),即f(2)=2;当有n个台阶(n>3)时,我们缩小问题规模,可以这样想:最后是一步上1个台阶的话,之前上了n-1个台阶,走法为f(n-1)种,而最后是一步上2个台阶的话,之前上了n-2个台阶,走法为f(n-2)种,故而f(n)=f(n-1)+f(n-2)。列出的递归方程为:
   f(1)=1;
   f(2)=2;
   f(n)=f(n-1)*f(n-2),当n>3
据此可以编程序求解f(n)的值。

5.选人:贺老师教1班和2班两个班的C++程序设计课,1班同学的学号为1-41,2班同学的学号为42-84,现在每个班要抽签确定5名同学去参加学校组织的教学效果评价,请编程完成这个“抽签”的工作。

提示:本程序需要用到int rand()产生随机数,产生随机数一般要用void srand(unsigned seed) 初始化随机数发生器,上网查找这些函数的用法,完成此任务。借此,体会调用系统函数完成特定功能的方法。通过浏览相关手册,知道C/C++语言提供了哪些系统函数。 

时间: 2024-11-02 17:26:50

C02-程序设计基础提高班(C++)第5周上机任务的相关文章

C02-程序设计基础提高班(C++)第10周上机任务-类和对象之二

第10周:阅读教材第9章(p263-313),主要内容是构造和析构函数.对象数组.对象指针.共用数据的保护等,完成第10周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) 实践任务: [任务1]设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化 #include<iostream> using namespace std; class Triangle {public: float perimeter(void);//计算三角形的周长 float area(void)

C02-程序设计基础提高班(C++)第11周上机任务-运算符重载

第11周:阅读教材第10章(p314-346),掌握用运算符重载解决问题,完成第11周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) [任务1]实现复数类中的运算符重载定义一个复数类重载运算符+.-.*./,使之能用于复数的加减乘除.(1)方案一:请用类的成员函数完成运算符的重载: class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} Comple

C02-程序设计基础提高班(C++)第8周上机任务-结构体

第8周:阅读教材第7章(p201-230),主要内容是结构体与自定义类型,同时也希望将同学们将第3-7章的内容整理一下,完成第8周上机任务,本周任务将增加一些对用结构化程序设计技术解决问题的综合性题目: (回到C02-程序设计基础提高班(C++)学习安排) 实践任务(需要的数据文件score.txt在本文后,自行复制后,用记事本保存为score.txt): [任务1]结构体数据组 score.txt中是一些同学的学号.姓名.C++.高数.英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号

C02-程序设计基础提高班(C++)第6周上机任务-数组

第6周:阅读教材第5章(p134-163),主要内容是数组,完成第6周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) 任务内容: 1. 创建一个长度为20的数组,其中存放斐波那契数列的前20项. 2. 筛法求素数.筛法求素数是一种快速的求素数的方法,其思路是以空间换时间,利用额外的数组作为中介,能够显著降低运行的时间.现在要求列出10000以内的素数. (筛法求素数的算法请上网查找) 3. 在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面功能函数,并将它们组

C02-程序设计基础提高班(C++)第14周上机任务-文件操作

第14周:阅读教材第13章(p417-458),主要内容是输入输出,重点是文件的操作,完成第14周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) [任务1]涨工资从文件salary.txt中读入500名工人的工资,全部增加100元后进行排序,将排序后的结果在屏幕上输出,并保存到文件ordered_salary.txt中.[ 参考:涨工资了 - http://blog.csdn.net/sxhelijian/article/details/7632245 ] [任务2]学生成绩排

C02-程序设计基础提高班(C++)第7周上机任务-指针

第7周:阅读教材第6章(p164-200),主要内容是指针,完成第7周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) 实践内容: 1. (数组的排序) 按模板中的要求,用指向数组的指针变量作为形式参数编写函数,完成冒泡排序.重点体会:(1)冒泡排序算法:(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变:(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递. #include <io

C02-程序设计基础提高班(C++)第9周上机任务-类和对象

第9周:阅读教材第8章(p231-262),主要内容是类和对象,学会定义类和对象解决问题,完成第9周上机任务: (回到C02-程序设计基础提高班(C++)学习安排) 实践任务: [任务1]阅读.运行下面的程序后,按要求编制新的成员函数,并增加类的功能 #include <iostream> using namespace std; class Time { public: void set_time( ); void show_time( ); private: bool is_time(in

C02-程序设计基础提高班(C++)第13周上机任务-多态与虚函数

第13周:阅读教材第12章(p395-416),主要内容是多态性,完成第13周上机任务 (回到C02-程序设计基础提高班(C++)学习安排) [任务1]下面给出了基类Animal和main()函数.(1)根据main()函数给出的注释提示,设计出相关的各个类.(2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的.改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除.(3)每一个Animal的派生类

C02-程序设计基础提高班(C++)第4周上机任务

第4周:下载并阅读 C++程序设计入门同步实践宝典(v0.5)中的1.2节及第3章的内容(下载积分不足的同学可以通过校园网到我的BB平台下载,账号2009helijian),在程序调试技术.解题方法方面加深理解 (回到C02-程序设计基础提高班(C++)学习安排) 1.分别用3种循环(while~.for(;;)~.do~while)计算下式 要求用单重循环完成,以强化关注效率的意识. 2.在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字.请设计程序求出"都.要.学.C&q