第3章 简单程序设计PPT教学课件
合集下载
第3章---微机原理-汇编-朱定华PPT优秀课件

MOV AH,0
DIV BL ; ,BH ;BCD数十位与个位送AL
10
10
3.1.1 乘除法指令
3. 扩展指令CBW和CWD
要把一个8位二进制数除以一个8位二进制数,要有一 个16位二进制数在AX中.所以做8位除以8位的除法 前先要把8位被除数扩展为16位,做16位除以16位的 除法前要把16位被除数扩展为32位.这种扩展对于无 符号数除法只需将AH或DX清0,而对符号整数除法 则要通过扩展符号位来把被除数扩展。
11
11
3.1.1 乘除法指令
格式:CBW ; AL的最高位扩展至AH CWD ; AX的最高位扩展至DX
两指令都隐含操作数 在做8位除以8位、16位除以16位的除法之前, 应先扩展AL或AX中的被除数 扩展指令和符号整数除法仅对补码数适用
12
12
3.1.1 乘除法指令
如:有一符号字数组变量ARRAY,第1个字 是被除数,第2个字是除数,接着存放商和 余数,其程序段为:
3
3
3.1.1 乘除法指令
16位乘法指令所执行的操作是AL或AX乘以 source,乘积放回到AX或DX和AX
AL
×
sourc8
AX
×
DX
AX sourc16
AX
可用乘法运算将BCD数转换为二进制数 44
2.3.4 常用指令应用举例
例 将AX中小于(等于)255大于0的3位BCD数转换为 二进制数,存入字节变量SB中
14
14
3.1.2 BCD数调整指令
1.BCD数加法调整指令DAA和AAA (1)压缩BCD数加法调整
格式: DAA 功能:将AL中的和调整为正确的压缩BCD数 调整规则: (AL&0FH)>9或AF=1,则AL加6;
第3章指令系统

解:程序如下: 程序如下: ORG NUM DATA STRING DATA START: CLR MOV LOOP: LOOP: CJNE SJMP NEXT: NEXT: INC INC SJMP COMP: COMP: MOV SJMP 0800H 20H 21H A R0, R0,#STRING @R0, @R0,#24H,NEXT COMP A R0 LOOP NUM, NUM,A $
单片机原理 及接口技术
第3 章
89C51单片机指 89C51单片机指 令系统
LOGO
LOGO
程序设计举例
一 二 三 四 五 六
简单程序设计举例 分支程序 循环程序 子程序设计举例 代码转换程序设计举例 运算类程序设计举例
BACK
LOGO
一、 简单程序设计举例
例1 :拆字。将片内RAM 20H单元的内容拆成两段,每段 拆字。将片内RAM 20H单元的内容拆成两段 单元的内容拆成两段, 四位。并将它们分别存入21H 22H单元中 程序如下: 21H与 单元中。 四位。并将它们分别存入21H与22H单元中。程序如下:
练习: 练习: 1.将片外RAM 2000H单元开 始的20个字节,传送到片 内RAM 30H单元开始的单元 中去。 2.将片内RAM 20H单元开始 的10个字节,传送到片内 RAM 30H单元开始的单元中 去。 3.将片内RAM BK1单元开始 的COUNT个字节,传送到片 外RAM BK2单元开始的单元 中去。
Back
LOGO
3.4
思考题与习题
1. 简述下列基本概念: 指令、指令系统、机器语言、汇编语言、高级 语言。 2. 什么是计算机的指令和指令系统? 3. 简述89C51汇编指令格式。 4. 简述89C51的寻址方式和所能涉及的寻址空间。 5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?
单片机原理 及接口技术
第3 章
89C51单片机指 89C51单片机指 令系统
LOGO
LOGO
程序设计举例
一 二 三 四 五 六
简单程序设计举例 分支程序 循环程序 子程序设计举例 代码转换程序设计举例 运算类程序设计举例
BACK
LOGO
一、 简单程序设计举例
例1 :拆字。将片内RAM 20H单元的内容拆成两段,每段 拆字。将片内RAM 20H单元的内容拆成两段 单元的内容拆成两段, 四位。并将它们分别存入21H 22H单元中 程序如下: 21H与 单元中。 四位。并将它们分别存入21H与22H单元中。程序如下:
练习: 练习: 1.将片外RAM 2000H单元开 始的20个字节,传送到片 内RAM 30H单元开始的单元 中去。 2.将片内RAM 20H单元开始 的10个字节,传送到片内 RAM 30H单元开始的单元中 去。 3.将片内RAM BK1单元开始 的COUNT个字节,传送到片 外RAM BK2单元开始的单元 中去。
Back
LOGO
3.4
思考题与习题
1. 简述下列基本概念: 指令、指令系统、机器语言、汇编语言、高级 语言。 2. 什么是计算机的指令和指令系统? 3. 简述89C51汇编指令格式。 4. 简述89C51的寻址方式和所能涉及的寻址空间。 5. 要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?
C语言程序设计PPT课件第3章 简单的算术运算和表达式

