10 第三章 顺序程序设计(3.3~3.4)

合集下载

第3章 顺序结构程序设计

第3章 顺序结构程序设计
(5) 有一个或多个输出。算法的目的是为解决一个 具体问题,而结果的输出正是验证这一目的的 最好方式,没有输出的算法是没有意义的。
3.1.3 算法的表示
➢对于同一算法,允许在算法的描述和实 现方法上有所不同。常用的算法描述方 法可以归纳为以下几种:
自然语言 传统流程图 结构化流程图(N-S流程图) 伪代码 计算机语言
i+1i
N
i>5
Y
结束
输出t 26
开始
例2:将欧几里德 算法用流程图的 形式表示。
Y
输出n
输入m,n
m%nr
r=0
N nm
结束
rn
➢通过上面的例子可以看出流程图是表示算 法的较好的工具
➢一个流程图包括以下几部分:
(1) 表示相应操作的框 (2) 带箭头的流程线 (3) 框内外必要的文字说明
➢流程线不要忘记画箭头,否则难以判定各 框的执行次序
if(m<n)
{t=m; m=n; n=t;}
/* 若m中的数小于n中的数,交换m和n中的数 */
r = m % n;
while (r)
{ m = n;
n = r;
r = m % n;
}
printf("%d"\n,n);
}
3.2 基本语句
3.2.1 程序的结构 3.2.2 C语言的基本语句 3.2.3 赋值语句
9
什么是算法:
♦计算机算法可分为两大类别:
● 数值运算算法(求数值解) ● 非数值运算算法(排序、查找搜索等)
♦数值运算的目的是求数值解 ♦非数值运算包括的面十分广泛,最常见
的是用于事务管理领域
10
简单的算法举例:

《C语言程序设计》第三章 顺序结构程序设计

《C语言程序设计》第三章 顺序结构程序设计

第三章顺序结构程序设计3.1 基本要求z掌握C语言中使用最多的一种语句——赋值语句的使用方法。

z掌握各种类型数据的输入输出的方法,并能正确使用各种格式转换符。

z掌握文件包含预处理命令#include。

3.2 内容小结本章主要介绍了一些为编写简单程序所必须的语句及基本的输入输出方法。

它们是C语言中5类基本语句:控制语句、函数调用语句、表达式语句、空语句和复合语句。

格式输入输出函数scanf( )和printf( ):在C语言中没有专用的输入输出语句,但可通过调用输入输出函数及C系统提供的9种格式字符,进行各种类型数据、各种格式的输入输出。

单个字符的输入输出函数getchar( )和putchar( )。

文件的包含:函数是C程序的构成单元,C程序中的函数调用可分为两类,本源程序中函数的调用和非本源程序中函数的调用,如是后者需用#include 文件包含预处理命令把该函数所在的源文件包含到本源文件中来。

3.3 典型例题分析z例题1 printf( )函数的功能main( ){ int a , b;a=10;b=25;printf(“a=%d b=%d\n”,a,b);printf(“a+b=%d\na-b=%d\n”,a+b,a-b);}运行结果:a=10 b=2529a+b=35a-b=-15从上例中可以看出,转换说明符不仅规定了输出格式,而且也决定了输出项在整个输出信息中的位置。

此外,从上例也可以看出,输出项还可以是运算表达式,这时输出的是它的运算结果值。

z例题2 scanf( )函数的功能main( ){ int x, y;printf(“Enter integer x:”);scanf(“%d”,&x);printf(“Enter integer y:”);scanf(“%d”,&y);printf(“x+y=%d\n”,x+y);printf(“x-y=%d\n”,x-y);}该程序是以人机对话方式给变量x和y赋值,它的某次运行情况如下所示:Enter integer x:16〈CR〉Enter integer y:25〈CR〉x+y=41x- y=-9其中划有下横线的部分是从键盘打入的字符,其中〈CR〉表示回车键。

顺序结构的程序设计

顺序结构的程序设计

