




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章C语言的控制结构,4.1 算法与程序 4.2 顺序结构 4.3 选择结构 4.4 循环结构 4.4.6 单重循环程序举例 4.4.7 多重循环结构,4.1 算法与程序,程序设计的基本过程 (1)分析问题 (2)设计算法 (3)实现程序,4.2 顺序结构 【例4.1】交换两个变量的值,并输出结果。,5 9 a=5, b=9 a=9, b=5,#include void main() ,返回目录,int a,b,t; scanf(%d%d,4.3 选择结构 4.3.1 if语句 1单分支形式 if (表达式) 语句,【例4.2】输入一个实数,输出其绝对值。 程序如下:,程序运行情况: -5.
2、6 5.600000,#include void main() float x; scanf(%f, ,2复合语句(compound statement) 用大括号括起来的语句序列,运行情况如下: 3.6 -3.2 -3.20, 3.60,#include void main() float x,y,t; scanf(%f%f, ,【例4.3】编程,输入两个实数,从小到大的次序输出这两个数。,3 双分支形式 if (表达式) 语句1 else 语句2,【例4.4】从键盘输入一个字符,如果是数字字符, 则输出 “It is a number.”; 否则,输出“It is not a number
3、.”。,分析:判断条件是:ch=0 scanf(%c, ,运行情况如下: 9 It is a number.,4. if语句的嵌套形式,if (表达式) 语句1 else 语句2,(1)单分支嵌套形式 if (表达式1) 语句1 else 语句2,if (表达式2) 语句2 else 语句3,【例4.5】输入x值,计算下面的函数值,并输出结果。,#include void main() int x,y; scanf(%d, ,4. if语句的嵌套形式,(2)双分支嵌套形式 if (表达式1) 语句1 else 语句2,if (表达式) 语句1 else 语句2,else与 if的匹配规则:每个
4、else总是与它前面相距最近的尚未配对的if配对。,if(表达式2) 语句1 else 语句2 if(表达式3) 语句3 else 语句4,【例4.6】输入x、y值,计算下面的函数值,并输出结果。,#include void main() float x,y,f; scanf(%f%f, ,4.3.2 switch语句 1一般形式 switch(表达式) case 常量表达式l :语句组l case 常量表达式2 :语句组2 case 常量表达式n :语句组n default :语句组n+1 ,例4.8 根据输入的百分制成绩score,转换成相应的五分制成绩grade并输出。转换规则为:,程序
5、如下: #include #include void main() float score; printf(Please input score:); scanf(%f, ,switch(int)score/10) case 0: case 1: case 2: case 3: case 4: case 5: printf(En); break; case 6: printf(Dn); break; case 7: printf(Cn); break; case 8: printf(Bn); break; case 9: case 10: printf(An); ,程序运行两次: Please
6、 input score:35 E Please input score:81 B,例4.9 设计四则运算程序( + - * / ), 如输入:4+5 #include #include void main() double a,b,d; char p; scanf(“%lf%c%lf ”, ,返回目录,4.4 循环结构 4.4.1 while语句 1while语句的一般形式,while ( 表达式 ) 语句,【例4.10】求1到100之和,即1+2+3+100,#include void main() int i=1,sum=0; while(i=100) sum=sum+i; i+; pr
7、intf(sum=%dn,sum); ,4.4.2 do-while语句 1do-whle语句的一般形式,do 语句 while ( 表达式 ) ;,【例4.11】输入一个整数,计算它是几位数。如输入32564,输出5。,#include void main() long x; int n=0; printf(input x=); scanf(%ld, ,分析: 设 x=32564 若x=x/10, 则 x=3256 若x=x/10, 则 x=325 若x=x/10, 则 x=32 若x=x/10, 则 x=3 若x=x/10, 则 x=0,4.4.3 for语句 1for语句的一般形式 fo
8、r(表达式1;表达式2;表达式3) 语句,0,非0,【例4.12】输入10个数,输出其中的最大值。,#include void main() float x,max; int i; printf(input first number:n); scanf(%f, ,4.4.6 break语句 break语句出现在循环体中,其功能是提前结束循环。 【例4.13】找出100300之间第一个能被17整除的数。,程序2: #include void main() int i; for(i=100;i=300;i+) if(i%17=0) break; printf(i=%dn,i); 运行结果: i=1
9、02,程序1: #include void main() int i,m; for(i=100;i=300;i+) if(i%17=0)m=i; break; printf(m=%dn,m); 运行结果: m=102,4.4.7 continue语句 作用是结束本次循环,使得包含它的循环开始下一次重复 【例4.14】输入10个数,计算并输出这10个数中非0数据的乘积,并统计和输出非0数据的个数。,#include void main() int i,n=0; float x,y=1; for(i=1;i=10;i+) scanf(%f, ,4.4.4 单重循环程序举例 【例4.15】求Fibo
10、nacci数列前20项。该数列如下: 1,1,2,3,5,8,13,21,,#include void main() long f1=1,f2=1; int i; for(i=1;i=10;i+) printf(%10ld%10ld,f1,f2); if(i%2=0)printf(n); f1=f1+f2; f2=f2+f1; ,【例4.17】输入一个大于1的自然数,判断该数是否为素数,如果是素数,输出“yes”,否则输出“no”。,#include void main() long n; int i; printf(input n:); scanf(%ld, ,分析: 设n为大于1的自然数
11、如果n不能被2,3,n-1整除,则n是素数。,【例4.18】按下面的幂级数展开式计算e的值。要求误差小于10-5。,include void main() float t=1,e=1; int i=0; while(t=1e-5) i+; t*=1.0/i; e+=t; printf(e=%.5fn,e); ,分析: 设t表示一般项, e表示和 t=1, e=1 t=t/1 ,e=e+t, t=t/2 ,e=e+t t=t/3 ,e=e+t, t=t/4 ,e=e+t 直到 t10-5,4.4.5 多重循环结构,例 4.21 该程序用于演示嵌套循环的执行过程。 程序如下: #include v
12、oid main() int i,j; for(i=0;i3;i+) /* 外循环 */ printf(i=%d: ,i); for(j=0;j4;j+) /* 内循环 */ printf(j=%-3d,j); /* 内循环的循环体 */ printf(n); 运行结果如下: i=0: j=0 j=1 j=2 j=3 i=1: j=0 j=1 j=2 j=3 i=2: j=0 j=1 j=2 j=3,【例4.22】输出1100中所有的素数。,#include #include void main() int n, i, k; for(n=2; nk) printf(%5d,n); ,分析: for(n=2; n=100; n+) 判断n是否为素数 若n是素数,则输出n ,【例4.22】每行10个,输出1100中所有的素数。,#include #include void main() int n, i, k, count=0; for(n=2; nk) printf(%5d,n); count+; if(count%10=0) printf(n); ,分析: f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏产业内容创新与经营策略
- 其他知识产权课件
- 投资组合分析与风险管理工具
- 剧场合作协议
- 支持药品批次管理办法
- 收尾工程安全管理办法
- 改制统筹经费管理办法
- 新版职业健康管理办法
- 新闻行业标准管理办法
- 标准化管理委员管理办法
- 幼儿园中班彩虹泡泡龙课件
- 精益生产改善培训
- 大学生心理健康教育(兰州大学版)学习通超星期末考试答案章节答案2024年
- 浙江水利专业高级工程师任职资格考试题及答案
- 统计学数据的图表展示(共133张课件)
- GB/T 44208-2024馆藏文物病害描述及图示基础要素
- 2023四年级数学上册 1 大数的认识第11课时 用计算器计算教案 新人教版
- 中国共产党支部工作条例
- 2023年石嘴山市直机关遴选公务员考试真题
- GCP相关人员职责
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
评论
0/150
提交评论