算术表达式 (Arithmetic Expression)
Example:
( 9 – (–34 + 25) ) * 3 = ?1?2 ( 9 – ( 3 + 2 ) ) * 3 = 12
2019/9/9
18/51
赋值语句 (Assignment Statement)
三种赋值形式:
Simple——简单赋值 Multiple——多重赋值 Shorthand——简写的复合赋值
+=
num += 5;
num = num + 5;
-=
num -= 5;
num = num – 5;
*=
num *= 5;
num = num * 5;
/=
num /= 5;
num = num / 5;
%=
num %= 5;
num = num % 5;
简写的复合赋值(Shorthand Assignment)
2019/9/9
27/51
3.1.3增1和减1运算符
(Increment and Decrement)
n++,n--,++n,--n – ++让参与运算的变量加1,--让参与运算的变量减1 – 作为后缀(postfix)运算符时,先取n的值,然后加/减1
m = n++;
2019/9/9
m = n; n++;
14/51
算术表达式 (Arithmetic Expression)
优先级(Order of Precedence)
High: * / % Low: + -
第3章 最简单的C程序设计[详版课资]
![第3章 最简单的C程序设计[详版课资]](https://img.taocdn.com/s3/m/44edddb04afe04a1b071defb.png)
说明
➢ 两个整数相除的结果为整数
如5/3的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结 果为-1,在有的系统中则得到结果为-2
VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠拢
➢ % 运算符要求参加运算的运算对象(即操作数) 为整数,结果也是整数。如8%3,结果为2
p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3);
return 0;
}
课堂优质
8
3.2 数据的表现形式及其运算
3.2.1 常量和变量
3.2.2 数据类型
3.2.3 整型数据
3.2.4 字符型数据
3.2.5 浮点型数据
课堂优质
11
3.2.1 常量和变量
3.常变量:const int a=3; 4.标识符:一个对象的名字大小写字母是不同的字符 ➢ C语言规定标识符只能由字母、数字和下划线3
种字符组成,且第一个字符必须为字母或下划线 ➢ 合法的标识符:如sum,average, _total,
Class, day, BASIC, li_ling ➢ 不合法的标识符:M.D.John,¥123,#33
(2) 如果int型与float或double型数据进行运算, 先把int型和float型数据转换为double型,然 后进行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
课堂优质
30
3.2.7 运算符和表达式
第3章简单的C程序设计ppt课件

