第四周作业part1

第三章 结构化程序设计学习要求和实验

      学习要求

掌握输入/出流的使用。

掌握结构化程序设计过程和方法。

掌握选择/分支结构程序,循环程序设计方法,熟知分支和循环语句,并灵活运用。

初步掌握一些常规题型算法

进一步积累程序调试经验。

      实验作业

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;
		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>
#include<iomanip>
using namespace std;
int main()
{
	
	cout<<setw(7)<<"*"<<endl;
    cout<<setw(9)<<"* * *"<<endl;
    cout<<setw(11)<<"* * * * *"<<endl;
    cout<<setw(8)<<"* * * * * * *"<<endl;
    cout<<setw(11)<<"* * * * *"<<endl;
    cout<<setw(9)<<"* * *"<<endl;
    cout<<setw(7)<<"*"<<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;
	//变量stranger 表示陌生人得到的钱数,millionaire表示百万富翁得到的钱数
	for(int i=1;i<=30;i++){
		stranger+=day;
		day*=2;
	}
	stranger/=10000.0;
	millionaire*=30;
	cout<<"这一个月中陌生人给了百万富翁"<<millionaire<<"万元"<<endl
		<<"百万富翁给了陌生人"<<stranger<<"万元"<<endl;
	return 0;
}

习题11

#include<iostream>
using namespace std;
int main(){
int row,column;
for(row=1,column=1;row<=9;row++)
{
	for(column=1;column<=row;column++)
		cout<<column<<"*"<<row<<"="<<row*column<<"\t";
	cout<<endl;
}
	return 0;
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值