实验 2
循环结构 程序填空 1.
本题分值: 10
题目描述:
马克思曾经出过这样一道趣味数学题:有 30
个人在一家小饭馆里用餐,其中有男人、女人和小 孩。每个男人花了 3
先今,每个女人花了 2
先令,每个小孩花了 1
先令,一共花去 50
先令。问男人、女人
以及小孩各有几个人。以下是完成此项工作的程序,请将未完成的部分填入,实现其功能,并在计算机上
调试程序,以测试填入的部分是否正确。
代码:
#include
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
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 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 int i; for(i=1;i<100;i++) { if(i%3==0&& i==9) cout< return 0; } 5. 题目描述: 求输入的两个正整数的最大公约数。请阅读以下不完整的程序,并在计算机上调试该程序以补足其中的空格,实现其功能。 代码: #include 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;