第3章 C语言程序的控制结构(1)

合集下载

c程序设计(第二版)

c程序设计(第二版)

c程序设计(第二版)C程序设计是一门基础而重要的计算机科学课程,它为学习者提供了一种高效、灵活的编程工具。

在《C程序设计(第二版)》这本书中,我们将深入探讨C语言的基本概念、语法结构、编程技巧以及实际应用。

这本书适合初学者和有一定编程基础的读者,旨在帮助他们掌握C语言编程的精髓。

第一章:C语言概述C语言是一种通用的、过程式的编程语言,由Dennis Ritchie在20世纪70年代初期开发。

它以其高效性、灵活性和广泛的应用领域而闻名。

C语言是许多现代编程语言的基石,包括C++、Java和Python等。

第二章:C语言基础本章将介绍C语言的基本元素,包括变量、数据类型、运算符和表达式。

我们还将学习如何编写简单的C程序,包括程序的结构和基本的输入输出操作。

第三章:控制结构控制结构是程序设计中的核心概念之一。

本章将介绍C语言中的三种基本控制结构:顺序结构、选择结构(if语句和switch语句)和循环结构(while循环、do-while循环和for循环)。

第四章:数组数组是存储一系列相同类型数据的集合。

本章将讨论一维数组和二维数组的声明、初始化和操作,以及如何使用数组处理更复杂的数据结构。

第五章:函数函数是C语言中实现代码复用的重要机制。

本章将介绍如何定义函数、调用函数、传递参数以及返回值的使用。

此外,还将讨论递归函数和函数指针的概念。

第六章:指针指针是C语言中一个强大的特性,它允许程序员直接操作内存地址。

本章将解释指针的基本概念,包括指针的声明、指针与数组的关系以及指针在函数中的应用。

第七章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的方式。

本章将介绍如何定义和使用结构体和联合体,以及它们在实际编程中的应用。

第八章:预处理器预处理器是C语言编译过程中的一个阶段,它处理源代码中的宏定义、文件包含和条件编译指令。

本章将讨论预处理器的工作原理和常用指令。

第九章:文件操作文件操作是程序与外部数据交互的重要方式。

《C语言程序设计》学习指南

《C语言程序设计》学习指南

学习指南一、学习资源与学习方法C语言程序设计是计算机专业的一门基础课程,本课程主要是培养学生利用计算机处理问题的思维方式和结构化程序设计的基本方法。

掌握C语言进行程序设计,对于理解程序设计的基本方法,以及日后学习计算机学科的其他知识内容都是至关重要的。

在资源建设上,根据学生的学习条件差异和学习基础的差异,提供多种形式的学习资源,如教师全程授课视频、期末辅导光盘、网络交互平台、教材和参考资料。

还提供了一些在深度和广度上有一定扩展的资源,如在每一章中都提供了扩展知识供有能力的学生学习,在一些知识点链接了一些课外阅读资源,从深度和广度上满足不同层次学生的不同需求。

(1)立体化教材及学习资源建设和研制了以国家十一五规划教材为基础,知识点导学系统、电子教案、全程课程录像、网络课件、在线测试、考试系统和试题库、资源库、网上教学支撑软件平台等丰富的立体化教学资源,它们各自自成体系又相互关联,各种媒体互相补充,充分发挥了各自的优势,满足了远程计算机专业学习者的需求。

学习资源全部放在教学网站上,实现资源共享,为每个学生提供一个网络帐号,实现网上交互答疑和交流。

尤其是资源库应用系统,将已有的各种数字媒体资源融合在一起,为学生提供直观的导学;同时还为教师提供教学帮助。

学生可以通过资源库的信息索引快速找到要学习知识点的所有资源列表,从中选择所需媒体。

(2)基于课程知识体系的视频讲授结合网络教育的教学对象为成人、学习方式为业余学习的特点,网络学习者学习时间不连贯、不固定的特征,网络课件的设计都是以知识点为基本单元,采用化整为零的思想,按照课程的每个章、单元、知识点进行课程视频的录制,每个知识点设计10~20分钟左右的时长,保证学习者能够利用零散时间学习。

(3)增加交互性和案例教学考虑到远程教学师生分离,学生以自学为主,因此在教学资源设计上注意增加交互性。

例如,专门做了媒体资源库,包括大量动画演示和视频录像,使课件更加生动。

C语言程序的流程控制

C语言程序的流程控制

第3章C语言程序的流程控制利用计算机进行程序设计时,不仅仅只处理一些简单的数据,在大部分的程序设计里处理的问题还是相当复杂的。