问题5:限定用户输入数据为以下格式为
12↙
34↙
同时要求程序输出结果为a = "12", b = "34"
C语言大学实用教程课件 制作人苏小红
24
输入数据的格式控制——例3.10
#include <stdio.h> main() {
int a, b;
ssccaannff(("%"d%d%%d*"c,%&da",, &&b)a;, &b);
问题4:限定用户输入数据为以下格式为 1234↙
同时要求程序输出结果为a = 12, b = 34
C语言大学实用教程课件 制作人苏小红
23
输入数据的格式控制——例3.10
#include <stdio.h> main() {
int a, b;
scanf("%d%%dd"",,&&aa,,&&bb));; printf("a = %\d",%db\"=, %bd\=n"\,"%ad,\"b\)n;", a, b); }
int data1, data2, sum; char op;
printf("Please enter the expression
data1 + data2\n");
scanf("%d%c%d",&data1, &op, &data2);
printf("%d%c%d = %d\n", data1, op, data2, data1+data2);
Visual_Basic程序设计课件——第三章

【例题】移动对象,程序运行时使命令按钮移到窗体 的中心位置。
TextHeight和TextWidth方法
TextHeight方法和TextWidth方法用于帮助设置坐标,作用 为返回一个文本字符串的高度和宽度值。 TextHeight方法语法格式为: [对象名].TextHeight(字符串) TextWidth方法语法格式为: [对象名].TextWidth(字符串)
Spc函数
Spc函数也可以对输出进行定位,作用是提供n个空格键。 Spc函数语法格式为:Spc(<n>) 例如:Print “a” ;Spc(10);“b”;Spc(5);“c” 输出:a b c 说明: 1、参数n是一个数值表达式。 2、Spc函数与其他输出项之间用分号隔开。 3、Spc函数和Tab函数的作用相似,可以相互替代,不同的是,Tab函数 从对象的左端开始计数,而Spc函数只表示输出项之间的间隔。
输出信息对话框
MsgBox函数可以弹出一个带有若干按钮的对话框,并在对话 框中显示询问消息,等待用户做出选择,并返回一个整数值, 告诉用户单击哪一个按钮。 MsgBox函数的语法格式: 变量=MsgBox(<信息内容>[,<对话框类型>[,<对话框标题 >]]) 说明: 1、信息内容是在对话框中出现的提示文本。在信息内容中 使用硬回车符(CHR(13))可以使文本换行。对话框的高度 和宽度随着信息内容的增加而增加,最多可有1024个字符。 2、对话框类型指定对话框中出现的按钮和图标,一般有3个 参数。其取值和含义如下:
CurrentX和CurrentY属性
CurrentX和CurrentY表示当前输出位置的横坐标与纵坐标。
文本属性
①字体(FontName) 格式为:FontName[=“字体类型”] ②字号 格式为:FontSize[=“点数”] 注:“点数”用来设定字体的大小,默认情况下,系统使用最小的字 号:“点数”为8。 ③斜体 格式为:FontItalic[=Boolean] 注:当Boolean值为True时,文本以斜体字输出,Boolean默认为False。 ④粗体 格式为:FontBold[=Boolean] 注:当Boolean值为True时,文本以粗体字输出,Boolean默认为False。
C语言程序设计ppt课件-第3章-选择结构

1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
C语言第3章简单程序

这种如同乱麻一样的算法称为BS型算 法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。
• 三种基本结构
Bohra和Jacopini提出了以下三种基本 结构: 顺序结构、选择结构、循环结构
用这三种基本结构作为表示一个良好算 法的基本单元。
三种基本结构的图示:
顺序结构
选择结构
循环结构的图示:
主要内容
3.1 算法概述 3.2 程序的三种基本结构 3.3 C语句综述 3.4 赋值表达式和赋值语句 3.5 数据输入输出的概念 3.6 字符数据的输入输出 3.7 简单的格式输入与输出 3.8 顺序结构程序设计举例
3.1 算法概述
一个程序应包括两个方面的内容: • 对数据的描述:数据结构(data structure) • 对操作的描述:算法(algorithm) 著名计算机科学家沃思提出一个公式: 数据结构 + 算法 = 程序
includestdiohincludestdiohvoidmainvoidmain定义字符变量定义字符变量abc从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量a从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量b从键盘输入一个字符送给字符变量从键盘输入一个字符送给字符变量c将变量将变量aa的值输出的值输出将变量将变量aa的值输出的值输出将变量将变量aa的值输出的值输出pu• 传统流程图的弊端 传统流程图用流程线指出各框的执行 顺序,对流程线的使用没有严格限制。因 此,使用者可以毫不受限制地使流程随意 地转向,使流程图变得毫无规律,阅读者 要花很大精力去追踪流程,使人难以理解 算法的逻辑。如图:
缺点:难以阅读、修改,使算法的 传统流程图的流程可以是: 可靠性和可维护性难以保证。 解决办法:必须限制箭头的滥用, 即不允许无规律地使流程随意转向, 只能顺序地进行下去。
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
VB6教程第3章 简单VB程序设计

设置窗体的名称,在程序代码中用这个名称引用
该窗体。新建工程时,窗体的名称缺省为 Form1;添 加第二个窗体,其名称缺省为 Form2,依次类推。为 了便于识别,用户通常给 Name 属性设置一个有实际 意义的名称。
浙江蜗牛网络-VB论坛:/cto.asp (8)Enabled属性 属性值为True或False,设置对象是否能够对用户 产生的事件做出反应。一般在程序中设置,用于临时 屏蔽对窗体或其它控件的的控制。 (9)Moveable属性 属性值为True或False,设置是否可以移动窗体。 (10)Visible属性
3.2.2
事件
最常用的事件是Click事件。
浙江蜗牛网络-VB论坛:/cto.asp
3.3 标
窗体的说明文字。 3.3.1 属性
签
标签(Label)主要用于显示不需要用户修改的文 本。所以,标签可以用来标示窗体及窗体上的对象, 如为文本框、列表框等添加描述性的文字,或者作为
浙江蜗牛网络-VB论坛:/cto.asp
浙江蜗牛网络-VB论坛:/cto.asp
浙江蜗牛网络-VB论坛:/cto.asp 2.编写事件过程如下: Private Sub Text1_Change() Static i% i=i+1 Label1.Caption = i End Sub
属性值为True或False,设置窗体是否被显示。用
户可用该属性在程序代码中控制窗体的隐现。
浙江蜗牛网络-VB论坛:/cto.asp (11)Picture属性 设置在窗体中显示的图片。单击Picture属性右边 的按钮,弹出“加载图片”对话框,用户可选择一个 图片文件作为窗体的背景图片。若在程序中设置该属 性的值,需要使用LoadPicture函数。 (12)WindowState属性 设置窗体启动后的大小状态。 在VB中,虽然不同的对象有不同的属性集合,但 有一些属性,如Name 、Enabled、Visible、Height、 Width、Left、Top等,其它控件也有,且具有相似的 作用。在后续的章节中,主要介绍各种控件常用的特 殊属性。
第3章 简单程序设计

格式说明符
格式说明符由“%”开头,以一个英文字母结 束,它表明输出数据的类型;其间还可以有一些 格式控制字符,用以说明数据输出的长度、位数、 对齐方式等。在Turbo C中格式说明符的一般形 式为: %[标志][输出最小宽度m][.精度n][长度]类型 其中: [ ]:表示可选项。 [标志]:是由字符构成的,它表示数值输出时按 某种格式,常用的字符有-、+、0,其具体含 义见表3-1。
§3.4 数据输入与输出
3.4.1 格式化输出函数 printf() printf()函数的功能是向系统指定的设 备输出若干个任意类型的数据。
1. printf()函数调用形式
printf函数是一个标准库函数,其调用的 一般形式:
printf(格式控制字符串,输出列表);
图 printf函数
printf("a=%d\n",a);
注 意
(1)scanf函数中的“格式控制字符串”后面应 该是变量的地址,而不应是变量名。例如不能将 语句
scanf(“%d,%d”,&a,&b); 写成 scanf("%d,%d",a,b); 这是初学者易出错的地方。 (2)输入数据时不能规定数据的精度。例如 scanf("%8.2f ",&a);是不合法的。
分析
从例3-3可以看出,顺序结构的程 序框架如下:
#开头的预编译处理命令行 main() { 局部变量声明语句; 可执行语句序列; }
§3.3 赋值语句
赋值语句是一个应用十分普遍且最简单的语 句。赋值语句的一般形式:
x=e;
其中:x是变量名,“=”前面已介绍过,是赋 值号,e是表达式。 赋值语句的功能是将赋值号右边表达式的值 计算出来,再赋给赋值号左边变量。
C语言程序设计教程(第5版)王秀鸾全册PPT课件

ANSI 标准
2. C语言的特点
(1)语言简洁、紧凑,使用方便、灵活。 (2)支持结构化程序设计 。 (3)运算符丰富。 (4)数据类型丰富。 (5)较强的编译预处理功能。 (6)C语言的可移植性好。 (7)C语言本身既有一般高级语言的优点,又有低级 (汇编)语言的特点 。 (8)语法限制不太严格,程序设计自由度大。
printf(“sum is %d \n”,sum ); /* 输出sum的值 */
}
程序的运行结果为:
sum is 8
【例1.5】求两个整数中的较小者
#include “stdio.h”
main( )
/* 主函数 */
{ int x,y,m;
/* 定义变量 */
int fun(int a,int b);
1.1 程序设计的基本概念
1.1.2程序设计的一般过程
① 分析、理解问题 ② 解决方案(大致的思路),建立数学模型 ③ 求解步骤和流程(算法)(文字、符号等的描述) ④ 使用程序设计语言编写源程序 ⑤ 运行调试程序 ⑥ 整理输出结果,写出相关文档
分析 问题
确定处 理方案
确定操 作步骤
编写 程序
图1.1 程序设计的一般过程
1.2.2 初识C语言程序
(1) C程序的构成 【例1.4】求两个整数m与n的和。
#include “stdio.h”
main( )
/* 主函数 */
{int m,n,sum;/* 定义变量m,n, sum*/
m=5; n=3; /* 给变量m,n赋值 */
sum=m+n; /* 求m+n的值,并赋给变量sum */
上机运 行程序
整理 结果
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
显示结果:
2020/12/10
14
(3) 类型修饰 长整数:%ld、 %lo 、 %lx 无符号长整数:%lu
2020/12/10
15
(4) 对%u格式的说明
%u格式: 用于输出十进制无符号整数.但是如果被输出
的数据是有符号数,则把符号位看做数据的一部 分.
例 printf("%u", -3);
若字符串的实际长度大于m,则按 实际宽度输出。 若字符串的实际长度小于m,则右对齐输出。
n :规定了实际输出的字符个数。
字符串实际长度小于n 时,n不起作用。 字符串实际长度大于n 时,输出字符串前n个字符。
例 printf("%3s,%5s\n", "abc","abc"); printf("%5.2s,%.4s\n","abc","abc");
➢ 由“\”后跟一个特定的字母组成,常用来输出某 些特殊字符和不可显示字符。
2020/12/10
\n —— 输出回车换行 \t ——光标右移到下一个制表位(每8列为一个
制表位)
\" ——输出双引号(") \\ ——输出反斜杠(\) \ddd —— \后跟1~3位八进制数。该八进制数为要
表示字符的ASCII码值。 \xhh ——\x后跟1~2位十六进制数。该十六进制数
整数部分按实际位数输出,小数部分保留6位
%c
输出一个char型数据
%s
输出字符串
%u
输出十进制无符号整数
%o
输出八进制无符号整数
%x 或 %X 输出十六进制无符号整数
%e 或 %E 按指数格式输出浮点数
%g
根据实际数值大小,自动选择按%f或%e格式输出浮点数
%% 2020/12/10
输出一个%
5
② 格式串中常用的转义字符(P38 表3-2)
例 printf("%2d,%5d,%5.4d,%5.2d",123,123,123,123);
显示结果: 123, 123, 0123, 123
2020/12/10
11
② %m.nf
m :规定了对应浮点数输出时所占的总位数;包括:
符号位、整数位、小数点、小数位。
n :规定了对应浮点数输出时,所输出的小数位数。
第3章 简单程序设计
3.1 基本的输入/输出函数 3.2 编译预处理命令define和include 3.3 程序设计举例
2020/12/10
1
3.1 基本的输入/输出函数(P37)
➢printf( )函数: 简单数据类型的格式化输出函数; ➢scanf( )函数: 简单数据类型的格式化输入函数; ➢putchar( )函数: 字符类型输出函数; ➢getchar( )函数: 字符类型输入函数.
实际小数位数大于n 时,四舍五入。 省略 n 时,默认小数位数为 6 位。
例 printf(", 12.345,12.345);
显示结果: 12.345000, 12.35,12.35
2020/12/10
12
③ %m.ns
m :规定了对应字符串输出时所占的总位数;
显示结果:65533
2020/12/10
16
3.1.2 格式输入函数scanf( ) (P42)
1. 一般格式
1 ~多个 用逗号分隔
scanf ("格式控制字符串" , 变量地址列表)
注意:程序中使用输入/输出函数时,需要在程序的 开头使用文件包含命令。格式如下:
#include <stdio.h> 或 #include "stdio.h"
2020/12/10
2
3.1.1 格式输出函数printf( ) (P38)
0 ~多个
1. 一般格式
(用逗号分隔)
printf ("格式控制字符串" , 输出表达式列表)
例: printf("Hello world ! \n"); printf("x=%d,y=%f\n",x,y);
2.函数的功能
➢将表达式的值按格式控制字符串指定的位置和格式显示 在屏幕上.
2020/12/10
3
3. 格式控制字符串的组成
① 格式转换说明符(常用)
格式转换说明符%? 转义字符 普通字符
为要表示字符的ASCII码值。
6
③ 格式串中的其他字符
➢ 除格式转换说明符和转义字符外的其他字符都视 为普通字符,它们与输出项无关,输出时照原样 显示。
2020/12/10
7
➢简单输出示例
#include <stdio.h> main() {
printf("hello!\n"); printf("a=%d,b=%d\n",3,4); printf("c=%d\tx=%f\n",3+4,-1.27); }
显示结果: abc abc
2020/12/10
ababc
13
(2) 对齐修饰 右对齐方式:%m.nd、 %m.nf 、 %m.ns
左对齐方式:%-m.nd、 %-m.nf 、 %-m.ns
例 printf("1=%5d,%-5d\n",1234,1234); printf("2=%5.2fd,%-5.2f\n",1.236,1.236); printf("3=%5s,%-5s\n","abc","abc");
2020/12/10
8
4. 使用printf函数的注意事项
输出表达式的个数与格式控制字符串中格式符 的个数必须相同,并且类型要一致。否则会产 生意想不到的错误。
2020/12/10
9
5. 特殊格式控制(P39)
(1) 指定输出项的宽度
在百分号和格式字母之间加整数,可以规定输出数 据的宽度. 主要格式有:
%d 输出十进制整数 %f 输出float或double型数据,默认保留6位小数 %c 输出单个字符 %s 输出一个字符串
2020/12/10
4
表3-1(P38) printf( )函数中的格式控制符
格式符
功能
%d
输出十进制 int型数据。 %ld——输出long型数据
%f
输出float或double型数据。%lf——输出double型数据
%m.nf %m.nd 常用 %md %m.ns 常用 %ms
2020/12/10
10
① %m.nd
m: 规定了对应整数输出时所占的总位数;数据的
实际位数大于m 时,按实际位数输出;
n: 规定了对应整数输出时最小有效位数;数据的实
际有效位数大于n 时,按实际位数输出,小于n 时, 左侧补0。
2020/12/10
14
(3) 类型修饰 长整数:%ld、 %lo 、 %lx 无符号长整数:%lu
2020/12/10
15
(4) 对%u格式的说明
%u格式: 用于输出十进制无符号整数.但是如果被输出
的数据是有符号数,则把符号位看做数据的一部 分.
例 printf("%u", -3);
若字符串的实际长度大于m,则按 实际宽度输出。 若字符串的实际长度小于m,则右对齐输出。
n :规定了实际输出的字符个数。
字符串实际长度小于n 时,n不起作用。 字符串实际长度大于n 时,输出字符串前n个字符。
例 printf("%3s,%5s\n", "abc","abc"); printf("%5.2s,%.4s\n","abc","abc");
➢ 由“\”后跟一个特定的字母组成,常用来输出某 些特殊字符和不可显示字符。
2020/12/10
\n —— 输出回车换行 \t ——光标右移到下一个制表位(每8列为一个
制表位)
\" ——输出双引号(") \\ ——输出反斜杠(\) \ddd —— \后跟1~3位八进制数。该八进制数为要
表示字符的ASCII码值。 \xhh ——\x后跟1~2位十六进制数。该十六进制数
整数部分按实际位数输出,小数部分保留6位
%c
输出一个char型数据
%s
输出字符串
%u
输出十进制无符号整数
%o
输出八进制无符号整数
%x 或 %X 输出十六进制无符号整数
%e 或 %E 按指数格式输出浮点数
%g
根据实际数值大小,自动选择按%f或%e格式输出浮点数
%% 2020/12/10
输出一个%
5
② 格式串中常用的转义字符(P38 表3-2)
例 printf("%2d,%5d,%5.4d,%5.2d",123,123,123,123);
显示结果: 123, 123, 0123, 123
2020/12/10
11
② %m.nf
m :规定了对应浮点数输出时所占的总位数;包括:
符号位、整数位、小数点、小数位。
n :规定了对应浮点数输出时,所输出的小数位数。
第3章 简单程序设计
3.1 基本的输入/输出函数 3.2 编译预处理命令define和include 3.3 程序设计举例
2020/12/10
1
3.1 基本的输入/输出函数(P37)
➢printf( )函数: 简单数据类型的格式化输出函数; ➢scanf( )函数: 简单数据类型的格式化输入函数; ➢putchar( )函数: 字符类型输出函数; ➢getchar( )函数: 字符类型输入函数.
实际小数位数大于n 时,四舍五入。 省略 n 时,默认小数位数为 6 位。
例 printf(", 12.345,12.345);
显示结果: 12.345000, 12.35,12.35
2020/12/10
12
③ %m.ns
m :规定了对应字符串输出时所占的总位数;
显示结果:65533
2020/12/10
16
3.1.2 格式输入函数scanf( ) (P42)
1. 一般格式
1 ~多个 用逗号分隔
scanf ("格式控制字符串" , 变量地址列表)
注意:程序中使用输入/输出函数时,需要在程序的 开头使用文件包含命令。格式如下:
#include <stdio.h> 或 #include "stdio.h"
2020/12/10
2
3.1.1 格式输出函数printf( ) (P38)
0 ~多个
1. 一般格式
(用逗号分隔)
printf ("格式控制字符串" , 输出表达式列表)
例: printf("Hello world ! \n"); printf("x=%d,y=%f\n",x,y);
2.函数的功能
➢将表达式的值按格式控制字符串指定的位置和格式显示 在屏幕上.
2020/12/10
3
3. 格式控制字符串的组成
① 格式转换说明符(常用)
格式转换说明符%? 转义字符 普通字符
为要表示字符的ASCII码值。
6
③ 格式串中的其他字符
➢ 除格式转换说明符和转义字符外的其他字符都视 为普通字符,它们与输出项无关,输出时照原样 显示。
2020/12/10
7
➢简单输出示例
#include <stdio.h> main() {
printf("hello!\n"); printf("a=%d,b=%d\n",3,4); printf("c=%d\tx=%f\n",3+4,-1.27); }
显示结果: abc abc
2020/12/10
ababc
13
(2) 对齐修饰 右对齐方式:%m.nd、 %m.nf 、 %m.ns
左对齐方式:%-m.nd、 %-m.nf 、 %-m.ns
例 printf("1=%5d,%-5d\n",1234,1234); printf("2=%5.2fd,%-5.2f\n",1.236,1.236); printf("3=%5s,%-5s\n","abc","abc");
2020/12/10
8
4. 使用printf函数的注意事项
输出表达式的个数与格式控制字符串中格式符 的个数必须相同,并且类型要一致。否则会产 生意想不到的错误。
2020/12/10
9
5. 特殊格式控制(P39)
(1) 指定输出项的宽度
在百分号和格式字母之间加整数,可以规定输出数 据的宽度. 主要格式有:
%d 输出十进制整数 %f 输出float或double型数据,默认保留6位小数 %c 输出单个字符 %s 输出一个字符串
2020/12/10
4
表3-1(P38) printf( )函数中的格式控制符
格式符
功能
%d
输出十进制 int型数据。 %ld——输出long型数据
%f
输出float或double型数据。%lf——输出double型数据
%m.nf %m.nd 常用 %md %m.ns 常用 %ms
2020/12/10
10
① %m.nd
m: 规定了对应整数输出时所占的总位数;数据的
实际位数大于m 时,按实际位数输出;
n: 规定了对应整数输出时最小有效位数;数据的实
际有效位数大于n 时,按实际位数输出,小于n 时, 左侧补0。