实验2 循环结构

更新时间:2023-12-01 05:57:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验 2

循环结构 程序填空 1.

本题分值: 10

题目描述:

马克思曾经出过这样一道趣味数学题:有 30

个人在一家小饭馆里用餐,其中有男人、女人和小 孩。每个男人花了 3

先今,每个女人花了 2

先令,每个小孩花了 1

先令,一共花去 50

先令。问男人、女人

以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上

调试程序,以测试填入的部分是否正确。

代码:

#include using namespace std; int main() {

int n; //n

记录解的个数

int a,b,c; //

分别记录男、女、小孩的人数

n=__(1)__; // 初始化 n 的值

for(a=1;a<=30;a++) {

for(b=1;b<=30;b++) {

c=__(2)__; if( __(3)__ ) {

cout<<\男人有 :\个; \女人有: \个; \小孩有: \个。 \ n++; } } }

cout<<\共有 \种方案 \ return 0; } 2.

本题分值: 10

题目描述:

下面程序的功能是输出 1 至 100

之间每位数的乘积大于每位数的和的数,请填空使程序完整, 并在计算机上调试程序,以测试填入的部分是否正确。

代码:

#include using namespace std; int main() {

int n, k=1, s=0, m for (n=1 n<=100 n++) {

k=1 s=0 __(1)__;

while ( __(2)__ ) {

k*=m; s+=m; __(3)__; }

if (k>s) cout<

return 0; }

3.题目描述:

一个数如果恰好等于除它本身的所有因子之和,这个数就称为完数。例如,6=1+2+3, 6就称为完数。输出1000以内所有满足完数条件的数及其个数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。 代码:

#include using namespace std; int main() {

int n,s,i,count=0;

cout<<\以内的完数为:\ for(n=1;n<1000;n++)

{

s=0;

for(i=1;i

if (s==n) //判断是否满足完数的条件 {

cout<

count=count+1; //完数的个数+1

} }

cout<

题目描述:

求100以内能被3整除且个位数字为9的所有正整数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。

代码:

#include using namespace std; int main() {

int i;

for(i=1;i<100;i++) {

if(i%3==0&& i==9) cout<

return 0; } 5.

题目描述:

求输入的两个正整数的最大公约数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。 代码:

#include using namespace std; int main() {

int x,m,n; cin>>m>>n; if(m

else x=n; //x取m和n中的较小值

//x从m和n的较小值开始到1的范围内递减寻找公约数

while(x>=1) {

if(m%x==0 && n%x==0) //如果x是m和n的约数,x的值即为最大公约数 break;

x=x-1; }

cout<

题目标题: 数字求和。 时间限制: 1000MS 内存限制: 32768KB

题目描述:

给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?

输入描述:

输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。 输出描述:

输出一行,给出一个正整数,是5个数中小a的数的和。 样例输入: 10 1 2 3 4 11 样例输出: 10

#include using namespace std; int main() {

int a[6];

cout<<\ for(int i=0;i<6;i++) cin>>a[i];

int b=a[0],sum=0; for(int j=0;j<6;j++) {

if(b>a[j]) sum=sum+a[j]; }

cout<<\这5个数中小于a的数的和是\ return 0; } 7.

题目标题:

球弹跳高度的计算。

题目描述:

一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第5次落地时,共经过多少米? 第5次反弹多高? 输入描述:

输入一个整数h0,表示球的初始高度。 输出描述:

两个数据s和h,分别表示第5次落地时共经过s米,第5次反弹高度为h米,s和h用空格隔开。

注意:结果可能是实数,结果用 double

类型保存。

提示:输出时不需要对精度特殊控制,用 cout<

样例输入: 10

样例输出: 28.75 0.3125

#include using namespace std; int main() {

double ho,h,s,so; cin>>ho; h=ho; s=h;

for(int i=1;i<=5;i++) {

h=h/2; so=2*h; s=s+so; } s=s-so;

cout<<\第五次落地时共经过\米\ cout<<\第五次反弹高度为\米\ return 0; } 8.

题目标题: 求分数序列和。 题目描述: 有一个分数序列

2/1,3/2,5/3,8/5,13/8,21/13,....

求这个分数序列的前n项之和。 输入描述:

输入有一行:正整数n。 输出描述:

输出有一行:分数序列的和(浮点数,精确到小数点后4位)。 【提示】

1. 最好在程序中使用双精度浮点数(double)记录求得的和。

2. 要输出浮点数、双精度数小数点后4位数字,可以用下面这种形式: cout<

按上面的形式控制输出格式时,需在源程序最开始加上一行: #include

样例输入: 99

样例输出: 160.4849

#include #include using namespace std; int main() {

double m,a=2.0,b=1.0,sum=0.0; int n;

cout<<\请输入n值:\ cin>>n;

for(int i=1;i<=n;i++) {

sum=sum+(double)a/b; m=a; a=a+b; b=m; }

cout<

题目标题:

点和正方形的关系。 题目描述:

在平面坐标系中,有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断给定的多个点是否在这个正方形内。

输入描述:

多组数据,每行包含两个浮点型数据,分别表示一个点的横、纵坐标,输入坐标为0,0时表示输入结束。(注意,输入的数据不止3组) 输出描述:

对每组输入的点进行判断,显示yes或no,表示是否在正方形中,最后输入的原点也要显示yes,然后才不再继续输入点坐标。(当点在正方形的边上时,也认为在正方形内) 样例输入: 3 4 0.5 1 0 0

样例输出: no yes Yes

#include using namespace std; int main() {

float x,y;

cin>>x>>y;

while(x!=0||y!=0) {

if(x>=-1.0&&x<=1.0&&y>=-1.0&&y<=1.0)

cout<<\

else cout<<\

cin>>x>>y; }

if(x==0&&y==0)

cout<<\

return 0; } 10.

题目标题: 抓交通肇事犯。

题目描述:

一辆卡车违反交通规则, 撞人后逃跑。

现场有三人目击事件, 但都没有记住车号, 只记下车号的一些特征。 甲说:

牌照的前两位数字是相同的; 乙说:牌照的后两位数字是相 同的,

但与前两位不同; 丙是数学家,他说:

四位的车号所构成的数字正好等于某一个整数 的平方。请根据以上线索求出车号。

输入描述: 无。

输出描述:

直接显示一个四位整数表示肇事车号

样例输入:

样例输出:

#include using namespace std; int main() {

int n,a,b,c,d;

for (n=32;n*n>=1000&&n*n<=9999;n++) {

a=(n*n)/1000;

b=((n*n)/100);

c=((n*n)/10);

d=(n*n);

if(a==b&&c==d&&a!=c) {

cout<<\肇事车号

\ } }

return 0;

本文来源:https://www.bwwdw.com/article/udft.html

Top