对于那些复杂的程序设计,读者不可能直接就能写出程序的源代码,而是要通过一些具体的设计方法(如用程序流程图)把程序设计思想先写出来,然后根据程序流程图编写代码。

本章将具体介绍进行程序设计时使用的基本方法和C程序的流程控制。

3.1程序设计的基本知识3.1.1程序流程图在描述一个程序的基本结构思想时有很多种方法,其中程序流程图是最常用也是最基本的方法。

1.传统程序流程图传统流程图表示法的特点是用一些图框表示各种类型的操作,用线表示这些操作的执行顺序。

美国国家标准化协会ANSI规定了一些常用的流程图符号,现已为世界各国普遍采用。

我国也有自己的国家标准GB 1526-89与该标准基本相同,本书就参照ANSI标准做具体介绍。

标准中各种图示如图3.1所示。

起止框输入输出框判断框处理框或流程线连接点注释框图3.1 传统流程图表示法下面对其中一些主要符号作简要说明:(1)起止框是用来标识程序的开始和结束位置的。

规定流程图以起止框开始,以起止框结束。

(2)输入输出框也叫数据框,其中可以注明数据名称、来源、用途或其它的文字说明。

(3)菱形框的作用是对一个给定的条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。

(4)处理框用矩形表示各种处理功能。

例如,执行一个或一组特定的操作,从而使信息的值、信息的形式或所在位置发生变化。

另外在矩形框内可注明特定处理名称或其简要功能。

(5)流程线用带箭头的直线表示程序的执行顺序。

当流程自左向右或自上向下时流程线可以不带箭头,其它情况应加箭头表示流程。

(6)连接点用小圆圈表示将画在不同地方的流程线连接起来。

下图中有两个以①为标志的连接点,它表示这两个点是互联在一起的,实际它们是同一个点。

这种连接通常用在图形画不下而需要分开画时。

①①(7)注释框不是流程图的必要部分,其不反映流程操作,只是为了流程图中某些操作做解释补充的,以帮助阅读流程图的人更好的理解流程图的作用。

C语言程序控制结构(zhh)

C语言程序控制结构(zhh)

否构成三角形。
如果能构成三角 形则计算面积,
否则给出相应信
息。
#include <math.h> #include<stdio.h> void main( ) { float a,b,c,s,area; scanf("%f,%f,%f",&a,&b,&c); if(a+b>c&&b+c>a&&a+c>b) { s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%7.2f\n",area); } else printf(“input data error”); } 25
int s;
scanf(“%d”,&s); if(s>=90) printf(“A”);
else if(s>=80) printf(“B”);
else if(s>=70) printf(“C”); else if(s>=60) printf(“D”); else printf(“E”); }
if(s>=80) printf(“B”);
11
第三章 程序控制结构
条件运算符和条件表达式

条件运算符
?:

条件表达式的形式为:
if 表达式1!=0 表达式2 else 表达式3

表达式1?表达式2:表达式3 这就是条件表达式,先计算表达式1,若其 值为非零,则结果为表达式2的值,否则就 是表达式3的值。
12
第三章 程序控制结构

用条件运算符实现例3-1。 #include <stdio.h> void main() { int a,b,max; scanf("%d,%d",&a,&b); max = a > b ? a : b; printf("max= %d\n",max); }

C语言高教版第3版第三章三种基本控制结构上课件

C语言高教版第3版第三章三种基本控制结构上课件

„a‟<‘b‟ <‘c‟
关系表达式的值是一个逻辑值,即 【例2.18】判断以下关系表达式的值。 • “真”或“假”。 当 a = 3, b = 2, c = 1,请判断表达式的值 C语言没有逻辑型数据,以1代表“真”, 1. a > b 以“0”代表“假”。 1
2. (a > b) == c
只在a为假时,才判别b的值; 只在a、b都为假时,才判别 c的值
例 a=1;b=2;c=3;d=4;m=1;n=1; (m=a>b)&&(n=c>d)
结果m=0,n=1
【例】逻辑表达式的短路特性。例
复杂逻辑条件的表述
• 判断某一年year是否为闰年 1. 闰年 (year%4==0 && year%100!=0)||(year%400==0)
! 优先级:第2级 结合方向:自右向左
&&
||
优先级:第11级 结合方向:自左向右
优先级:第12级 结合方向:自左向右 /* 等价于(a<=x) && (x<=b)*/ /* 等价于(a>b)&&(x>y) */ /* 等价于 (a==b)||(x==y) */ /* 等价于(!a)||(a>b) */
有一个或多个输出
二、算法的描述工具
自然语言
(通俗易懂, 文字冗长, 容易有“歧义性”)
流程图
(灵活, 自由, 形象, 直观, 易理解, 占篇幅大)
N-S图
(新型流程图, 简洁)
伪代码
(介于自然语言和计算机语言之间, 中英文皆可,格式 自由, 易修改, 不直观, 不容易发现逻辑错误)
计算机语言
(用计算机实现算法, 可以执行出结果, 比如 C 语言)

