c++实验报告期末

一、实验目的

(1)掌握C++的基本语法;

(2)掌握C++编程中常用的算法;

(3)掌握结构化编程的思想;

(4)掌握面向对象编程的思想;

(5)熟练使用VC++ 6.0或Visual Studio 2010等集成开发环境编辑、调试和运行程序。

二、实验平台或环境

VC++ 6.0或VC++ 2010

三、实验内容和要求

(1)实验内容

以下实验内容分“基础题”和“提高题”两部分,从中选择两题完成。选题规则:设某同学学号的最后两位为ab,则其从“基础题”中选择编号为a%5的题目,从“提高题”中选择编号为b%5的题目。

基础题:

① 编写一程序,输入任意十进制,将其以八进制、十六进制的形式输出。

② 斐波那契数列有如下特点:第1、2个数都是1,从第3个数开始,每个数都是前两个数的和。编程求数列的前m(m>1)
个数,按每行5个数输出。

③ 从键盘输入一个整数,判断该数是几位数,逆向输出该数。

④ 用随机函数产生含有20个10~99的整数的一维数组,再用选择或冒泡排序法对数组进行升序排序。

⑤ 从键盘输入一个整数,判断该数是否为回文数。所谓回文数,就是从左向右读与从右向左读都是一样的数,例如7887、23432是回文数。

提高题:

① 编程求两个矩阵的乘积,要求两个矩阵的维数由键盘临时输入。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SXxt4Jiw-1689000998880)(file:///C:\Users\Ironhan\AppData\Local\Temp\ksohtml19856\wps2.png)]

② 设计一递归函数,求x的y次幂。

算法提示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7FU2Sr9p-1689000998881)(file:///C:\Users\Ironhan\AppData\Local\Temp\ksohtml19856\wps5.png)]

③ 编写程序计算下列公式的值:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lsrsGGSn-1689000998882)(file:///C:\Users\Ironhan\AppData\Local\Temp\ksohtml19856\wps6.png)]
,精确到第n项,其中n=10,x=2.5,分别由键盘输入。

④编写程序,将一串数字字符转换为一个整型数据。例如,输入字符串“234”,输出整型数据234.

算法提示:如字符’2’转换为数值,s=’2’-‘0’=2

​ 遇到第二个字符’3’,s=2*10+’3’-‘0’,以此类推。

⑤编写一个程序,实现将用户输入的一个字符串中的所有字符“c”删除,并输出结果。

(2)提交形式

书面报告+电子报告

四、实验步骤和结果

**基础题:**

② 斐波那契数列有如下特点:第12个数都是1,从第3个数开始,每个数都是前两个数的和。编程求数列的前m(m>1)个数,按每行5个数输出。

\#include <iostream>

 

using namespace std;

 

 

 

 int fib(int m)

 {

  if(m==1||m==2)return 1;

  else return fib(m-1)+fib(m-2);

 

 }

 

  int main(){int m;

​    cout<<"输入要求的斐波那契数列的前几个数量"<<endl;

​    cin>>m;for(int i=1;i<=m;i++){

​      cout<<fib(i)<<"\t";if(i%5==0)

​        cout<<"\t"<<endl;}return 0;

  }

 

**提高题:****#include <iostream>**

**#include <cmath>**

**using namespace std;**

 

 **double fac(double x)**

**{**

  **double i,f=1;**

  **for(i=1;i<=x;i++)****f\*=i;**

 

  **return f;**

**}**

 

**double sum(double n,double x){**

  **double y=0;**

  **double b;**

  **for(int i=1;i<=n;i++){**

  **if(i%2==1){**

  **b = (pow(x,((2\*i)-1))/fac((2\*i)-1));**

  **}else {b =(pow(x,((2\*i)-1))/fac((2\*i)-1))\*(-1);}**

  **y+=b;}**

  **return y;**

 

**}**

 

 

**int main(){**

**double n,x;****cout<<"请输入要计算的值的n与x"<<endl;****cin>>n>>x;****cout<<sum(n,x)<<endl;****return 0;**

 

 

 

**}**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xs1JbLdF-1689000998883)(file:///C:\Users\Ironhan\AppData\Local\Temp\ksohtml19856\wps15.jpg)]

五、实验小结

通过本次试验我掌握了函数的定义,调用方法,参数的说明以及返回值,函数递归调用的设计方法等,逐步理解了函数调用的程序设计思想,学习过程常会遇到问题,因此需要认真理解,多作练习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值