(3)在用%c格式输入字符时,空格和转义字符 都作为有效字符输入;
(4)在输入数据时,遇以下情况时该数据认为 结束:
• 遇空格,或按TAB或回车键; • 按指定的宽度结束; • 遇非法输入。
§3.4 顺序结构程序设计
从键盘输入一个大写字母,要求改用小写字 母输出。
#include <stdio.h> void main() {
2.若变量已正确定义,要将a和b中的数进行交 换,下面不正确的语句组是:
A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
3.写出输出结果: x=5.16894; printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
注意: 在使用这两个函数时,必须包含头文件 stdio.h。
#include “stdio.h” void main() {
char c; c=getchar(); putchar(c); }
#include<stdio.h> void main() {
char ch1,ch2,ch3; ch1=getchar();ch2=getchar();ch3=getchar(); putchar(ch1);putchar(′′);putchar(ch2); putchar(′′);putchar(ch3); putchar(′\n′); utchar(′\101′);putchar(66);putchar(‘\″’); putchar(′\n′); }
• %-m.nf:同上,左对齐。 (8)e格式符:以指数形式输出实数。 • %e:输出位数13位(正数)或14位(负

第3章 顺序结构程序设计

第3章 顺序结构程序设计

3.2 实现顺序结构程序设计的基本语 句
• 赋值语句 语句
赋值语句由赋值表达式加上一个分号构成,一般形式为: 变量=表达式; 变量=表达式; 例如: radius=14.5; i++; x+=2; 赋值语句是将右边表达式的值赋给左边的变量中去。赋值 语句要先对表达式加以计算求得其值,而后再将求得的值赋给 左边的变量中去,因此可以说赋值语句兼有计算功能。
例3.1
例3.2
例3.3
• 输出项表 输出项表中可以有多个输出项,各项之间用逗号分隔。 • 注意事项: ①格式控制中的格式说明符必须按从左到右的顺序,与输出 项表中的每个数据一一对应。 ②除x,e,g外,其他类型转换字符必须用小写字母。 ③类型转换字符紧跟在“%”后面时作为类型转换字符,否则 上一页 将 作为普通字符处理。
• 标准输入输出
C语言本身并不提供输入输出语句,其输入输出操作是由标 准库函数来实现的,在使用标准库函数时,要用预编译命令: 首页 上一页 #include将“stdio.h”文件包括到用户源文件中。
– 格式输出函数—printf()
形式: printf(“格式控制”[,输出项表]); printf( 格式控制” 输出项表] • 格式控制 ①普通字符:即需要原样输出的的字符信息。 ②格式说明符:即用%开头后面跟有一个字母,它规定了输 出项的输出形式。常用格式说明符见表3.1和表3.2。 ③转义字符:以“\”开头的字符序列。常用转义字符见表3.3。
上一页
–单个字符的输入—getchar()函数
形式: c=getchar(); c=getchar(); 执行上面的调用时,变量c将得到用户从键盘输入的一 个字符值,这里的c可以是字符型或整型变量。

第3章 顺序结构程序设计PPT课件

第3章 顺序结构程序设计PPT课件

4.标识符
标识符是一个数据对象的名字 变量名、符号常量名是标识符 标识符命名规则
字母或下划线开始,后跟字符、数字或下划线 以下为合法的标识符
x1, sum, _average, day, month, lotus_1_2_3 以下为不合法的标识符
$456, #abc, 1fs, 2nd, M.D.Jhon 变量名不能是关键字(即保留字P378)
-10的原码 取反 再加1
int i=10 0 0 0 00 0 0 0 0 00 0 1 0 1 0
int j= -10 1000000000001010
1 1 11 1 1 11 1 1 1 1 0 10 1
得-10的补码 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 符号位
4.常见整型数据的存储空间和值的范围
#include <stdio.h> main( ) {
int a, b, c, d; unsigned u; a=12; b=-24; u=10; c=a+u; d=b+u; printf("a+u=%d, b+u=%d\n",c,d); }
6.整型数据的溢出
一个int 型变量的最大允许值为32767,如果再加1,其 结果不是32768,而是-32768,即"溢出"。
例 main() { int a, b; a=32767; b=a+1; printf("%d, %d\n",a,b); }
32767
0 1 11 1 1 11 1 1 1 1 1 11 1
-32768 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

第9、10节(第三章、第四章)

