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条错误信息原因,并输入电脑形成文字)。
第一题:
习题5
#include<iostream>
using namespace std;
int main()
{
long double temp=1.0,e=1.0;
long double f=1;
for(int i=1;;i++)
{
f *= i;
e += 1.0/f;
if((e-temp)<1e-6)
break;
temp=e;
}
cout<<"自然对数e的近似值为:"<<e<<endl;
return 0;
}
习题6
#include<iostream>
using namespace std;
int main()
{
long double pi = 1.0;
double flag = -1.0;
for(int i=3; 1.0/i>= 1e-6; i+=2)
{
pi += flag/i;
flag = -flag;
}
cout<<"圆周率pi的近似值为:"<<4*pi<<endl;
return 0;
}
习题7
#include<iostream>
using namespace std;
int main()
{
int number;
cout<<"请输入一个整数:";
cin>>number;
if(number<10)
cout<<number<<"is less than 10.";
else if(number <= 99)
cout<<number<<"is 10 to 99.";
else if(number <= 999)
cout<<number<<"is 100 to 999.";
else
cout<<number<<"is more than 1000.";
cout<<endl;
return 0;
}
习题8
#include<iostream>
using namespace std;
int main()
{
int i,j,k;
for(i=0;i<=3; i++)
{
for(j=0;j<6-2*i;j++)
cout<<"";
for(k=0;k<2 * i+1;k++)
cout<<" *";
cout<<endl;
}
for(i=0;i<=2;i++)
{
for(j=0;j<2+2*i;j++)
cout<<"";
for(k=0;k<5-2*i;k++)
cout<<" *";
cout<<endl;
}
return 0;
}
习题9
#include<iostream>
using namespace std;
int main()
{
int sum=0,n;
for(n=1;;n++){
sum+=n*n;
if(sum>=1000)
break;
}
sum -= n*n;
cout<<"满足\"1*1+2*2+3*3+ … +n*n<=1000\"的最大n值为"<<n-1<<endl
<<"其和为:"<<sum<<endl;
return 0;
}
习题10
#include<iostream>
using namespace std;
int main()
{
double day =0.01,stranger = 0.0,millionaire = 10.0;
for(int i=1;i<=30;i++)
{
stranger += day;
day *= 2;
}
stranger/=10000.0;
millionaire *= 30;
cout<<"这一个月中陌生人给了百万富翁"<<millionaire<<"万元"<<endl
<<"百万富翁给了陌生人"<<stranger<<"万元"<<endl;
return 0;
}
第二题:
/***************************************
**** 功能:求百钱百鸡问题 *****
***************************************/
#include<iostream>
using namespace std;
int main()
{
int i=0;
int a,b,c; //a,b,c分别储存鸡翁,鸡母,鸡雏的数量
double money;
cout<<"鸡翁一只钱五,鸡母一只钱三,鸡雏三只钱一。"<<endl;
cout<<"百钱买百鸡,问鸡翁、鸡母、鸡雏各几?"<<endl;
for(a=0;a<=20;a++)//总共100钱,最多20只
{
for(b=0;b<34;b++)
{
c=100-a-b;
money=5*a+3*b+c/3.0;
if(money==100)
{
i++;
cout<<endl;
cout<<"第"<<i<<"种情况"<<endl;
cout<<"鸡翁的数量a="<<a<<endl;
cout<<"鸡母的数量b="<<b<<endl;
cout<<"鸡雏的数量c="<<c<<endl;
}
}
}
return 0;
}
结果如下:
//输入一个整数,计算它是几位数字,分别输出每一位数字,并输出各个数位上数字之和。 #include<iostream> using namespace std ; int main() { int a, b, c =0 , d,temp, s = 0; cout<<"请输入一个整数"; //该数不能太大,不然会溢出 cin>>a ; b = a; d = a; do { a = a/10 ; c = c++; } while (a>0) ; cout <<"该数为"<<c<<"位数"<<endl<<endl; cout <<"该数"<<d<<"每个位上的数分别为"; do { temp = b%10; b = b/10; s = s +temp; cout <<temp<<"\t"; } while (b>0); cout<<endl; cout<<"该数每一位相加之和为:"<<s<<endl; return 0; }
运行结果:
#include <iostream>
using namespace std;
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
cout<<i;
for(j=1;j<=9;j++)
cout<<'\t'<<i<<"*"<<j<<"="<<i*j;
cout<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int a=1,b,s=0,n;
cout<<"输入n的值:";
cin>>n;
for(b=1;b<=n;b++)
a*=b;
s+=a;
cout<<"s=1!+2!+3!+...+n!的值为:"<<s<<endl;
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int i,n;
i=1,n=1;
while(i<=9)
{
n+=1;
n=2*n;
i++;
}
cout<<"第十天总共摘了"<<n<<"个苹果"<<endl;
return 0;
}
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int n,a,i,s1,S,Sn;
cout<<"计算s[n]=a+aa+aaa+aa...a(n个)的值"<<endl;
cout<<"请输入a的值"<<endl;
cin>>a;
cout<<"请输入n的值"<<endl;
cin>>n;
s1=0;
i=1;
Sn=0;
while(i<=n)
{
S=s1+a*pow(10,i-1);
Sn=S+Sn;
s1=S;
i++;
}
cout<<"S["<<n<<"]="<<Sn<<endl;
return 0;
}