全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验4 循环控制(一)一、 实验目的1、掌握用while语句,do-while语句和for语句实现循环的方法。2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。3、进一步学习调试程序的技巧。二、 实验内容和步骤编程序并上机调试运行。1、以下程序PROG1.C的功能是:求1,100之间所有不能被3整除的整数之和。部分源程序存在文件PROG1.C中,请将运算结果存入变量s中。 请在/*begin*/ 与 /*end*/之间填入你编写的若干语句,存盘并运行,直到得出正确结果。请勿改动其它位置的任何内容。 /* PROG1.C */ #include stdio.h #include math.h #include conio.h #include stdlib.h void main() int i,s; /*begin*/i=1;s=0;while(i=100)if(i%3!=0)s=s+i;i+;else i+; /*end*/ printf(s=%dn,s); 2、以下给定程序FILL1.C的功能是:从键盘输入整数,分别计算所输入的正整数的和、负整数的和。当输入0时,结束输入并输出计算结果。程序有两个空(1)、(2)需要补充完整。请将程序中的_(1)_和_(2)_删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!/* FILL1.C */ #include void main() int x, sum1, sum2; /*found*/ sum1=0;sum2=0; scanf(%d, &x); while ( x != 0 ) /*found*/if (x0)sum1 += x;else sum2 += x;scanf(%d, &x); printf(sum of 0 is %dn, sum1); printf(sum of 0 is %dn, sum2); 3、 输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。#includevoid main()char x;int s1,s2,s3,s4;s1=0;s2=0;s3=0;s4=0;while(1)if(x=10)break; scanf(%c,&x);if(x=65&x=97&x=48&x=1) p=(x+1)*2; /*found*/ x=p;j-; printf(total is %dn,p); 在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序,并运行,检查结果是否正确。5、 将实验四第7题的菜单程序改成可循环选择,直到输入结束程序。6、以下给定程序MODI1.C的功能, 是打印一个如下的九九乘法表的一部分: 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16程序中有两处错误,错误都在提示行:/*found*/的下面一行。请改正程序中的错误,使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!/* MODI1.C */ #include void main( ) int i, j, k; for ( i=1; i=4; i+) /*found*/ for ( j=1; j=4; j+) printf(%3d *%3d =%3d, i, j, i*j ); /*found*/ printf(n); 7、以下给定程序MODI1.C的功能是: 已知一元以下的硬币中有一角、二角、五角三种面值,列举出将一元兑换成硬币的所有兑换方法。程序中有两处错误,错误都在提示行:/*found*/的下面一行。程序中变量i,j,k分别存放五角、二角、一角面值硬币的数量。请改正程序中的错误,使它能得出正确的结果。注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构!/* MODI1.C */ #include #include void main() float i,j,k; /*found*/ for(i=0;i=2;i+) for(j=0;j=5;j+) for(k=0;k=10;k+) /*found*/ if( i*0.5+j*0.2+k*0.1 = 1 ) printf(%.0f,%.0f,%.0fn,i,j,k); 8、以下给定程序MODI1.C的功能是:女儿今年12岁,父亲比女儿大30岁,计算出父亲在多少年后比女儿年龄大一倍,那时他们的年龄各是多少? 程序中有两处错误,错误都在提示行: /*found*/的下面一行。请改正程序中的错误,使它能得出正确的结果。注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include void main() int father,daughter; int i; daughter=12; /*found*/ father=42; /*found*/ for(i=0;father!=2*daughter;i+) daughter+; father+; printf(After %d years,fathers age is twice to daughters agen,i); printf(Their ages are %d and %dn,father,daughter); 9、以下程序PROG1.C的功能是:按下面公式,求的近似值,直到最后一项中的分数小于10-6为止。 1 1 1 1 =(1 + )*(1 + )*(1 + ) * (1 + ) * 2 1*3 3*5 5*7 7*9 部分源程序保存在文件PROG1.C中,程序中main()函数及部分变量已经定义,部分程序语句已经输入,请不要改动。如果需要使用其它变量,请自行定义。请将运算结果存入变量pi中。 请在/*begin*/ 与 /*end*/之间填入你编写的若干语句。请勿改动其它位置的任何内容。 #include stdio.h #include math.h #include stdlib
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论