C语言_第3章

C语言_第3章
第3章 顺序结构程序设计
简单程序的流程一般分为顺序结构、选择结构和循环结 构。其中顺序结构是最基本的控制结构,其包含的语句 是按照书写的顺序执行,且每条语句都将被执行。
程序流程如图3.1所示, #include<stdio.h> 语句按书写顺序执行。 main( ) 先执行A,再执行B。 {int a=10,x=5,y=6;
三、复合语句
用一对花括号,把若干条语句括起来,
就形成了一条复合语句。形式如下:
{[内部数据描述语句]
其中定义的变量是
语句1; …… 语句n;}
复合语句结束的 “}”之后,不需
局部变量,仅在复 合语句中有效。
要再加分号。
花括号中的语句,可以是简单语句、空语句、复合 语句、流程控制语句,所有这些语句括在一起,在 语法上看成是一条语句,执行时顺序执行花括号中 的每条语句。复合语句多用于流程控制语句中。
printf(“\n%d,%d”,a+i,i++);}
四、格式输入函数 格式输入函数一般形式 scanf(“格式控制字符串”,地址列表); 功能:按指定的格式从键盘上把数据输入到指定的 变量之中 。 在scanf语句的格式控制字符串中,有两类字符: 普通字符:必须按原样输入,不能省略; 格式说明部分:由%引导的格式字符串组成。
scanf语句格式说明部分的一般格式为: %[*][width][F|N][h|L]type type是必须的,表示输入后转换的数据类型。
d(D) o(O) x(X) i(I) u(U)
c s f,e,g F,E,G n
%
十进制整数 八进制整数 十六进制整数 自动根据数头分辨十、八、十六进制 无符号十进制整数 单个字符 字符串 实数

C语言程序设计教程(电子教案)

