大一上 c + +上机实验总结目录:返回目录
1、显示如下形式的九九乘法表
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
…(由于篇幅的原因不全部列出)
91=9 92=18 93=27 94=36 95=45 96=54 97=63 98=72 9*9=81
参考程序:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{int i,j;
for(i=1;i<10;i++)
for(j=1;j<=i;j++)
{cout<<i<<"*"<<j<<"="<<setw(4)<<setiosflags(ios::left)<<i*j;
if(i==j) cout<<endl;
}
return 0;
}
2、写出实现下列功能的程序:
用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到最后一项的绝对值小于10-6为止。
参考程序:
#include <iostream>
#include<cmath>
using namespace std;
int main()
{
float s=1,n=1,pi=0;
while(fabs(s/n)>=1e-6)
{pi=pi+s/n;
s=-1*s;
n=n+2;
}
cout<<pi*4<<endl;
return 0;
}
3、有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13…,求出这个数列前20项之和。
参考程序:
#include <iostream>
using namespace std;
int main()
{
int i,n=20;
double a=2,b=1,s=0,t;
for(i=1;i<=n;i++)
{s=s+a/b;
t=a;
a=a+b;/*将前一项分子与分母之和作为下一项的分子*/
b=t; /*将前一项的分子作为下一项的分母*/
}
cout<<s;
return 0;
}
4、自学教材P54例2-20,写出实现下列功能的程序:
输入一系列字符,以#结束,统计其中ASCII码值最大的字符,并将其输出。
参考程序:
#include<iostream>
using namespace std;
int main()
{
char ch,max;
cout<<"请输入一系列字符,以#结束:"<<endl;
cin.get(ch);
max=ch;
while(ch!='#')
{
if(ch>max)
max=ch;
cin.get(ch);
}
cout<<"ASCII码值最大的字符为:"<<max<<endl;
return 0;
}
5、自学教材P53例2-18,求1!+2!+…+n!,并将结果输出。
参考程序1:
#include<iostream>
using namespace std;
int main()
{
int i,n;
double t=1,s=0;//因为当n>=10,n!就是一个很大的数了,所以将t和s定义为double
cin>>n;
for(i=1;i<=n;i++)
{t=t*i; //先开始是1!,当i+1后,1!*2=2!,i再+1后,2!*3=3!,以此类推
s=s+t;
}
cout<<s<<endl;
return 0;
}
参考程序2:
#include<iostream>
using namespace std;
int main()
{
int i,j,n;
double t=1,s=0;//因为当n>=10,n!就是一个很大的数了,所以将t和s定义为double
cin>>n;
for(i=1;i<=n;i++)
{t=1;
for(j=1;j<=i;j++)
t=t*j; //依次求1!、2!、3!、4!....
s=s+t;}
cout<<s<<endl;
return 0;
}
6、自学教材P60例2-26,统计输入的一行英文句子中字符的个数。
参考程序:
#include<iostream>
using namespace std;
int main()
{
int n=0;
char c;
while((c=cin.get())!='\n')
n++;
cout<<"n="<<n<<endl;
return 0;
}