资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C++程序设计实验三-创新互联

实验三 函数
  • 实验目的

本实验主要培养、训练学生对函数的理解,要求:

创新互联主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务青海,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
  1. 掌握函数的定义、声明的方法;  
  2. 掌握函数的编写要求;
  3. 掌握函数的调用方法;
  4. 掌握函数参数的传递方法;
  5. 掌握变量的作用域;
  6. 掌握多文件编程方法。

  • 实验内容

1、输入自然数 m 和 n, 

(1)求他们的大公约数(或称大公因数)。

要求输入、输出在主函数中进行,求公约数由函数实现。

(2)在函数中求大公约数与最小公倍数。(提示:使用引用参数)

2、编写程序满足:声明一个函数,判断一个整数是否为素数,使用以下函数头:bool is_prime(int num),如果num是素数,函数返回true,否则返回false;

利用函数is_prime找出前200个素数,并按每行10个输出:

2  3  5  7  11  13  19  23  29

3、编程实现摄氏温度到华氏温度的转换:

编写一个头文件,包含下面两个函数:

double celsius_to_fah(double cel) //摄氏温度到华氏温度

double fahrenheit_to_cels(double fah) //华氏温度到摄氏温度

实现头文件,并编写测试程序,调用函数显示如下结果:

Celsius Fahrenheit | Fahrenheit Celsius

40.0 10.0 | 120.0 48.89

…… …… | …… ……

31.0 87.8 | 30.0 -1.11

39.0 102.0 | 110.0 43.33

(测试程序为主模块,即main( )函数所在cpp文件,头文件mytemperature.h只有函数声明;函数定义写在另一cpp文件mytemperature.cpp)

4、猴子吃桃:猴子第一天摘若干桃子,当即吃了一半,还不过瘾,又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃一个,以后每天如此,到第10天,发现只剩最后一个桃子,问:第一天猴子共摘多少桃子(用递归实现)。

  • 实验过程

1、输入自然数 m 和 n, 

(1)求他们的大公约数(或称大公因数)。

 要求输入、输出在主函数中进行,求公约数由函数实现。

(2)在函数中求大公约数与最小公倍数。(提示:使用引用参数)

(1)程序:

#includeusing namespace std;

int ys(int,int);

int main()

{

  int m,n;

  cin>>m>>n;

  cout<<”大公约数为”<

结果:

输入:

分别输入2,3;4,8,观察运行结果

  • 输入2,3时

  • 输出大公约数1
  • 输入4,8时

  • 输出大公约数4

(2)程序:

#includeusing namespace std;

void ys(int &x,int &y);

void bs(int &x,int &y);

int main()

{

  int m,n;

  cin>>m>>n;

  ys(m,n);

  bs(m,n);

  return 0;

}

void ys(int &x,int &y)

{

  int Y;

  for(int i=1;i<=x&&i<=y;i++)

  {

    if(x%i==0&&y%i==0)

    { Y=i;}
  }

   cout<<"大公约数为"<

结果:

输入:

分别输入4,8;5,13,观察运行结果

  • 输入4,8时

  • 输出大公约数4,最小公倍数8
  • 输入5,13时

  • 输出大公约数1,最小公倍数65

2、编写程序满足:声明一个函数,判断一个整数是否为素数,使用以下函数头:bool is_prime(int num),如果num是素数,函数返回true,否则返回false;

利用函数is_prime找出前200个素数,并按每行10个输出:

2  3  5  7  11  13  19  23  29

程序 :

#include#includeusing namespace std;

bool is_prime(int num);

int main()

{

  int n=0;

  for(int i=2;;i++)

  {

   if(is_prime(i))

   {

   cout<0&&(n%10==0)) { cout<

结果:

  • 输出前200个素数,并按每行10个输出

3、编程实现摄氏温度到华氏温度的转换:

编写一个头文件,包含下面两个函数:

double celsius_to_fah(double cel) //摄氏温度到华氏温度

double fahrenheit_to_cels(double fah) //华氏温度到摄氏温度

实现头文件,并编写测试程序,调用函数显示如下结果:

Celsius Fahrenheit | Fahrenheit Celsius

40.0 105.0 | 120.0 48.89

…… …… | …… ……

31.0 87.8 | 30.0 -1.11

39.0 102.0 | 110.0 43.33

(测试程序为主模块,即main( )函数所在cpp文件,头文件mytemperature.h只有函数声明;函数定义写在另一cpp文件mytemperature.cpp)

程序:

主程序:

#include#include "mytemperature.h";

using namespace std;

int main()

{

  double cel,fah;

  cout<< "Celsius Fahrenheit: ";

  cin >>cel;

  printf("%.1f %.1f\n",cel, celsius_to_fah(cel));

  cout<< "Fahrenheit Celsius: ";

  cin >>fah;

  printf("%.1f %.2f\n",fah, fahrenheit_to_cels(fah));

  return 0;

}

函数mytemperature.cpp:

#includedouble celsius_to_fah(double cel)

{

  double f;

  f = cel * 1.8 + 32;

  return f;

}

double fahrenheit_to_cels(double fah)

{

  double c;

  c = (fah - 32)/1.8;

  return c;

}

头文件mytemperature.h:

#ifndef _mytemperature_h_

#define _mytemperature_h_

double celsius_to_fah(double cel);//摄氏温度到华氏温度

double fahrenheit_to_cels(double fah); //华氏温度到摄氏温度

#endif

结果:

输入与输出

  • 输入摄氏度40.0,华氏度120.0

  • 输出转化后的华氏度104.0,转化后的摄氏度48.89
  • 输入摄氏度31.0,华氏度30.0

  • 输出转化后的华氏度87.8,转化后的摄氏度-1.11

4、猴子吃桃:猴子第一天摘若干桃子,当即吃了一半,还不过瘾,又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃一个,以后每天如此,到第10天,发现只剩最后一个桃子,问:第一天猴子共摘多少桃子(用递归实现)。

程序:

#includeusing namespace std;

int f(int n);

int main()

{

  int n=1;

  cout<<"第一天摘的桃子数为"<

结果:

  • 直接输出第一天摘的桃子数为1534

四、实验思考

1、本实验中函数中返回的值为什么与函数类型一致?

  • 函数本没有类型,只是为了识别返回值的类型,才在声明中在函数前面也加了这个类型,一遍编译程序把返回值以这个指定类型来处理。所以,函数中返回值的类型只能与函数声明时的类型一致。

2、本实验中主函数调用函数时采用的是何种传递方式?

  • 传用参数的传递方式。

五、体会

这节实验内容相比前两节难度增大了许多,但经过不断尝试可以较好地完成,并对c++中的函数知识有较好的掌握。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:C++程序设计实验三-创新互联
URL地址:http://cdkjz.cn/article/pccpi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220