C语言程序设计教程(电子教案)
实用文档
学习目标
对C语言有一个概括的了解, 能够编写包含键盘输入、计算和 显示输出等操作的简单C程序。
4
主要内容
• C语言的产生与特点 • 简单C程序的组成 • C语言应用程序开发的基本步骤
5
1.1 C语言的产生及特点
C语言是为了编写系统程序而在1968年开始 研发的计算机高级语言
C语言表达能力强,使用灵活,程序结构清 晰,紧凑,可移植性好
指针 类型
17
基本数据类型说明符
整型:int long
字符型:char 实型:float
double long double
18
2.2 常 量
常量∶在程序运行过程中,其值不能被改 变的量。
一. 不同数制整型常量的表示
例如: 12 :十进制数 12
012 :八进制数 12(等于十进 制数10,用前导符0表示八进制数常量)
计算x+y+z,并将结 8果赋给变量sum
显示变量 sum的值
主函数 main()
一般C程序的组成
【例1-2】采用模块结构,改写例1-1的程序。 add(int x,int y,int z )
{ return(x+y+z);
}
函数add()
调用函数 add()
main() { int x,y,z; printf("Please Input Three Integers:\n "); scanf("%d,%d,%d ",&x,&y,&z);
4. 用‘\’ ’表示字符’ ,‘\”’表示字符”, ‘\\ ’表示字符\ 。
5. 用双引号括起来的字符序列表示字符串常量,其 中最后一个字符是字符串结束符‘\0’,不显式 地表示出来。如:“English” 。

C语言程序设计基础讲解PPT第3章(第二讲)

C语言程序设计基础讲解PPT第3章(第二讲)

14
与 哪 个 if 配 对 ? ⑶ if (c<=100) if (c>=50) printf("50<=c<=100\n"); else printf("c<50\n")
2019/1/8
再例如:
if(a>b) if(a>c) if(a>d) m=1; else m=2; else m=3; 问题:哪一个 else 和哪一个 if 相匹配?
24
2019/1/8
注意:

25


switch语句的书写格式:语句体本身必须用花括 号括起;case和default后面如果有多条语句, 则可以不必使用花括号;case和常量表达式之 间必须有空格;default可以写在语句体的任何 位置,也可以省略不写 break语句可以改变case的语句标号作用,终止 后续case语句序列的执行。 switch语句和break 语句结合,可以实现程序的选择控制(break语 句还可以在循环语句中使用) 允许switch嵌套使用,但同一个switch语句中, 任意两个case的常量表达式值不能相同。
2019/1/8
程序:
#include "stdio.h" main( ) { char ch; ch=getchar( ); if (ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch ); } 可使用条件表达式代替
程序运行情况如下: putchar(ch>='A' && ch<='Z' ? ch+32:ch); G putchar (' \n') g

第三章作业-程序控制结构教程文件

第三章作业-程序控制结构教程文件

第三章程序控制结构通过本章实验作业应达目标1.熟练掌握格式输入与格式输出函数与各种格式符的使用,掌握各类数据输入/输出的实现方法;2.学会正确使用关系与逻辑运算,熟练构建关系与逻辑表达式;3.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构;4.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构;5.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。

6.进行算法设计训练,能综合所学控制结构语句解决一般问题。

本章必须上交作业第一部分输入/输出作业要求程序3_3.c上传至http://121.251.227.27:8080/c。

源程序可以.cpp命名。

第二部分分支结构作业要求程序3_5.c、3_6.c、3_8.c上传至http://121.251.227.27:8080/c。

第三部分循环控制结构作业要求程序3_9.c、3_11.c、3_13.c、3_14.c、3_15.c、3_16.c、3_19.c上传至http://121.251.227.27:8080/c。

第一部分顺序结构与输入/输出程序设计实验一一个三位数逆序输出【实验目的】了解顺序程序结构,学习调试程序。

【实验内容】下面程序功能:键盘输入一个三位数,输出逆序后的数。

例如,输入236,输出632。

程序中有多处错误,改正后在机器上调试通过。

程序以3_1.c命名。

#include<stdio.h>void main(){int x,int y;int a,b,c;a=x/100;b=x/10%10;c=x%10;printf("Please input a num:");scanf("%d",&x);y=100c+10b+a;printf("y=%d\n",y);}【思考】如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?实验二字符数据输入/输出【实验目的】学习字符数据的输入与输出,学习getchar()/putchar()函数使用。

c语言chap3控制结构

c语言chap3控制结构

格式控制组成:
普通字符(不含%的字符),原样输出(可为转义字符) 格式说明符(%格式字符),控制输出数据的格式。
2. 输出表列:需要输出的数据,以,分隔。可为常、 变量、表达式、函数,受格式控制中格式符的控制。
也可以没有输出表列,如:

printf(“Name\tAdd\tTel\n”);
Chap3 控制结构
Chap3 控制结构
7、f格式符:按小数格式输出实数。
%f
%m.nf %-m.nf %lf
按小数格式输出,整数部分全输出,6位小数
输出占m列(含小数点),其中n位小数(四舍五入) 同上,左对齐 用于double型数据
printf("%0.3f",123.45678); 显示 123.457
Chap3 控制结构
用于long(%ld)和double(%lf)型数据 用于短整型数据(%hd、%ho、%hx)
域宽(一个正整数)
*
Chap3 控制结构
指定输入所占宽度
表示对应输入量不赋给一个变量
说明
1. 可以指定输入数据的列数,系统自动按它截取所需数据。 例:scanf("%2d%3d",&a,&b); 输入 123456↙系统自动将12赋给a,345赋给b。 2. *格式用于跳过一个数据域
结果:123□□□123□00123,
□123456□□□123456□00123456 强调: 对long型数据要用%ld输出,若用%d可能会发生错误。 同理, short int 数据要用%hd
Chap3 控制结构
2. o(字母)格式符: 按八进制无符号数的格式输出。符号位作为数一并输出。 例:short int a=-1; printf(‚a=%hd,%ho\n‛,a,a);

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

《C语言程序设计》课程教案表算法2:分析:设想用sum作为累加器,初值为0,利用sum+=i(i依次取值为1、2。

100)此分析需要解决的3个问题:1)sum=0,i=1;2)每执行一次sum+=i 后,i增1(i=i+1);3)判断如果i小于或等于100,重新执行步骤(2),否则停止计算main(){int i,s=0;i=1;while(i<=100)/*i<=100为循环条件*/{s=s+i;i++; /*改变i的值*/}printf(″s=%d″,s);}运行结果:s=5050说明:循环结构的三个术语:1、循环条件:循环结构中的条件表达式如while (i<=100)其中,i<100就是循环条件。

2、循环体:在每个循环周期均要执行一次的语句序列。

如while下用{ }括起来的语句序列。

3、循环控制变量:能够决定控制条件是真是假的量。

