一、实验目的
(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是回文数。
提高题:
① 编程求两个矩阵的乘积,要求两个矩阵的维数由键盘临时输入。
② 设计一递归函数,求x的y次幂。
算法提示:
③ 编写程序计算下列公式的值:
,精确到第n项,其中n=10,x=2.5,分别由键盘输入。
④编写程序,将一串数字字符转换为一个整型数据。例如,输入字符串“234”,输出整型数据234.
算法提示:如字符’2’转换为数值,s=’2’-‘0’=2
遇到第二个字符’3’,s=2*10+’3’-‘0’,以此类推。
⑤编写一个程序,实现将用户输入的一个字符串中的所有字符“c”删除,并输出结果。
(2)提交形式
书面报告+电子报告
四、实验步骤和结果
**基础题:**
② 斐波那契数列有如下特点:第1、2个数都是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;**
**}**
五、实验小结
通过本次试验我掌握了函数的定义,调用方法,参数的说明以及返回值,函数递归调用的设计方法等,逐步理解了函数调用的程序设计思想,学习过程常会遇到问题,因此需要认真理解,多作练习。