免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常熟理工学院C语言程序设计实验指导与报告书 _学年 第_ 学期专 业: _学 号: _姓 名: _实验地点:_指导教师:_计算机科学与工程学院2014实验5 循环结构程序设计(1)51 实验目的1掌握while、dowhile循环语句的使用方法。2掌握break语句在循环语句中的作用。3熟悉递推、迭代等常规算法。52 示例程序【实验5.1】使用下面公式求的近似值,要求直到某一项的绝对值小于10-6为止。程序代码:#include#includeint main()int f;float pi,t,n;pi=0; f=1; t=1; n=1.0;/* 变量赋初值 */while(fabs(t)1e-6) /* 满足条件进入循环 */pi=pi+t; /* 累加一项 */n=n+2; /* 分母增加2 */f=-f; /* 改变累加项的负号 */t=f/n; /* 求出下一累加项 */pi=pi*4;printf(pi=%10.6fn,pi);return 0;说明:1fabs(t)用于求浮点数t的绝对值,由于fabs()是数学库函数,程序中需要使用#include包含文件。2这种题目要分析累加前后项之间的关系,本题中后一项的分母比前一项大2。3注意程序中累加项负号的处理方法。【实验5.2】本程序的功能是求大于2且满足下列条件的最小偶数。该数被3、4、5、6除时余数均为2。程序代码:#includeint main()int i=4; /* 判断的数由4开始 */while(1) /* 条件始终成立 */if(i%3=2)&(i%4=2)&(i%5=2)&(i%6=2)printf(%dn,i); /* 输出满足条件的最小偶数 */break; /* 找到后跳出循环 */i=i+2; /* 判断的数加2 */return 0;说明:1程序采用了递推算法。2首先从大于2的最小偶数4开始判断,若不满足条件,则加2后继续判断;若满足条件,则终止循环(使用break语句)。53 阅读程序【实验5.3】利用下面的级数求cos(x)的值,直到级数的第n项的绝对值小于等于10-6为止。 n=0,1,2,程序代码:#include#include /* */#define EPS 1e-9 /* */int main()double n=1,cosx,t;float x;printf(Please input x:);scanf(%f,&x);t=1;cosx=0;docosx=cosx+t; /* */t=-t*x*x/(2*n)*(2*n-1); /* */n=n+1;while(fabs(t)EPS); /* */printf(cos(%f)=%0.8fn,x,cosx);return 0;说明:1这种类型的题目,一般都要用到Do循环。通常的做法是判断后续需要累加的每一项能否分离出其前一项,如果可以,使用累乘语句即可实现。每循环一次累加一项,直到累加的项满足条件为止。2针对本题,可以分离成,可以分离成,依次分离下去,即后一项总能分离出其前一项,结合变量t与n所赋的初值,则可以写出累乘语句: t = -t * x *x / (2 * n) * (2 * n - 1)【实验5.4】编写程序,由键盘输入一行以Enter(回车)键结束的字符,分别统计出其中英文字母(letters)、空格(space)、数字(digit)和其他字符(other)的个数。程序代码:#includeint main()char ch;int letters=0,space=0,digit=0,others=0;printf(Please input some characters:);while(ch=getchar()!=n) /* */if(ch=a&ch=A&ch=0&ch=9)digit+; /* */elseothers+; /* */printf(letters=%d,space=%dn,letters,space);printf(digit=%d,others=%dn,digit,others);return 0;说明:1(ch=getchar()!=n是一个关系表达式,运算符!=的左侧是赋值表达式。运算时,先计算赋值表达式(ch=getchar(),把输入的字符赋给变量ch,同时该表达式的值就是变量ch的值;然后再和n比较。用一个表达式实现了输入和比较两种运算。2(ch=getchar()!=n和ch=getchar()n不等价。因为赋值运算符=的优先级低于关系运算符!=,所以不能省略(ch=getchar()!=n中的括号。54 完善程序【实验5.5】本程序的功能是用下面公式求e的近似值,要求计算到某一项小于10-8为止。请完善程序。 程序代码:#include#define EPS 1e-8/* 定义误差常量 */int main()double e=_,fact=1; /* 累加、累乘变量赋初值 */long n=0;don+;_; /* 累乘计算阶乘 */e=e+1/fact;while(_);/* 条件 */printf(e=%0.8fn,e);return 0;【实验5.6】本程序的功能是从键盘输入一个正整数,判断该数是否是完数(真因子之和等于数本身)。请完善程序。程序代码:#includeint main()int m,sum=0,n=_; /* 定义变量并赋初值 */printf(Please input a integer(0):);scanf(%d,&m);doif(_)/* 判断是否为因子 */sum=sum+n;n+;while(n=m-1);if(_)/* 满足此条件为完数 */printf(%d is a complete number.n,m);elseprintf(%d isnt a complete number.n,m);return 0;55 改错程序【实验5.7】下面程序的功能是:由键盘输入任意字母数字串number345reverse,将其中字母直接输出,数字逆序输出。请改正程序中的错误,并调试。注意:改错时不允许增加及删除语句,只允许修改或移动语句的位置。【含有错误的程序代码】#includeint main()char ch;long m,n,nx=0; /* 定义变量并赋初值 */while(ch=getchar()!=n)if(ch=0&ch=9) /* 判断是否为数字 */m=m*10+ch-0; /* 生成数字 */elseputchar(ch); /* 输出非数字 */n=m;while(n!=0) /* 数字逆序 */nx=nx*10+m%10;m=m/10;printf(n%ld rev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光遇账号交易合同
- 二手仪器交易合同
- 化学品交易合同
- 小米汽车交易合同
- 一般二手车交易合同
- 招标信息发布管理制度
- 专业知识深耕管理制度
- 石材装饰材料市场规模分析
- 古钱币私下交易合同
- 初一十五写交易合同
- 2026年乡村医生培训考试试卷及答案(共十九套)
- 2026年湖北省武汉市辅警协警笔试真题及答案
- GB/T 47417-2026蜂蜜中水不溶物的测定
- 泰山教育联盟2026届高三年级4月考试模拟 政治试题(含答案)
- 2026年成都市新都区街道办人员招聘笔试模拟试题及答案解析
- 2026届广东省惠州市高三下学期模拟考试历史试题(含答案)
- 110kV变电站电气设备吊装专项施工方案
- 2025年江苏省南通市海门市小升初数学试卷
- 2026年云南省初中学业水平考试数学仿真卷(一)(含答案)
- GB/T 4348.1-2026工业用氢氧化钠成分分析第1部分:氢氧化钠和碳酸钠
- 质量管理培训及考核制度
评论
0/150
提交评论