实验2 循环结构 下载本文

实验 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;