如while(i<=100)中的变量i要写出一个正确的循环结构,对控制变量要做三方面的工作:1、对循环控制变量赋初值。

2、将循环控制变量写入正确的控制条件。

3、对循环控制变量值的更新。

使用while语句需要注意以下几点:while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的语句。

因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。

当循环体为多个语句组成,必须用{}括起来,形成复合语句。

在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,gotowhile(s<=10){s=s+i*i;i++;}printf(“%d”,--i);}A) 4 B) 3 C) 5 D) 6对以下程序段,描述正确的是________________。

int x=0,s=0;while(!x!=0) s+=++x;printf(“%d”,s);A) 运行程序段后输出0 B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次下面程序段的运行结果是[ ]。

c语言程序设计的三种基本结构

c语言程序设计的三种基本结构

c语言程序设计的三种基本结构
C语言程序设计的三种基本结构是顺序结构、选择结构、循环结构,它们是用来控制程序的控制结构。

顺序结构是汇编的一种基本语句,它是按程序的书写顺序从上而下执行的,也就是按书写程序的步骤和顺序执行的,可以把它看作是一条简单的无条件的执行路径。

在顺序结构中,程序按书写顺序按步骤执行,也就是一个顺序执行的过程,每一步必须按书写顺序被依次执行完成。

选择结构,也叫判断结构或条件结构,是基于一定条件选择不同程序段执行的结构,它通过判断要进行的操作,加以控制选择结构的程序段的执行顺序,从而实现不同的判断功能。

对于C语言,选择结构提供了两个结构形式,一个是IF结构,另一个是SWITCH结构,它们具有相同的功能。

循环结构是C语言控制程序中最为重要的一种控制结构,它既可以控制指定量次数的程序段按规定顺序循环执行,又可以控制程序段按照某一条件不断循环执行,直到某个条件不再满足为止。

C语言有三种循环结构,分别是FOR循环、WHILE循环和DO…WH ILE循环。

c语言第3章

c语言第3章

3.2.2 例题与分析
例题3.3 根据输入的加或减运算符,输出任意两个
分析本题的含义是根据用户从键盘输入的加运算符 或减运算符,在屏幕上输出相应的运算结果。首先 对题目进行分析和分解,然后再进行代码设计。问 题分析如图3.1
整型变量iop1, iop2 整型变量result 字符型变量operator
1 (x 0) y 0 (x 0)
1 (x 0)
为了避免此种情况,采用办法与情况1相似。改变 if...else的匹配关系,将情况2的代码修改如下,即 可正确表示符号函数。
if(x < 0) y = -1;
else if (x!=0) y = 1;
else y = 0;
例题3.6 求一元二次方程ax2+bx+ c = 0 分析由代数知识可知,方程的解有3种不同的情况,
/* 获得运算符 */
printf("please enter tow numbers:");/* 获得操作数 */
scanf("%d%d", &iop1, &iop2); if(operator == '+')/*由运算符决定不同运算*/
result = iop1 + iop2;
else
result = iop1 - iop2; printf("\n%d %c %d = %d\n", iop1, operator, iop2, result); /* 输出结果 */ }
方法1 main() {
int x, y; printf("please input a integer:"); scanf("%d", &x); if (x > 0) y = 1; else if (x == 0)

第3章 程序的控制结构.ppt

第3章 程序的控制结构.ppt
35
3.2 C语句概述
前面设计好的算法在计算机中主要是通过各种语言所提供 的语句来实现。和其它高级语言一样,C语言的语句用来向计 算机系统发出操作指令。一个语句经编译后产生若干
C语言中的语句可以分为以下五类: 1.函数调用语句 由函数名、实际参数加上分号“;”组成。其一般形式为:
3.1.2 算法的表示
例:判定2000~2500年中的每一年是否闰年, 并将结果输出。
分析:闰年的条件是:(1)能被4整除,但不能 被100整除的年份都是闰年,如1996,2004年 是闰年;(2)能被100整除,又能被400整除的 年份是闰年。如1600,2000年是闰年。不符合 这两个条件的年份不是闰年。
9
开始
sum=0
i=1 N
i<=100 Y sum=sum+i
i=i+1
输出sum的值
结束 图3-1 例3-2算法描述
缺点:难以阅读、修改,使算法的 可靠性和可维护性难以保证。 传统流程图的流解程决:办法:必须限制箭头的滥用, 即不允许无规律地使流程随意转向, 只能顺序地进行下去。
这种如同乱麻一样的算法称为BS型算法,意为 一碗面条(A Bowl of Spaghetti),乱无头绪。
s1: 计算 1 + 2; ss29:9使: 得sums1=+su3m; +100; s再3:次使观得察s2上+述4的; 算法,可以考虑再使用一个变量i来表 示加数,让i从2开始,不断地做sum=sum+i 这一个相同的 循环计操算作10,0以直内到自i超然过数10的0为和止,。需于要是99可个以步得骤到。改进的算法 如下即:s99: s98 + 100。
8
3.1.2 算法的表示

第3章 基本的程序流程控制结构

第3章 基本的程序流程控制结构
3.3.5 选择结构程序举例
计算机程序设计基础(C语言) 3.3 选择结构的流程控制
3.3.1 条件判断
在顺序结构中,各语句是按排列的先后次序顺序执行的, 是无条件的,不必事先作任何平判断。但在实际中,常常 有这样的情况:要根据某个条件是否成立决定是否执行指 定的任务。例如: 如果你在家,我去拜访你; (需要判断你是否在家) 如果考试不及格,要补考; (需要判断是否及格) 周末我们去郊游; (需要判断是否是周末) 如果x>y,输出x,否则输入y。 (需要判断x是否大于y) 判断的结果应该是一个逻辑值:“是”或“否”,在计算 机语言中用“真”和“假”表示。例如,当x>y时,满足 “x>y”条件,就称条件“x>y”为真,如果x≤y,不满足 “x>y”条件,就称条件“x>y”为假。
}
计算机程序设计基础(C语言)
例3.3 求4个数中的最大值。
算法分析:程序的功能是输入4个数给a,b, c,d。把a先赋予变量max,再用语句判别 max和b的大小,如max小于b,则把b赋予 max。同理,max继续跟c和d比较即可使 得max中总是大数,最后输出max的值就 是4个数中的最大值。


