实验作业
1.完成课本每一个编程题。要求先画出流程算法图或N-S图,然后编程实现,有可能的话使用两种以上方法;
2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)
3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。
4.在一个平面上,有四个圆柱形塔,塔底圆心坐标分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),塔半径为1,塔高为10米,塔外无建筑物。编程,输入任一个点平面坐标,求该点建筑物的高度。
5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?
7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为
s[5]=1+11+111+1111+11111
8.打印九九乘法表。
9.两个羽毛队进行单打比赛,各出3个人。甲队为张三、李四、王五3个队员,已队为陈六、赵七、宋八3个队员。现已经抽签决定比赛名单,有人向队员打听比赛名单,张三说他不和陈六打,王五说他不和陈六和宋八打。请编程找出3对比赛名单。
10.积累调试程序经验,收集错误信息原因(每个同学收集3-5条错误信息原因,并输入电脑形成文字)。
习题6
求圆周率的近似值
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double pi = 0;
int i, k = 1;
for ( i = 0; i < 1000000; ++i ) {
pi += 1.0 / (2*i+1)*k;
k = -k;
}
cout<<pi*4<<"\n";
}
习题7
将输入数据按小于10、10-10、100-1000及1000以上分类
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int i=0;
long int j;
float num,m;
while(1)
{
cout<<"请输入一个数:"<<endl;
cin>>num;
for(j=1;j<=num;j=10*j)
{
i++;
}
switch(i)
{
case 2:
cout<<num<<"is 10 to 100."<<endl;
break;
case 3:
cout<<num<<"is 100 to 1000."<<endl;
break;
default:
if(i<2)
cout<<num<<"小于10."<<endl;
if(i>3)
cout<<num<<"在1000以上."<<endl;
break;
}
i=0;
}
return 0;
}
习题11打印九九乘法表
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a,b;
for(a=1;a<=9;a++)
{
for (b=1;b<=a;b++)
{
cout<<a<<'*'<<b<<'='<<a*b<<" ";
}
cout<<endl;
}
return 0;
}
2.编程求“百钱百鸡”问题。(鸡翁一值钱五,鸡母 一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?)
#include<iostream>
using namespace std;
int main()
{
int x,y,z;
int i=0;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
for(z=0;z<=100;z+=3)
{
if(5*x+3*y+z/3==100 && x+y+z==100)
{
i++;
cout<<"\n方案"<<i<<"\n";
cout<<"\n";
cout<<" 公鸡 :"<< x<<" 只\n"<<" 母鸡 :"<< y<<" 只\n"<<" 小鸡 :"<< z<<" 只\n";
}
}
return 0;
}
3.编程输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。
#include<iostream>
using namespace std;
int main()
{
int x,y,z=0,j=0;
cout<<"请输入一个整数"<<endl;
cin>>x;
do
{
y=x%10;
x=x/10;
j=j+1;
z=z+y;
cout<<"倒数第"<<j<<"位是"<<y<<endl;
}while(x!=0);
cout<<"这是"<<j<<"位数字"<<endl;
cout<<"各个数位上数字之和为"<<z<<endl;
return 0;
}
5.编程计算s=1!+2!+3!+......n!(其中n为整数,n!表示计算n阶乘),要求使用两种以上的方法。
#include<iostream>
using namespace std;
int main()
{int n;
long t=1,s=0;
cout<<"请输入整数n计算s=1!+2!+3!+......n!\n";
cin>>n;
for(int i=1;i<=n;i++)
{ t=t*i;
s=t+s;}
cout<<"s="<<s<<endl;
cout<<"n="<<n<<endl;
return 0;
}
6.猴子吃苹果问题:猴子第一天摘了若干个苹果,当时吃了一半,还不过隐,又多吃了一个。第二天,又吃掉余下的一半,又多吃一个。以后每一天,都是吃掉前一天余下的一半零一个。到第10天,只有一个苹果了。问猴子第一天共摘了多少个苹果?
#include<iostream>
using namespace std;
int main()
{
int i,s=1;
for(i=1;i<=9;i++)
{
s=(s+1)*2;
}
cout<<"猴子第一天共摘了"<<s<<"个苹果"<<endl;
return 0;
}
7.计算s[n]=a+aa+aaa+aa...a(n个)的值。其中a是一个数字,n表示a的位数。例如,当a=1,n=5时,则要计算的表达式为 s[5]=1+11+111+1111+11111
#include<iostream>
using namespace std;
int main()
{
int s=0,i=0, a,b,n;
cout<<"请输入a和n,其中a是一个数字,n表示a的位数"<<endl;
cin>>a;
cin>>n;
b = a;
for( i=0;i<n;i++)
{
s = s + a;
a = 10*a + b;
}
cout<<"s[n]=a+aa+aaa+aa...a(n个)的值为"<<s<<endl;
return 0;
}
还有些题目暂时不会,以后一定好好学