哈工大C语言课件 _第1页
哈工大C语言课件 _第2页
哈工大C语言课件 _第3页
哈工大C语言课件 _第4页
哈工大C语言课件 _第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计三张岩循环结构根本概念循环结构根本概念:循环结构与应用 循环结构是程序中一种很重要的结构。它会根据条件反复执行某程序段,当然不能无限的执行下去,在给定条件不成立时,循环就会停止。给定的条件称为循环条件,反复执行的程序段称为循环体。循环结构根本知识循环结构种类循环结构种类:循环结构与应用 语言提供了多种循环语句,可以组成各种不同形式的循环结构:(1) for循环语句;(2) while循环语句;(3) do-while循环语句;循环结构根本知识循环结构种类循环结构例子:循环结构与应用计算1+2+3+99+100的值#include void main() int sum=0;for

2、(int i=1;i=100;i=i+1)sum=sum+i;printf(1+2+3+99+100=%dn,sum);循环结构根本知识循环结构种类for循环for循环的一般形式:循环结构与应用for(设置初始值;循环条件判断;设置循环增减量) 语句1; 语句2; 语句n;循环结构根本知识循环结构种类for循环for循环的执行流程:循环结构与应用循环结构根本知识循环结构种类for循环高斯累加运算流程图:循环结构与应用循环结构根本知识循环结构种类for循环双目复合赋值运算符双目复合赋值运算符:循环结构与应用序号复合运算符复合运算符的含义1+=相加并赋值2-=相减并赋值3*=相乘并赋值4/=相除并

3、赋值5%=求模并赋值6&=按位AND并赋值7|=按位OR并赋值8=按位XOR并赋值9=右移并赋值循环结构根本知识循环结构种类for循环双目复合赋值运算符双目复合赋值运算符:循环结构与应用复合赋值表达式的一般形式为: 表达式1 Op= 表达式2Op表示参与构成复合赋值运算符的双目运算符,它和下面的赋值表达式等价: 表达式1 = 表达式1 Op 表达式2 例如:x+=y-3等价于x=x+(y-3),而不是x=x+y-3。循环结构根本知识循环结构种类for循环双目复合赋值运算符双目复合赋值运算符:循环结构与应用+i和i+等价于i=i+1,但是,这两个表达式在参与其他运算的时候是有区别的。在和其他运算

4、结合在一起时,+i表示i自增1后再参与其它运算,而i+表示i参与运算后,i的值再自增1。同理,-i是i自减1后再参与其它运算,而i-是i参与运算后,i的值再自减1。例如下面的程序段: int x=0,int i=1; x=i+; printf(“x=%d,i=%d,x,i); 输出的结果为x=1,i=2。循环结构根本知识循环结构种类for循环双目复合赋值运算符例子请说出下面程序的结果:循环结构与应用 main() int x, y; for(x=0,y=0; x+y=50; x+,y+) printf(“%3d , x+y ); if (x%5=0) printf(“n); 循环结构根本知识循

5、环结构种类for循环双目复合赋值运算符例子循环结构与应用鸡兔同笼问题韩信点兵问题计算1+3+5+99的值在0到10000的范围内找到所有7的倍数猜数字游戏循环结构根本知识循环结构种类for循环双目复合赋值运算符例子循环结构与应用产生随机数(0-1之间的实数): rand()#include void main()srand(unsigned)time(NULL);int x=(int)(rand()/32768*10);/产生0,9的实数循环结构根本知识循环结构种类for循环双目复合赋值运算符例子问题:求解定积分循环结构与应用xy编程演示循环结构根本知识循环结构种类for循环双目复合赋值运算符

6、while循环结构while循环结构循环结构与应用while条件判断语句1;语句2;语句n;循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构while循环结构例子循环结构与应用#include void main (void) int nSum; /* 用于保存计算和*/ int i; /* 循环控制变量,也是参与运算的操作数*/ nSum=0; i=1; /*初始化循环控制变量*/ while(i101) nSum+=i; i+; /*改变循环控制变量的值*/ printf(1+2+3+99+100=%dn,nSum);循环结构根本知识循环结构种类for循环双目复合

7、赋值运算符while循环结构问题:十进制整数转二进制循环结构与应用编程演示#include #include void main()int s=453;while(s=2)printf(%d,s%2);s=s/2;printf(%dn,s);#include #include void main()double s=0.6875;printf(0.);for(int i=0;i1)printf(1);s-=1;else if(s1)printf(0);elseprintf(1);break;循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构问题:求解x*(sin(x)

8、在(2,5)的根循环结构与应用编程演示#include #include void main()double min=2,max=5,middle,f_min,f_max,f_middle;while(max-min)0.00001)f_min=min*sin(min);f_max=max*sin(max);middle=(min+max)/2;f_middle=middle*sin(middle);if(f_min*f_middle0)min=middle;else if(f_max*f_middle0)max=middle;else if(f_middle=0)printf(结果=%f,m

