第5章 循环结构习题解答 - IIS7.doc

上传人:da****u 文档编号:1187154 上传时间:2018-12-18 格式:DOC 页数:17 大小:110KB
下载 相关 举报
第5章 循环结构习题解答 - IIS7.doc_第1页
第1页 / 共17页
第5章 循环结构习题解答 - IIS7.doc_第2页
第2页 / 共17页
第5章 循环结构习题解答 - IIS7.doc_第3页
第3页 / 共17页
第5章 循环结构习题解答 - IIS7.doc_第4页
第4页 / 共17页
第5章 循环结构习题解答 - IIS7.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、第 5 章 循环结构习题解答一、 填空。【题 5.1】 C【题 5.2】 5*6=30 , 0 【题 5.3】 k=s=0 ,aik*bkj , printf(“n“) 【题 5.4】 17 【题 5.5】 6 【题 5.6】 c1!= 【题 5.10】 2 二、 选择。【题 5.11】 B 【题 5.12】 B【题 5.13】 C【题 5.14】 A【题 5.15】 C 【题 5.16】 A 【题 5.17】 B 【题 5.18】 D 三、 编程。【题 5.19】 求两个正整数的最大公约数和最小公倍数。#include void main()int a,b,r,sa,sb;printf(“I

2、nput two integer numbers:n“);scanf(“%d%d“,sa=a;sb=b;if(avoid main()int i,x,yes,a;printf(“Enter integer number:“);scanf(“%d“,yes=1;i=2;a=(int)sqrt(double)x);while(yesnum=0;while (c=getchar()!=EOF) if ( (c=)|(c=“) ) if (inquota=1)inquota=0;else inquota=1;else if ( !(c=a)for(a=1;amain() int s1,s2,s3; /

3、* 三部分起始位置 */int n1,n2=0,n3=0; /* 三部分的长度 */int i,j;s1=10; n1=5; s2=s1+n1; n2=0; s3=s2+n2;for (i=1;i#include main() float pi,t,n;int sign=1;pi=0.0; n=1.0; t=1.0;while (fabs(t) = 1e-6) t=sign/n;pi+=t;n+=2;sign=-sign;pi=pi*4;printf(“pi = %fn“,pi);getch();【题 5.25】用牛顿迭代法求下面方程在 x=1.5 附近的根。2x3-4x2+3x-6 = 0解

4、:牛顿迭代法先任意设定一个与真实的根接近的值 x0 作为第一次近似根,由 x0 求出f(x0),过( x0,f(x0))点做 f(x)的切线,交 x 轴于 x1,把它作为第二次近似根,再由 x1 求出f(x1),过( x1,f(x1))点做 f(x)的切线,交 x 轴于 x2,把它作为第三次近似根如此知道足够接近真正的根 xn 为止。牛顿迭代公式为: x1=x0- f(x0)/f(x0) 由于第一次近似根不可能取到真实的根,循环体至少执行一次,使用 do_while 循环结构实现迭代较好。参考程序如下:#include #include main() double x1,x0,fd,f1;x0

5、=1.5;do x1=x0;f1=(2*x1-4)*x1+3)*x0-6;fd=(6*x1-8)*x1+3;x0=x1-f1/fd;while(fabs(x1-x0)=1e-5);printf(“The root is %lfn“,x0);【题 5.26】 一根长度为 133 米的材料,需要截成长度为 19 米和 23 米的短料,求两种短料各截多少根时,剩余的材料最少?# includevoid main()int a,b,n1,n2;float sum,temp;sum=133;for(a=1;a=0)float aver;for(i=1;iai) min=ai;aver=(sum-max-

6、min)/5;printf(“the average:%f“,aver);getch();【题 5.28】 一位百万富翁遇到一陌生人,陌生人找他谈一个换钱计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱你每天给我的钱是前一天的两倍,直到满一个月(30 天) ,百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱。解:设变量 s 和 t(分别为 long 型)分别记录百万富翁给陌生人的钱和陌生人给百万富翁的钱,第一天时:s=1(以分为单位)t=10000

7、0(以元为单位)k=1;然后用 for 循环:2 到 30,其循环体是:k=2k(每天翻一倍)s=s+kt=t+100000循环体结束后将 s/100,将以分为单位转换为以元为单位。#includemain()long int i,s=1,k=1,t=100000;for (i=2;imain()int i,j,k,s,a32,b22,c32;printf(“please input 6 numbers for array a:“);for(i=0;iint a100;main() int i,j,k,s,n=0;for (i=0;i0) ak=s;n+;printf(“n%d kinds:“

8、,n);for (k=0;ak;k+)printf(“%3d,“,ak);【题 5.31】 设计函数,在二维数组中产生如下形式的杨辉三角形。11 11 2 11 3 3 11 4 6 4 1解:扬辉三角形各行数据规律:(1) 每行第一个和最后一个数都是 1(2) 从第 3 行起,除第一和最后一个数外,其余的数都是上一行同列和前一列两个数的和。定义函数,将扬辉三角形的数据保存在二维数组中。参考程序如下:#include #define N 10void yanghui(int aN,int n) int i,j;for (i=0;imain()int i,j,count=0;printf(“ r

9、ed white black:n“);for (i=0;iint prime(int n) int i;for (i=2;i10 【题 5.34】 自守数是指一个数的平方的尾数等于该数自身的自然数。如:76 2=5776,求出2000000 以内的自守数。解:乘法运算中积是由乘数中的每一位和被乘数相乘的部分积相加后得到的,自守数考虑积的最后几位(由数字位数决定) ,并不是每一个部分积的每一位都会对积的后几位有影响,对积的后 n 几位产生影响的部分积为:第一个部分积:被乘数最后 n 位 * 乘数倒数第 1 位第二个部分积:被乘数最后 n-1 位 * 乘数倒数第 2 位第三个部分积:被乘数最后 n

10、-2 位 * 乘数倒数第 3 位将以上部分积的后 n 位求和后截取后 n 位就是 n 位数乘机的后 n 位。参考程序中 n 是所考虑的自守数的可能范围,k 是 n 的位数,循环中为截取被乘数的系数,kk 是截取部分积时的系数,m 用于累计部分积的最后 n 位,i 是截取乘数相应位时的系数:#include main()long i,k,kk,n,m;printf(“Follow is output:n“);for (n=0;n0;k*=10);kk=k*10;m=0;i=10;while (k0) m=(m+(n%(k*10)*(n%i- n%(i/10)%kk;k/=10;i*=10;if (n=m)printf(“%ld “,n);【题 5.35】 输入自然数 n,将 n 分解为质因子连乘的形式输出。例如,输入 756,则程序显示为 756=2*2*3*3*3*7。#include main()int n,k=2,first=1;printf(“Input n=“);scanf(“%d“,while(k=n)if(n%k=0)if(first)printf(“%d=%d“,n,k);first=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。