C++实验2_1 函数的应用

一、实验目的和要求

    1.  掌握函数的定义和调用方法。
    2. 练习重载函数的使用。
    3. 练习使用系统函数。
    4. 学习使用VC++的debug功能,分析递归调用过程。

 

二、实验环境(软、硬件及条件)

一台安装有Visual C++ 6.0的计算机

三、实验步骤

  1.编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。

  2. 编写函数分别求取两个整数,3个整数,两个浮点数, 3个浮点数的最大值。

  3.使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。

  4.用递归算法求N!的值(N<6),观察递归调用的过程。

  • 实验步骤

1.编写函数float Convert(float TempFer),参数和返回类型值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。示例程序lab1.cpp如下:

#include <iostream.h>

float Convert(float);

int main()

{

    float TempFer;

    float TempCel;

    cout << "Please enter the temperature in Fahrenheit: ";

    cin >> TempFer;

    TempCel = Convert(TempFer);

    cout << "\nHere's the temperature in Celsius: ";

    cout << TempCel << endl;

    return 0;

}

float Convert(float TempFer)

{

    float TempCel;

    TempCel = ((TempFer - 32) * 5) / 9;

    return TempCel;

}

2.分别编写四个同名函数max1,在main()函数中测试函数功能。

3.在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用pow(x,y)函数计算xy的结果,再显示出来。

4.编写递归函数int fun(int n),在主程序中输入n的值,调用fun函数计算机n!的值。使用if语句判断函数的出口,在程序中用cout语句输出提示信息。

5.使用debug中的Step Into追踪到函数内部,观察函数的调用过程。调试操作步骤如下:

1)选择菜单命令Build|Start Debug|Step into,或按下快捷键F11,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时Visual Studio中光标停在main()函数的入口处。

2)把光标移到语句answer=fun(n)前,从Debug菜单单击Run to Cursor,在程序运行的DOS窗口中按提示输入数字(如5),回到Visual Studio中,光标将停在该语句所在行,观察n及其它变量的值。

3)从Debug菜单或Debug工具栏中单击Step Into,或按下F11,程序进入fun函数,观察n,f及其他相关变量的值。重复上述操作,直到退出fun函数,分析程序的执行过程,加深对函数调用和递归调用的理解。

四、实验中遇到的问题及解决

  • 实验结果及分析

1.

#include<iostream>

using namespace std;

double kf(double);

int main()

{double f;

cout<<"输入华氏温度:"<<endl;

cin>>f;

cout<<"摄氏温度"<<kf(f)<<endl;

return 0;

}

double kf(double hs)

{double ss;

ss=(hs-32)*5/9;

cout<<ss<<endl;

return ss;

}

2.

#include<iostream>

using namespace std;

int fun(int a,int b)

{

return (a>b)?a:b;};

int fun(int a,int b,int c)

{int max;

if(a>b){max=(a>c)?a:c;}

if(b>a){max=(b>c?b:c);}

return max;};

double fun(double a,double b)

{

return (a>b)?a:b;};

double fun(double a,double b,double c)

{double max;

if(a>b){max=(a>c)?a:c;}

if(b>a){max=(b>c?b:c);}

return max;};

int main()

{

cout<<"最大值:"<<fun(4,5)<<endl;

cout<<"最大值:"<<fun(4,5,6)<<endl;

cout<<"最大值:"<<fun(4.5,6.3)<<endl;

cout<<"最大值:"<<fun(4.5,6.3,9.1)<<endl;

return 0;

}

3.#include<iostream>

using namespace std;

#include<math.h>

int main()

{

   int x,y;

   cout<<"请依次输入x,y:"<<endl;

   cin>>x>>y;

   cout<<x<<"的"<<y<<"次方为:"<<pow(x,y)<<endl;

   return 0;

}

4.#include<iostream>

using namespace std;

int  fun(int j)

{

if(j==0)

return 1;

else

return j*fun(j-1);

}

void main()

{ int n;

cout<<"输入的n值要求:n<6"<<endl;

cin>>n;

if(n<6)

{cout<<n<<"!="<<fun(n)<<endl;}

else {cout<<"输入的n值不在题目范围"<<endl;};

}

 

 

 

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值