9、iddle);printf(结果=%f,max);循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构问题:使用while循环接收键盘输入,假设输入字符为q或者Q,那么停止循环执行循环结构与应用循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构问题:使用while循环接收键盘输入,假设输入字符为q或者Q,那么停止循环执行循环结构与应用#include #include void main (void) char cStr; /* 用于保存输入的字符*/ cStr=0; while(cStr !=q) & (cStr !=Q) printf(plea

10、se enter the character:n); cStr=getche(); /*换成scanf执行一下,看有何不同*/ /*在此可以添加任何代码段*/ printf(Iteration is end .n); 循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数getch()、getche()和getchar()函数循环结构与应用getch()和getche()函数 头文件#include 这两个函数都是从键盘上读入一个字符。其调用格式为: getch(); getche(); 两者的区别是: getch()函数不将读入的字符回显在显示屏幕上, 而ge

11、tche() 函数却将读入的字符回显到显示屏幕上。 利用回显和不回显的特点, 这两个函数经常用于交互输入的过程中完成暂停等功能 getchar()函数也是从键盘上读入一个字符 。它与前面两个函数的区别在于: getchar()函数等待输入直到按回车才结束, 回车前的所有输入字符都会逐个显示在屏幕上。但只有第一个字符作为函数的返回值。循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构do-while循环结构循环结构与应用do语句1;语句2;语句n; while条件判断;循环结构根本知识循环结构种类for循环双目复合赋值运算符while循

12、环结构新的输入函数do-while循环结构使用do-while循环结构实现高斯累加计算循环结构与应用循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构使用do-while循环结构实现高斯累加计算循环结构与应用#include void main (void) int nSum; /* 用于保存计算和*/ int i; /* 循环控制变量,也是参与运算的操作数*/ nSum=0; i=1; /*初始化循环控制变量*/ do nSum+=i; i+; /*改变循环控制变量的值*/ while(i101); printf(1+2+3+99+

13、100=%dn,nSum);循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构do-while循环结构练习循环结构与应用 main( ) int x; x=-1; do x=x*x; while( !x ); A) 是死循环 B) 循环执行三次 C) 循环执行一次 D) 有语法错误 x=0; 循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构do-while循环结构练习循环结构与应用 main() int x=3; do printf(“%d,x-=2); while( !(

14、-x) ); A) 1 B) 1,-2 C) 3,0 D) 0 x310-2-3x=x-2;循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构do-while循环结构练习循环结构与应用 main() int s; s=7; do s-=2; while(s0); printf(“s=%dn,s); s=5请写出右侧程序的运行结果循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构do-while循环结构练习循环结构与应用 main() int x,y; x=y=0; while

15、(x20) y+,x+=3; printf(“y=%d x=%dn,y,x); y=7, x=21 写出右侧程序段的运行结果以及循环体中的语句共执行了几次。循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环结构的选择循环结构与应用当确定要使用循环时,该使用哪个呢? 1首先确定需要的循环是先进行条件判断,后执行循环;还是先执行循环,然后判断条件。2在for循环和while循环的选择上,如果涉及到初始化一些变量或者更新一些操作,那么使用for循环比较适宜,否那么使用while循环循环结构根本知识循环结构种类for循环双目

16、复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择三种循环比较循环结构与应用循环条件成立循环条件成立循环条件成立何时重复执行循环1次0次0次最少执行循环体次数未知未知一般循环重复的次数是是否循环体中是否需要自己更改循环控制变量的值是否否后置条件检查否是是前置条件检查do while循环while循环for循环循环种类循环特性循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环结构比较循环结构与应用main( ) int sum, i ; for(sum=0,i=1; i=100; i+)

17、 sum+=i; printf(“sum=%dn, sum );main( ) int sum=0, i =1; do sum+=i; i+; while( i=100 ); printf(“sum=%dn, sum );main( ) int sum=0, i =1; while( i=100 ) sum+=i; i+; printf(“sum=%dn, sum );main( ) int sum=0, i =1; label: if( i=100) sum+=i; i+; goto label; printf(“sum=%dn, sum );1+2+3+4+5+ +100 循环结构根本知识

18、循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环嵌套循环结构与应用 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。 for(i=0; i=9; i+) for(j=0; j=9; j+) 内层循环 外层循环循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环嵌套循环结构与应用 1) for; (2) for; for; while (3) while (4) do do while wh

19、ile; while; (5) while (6) do do for; while; while;循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套输出:九九乘法表循环结构与应用1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9 8*1=8 8*2=16 8*3=24 8*4=32 8*5= 40 8*6=48 8*7=56 8*8=649*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81编程演示循环结构根本知识循环结构种类f

