上机实验五答案(请自行校对).docVIP

  • 18
  • 0
  • 约 7页
  • 2016-12-02 发布于贵州
  • 举报
上机实验五答案(请自行校对)

上机实验五 循环结构程序设计 学号: 姓名: 一.目的要求 掌握while、do-while、for语句的语法规则、执行流程。 比较3种循环语句的异同。 按题目要求,完成代码。 二.实验内容 思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的? 第题while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······ 算法提示: 定义实变量sum、term、a、b、c,整变量i 初始化: sum=0,分子a=2,分母b=1 初始化:i(计数器)=1 计算第i项term =a/b 累加sum=sum+term 计算c=a+b,更新b= a,更新a=c 计数器加1,i++ 重复4、5、6、7,直到i20 输出2位精度的结果 // while语句 #include stdio.h void main(){ float sum, term, a, b, c; int i; sum = 0; a = 2; b = 1; i = 1; while (i=20) { term = a/b; sum = sum + term; c = a+b; b = a; a = c; i++; } printf(数列前20项之和为%.2f\n, sum); } // do while语句 #include stdio.h void main(){ float sum, term, a, b, c; int i; sum = 0; a = 2; b = 1; i = 1; do { term = a/b; sum = sum + term; c = a+b; b = a; a = c; i++; } while (i=20); printf(数列前20项之和为%.2f\n, sum); } // for 语句 #include stdio.h void main(){ float sum, term, a, b, c; int i; sum = 0; a = 2; b = 1; for (i=1; i=20; i++) { term = a/b; sum = sum + term; c = a+b; b = a; a = c; } printf(数列前20项之和为%.2f\n, sum); } 第题s=1!+2!+3!+4!+·····+20! 算法提示:该多项式迭代公式为:term=term*i,sum=sum+term #include stdio.h void main(){ long term, sum; int i; term = 1; sum = 0; for (i=1; i21; i++) { term = term * i; // term保存的是阶乘 sum = sum + term; //sum为前i项之和 } printf(前20项阶乘和为%ld\n, sum); } 注:也可以用while和do while循环来实现。在具体实现过程中,注意初值不要写错。 第题“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。 #include stdio.h void main(){ int i, t, a, b, c; printf(水仙花数有:); for (i=100; i1000; i++) { t = i; a = t%10; t = t/10; b = t%10; t = t/10; c = t; if ( i == a*a*a + b*b*b + c*c*c) printf(%d , i); // i为水仙花数, 打印之 } printf(\n); } 第题/* 思路: 1)可以以0或是负数作为输入结束标志; 2)输入一批数据时,可采用循环策略,其中每一次读取一个整数; 3)读入完一个数后,判断其是否为偶数,如果是偶数,则需要求和; */ #include stdio.h void main(){ int k, sum; printf(请输入一批正整数:); scanf(%d, k); sum = 0; //最开始赋初值0给变量 while ( k0 ) //如果是正整数,那么一直循环,直到输入的为0或负数时停止 { if ( k%2 == 0) // 如果读入的正整数k为偶数 sum

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档