21xrx.com
2025-03-30 11:32:32 Sunday
文章检索 我的文章 写文章
C++实验报告:函数
2023-06-25 15:42:06 深夜i     22     0
C++函数 函数调用 参数传递 递归函数 内联函数

一、实验目的

本实验旨在加深学生对C++函数的理解及应用能力,掌握函数的定义、调用和参数传递等相关知识点。

二、实验环境

本实验使用Microsoft Visual Studio 2019集成开发环境。

三、实验内容

本实验的主要内容为编写函数实现以下三个功能:

1. 判断一个数是否为素数;

2. 计算并输出菲波那切数列的前10项;

3. 编写一个求阶乘的函数,并计算10!的值。

四、实验步骤

1. 实现判断素数的函数isPrime,其中通过循环判断从2到该数的平方根之间的所有整数是否能够整除该数,若能,就不是素数;若不能,就是素数。具体实现如下:

#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n)
{
  int m = sqrt(n);
  for (int i = 2; i <= m; i++)
  {
    if (n % i == 0)
      return false;
  }
  return true;
}

2. 实现计算菲波那切数列的函数fibonacci,先将前两项设为1,然后通过循环计算出后面的8项,具体实现如下:

void fibonacci()
{
  int f1 = 1, f2 = 1, f3;
  cout << f1 << " " << f2 << " ";
  for (int i = 3; i <= 10; i++)
  {
    f3 = f1 + f2;
    cout << f3 << " ";
    f1 = f2;
    f2 = f3;
  }
  cout << endl;
}

3. 实现求阶乘的函数factorial,通过递归实现。具体实现如下:

int factorial(int n)
{
  if (n == 0 || n == 1)
    return 1;
  else
    return n * factorial(n - 1);
}

4. 在主函数main中,调用以上函数实现相关功能,具体实现如下:

int main()
{
  int n = 17;
  if (isPrime(n))
    cout << n << " is prime." << endl;
  else
    cout << n << " is not prime." << endl;
  fibonacci();
  int fac = factorial(10);
  cout << "10! = " << fac << endl;
  return 0;
}

五、实验结果

通过上述实验,我们实现了判断一个数是否为素数、计算并输出菲波那切数列的前10项、以及求10!的功能,结果如下:

17 is prime.

1 1 2 3 5 8 13 21 34 55

10! = 3628800

六、实验总结

本实验通过实现相关函数,增强了学生对C++函数的理解与应用能力,为后续学习打下了基础。同时,我们还可以通过学习更多的函数,深入挖掘C++的强大功能,开发更加强大的应用程序。

  
  

评论区

请求出错了