第9、10节(第三章、第四章)
y a2 b
;带进位减 :保存低8位 ;高八位减进位
4.3 分支程序设计
• 根据不同的条件转向不同的处理程序 • 控制转移指令
AJMP、LJMP、SJMP 、JMP JZ、JNZ、CJNE、DJNZ
• 位转移指令
JC、JNC、JB、JNB、JBC
举例:累加器A内有一个16进制ASCII字符, 要求转换成一个16进制数存放于A。
四、 散转移
JMP @A+DPTR ;PC ←(PC)+ 1,PC ←(A)+(DPTR) 该指令具有散转功能,可以代替许多判别跳转指令。其转移地址 由数据指针DPTR的16位数和累加器A的8位数进行无符号数相加形 成,并直接装入PC。该指令执行时对标志位无影响。 例 有一段程序如下: MOV DPTR,#TABLE JMP @A+DPTR TABLE:AJMP ROUT0 AJMP ROUT1 AJMP ROUT2 AJMP ROUT3 •当(A)=00H时,程序将转到 ROUOP ;PC ←(PC)+ 1 •这条指令不产生任何控制操作,只是将程 序计数器PC的内容加1。该指令在执行时间 上要消耗1个机器周期,在存储空间上可以 占用一个字节。因此,常用来实现较短时间 的延时。
3.3.5 位操作类指令(17条)
位操作又称布尔操作,它是以位为单位进行的各 种操作。位操作指令中的位地址有4 种表示形式: • 直接地址方式(如,0D5H); •点操作符方式(如,0D0H.5、PSW.5等); •位名称方式(如,F0); •伪指令定义方式(如,MYFLAG BIT F0)。 以上几种形式表示的都是PSW中的位5。 与字节操作指令中累加器ACC用字符“A”表示 类似的是,在位操作指令中,位累加器要用字符 “C”表示(注:在位操作指令中CY与具体的直接 位地址D7H对应)。

第3章顺序结构程序设计

第3章顺序结构程序设计第3章最简单的C程序设计——顺序程序设计本章要求1、掌握程序的三种基本结构特点及其控制语句的使⽤。

2、重点掌握数据输⼊、输出函数及其格式控制。

3、熟悉Turbo C环境的使⽤,头⽂件,帮助系统的使⽤(Ctrl+F1)。

3.1程序的三种基础结构顺序、选择、循环。

3.2 C语句概述C程序结构如图:⼀个C程序可以由多个源程序⽂件构成,Turbo C⽤“⼯程⽂件”(prj:Project)来描述该程序由那些源程序⽂件构成。

所有这些源程序⽂件经过分别编译后形成各⾃的⽬标⽂件,经连接程序LINK后形成⼀个EXE⽂件。

⼀个源程序⽂件由若⼲函数和“预编译命令”构成。

函数包括数据定义部分(变量定义)和执⾏部分,执⾏部分是C语⾔语句,完成对数据的操作。

C语句有以下五类:1、控制语句,完成程序流程控制。

if()~else~条件语句for()~循环语句while()~循环语句do~while() 循环语句continue 结束本次循环语句break 中⽌switch或循环语句switch 多分⽀选择语句goto 转向语句return 从函数返回语句( )表⽰条件,~表⽰内嵌的语句,若有多个语句既复合语句⽤{}括起来。

2、函数调⽤语句。

例、printf("This is a C statement."); /* 该语句调⽤函数printf() */3、表达式语句:在表达式后⾯加分号构成。

例:a = 3 /* 后⾯⽆分号,是表达式 */a = 3; /* 后⾯有分号,是语句 */i++; /* 语句 */4、空语句:仅包含⼀个分号的语句,例、;5、复合语句:由⼤括号{ }括起来的语句序列。

例、{ z = x + y;t = z / 100;printf("%f",t);}注:C语⾔允许⼀⾏写多个语句,也允许⼀个语句写多⾏。

3.3 赋值表达式和赋值语句⼀、赋值表达式1。

第三章顺序程序设计