20、or循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套输出:九九乘法表循环结构与应用 假设 i , j 已定义为 int 类型,那么以下程序段中 内循环体总的执行次数是: for( i=5; i; i -) for(j=0; j0 & 100编程演示循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用break的作用循环结构与应用注意:(1)break语句不能用于循环语句和switch语句之外的任何其他语句中。(2)在嵌套循环中,break语句只

21、能终止它所在的循环的执行。本例中break语句的作用就是结束循环的执行,强制退出循环,程序继续执行循环后的程序语句。循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句continue语句循环结构与应用 continue的作用与break语句相似,也有结束循环的作用,但是continue语句是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue语句的一般形式为: continue;#include void main (void

22、) float fScore, fMin=0.0f, fMax=100.0f, fTotal=0.0f; int nCount=0; /* 对输入的成绩个数进行计数*/ while(scanf(%f,&fScore)=1) /*使用scanf()函数的返回值作为循环执行的条件*/ if (fScore fMax) printf(%0.1f is a invalid value. n,fScore); continue; /* 如果输入的成绩不是合法数字,那么结束循环*/ else printf(Accept the %0.1fn,fScore); fTotal+=fScore; /*计算输入成

23、绩的总分*/ nCount+; if(nCount0) printf(Total score is %0.1fn,fTotal); printf(Average of %d score is %0.1fn,nCount,fTotal/nCount); else printf(No valid scroe was Input!); 循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句循环结构与应用循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输

24、入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用练习循环结构与应用 在以下语句中,哪一个不为无限循环 A) i=100; B) for( ; ; ) while(1) i=i %100; i+; if (i 100) break; C) k=32764; D) S=32764; do while(S+%2)|(S%2) S+; k+; while(k0);循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用练习循环结构与

25、应用计算1+3+5+99的值计算1+3-5+99的值在0到10000的范围内找到所有7的倍数在100到999的范围内输出三位数和为10的数计算50人生日有重复的概率,绘制流程图循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:泰勒展开求sinx和cosx循环结构与应用循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:泰勒展开求si

26、nx和cosx循环结构与应用编程演示循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:泰勒展开求sinx和cosx循环结构与应用#include #include void main ()int nFun=1;double dSin=0.0, dTemp=1.0, dArc=0.0; /*变量声明初始化*/ int k=0;double pi=3.1415926,dMin=0.000001,dDegree=0.0;printf(“ 请输入角度:);scanf(%

27、lf,&dDegree); dTemp=dDegree*pi/180; /*进行角度度量转换*/dArc=dDegree*pi/180;while ( fabs(dTemp) dMin) /*泰勒展开项是否到达精度*/ dSin += dTemp; /*sin函数的泰勒展开式*/k+= 2; /*利用前次运算结果计算泰勒展开项的值*/dTemp = (-1) * dTemp*dArc*dArc/(k+1)*(k); printf( sin(%f) = %lf n,dDegree,dSin);循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循

28、环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:泰勒展开求sinx和cosx循环结构与应用#include #include void main ()int nFun=1;double dCos=0.0, dTemp=1.0, dArc=0.0; /*变量声明初始化*/ int k=0;double pi=3.1415926,dMin=0.000001,dDegree=0.0;printf( 请输入弧度:);scanf(%lf,&dDegree); /*输入计算的弧度数据*/dArc=dDegree*pi/180; /*进行角度度量转换*/while ( fab

29、s(dTemp) dMin) /*泰勒展开项是否到达精度*/dCos += dTemp; /*cos函数的泰勒展开式*/k+= 2; /*利用前次运算结果计算泰勒展开项的值*/dTemp = (-1) * dTemp*dArc*dArc/(k-1)*(k); printf( cos(%f) = %lf n,dDegree,dCos); 循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:计算50人生日有重复的概率循环结构与应用开始初始化变量计算所有可能数n计算所有

30、不可能数m计算结果并输出:1-(m/n)结束循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:计算50人生日有重复的概率循环结构与应用#include #include void main ()double all_possible_count=1;/所有可能数double all_impossible_count=1;/所有不可能数double ans=0;/最终结果int stu_count=50;all_possible_count=pow(365,stu

31、_count);for (int i=365;i315;i-)all_impossible_count*=i;ans=1-(all_impossible_count/all_possible_count);printf(所有可能数=%lfn,all_possible_count);printf(不重复总数=%lfnn,all_impossible_count);printf(50人生日有重复的概率=%lfn,ans);循环结构根本知识循环结构种类for循环双目复合赋值运算符while循环结构新的输入函数do-while循环结构循环结构的选择循环嵌套循环中break的作用continue语句应用问题:仿真计算50人生日有重复的概率循环结构与应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论