计算机程序设计基础(C语言)
在判定两个浮点数是否相等时,由于计算机存储上 出现的误差,会出现错误的结果。例如: 1.0/3.0*3.0==1.0 在数学上显然应该是一个恒等式,但由于1.0/3.0得 到的值的有效位数是有限的,并不等于,因此上 面关系表达式的值为0(假),而不为1(真)。 所以应避免对两个实数表达式作“相等”或“不 相等”的判定。上式可以改写为: fabs(1.0/3.0*3.0-1.0)<1e-5
计算机程序设计基础(C语言) 3.3 选择结构的流程控制

第3章程序控制结构结构化程序的三种基本结构1、顺序结

第3章程序控制结构结构化程序的三种基本结构1、顺序结
第3章 程序控制结构 结构化程序的三种基本结构: 1、顺序结构(order structure) 2、选择结构(selection structure) 3、循环结构(repetition structure)
Bohm和Jacopini的研究证实,所有的程序都能够只用以上 三种控制结构编写。
3.1 C语言的语句
3.3 分支结构 3.3.1 if 语句 一、if语句的三种形式 1、if(表达式) 语句
假 表达式
真 语句
当表达式值为真(非0)时,执 行if中的语句,否则执行if后的 语句。
可以是复 合语句
例: include <stdio.h> main( ) {int x=10,y=20,z;
z=x; if (z>y)
N
a=b=0,c不为0 Y 无解
N
a=0,b不为0 Y x= -c/b
N
d=b*b-4*a*c
d>0
N
d=0
N
1
Y X1= (-b+sqrt(d))/(2*a) X2= (-b-sqrt(d))/(2*a)
Y X1=X2= -b/(2*a)
1 该方程无实根
END
scanf(“%d”,&x); if (x<0) y=-1;
错误!
ssccaannff((““%%dd””,,&&xx));; iiff((xx>>==00))
else if(x==0);
if(x>i0f)(xy>=01); y=1;
y=0;
else ye=ls0e; y=0;
else y=1;
eellsseeyy==--11;;

C语言课件第三章C语言的基本控制结构

C语言课件第三章C语言的基本控制结构

XUAN SHANLI
else stat2;
说明: ①书写采取缩进形式, 便于区分。 ②else与最近的if 相匹 配,从内到外。
if(e2#)include <stdio.h>
svtoatid3; main ( void)
else{
stiantt4x; ,y ;
合 称为isf结ca构nf的(“嵌%套d”。, 各&x种);if结构都
void main(void)
后置:先引用后运算。
{
int a=3,b;
XUAN SHANLI
b=a+++a++;
printf(“b=%d”,b);
合 b=++a+(++a);
printf(“b=%d”,b);
}

工 ⒉在逻辑运算中,如果逻辑值能确定,则不需再进行运算。
int a=0,b=0 ++a || b++; /* b的值?*/
}
内层缩进。
举例:求一元二次方程ax2+bx+c=0的根。
XUAN SHANLI
#include <stdio.h>
#include <math.h>
void main(void)
{
float a,b,c,d,e,x1,x2;
scanf(“%f,%f,%f”,&a,&b,&c);
d=b*b-4.0*a*c;
XUAN SHANLI
第三章 C语言的基本控制结构合
肥 工 业 大 学
问题
b*b-4ac<0?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 C语言程序的控制结构
3.1 算法 3.2 C语句的分类 3.3 输入和输出语句
3.4 顺序程序控制结构
3.5 选择程序控制结构
目录
上一页 下一页
退 出
本章导读
本章包括知识点: 算法的描述方法 数据的输入输出函数调用格式 if语句及switch语句的使用 3种循环结构 break、continue和goto语句的作用 常用算法:如递推法、穷举法等 C程序的基本风格
例如: 格式转换说明符
printf("a= 普通字符
%d
,b=
%d
\n",
目录
a,b);
上一页 下一页 退 出
输出表列
表3-1 printf函数的格式转换说明符
字符 d(或i) 含义 十进制整数 示例 int a=65;printf(“%d”,a); 输出结果 65
u
o x(或X) c s f e(或E) g(或G)
目录
上一页 下一页
退 出
3.1 算法
3.1.1 算法的概念
3.1.2
算法的表示方法
目录
上一页 下一页
退 出
3.1.1 算法的概念
著名的计算机科学家沃思(Nikiklaus Wirth)曾经提 出过: 数据结构+算法=程序 数据结构(data structure):即对数据的描述和组织 形式。 算法(algorithm):对操作或行为的描述,即操作步 骤。 广义地说,算法就是做某一件事的步骤或程序。
算法2: S1:定义循环变量i=1,用于保存和的变量s,并置初值 为0; S2:判断i的值是否小于等于6,若是则执行S3,否则 跳转到S4执行; S3:将i的值累加到s,然后变量i自身加1,转到S2执 行; S4:输出s的值。 算法1是最原始的方法,最为繁琐,步骤较多,当加数 较大时,比如1+2+3+…+10000,再用这种方法是行 不通的;算法2是比较简单的算法,且易于在计算机 上执行操作。
目录
上一页 下一页
退 出
4.用伪代码表示算法
伪代码使用介于自然语 言和计算机语言之间 的文字和符号来描述 算法。它使用起来灵 活,无固定格式和规 范,无图形符号, 只要写出来自己或别 人能看懂就行 ,由于 它与计算机语言比较 接近,便于向计算机 语言算法 (即程序) 过渡。 用伪代码描述的1+2+3+…+6算法 如下: begin /*算法开始*/ 1=>i 0=>s while i≤6 在程序设计中读 { s+i=>s i+1=>i 者可根据需要和 } 习惯任意选用。 print s end /*算法结束*/
例3.1 演示如何使用getchar()和putchar()函数。
#include<stdio.h> main( ) { char c; c=getchar( ); /*从键盘读入一个字符,按回车键
结束输入,该字符被存入变量c*/
putchar(c);
}
目录 上一页 下一页 退 出
注意
①getchar函数无参数,它从标准输入设备(键盘)上 读入一个字符,直到输入回车键才结束,回车前的 所有输入字符都会逐个显示在屏幕上。函数值为从 输入设备输入的第1个字符,空格、回车和Tab都能 被读入。 ②putchar函数的参数是待输出的字符,这个字符可以 是可打印字符,也可以是转义字符。 例如: putchar('\x42'); /*输出字母B*/ putchar(0x42); /*直接用ASCII码值输出字母B*/
3.1.2 算法的表示方法
常用方法有:自然语言、传统流程图、 NS流程图、伪代码等
1.用自然语言表示算法
自然语言就是人们日常使用的语言,可以是汉语、 英语或其他语言。用自然语言表示算法,通俗易懂 ,但文字冗长,在表达上不够严格,引起理解上的 歧义性,不易转化为程序,描述复杂的算法不很方 便。因此,除了很简单的问题外,一般不用自然语 目录 上一页 下一页 退 出 言描述算法。
十进制无符号整数
八进制无符号整数 十六进制无符号整数 单一字符 字符串 小数形式的浮点小数 指数形式的浮点小数 e和f中较短的一种
int a=65000;printf(“%u”,a);
int a=65;printf(“%o”,a); int a=65;printf(“%x”,a); int a=65;printf(“%c”,a); printf(“%s”,”Hello”); printf(“%f”,314.56); printf(“%e”,314.56); printf(“%g”,314.56);
5.பைடு நூலகம்语句
仅仅以分号“;”作为标识。 空语句的形式为:

/*空语句*/
空语句本身没有实际功能,只是表示什么操作都不 做。设置空语句的目的,一是在未完成的程序设计 模块中,暂时放一条空语句,留待以后对模块逐步 求精实现时再增加语句;二是实现空循环等待;三 是实现跳转目标点等。
目录 上一页 下一页 退 出
目录 上一页 下一页 退 出
算法特性
④没有输入或有多个输入。例如:求 1+2+3+…+100时,不需要输入任何信息就 能求出结果;而要求1+2+3+…+n时,必须 从键盘输入n的值,才能求出结果。 ⑤有一个或多个输出。算法的目的是为了求 解,“解”就是算法的输出。没有输出的 算法是没有意义的。
目录 上一页 下一页 退 出
目录 上一页 下一页 退 出
3.2 C语句的分类
C语言的语句可分为5大类: 控制语句 函数调用语句 表达式语句 复合语句 空语句
目录 上一页 下一页 退 出
1.控制语句
控制语句用来实现对程序流程的选择、循环、转向 和返回等进行控制。C语言中共有9种控制语句, 包括12个关键字,可以分为以下几类: 选择语句:if…else和switch(包括case 和 default)。 循环语句:for、while和do…while。 转向语句:continue、break和goto。 返回语句:return。 本章的3.5、3.6和3.7中将陆续介绍这些控制语句。
目录 上一页 下一页 退 出
2.用传统流程图表示算法
流程图是一个描述程序的控制流程和指令执行情况的 有向图,用流程图表示算法,直观形象,易于理解。
美国国家标准化协会(ANSI)规定了一些常 用符号如图所示
目录
上一页 下一页
退 出
用传统流程图描述计 算1+2+3+…+6的算法
目录
上一页 下一页
退 出
1.printf函数
格式: printf(格式控制字符串); 或 printf(格式控制字符串 ,输出表列); 功能:向计算机系统默认的输出设备输出若 干个任意类型的数据。

目录
上一页 下一页
退 出
一般情况下,格式控制字符串包括两种数据,一种是 普通字符,这些字符在输出时照原样输出;另一种是 格式转换说明符,用于控制要输出的内容以何种方式 进行输出显示,格式转换说明符由“%”开始,并以 一个格式字符结束。
例如: int max(int a, int b)
/*求两个整数的最大值*/
{
; /*此处的空语句表示在以后添 加内容,保证当前的程序正常运行*/ }
目录 上一页 下一页 退 出
例如:实现空循环 while( getchar()!=’\n’); /*此语句表示只要从键盘 输入的字符不是回车键则重新输入*/ 例如:实现跳转到目标点 int i=0, sum=0; ex: ; sum+=i++; if( x<100 ) goto ex; …
用NS流程图描述的计算1+2+3+…+6的算法
3.用NS结构化流程图表示算法
1973 年 美 国 学 者 I.Nassi 和 B.Schneiderman 提 出 了 一 种 新型流程图—NS结构化流程 图,这种流程图一方面取消 了带箭头的流程线,这样算 法被迫只能从上到下顺序执 行,避免了算法流程的任意 转向,适于结构化程序设计; 另一方面,这种流程图节省 篇幅,因而很受欢迎。
目录 上一页 下一页 退 出
3.3.2 格式化输入和输出

前面的getchar和putchar函数形式简单, 使用方便,但只能输入输出一个字符,且 不能定制输入输出格式。格式化输入输出 函数既能输入输出各种类型的数据,又能 定制输入输出格式。
目录
上一页 下一页
退 出
例3.2 从屏幕上输出一个整数。 #include<stdio.h> 输出结果是: main() output a and b:a=10,b=20 { int a,b; a=10; b=20; printf("output a and b:"); /*输出双引号中的字符串*/ printf("a=%d ,b=%d\n",a,b); /*输出a和b的值*/ } 目录 上一页 下一页 退 出
1.getchar函数 使用格式:变量=getchar( ); 功能:从键盘读入一个字符,返回该字符 的ASCII值,可以将该结果赋值给字符变 量或整型变量,并自动将用户击键结果 回显到屏幕上。
目录
上一页 下一页
退 出
2.putchar函数
使用格式:putchar(变量); 功能:把字符写到屏幕的当前光标位置。
/*用于求取a、b、c三者之间的最大值并将结果赋给m*/
目录 上一页 下一页 退 出
3.表达式语句
由一个表达式加上一个分号构成。
如:A++;
相关文档
最新文档