3.1 算法与程序设计
著名计算机科学家沃思(Nikiklaus Wirth)提出: 数据结构+算法=程序
描述数据 的类型, 组织形式
描述对数据 的操作步骤
3.1 算法与程序设计
(本节请参考潭浩强《C程序设计》三版,第2章 算法,受时 间限制本节只能做简单介绍)
1、算法:为解决一个问题而采取的方法和步骤称为“算法”。 对于同一个问题可以有不同的解题方法和步骤,也就是有不
3.4.1 printf函数(格式输出函数) 2.格式字符 :对于不同类型的数据项应当使用不同的格式字符构
成的格式说明项。
(1)d格式符(i格式符)。表示输出带符号的十进制的整数。 ▪ %d,%i按照数据的实际长度输出。printf(“%d”,a);
printf(“%i”,a);
▪ %md,m指定输出字段的宽度(整数)。如果数据的位数 小于m,则左端补以空格(右对齐),若大于m,则按照实 际位数输出。
3.3输入/输出及其C语言的实现
4.C函数库中有一批“标准输出) putchar(输出字符) puts(输出字符串)
scanf(格式化输入) getchar(输入字符) gets(输入字符串)
3.3输入/输出及其C语言的实现
5.在使用C库函数时,要用预处理命令“#include” 将有 关 的“头文 件”包含到用户源文件中。头文件包含库中函数 说明,定义的常 量等。每个库一般都有相应的头文件。
式完成输出功能。它可以向屏幕输出字符,字符串, 数值,及空行等。输出的内容可以是执行结果,也可 以是提示语。
1. printf函数的一般格式 : printf(格式控制字符串,输出表列)
3.4 格式输入/输出
3.4.1 printf函数(格式输出函数)

第3章 顺序结构程序设计

2016年12月12日星期一 6
第3章 顺序结构程序设计
【例题3.1】阅读下列程序,认识格式输出函数的用法,写结果 #include<stdio.h> int main() { int i,j,m,n; 格式控制字符串 输出列表项 i=5; j=15; m=i++; n=++j; printf("i=%d, j=%d, m=%d, n=%d\n",i,j,m,n); return 0; }
※ %s:输出一个字符串。
※ %f:按实型数据输出且有6位的小数点。 ※ %e: 按实型数据输出且按指数形式
※ %g:按实型数据输出由系统自动选择f格式或e格式。
2016年12月12日星期一 8
第3章 顺序结构程序设计
3.3.2 格式输入函数scanf
阅读下列程序,认识scanf()函数的用法
#include<stdio.h> int main() 格式控制字符串(注意表示形式) { 输入地址列表 int a,b,c; float aver; printf("请输入三个数a,b,c:"); scanf("%d%d%d",&a,&b,&c); aver=(a+b+c)/3; printf("aver=%f\n",aver); return 0; }
第3章 顺序结构程序设计
3.4 字符输入/输出函数
【例题3.4.1】 通过键盘输入一个小写字母,输出该 字母的大写。 分析:输入可采用格式输入函数scanf()实现,输出可 采用格式输出函数printf()实现,使用格式符%c。小 写字母与大写字母的ASCII码值相差32。 思考:不用格式输入/输出函数能不能完成?能,用C 语言提供的另一类函数即字符输入/输出函数。

第三章_顺序程序设计


