收藏 分销(赏)

C语言程序设计.pdf

上传人:曲**** 文档编号:316821 上传时间:2023-08-12 格式:PDF 页数:186 大小:9.88MB
下载 相关 举报
C语言程序设计.pdf_第1页
第1页 / 共186页
C语言程序设计.pdf_第2页
第2页 / 共186页
C语言程序设计.pdf_第3页
第3页 / 共186页
C语言程序设计.pdf_第4页
第4页 / 共186页
C语言程序设计.pdf_第5页
第5页 / 共186页
点击查看更多>>
资源描述

1、(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计一、教学对象计算机科学与技术系新生(第二学期)二、教学目标程序设计的重要性程序设计的基本榻念与基本方法编程解题的思路与典型方法数学模型简介算法及算法步骤程序结构与相应语句编码与上机调试c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计三、教学重点1.程序设计的基本概念,基本方法;2.在 C语言的环境下,学会如何针对问题进行分析,得出数学模型,理出算法并编程实现;3.有条有理有根有据的编程实践;4.养成良好的编程风格与习惯;5.重在思维方法

2、的学习,鼓励创新。温焉以盘艺.湍口/C语言程序设计绪论四、指导思想1,立足改革,以培养高素质有创造精神的人才为这门课 的教学目标。2.以学生为中心,采用与现实生活贴切和具有趣味性的 实例进行讲解,有利于调动学生学习的积极性,引导学 生主动学习。3.强化实践,这门课主张程序设计是高强度的脑力劳动,不是听会的、也不是看会的,而是练会的。引导学生在 解题编程的实践中探索其中带规律性的认识。将感性认 识升华到理性高度。组m科芳v佟才jL/fpiirititiat/Conptir Siunct,C语言程序设计绪论 五、学习方法1.动手动脑,理论指导下的实践 有条有理的实践。2.在编写大量程序之后,才能感

3、到运用自如。(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计六、教学内容安排1.简单C程序设计;2.分支结构程序设计;3.循环结构程序设计;4.数组;5.函数;6.递归及其实现方法7.指针;8.结构体与链表。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计1.1认识C语言程序1.程序实例ttincl ude ttincl ude ma in()(f l oa t a,b,c;b=3 0.0;/预编译命令,将标准输入输出函数/作为头文件包扩到用 户 源文件中 预

4、编译命令,将系统提供的数学函数/作为头文件包扩到用户 源文件中主函数,名为ma in,/函数体.开始/声明部分.定义变量类型/执行部分.赋值语句a=sin(b*3.14159/180);执行部分.赋值语句 printf(f n,a);/执行部分.输出语句函数体.结束(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计1.2实例总结1C程序结构预编译命令主函数 main()(函数体开始声明部分 执行部分)函数体结束(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言

5、程序设计第一讲 简单的C程序设计2.变量的类型整型:int 长整型:l ong浮点型:f l oa t双精度型:doubl e字符型:cha r用户自定义类型c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计3.声明的作用为变量分配内存单元,变量名作为内存单元的符 号地址,这件事是在程序编译链接时完成的。4.变量其值可以改变的量,是内存单元的符号地址。通过符号b可以找到相应的存储单元地址,假设为1000。语句b=3 0.0;是将值3 0.0存放在地址为1000的存储单元。回!M怒岗蕊/c语言程序设计第一讲 简单的C程序设计

6、5.对变量的赋值赋值符号“=”V变量=V表达式b=30.0;/读作将表达式的值30.0赋给变量ba=sin(b*3.14159/180);读作将表达式(正弦函数)的值赋给变量ac计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计6.变量赋值特点(1)先定义,后使用int d,e9f;定义三个变量为整数类型如未定义,则在编译时被查出,认为非法(2)变量未被赋值前,值为未知(3)对变量赋值过程是“覆盖”过程,用新值去替换旧(4)读出变量的值,该变量保持不变(5)参与表达式运算的所有变量都保持原来的值不变回!M怒岗蕊/c语言程序设

7、计第一讲 简单的C程序设计df变量赋值过程(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计7.输出语句printf函数(格式输出函数)一般形式为printf(参数1,参数2,参数3,其中参数1-格式控制参数2,参数3,.,参数n举例:f l oa t a;int b;a=85.56;b=100;printf(f%d,a,b).,参数n)输出表列c计疗机科,芳V投企至二JLtpdrtmtiat 9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计格式控制是用双引号括

8、起来的字符串,称“转换控制字符 串”%f-第一个输出表列的格式说明,以小数形式输出单、双精度实数,隐含输出6位小数%d-第二个输出表列的格式说明,以带有符号的十进制形式输出整数(正数不输出符号)显然,f是控制实数a的;d是控制整数b的(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计为了 醒目,格式控制 项 中 除格式说 明 之外可以有 普通字符例:printf(ua=%f b=%d,a,b);输出结果为:a=85.560000 b=100 换行符号例:printf(a F%f nb二%d,a,b);输出结果为

9、:a=85.560000 b=100 域宽和精度例:printf(%5.3 f”,a);G rt m科,芦f j技力三荽:CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计8.数学函数sin(x)cos(x)exp(x)log(x)loglO(x)fabs(x)fmod(x9y)floor(x)pow(x,y)sqrt(x)x为弧度,doubl e x,doubl e sin cos(x)ex10geXlogioxlxl整除x/y的余数求不大于x的最大整数xyX1/2(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:b

10、no!ifc语言程序设计第一讲 简单的C程序设计9.算术运算符+加 减*乘/除%模(取余数)c计疗机科,芳V投企至二JLtpdrtmtiat 9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第一讲 简单的C程序设计1.3作业当丫=5.0时,求丁的值。2.y=-J a 2+b2,。=3,B=4,求丁。3.4./I-c o s a/y-,a=60,求 y。y=tzsin2 x+b sin x-cosx+ccos2 xa-2.0,b=1,0,c-1.0,x=45,3fc语言程序设计,第二 分支结构我们在日常生活中经常需要处理具有两个分支的问题,例如,如果明天下雨,则在教室内

11、组织活动,否则去野游。在C语言中,这类问题需要使用if语句解决,而判断操 作通常使用关系运算符。关系运算符和关系表达式)大于=大于等于fc语言程序设计,第=i分支结构2.1掌握if语句的使用方法【实例】编写程序,判断输入的整数是否为6,若是,显示“Right!”和“G rea t!”,否则显示“Wrong!”和“Sorry!”。1.编程思路:要显示“Right!”和“G rea t!”,应执行两条语句“printf(Right!n);”和 printf(G rea t!n);,要 显示“Wrong!”和“Sorry!”,执行两条语句“printf(Wrong!n);和 printf(Sorry

12、!n);。本 题需要根据所输入的值(假设赋给a)是否为6来选择执行相 应的两条语句。在C语言中判断a中的值是否为6,使用“if(a=6)”形式。c计疗机科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计第二讲分支结构c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第二 分支结构本实例的N-S流程图如 图所示输入a的值显示“Right!”显示“Wrong!”显示“G rea t!”显示“Sorry!”c计疗机科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计第二讲分支结构2.程序代码:#include

13、 main()int a=0;printf(nInput a:n);scanf(n%dn z&a);printf(na=%dnn za);if(a=6)/*if语句开始*/printf(nRight!nn);printf(nGreat!nn);elseprintf(Wrong!nn);printf(nSorry!nn);/*if语句结束*/(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计:第分支3.运行结果:第1次运行结果:Input a:6回车 a=6Right!G rea t!第2次运行结果:Input a:5回车 a=5Wro

14、ng!Sorry!c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第=i分支结构4.归纳分析:(1)程序中的“a=6”是关系表达式。用关系运算符把两个C语言表达式连接起来的表达式称为关系 表达式。关系运算的判断结果只有“真”或“假”两种可 能,关系成立时为“真”,不成立时为“假”。关系表达式的值只能是1或0,当关系运算的判断结果用“真”时,关系表达式的值为 1,否则,关系表达式的值为0。例 如,当a的值为6时,关系表达式“a=6”的值为1,当a的值 为5时,关系表达式“a=6”的值为0。c计疗机科,芳V投企至二9f CofttpBttr Sc

15、htet&Tt:bno!ifc语言程序设计,第=i分支结构(2)程序中的“if(a=6)”是if语句的开始部分。本例题需要根据“a=6”是否为“真”来选择执行不同的 两个输出语句。处理两个分支的问题时常使用if语句。if语句 根据其后面括号中表达式的结果,选择执行某个分支程序段。if语句的一般形式如下:if(表达式)语句组1 el se 语句组2“if”和“el se”是关键字。当表达式结果为“真”(即不等于0)时,执行语句组1,表达式结果为“假”(即等于0)时,执 亍 语句组2。在语句组1和语句组2中只能选择执行一组,而后执 行整个i f语句后面的语句。回!M怒岗蕊/c语言程序设计:第二 分

16、支结构(3)C语言中允许程序中的if语句不带el se部分。省略el se的if语句一般形式如下:if(表达式)语句组此i f语句的执行过程:当 表达式结果为“真”时,执行语句组,表达式结果为“假”日寸,不处理。c计疗机科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计第二讲分支结构2.2学会使用逻辑运算符处理问题日寸经常需要同时判断多个条件。例如,在某 学生数学和英语成绩中 判 断是否至少有一门课程是不及格。这日寸使用逻辑运算符。逻辑运算符共有三种:&逻辑与|逻辑或!逻辑非这3个运算符按高到低的优先级顺序是“!&、“|”一般而言,单目运算符优先级较高,赋值运算符优先级低

17、。算术运算符优先级较高,关系和逻辑运算符优先级较低。回!M怒岗蕊/c语言程序设计:第二 分支结构【实例】编写程序,判 断某人的体重是否在50公斤至55公斤 之间,若在此范围 之内,显示“Ok”,否则显示“No”。1.编程思路:先将体重存放在变量w中,要使w的值在50至55范围内,应 同日寸满足“w=50”和“w二551 在C语言中用“w=50&w=55”表示w的值是否同日才满足“w=50”和“wO551输入体重W的值显示“0k”显示“No”(Tir rt m科,芳v技力三荽:CofttpBttr Schtet&C语言程序设计第二讲分支结构2.程序代码:#include main()float

18、w=0.0;printf(nInput w:n);scanf(n%fn A&w);printf(nw=%.lfnn Aw);if(w=5 0&wfc语言程序设计,第二 分支结构3.运行结果:第1次运行结果:Input w:53.5回车 w=53.5Ok第2次运行结果:Input w:60.7回车 w=60.7No回!M怒岗蕊/c语言程序设计:第二 分支结构4.归纳分析:程序中的“w=50&w=55”是逻辑表达式。用逻辑运算符把两个C语言表达式连接起来的表达式称为逻辑 表达式。逻辑运算的判断结果也只有“真”或“假”两种 可能,逻辑运算的规则如下:逻辑与:其它为0逻辑或:0|0二0,其它为1逻辑非

19、:!0为1,!1为0,!2为0,!a为0(当a不为0时)逻辑表达式的值也只能是1或0,当逻辑运算的判断结果为“真”时,逻辑表达式的值为 1,否则,逻辑表达式的俱为0。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第=i分支结构2.3学会使用嵌套的i f语句有些问题必须在满足某种条件后,再继续分支处理。例 如,某单位男职工60岁退休,女职工55岁退休,为了判 断某职工是否应退休,首先要判断该职工是男职工还是 女职工,然后再根据职工性别判断年龄是否到规定年龄。这时需要使用 嵌套的i f语句o回!M怒岗蕊/c语言程序设计:第二 分支结构【实例】编

20、写程序,判断若输入的体重大于0且小于200,再 判断该体重是否在50公斤至55公斤之间,若在此范围之内,显示“Ok”,否则显示“No”;若所输入的体重不大于0或不 小于200,则显示“Da ta over!”。1.编程思路:在上实例 中,输入w的值后立刻用if语句实现选择执行“printf(Ok n)或 printf(No n)的功能,但由于 本题 目是在w的值大于0且小于200的情况下,才能执行此if 语句,所以在此if语句外面还需要套另一个if语句。c计疗机科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计第二讲分支结构课堂作业:请根据此图画出其N-S流程图。c计疗机

21、科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计第二讲分支结构2.程序代码:ma in()f l oa t w=0.0;printf(Input w:);sca nf(%f,&w);printf(w=%.If n,w);if(w0&w=50 wfc语言程序设计,第二 分支结构3.运行结果:第1次运行结果:Input w:53.5回车 w=53.5Ok第2次运行结果:Input w:60.7回车 w=60.7No第3次运行结果:Input w:201.7回车 w=201.7Da ta over!回!M怒岗蕊/c语言程序设计:第二 分支结构4.归纳分析:(1)本程序在一个i

22、f语句中包含了另一个if语句。在i f语句 的语句组1或语句组2中 又包含另一个分支结构 的 i f语句称为 嵌套的i f语句。(2)本程序中出现了两次el se。C语法规定,在if语句中,若多次出现el se,则每一个 el se总是与前面最近的if配对,所以本例题中第一个 el se与内嵌的if配对,第二个el se与最上面的if配对。程序中由于采用了缩进格式,if与el se的配对关系一目 了然。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第=i分支结构2.4学会使用if-el se if形式的嵌套if语句【实例】编写程序,求下面分

23、段函数的值,入。0(x0)rx+2(0 x5)y=Jj x2-3(5xf,第二 分支结构c语言程序设计(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第=i分支结构2.程序代码:f tincl ude ma in()f l oa t x=0,y=0;printf(Input x:);sca nf(%f,&x);if(x0)y=0;el seif(x5)y=x+2;el seif(xfc语言程序设计,第=i分支结构2.5 switch语句在日 常生活中经常遇到菜单选择操作,例如,用A T M自 动取款机取钱日寸,从菜单中可以选择语种

24、、取款额;用自 动服务系统给手机充值日寸,可以选择查余额还是充值,对 本机充值还是对其他号码充值等。这些问题一般使用 swi t ch语句解决。总之,这些问题都是多分支情况。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第=i分支结构【实例】编写程序,在如下菜单中选择一个运算类型,并 进行相应的运算。如选择了加法,则进行求和运算。Pl ea se choose+:a ddition一:subtra ction*:mul tipl ica tion/:division回!M怒岗蕊/c语言程序设计:第二 分支结构1.程序代码:ttincl ud

25、e ma in()f l oa t a=5.0,b=2.0,c=0.0;cha r sym=0;printf(/zPl ea se choose n);printf(/z+:a dditionn);printf(/z-:subtra ctionn);printf(/z*:mul tipl ica tion n);printf(/z/:divisionn);sym=getcha r();printf(f%c%f=,a,sym,b);/*显示算式*/(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第二 分支结构switch(sym)c

26、a se +ca se -ca se *ca se/计算算式c=a+b;brea k;c=a-b;brea k;c=a*b;brea k;c=a/b;brea k;printf(f n,c);显示结果(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第二 分支结构2.运行结果:Pl ea se choose+:a ddition-:subtra ction*:mul tipl ica tion/:division/回车5.000000/2.000000=2.500000c计疗机科,芳V投企至二9f CofttpBttr Schtet

27、&Tt:bno!ifc语言程序设计,第=i分支结构3.归纳分析:switch语句的一般形式为:switch(表达式)ca se 表达式1:语句组1 brea k;ca se 表达式2:语句组2 brea k;ca se 表达式n:语句组n brea k;def a ul t:语句组 n+1 brea k;其中switch、ca se、def a ul t和brea k是关键字,所有表达式均 为整型或字符型。在表达式1、表达式2、表达式n中只能 出现常量和运算符,而且每个表达式的值不能相等。回!M怒岗蕊/c语言程序设计,第二 分支结构2.6条件运算符及其表达式C语言中条件运算符由“?”和“:”组

28、成,例如“a b?a:b”。条件表达式的一般形式为:表达式1?表达式2:表达式3当表达式1的值为非0时,以表达式2的值作为条件表达式的值,否则,以表达式3的值作为条件表达式的值。例如,当a b 成立时,条件表达式“a b?a:b”的值为a中的值,否 则为b中的值。使用条件表达式也可以实现分支结构。回!M怒岗蕊/c语言程序设计:第二 分支结构课堂讨论:谁做的好事?忻州师院有四位同学中的一位做了好事,不留名,表扬信来 了之后,校长问这四位是谁做的好事。A说:不是我。B说:是C。C说:是D。D说:C胡说。已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的 人。画出NS流程图并

29、写出程序。C计疗机科,芳V投企至二JLtpdrtmtiat 9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第二讲分支结构1、编程思路:如何找到该人,一定是“先假设该人是做好事者,然后 到每句话中去测试看有几句是真话”。“有三句是真话就确 定是该人,否则换下一人再试 o比如,先假定是A同学,代入到四句话中A说:thisma n!=A;B说:thisma n=C;C说:thisma n=D;D说:thisma n!=D;显然,不是A 做的好事让 thisma n=A;,A-,A-D,A,!二d假,假,假,真,值为0。值为0。值为0。值为1。(四个关系表达式值的和为1)(

30、Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计,第二 分支结构再试B同学,让thisma n=B;A说:thisma n!=A;BMA B说:thisma n=C;B=C C说:thisma n=D;6B=D D说:thisma n!=6D;Bf D代入到四句话中真,值为1。假,值为0。假,值为0。真,值为1。显然,不是B所为(四个关系表达式值的和为2)回!M怒岗蕊/c语言程序设计:第二 分支结构再试C同学,让thisma nFC;A说:thisma n!=A;CM=A B说:thisma n=6C9 C说:thisma n=D D

31、说:thisma n!=D6c 一 C 二D!二D代入到四句话中真,值为1。真,值为1。假,值为0。真,值为1。显然,就是 做了好事(四个关系表达式值之和为3)这日寸,我可以理出头绪,要用所谓枚举法,一个人一个人地去 试,四句话中有三句为真,该人即所求。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifC语言程序设计第三讲循环结构循环结构是程序中一种很重要的结构。其特点 是,在给定条件成立时,反复执行某程序段,直到 条件不成立为止。给定的条件称为循环条件,反复 执行的程序段称为循环体。c语言提供了三种循环语句,可以组成各种不同形式的循环结构,它们是:while

32、语句d o-w h i 1 e 语句for语句回!M怒岗蕊/c语言程序设计第三讲循环结构3.1简单循环【实例】古典问题:有一对兔子,从出生后第3个月起每个月都 生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.该数列的规律为a i=la 2=lan=anT+an-2这里求前20项c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计i=i+1;a1=a2;a2=an;(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet

33、&Tt:bno!ifc语言程序设计第三讲循环结构c语言程序设计(Tir rt m科,芳v技荽 JL/tpdrtmtnt M Conptier Siunct&Tr:A,第三叫环结构2.程序源代码:方法一:f or循环语句 ttincl ude stdio.h ma in()l ong a l,a 2,a n;int i;a l=a 2=l;f or(i=3;ifc语言程序设计第三叫环结构方法二:whil e循环语句 ttincl ude stdio.h ma in()l ong a l,a 2,a n;int i;a l=a 2=l;i=3;whil e(ifc语言程序设计第三叫环结构方法三:d

34、o-whil e循环语句 f tincl ude stdio.h ma in()l ong a l,a 2,a n;int i;a l=a 2=l;i=3;do a n=a l+a 2;printf(a%d=%l d”,i,a n);a l=a 2;a 2=a n;i+;whil e(ifc语言程序设计第三讲循环结构3.归纳分析(1)f or语句格式:f or(表达式1;表达式2;表达式3)语句即:f or(循环变量赋初值,循环结束条件,语句循环变量增值)(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第三叫环结构For语句执行过程

35、(Tir rt m科,芳v技力三荽:9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第三叫环结构表达式可以省略,但分号不能省略a)省略表达式1i=lf or(;i=50;i+)sum=sum+2*ib)省略表达式2-产生死循环f or(i=l;i+)sum=sum+2*ic)省略表达式3f or(i=l;i=50;)sum=sum+2*i;i+;d)省略表达式1,省略表达式3i=lf or(;i=50;)sum=sum+2*i;i+;久以.巧妙展印警”/C语言程序设计第三讲循环结构表达式1,表达式3可以是:a)简单的表达式b)逗号表达式表达式2 一般是关系表达式或逻辑

36、表达式例:f or(sum=0,i=l;i=50;i+,i+)sum=sum+2*i;或:f or(sum=0,i=l;ifC语言程序设计第三讲循环结构(2)whil e语句的一般形式为:whil e(表达式)语句;其中 表达式是循环条件,语句为循环体。whi l e语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计 第 勾使用whil e语句应注意以下几点:1.whil e语句中的表达式一般是关系表达或逻辑表达式,只 要表达式的值为真(非0)即可继续循环。2.循环体如包括有一个以

37、上的语句,则必须用。括起来,组成复合语句。3.应注意循环条件的选择以避免死循环,一般需要在循环体 中动态改变循环条件的值。回!M怒岗蕊/c语言程序设计第三讲循环结构(3)do-whil e语句的一般形式为:do语句;whil e(表达式);其中语句是循环体,表达式是循环条件。do-whi l e语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。do-whi l e语句和whi l e语句的区别在于do-whi 1 e是先执行后 判断,因此do-whil e至少要执行一次循环体。而whil e是先 判断后执行,如果条件不满足,则一次循环体语句也不执 行

38、。回!M怒岗蕊/c语言程序设计第三讲循环结构(4)循环体语句可使用brea k 和continue语句brea k:可以用来从循环体内跳出循环体(提前结束循环)continue:用于跳过循环体中下面尚未执行的语句,接着重 新执行循环的判断例:输出100以内能被7整除的数。int n;f or(n=7;nfc语言程序设计 第 勾练习:1.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项之和。2.求1+2!+3!+.,+20!的和。3.用牛顿切线法求x-sin(x)=0在区间(0,冗)之间的解。4.任意输入两个数,求这两个数的最大公约数。5.从键盘输入一个

39、数判断其是否为素数。回!M怒岗蕊/c语言程序设计第三讲循环结构作业:1.2.3.4.求s=a+a a+a a a+a a a a+a a.a的值,其中a是一个数字。例 如2+22+222+2222+22222(此时共有5个数相加),几个数 相加由键盘输入控制。一球从100米高度自由落下,每次落地后反跳回原高度的 一半;再落下,求它在第10次落地时,共经过多少米?第 10次反弹多高?求1+2!+3!+.+20!的和猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一 半,还不瘾,又多吃了一个。第二天早上又将剩下的桃产 吃掉一半,又多吃了一个。以后每天早上都吃了前一天利 下的一半零一个。到第10天早

40、上想再吃日寸,见只剩下一个 桃子了。求第一天共摘了 多少?c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifC语言程序设计第三讲循环结构3.2循环的嵌套使用【实例】搬砖问题。36块砖,36人搬,男搬4,女搬3,两 个小孩抬一砖,要求一次全搬完,问男、女、小孩各若干?1.分析:列方程,得出问题条件:w+m+c=3 64*m+3*w+c/2=36可以用枚举的方法,让变量w在09、m在012、c在 036的偶数中取值,形成满足上述条件的w、m、c的组合c计疗机科,芳V投企至二JLtpdrtmtiat 9f CofttpBttr Schtet&Tt:bno!ifc语言

41、程序设计第三讲循环结构N-S流程图m=0m9w=0w12c=36-m-w 且 c%2=0输出m、w、cw=w+1;m=m+1;久以.巧妙展印警”/C语言程序设计第三讲循环结构2.程序main()int m,w,c;for(m=0;m9;m+)for(w=0;wfc语言程序设计练习:1.输出9*9口诀。2.判断101-200之间有多少个素数,并输出所有素 数。3.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,因为 153=1的三次方+5的三次方+3的三次方。回!M怒岗蕊/c语言程序设计第三讲循环结构作业:1.将一个正整数

42、分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结 束,打印出即可。(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。回!M怒岗蕊/c语言程序设计第三讲循环结构课堂讨论:五位跳水高手将参加十米高台跳水决赛,有好事者让 五个人据实力预测

43、比赛结果。A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错,请编程解出比赛的实际名次。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计思路:1 首先是将五个人的预测写成逻辑表达式:让关系运算符“二”的含义是“是”。让数字1、2、3、4、5分别表示名次第一、第二,第五。让整型变量A、B、C、D、E分别表示每个选手所得名次。A选手说:B=2,A=3;B选手说:B=2,E=4;C选手说:C=l,D=2;D选手说:

44、C=5,D=3;E选手说:E=4,A=l;回!M怒岗蕊/c语言程序设计第三讲循环结构2 考虑到每个人说的话是一对一错,即一真一假,比如A说 的,若B=2为真,则A=3为假,为真取值为1,为假取值 为0,则两个关系表达式之和必为1。即(B=2)+(A=3)应该是 1我们可以归纳 出要同日才满足五个人所说的话都符合一半对一半错的条件是ta=(B=2)+(A=3)=1 tb=(B=2)+(E=4)=l tc=(C=l)+(D=2)=1 td=(C=5)+(D=3)=l te=(E=4)+(A=l)=1符合A选手的话,则ta为1 符合B选手的话,则tb为1 符合C选手的话,则tc为1 符合D选手的话,

45、则td为1 符合E选手的话,则te为1c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计3.仍然可以用枚举的方法,让变量A、B、C、D、E在15中取 值,形成满足上述条件且A、B、C、D、E取值均不同的A E 的组合,即是所求。可以考虑A、B、C、D、E取值均不同的条件为A*B*C*D*E=120c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计室三讲循环结构For(A=1;Av=5;A+)For但=1jBv=5;B+)R)r(C=1;侯=5;C+)Fqr(D=1;Dv=5;D+)td、te求ta、

46、tb tct=tA+tb+tc+td+tRe俞出ABCDEc计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifC语言程序设计第三讲循环结构作业:某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析:1)A、B至少有一人作案;2)A、D不可能是同案犯;3)A、E、F三人中至少有两人参与作案;4)B、C或同时作案,或与本案无关;5)C、D中有且仅有一人作案;6)如果D没有参与作案,贝!J E也不可能参与作案。试编一程序,将作案人找出来。回!M怒岗蕊/c语言程序设计第三讲循环结构1 案情分析:将案情的每一条写成逻辑表达式,第一条用CC1表示,第二条用CC2表示,.CC1:A

47、和B至少有一人作案令A变量表示A作案B变量表示B作案A B CC10 0 01 0 10 1 11 1 1显然这是或的关系,因此有CC1=(A|B)c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计第三讲循环结构CC2:A和D不可能是同案犯可以分析为:A如果是案犯,D一定不是案犯,写成A&(!D)D如果是案犯,A一定不是案犯,写成D&(!A)这两者之间是或的关系,因此有 CC2=!(A&D)A D A&D1 0 01 1 10 0 00 1 0CC21011c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifC语言

48、程序设计第三讲循环结构CC3:A、E、F中有两人涉嫌作案,分析有三种可 能第一种,A和E作案,(A&E)第二种,A和F作案,(A&F)第三种,E和F作案,(E&F)这三种可能性是或的关系,因此有 CC3=(A&E)|(A&F)|(E&F)c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计CC4:B和C或同时作案,或都与本案无关第一种情况:同时作案(B&C)第二种情况:都与本案无关(!B&!C)两者为或的关系,因此有CC4=(B&C)|(!B&!C)CC5:C、D中有且仅有一人作案CC5=(C&!D)|(D&!C)CC6:如果D没有参与作案,贝!J

49、 E也不可能参与作案。CC6=!D-!E=D!Ec计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计2采取枚举方法,枚举什么呢?枚举组合。6个人每个人都有作案或不作案两种可 能,因此有26种组合,从这些组合中挑出符合6条 分析的作案者。定义6个整数变量,分别表示6个 人A,B,C,D,E,Fo 枚举每个人的可能性:让0 表示不是罪犯;让1表示就是罪犯。c计疗机科,芳V投企至二9f CofttpBttr Schtet&Tt:bno!ifc语言程序设计室三讲循环结构for(A=0;Av=1;A+)for(B=0;B=1;B+)for(C=0;Cv=1;

50、C+)for(D=0;Dv=1;D+)for(E=0;Ev=1;E+)for(F=0;F=1;F+)计算CC1 CC2 CC3 CC4 CC5 CC6输出ABCDEF为1的温焉以盘艺.湍口/C语言程序设计 第四讲数组问题:哪只羊最重?中秋佳节,有贵客来到草原,主人要从羊群中 选一只肥羊宴请宾客,当然要选最重者。这样 就要记录每只羊的 重量,如 果有成千上万只羊,不可能用一般变量来记录。可以用带有下标的 变量,也就是这里要讲的数组。c计疗机科,芳V投企至二9f CofttpBttr Schtet&C语言程序设计 第四讲数组以篇配管篇算条/安/C语言程序设计 第四讲数组2.程序ma in()f l

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服