二、赋值语句
构成方式 例1 赋值表达式 与赋值语句 的区别
由赋值表达式加分号构成。 由赋值表达中赋值号 、 语言中赋值号 语言中赋值号"="是一个运算符。 是一个运算符。 是一个运算符 2、C语言中既有赋值表达式又有赋值语句的概念。 语言中既有赋值表达式又有赋值语句的概念。 、 语言中既有赋值表达式又有赋值语句的概念 3、C语言把赋值语句和赋值表达式区分开来,赋 语言把赋值语句和赋值表达式区分开来, 、 语言把赋值语句和赋值表达式区分开来 值表达式可以包括在其他表达式中, 值表达式可以包括在其他表达式中,增加了表 达式的种类,使表达式的应用几乎无孔不入, 达式的种类,使表达式的应用几乎无孔不入, 能实现其他语言难以实现的功能。 能实现其他语言难以实现的功能。
16
第三章 顺序结构程序设计
格式输入举例——d格式符 d 格式输入举例
3 4↵ ↵ 3,4
putchar( ) puts( ) printf( ) getchar( ) gets( ) scanf( )
标准输入 输出函数
预编译命令 举例
在使用C语言库函数时,要用预编译命令 在使用 语言库函数时,要用预编译命令"#include"将 语言库函数时 将 有关的"头文件 包括到用户源文件中。 头文件"包括到用户源文件中 有关的 头文件 包括到用户源文件中。
格式 字符
d, i c f e,E o x,X ……
附加 格式 说明 字符
字符 l m n -
说明 用于长整型数据输出,可加在 用于长整型数据输出,可加在d o x u 前面 数据最小宽度 对实数,表示输出n位小数 对字符串, 位小数; 对实数,表示输出 位小数;对字符串,表示 截取的字符个数 输出数据向左靠拢
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 顺序程序设计(3.3~3.4)
郑州轻工业学院 甘琤
C语句综述
• 程序由若干函数组成 • 函数体包括声明部分和执行语句部分
– 声明部分定义本函数需要使用的各种变量 – 执行部分是本函数的各种操作、运算过程
• C程序结构(图3.14这是一个不是很规范的Jackson图)
C程序 源程序文件1 源程序文件2 源程序文件n
赋值表达式和赋值语句(3.4 P56)
• 赋值运算符“=”,将一个数据赋给变量, 可将常量的值赋给变量,也可以将一个表 达式赋值给一个变量。 • 复合的赋值运算符:"+=","-=","%="等等, 见附录c,14行。 • 赋值表达式,左边(左操作数)为变量, 右边(右操作数)为对应结果类型的表达 式。形式: 变量 赋值运算符 表达式。赋值 表达式执行后,左操作数是本赋值表达式 的结果。
赋值表达式
① ② ③ ④ ⑤ ⑥ b=a;c=b; 可以写成 a=(b=5)又可写成a=b=5,见p58 a=b=c=5; 赋值表达式的值为a,a,b,c的值均为5 a=5+(c=6); 表达式的值为a,a值为11,c值为6 a=(b=4)+(c=6); 表达式值为10,a值为10,b的值为4,c值为6 a=(b=10)/(c=2); 表达式值为5,a等于5,b等于10,c等于2 (a=3*5)=4*3; 先计算a=3*5,a的值为15,式子(a=3*5)的结果为 a,又运算a=4*3,a的值为12,整个赋值表达式的结果为a,值为12,本语句 在VC下无法编译运行。 ⑦ c=10;c+=1; c+=1等价于c=c+1,c的值为11,c+=1的结果为c, 值为11 如果不能很好的理解赋值表达式,那就分开写,虽然赋值表达式有助于 提高代码编写效率,但是并不利于理解,建议初学者分开写。(我们大多数 人都不知道茴字的四种写法,但日子照过。对于考证者,这将是考点之 一!!!)
• 将一种高精度的数值赋给低精度的变量,本身就是一种程序设 计错误! • 不同类型间的赋值,本身也是不科学的。
– 在各类考试/面试中,这些复杂的东西都有可能车呢岗 位考点(孔乙己心理)
实验+作业
• • • • • 继续完成以前未完成的实验,进一步提高水平 将第二章8道例题的流程图画出。 预习第三章剩余的部分(3.9阅读即可) 预习第四章 计划下周周二讲完第4章 教学方式:尽量讲完形式化的内容,腾出时 间能够带同学进行一些程序设计方面的讲授。
赋值过程中的类型转换
• 如果赋值运算符两侧的类型不一致,系统进行自 动转换,规则如下:
① 将实型数据赋给整型变量时,先对实数取整(截去小数部分,不 舍入),然后赋予整型变量。 ② 将整型数据赋给单、双精度实型时,数值不变,但以实数的形式 存储在变量中。 ③ 将一个双精度数据赋值给单精度变量时,会进行截取。 ④ 字符型数据赋给整数变量时,将ASCII码赋给整型变量。 ⑤ 将一个占字节多的整型赋给一个占字节少的整型变量或字符变量, 只将其低字节原封不动送到该变量中(发生截断) ⑥ 如果将一个有符号整数赋给无符号整型变量,或将一个无符号整 数赋给有符号整数变量,将按照存储单元的字节原样传送,导致 数据失真。
变量赋初值
• C++语法允许在声明变量时直接赋值,但是 只能赋常量,Java语法则允许,则可在赋 值运算符右侧写表达式,而标准的C语言则 不允许在声明时进行赋值操作。 • 见P60
本期课总结
• 流程图的绘制 • 程序基本 学会规避 – 对于赋值过程中的类型转换问题要尽量避开(尽量在 运算过程中统一精度和类型)
预处理命令
数据声明
函数1
函数n
函数首部 数据声明
函数体 执行语句
C语句综述
• • • • • 控制语句 函数调用语句 表达式语句 空语句 复合语句
控制语句概览
① if()...else... ② switch ③ for()... ④ while()... ⑤ do...while() ⑥ continue ⑦ break ⑧ return ⑨ goto 条件分支 多分枝选择语句 数控循环 当型循环 直到型循环 结束本次循环直接开始下次循环 跳出循环体/终止switch语句 从函数返回 转向语句
相关文档
最新文档