第5讲 输入输出与顺序结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式输出——输出列表
形式
表达式1, 表达式2, … , 表达式n
每个表达式是需要计算并显示的对象 其中逗号(,)并不是逗号运算符号,
是表达式之间的分隔符
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
25
Data I/O
printf(格式字符串 ,输出列表) ;
18
Data I/O
字符数据(char型)的输出
putchar函数
• 调用形式
函数参数
putchar(int型表达式);
• 功能:计算参数表达式,并以表达式值为 ASCII值显示相应的一个字符
• 参数可以是字符型量(常量、变量)——将自动 转换为int型(整型提升),作为字符的ASCII值
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
27
Data I/O(自学【pp48-51:4.2】)
格式输出——格式控制符形式
%[标志 ][输出最小宽度][.精度][长度]类型
可选项
掌握基本用法和核心概念,具体要素可 在实际应用时查阅
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
Data I/O
C语言中数据的输入输出方法
通过调用输入输出标准库函数进行(See pp4858: 4.2-4.4)
需要头文件stdio.h的支持
#include <stdio.h>
main ( )
{ …
stdio.h中包含输入输出标准库 函数所需要的必要信息
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
{
Yes!
No!
y=sin(x); /* 计算sin函数值并存放到y中 */ printf("\n%f", y); /* 函数调用语句——输出y的值*/
x = x + PI/18.0; /* 增加10度= /18弧度 */
}
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
11
Sequential Structure of Program
顺序结构程序的特征
语句的排列顺序与语句的执行顺序一致
① 一个语句执行之前一定执行前一条语句 (如果存在)
② 一个语句执行之后一定执行下一条语句 (如果存在)
③ 不存在转移
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
10
Lecture 5 Data I/O & Sequential Structure
Statement Sequential Structure of
Program ——顺序结构程序
【重点】顺序结构程序的特征 Data Input & Output
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
Sequential Structure of Program Data Input & Output
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
2
Statement
基本概念
语句是程序中基本的可执行单位——在 程序执行时完成计算机对数据的特定操 作(如:改变变量的值、进行运算等)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
16
Data I/O
输入输出设备
输出设备:显示器(monitor)、打印机 (printer)、文件(file)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
17
格式输出——格式字符串:以” ”括起
① 格式控制符:以%开始,后跟一个或几个规 定字符,决定表达式输出格式,格式控制符 按顺序对应于表达式
② 转义字符:以\开始的特定字符,按指定含 义解释并输出(see pp45:Tab.4-1)
③ %%表示输出1个%
printf("%5.2f%%", 50.0);
4
Statement
C程序语句的分类
① 表达式语句:计算表达式 ② 控制语句:实现程序流程改变 ③ 复合语句:组合多个语句 ④ 空语句(;):不进行任何操作,保证正确的
语法结构
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
5
Statement
注释(comment)
21
Data I/O
字符数据的输入输出
#include <stdio.h>
main ( )
{
/* 输入一个字符,显示其ASCII值 */
char c; c=getchar();
字符型量用十进制显示
printf("%d", c);
c
}
内存单元
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
程序的功能是通过执行语句实现的 每个语句以分号(;)结尾——语法特征
语句如同自然语言中的句子,是表达完整意思的基本单位 分号(;)如同自然语言中的句号(。),表示一个句子终结
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
3
Statement
表达式与语句
第5讲 数据输入输出与顺序结构
【Chap.4】
2019.9
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
1
Lecture 5 Data I/O & Sequential Structure
Statement ——语句 【重点】表达式语句 【难点】表达式和表达式语句的区别
表达式是关于运算意图的表述(“要做什么”) 表达式自身不能产生运算效果,只有出现在语
句中时,表达式才可以得到计算(实现) x=1+2是表达式,表示希望计算1+2并把结果
送入x所在内存单元中(赋值),但这些动作 并未发生,仅仅是意图 x=1+2 ; 是语句,实现上述目的
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
• 功能:等待键盘输入,当从键盘输入一个字符并回车 时,函数值为该字符的ASCII值,是int型
• 第1种形式:把所输入字符(的ASCII值)存储到变量中
• 第2种形式:所输入字符并不保存,效果是程序暂停 (等待回车继续执行)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
输入输出
输入(input):从输入设备接收数据并 存放到指定内存单元
输出(output):把内存中的数据传输到 输出设备进行显示、打印、保存、传送 等
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
15
Data I/O
输入输出设备
输 入 设 备 : 键 盘 (keyboard) 、 鼠 标 (mouse) 、 扫 描 仪 (scanner) 、 文 件 (file)
#define PI 3.14159
main ( )
{
/* 显示0-90度之间每隔10度的正弦值*/
double x=0.0; /* 角度(弧度),sin函数要求double型参数 */
double y; /* 存放sin函数值 */
while (x<=PI/2.0) /* 循环语句——当不超过/2时循环 */
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
9
Statement
为了使用printf函数
##iinnccll程uudd序ee <<示sm例tdatioh..hh>>
为【了p使p4用1s1i:nA函pp数.E 4.】 【符pp号40常6量:APpIp的.E定1.义】
12
Sequential Structure of Program
顺序结构程序的特征
操作A 操作B
main ( ) {
int i; A. i=0; B. i = i + 1;
…… }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
13
Lecture 5 Data I/O & Sequential Structure
19
Data I/O
#include <stdio.h>
main ( )
{ char c='A';
输出换行符,Scee pp4566:6T5ab.4-1
putchar(c++); 65+32=97
内存
Biblioteka Baidu
putchar('\n'); 单引号的表示法,See pp45:Tab.4-1
putchar('A'+32); putchar('\''); putchar('A');
除非在” ”之内,/*与*/之间的内容是 注释,在编译之前(预处理阶段) /*…*/被过滤掉(用1个空格替换)
注释对增强源程序可读性起重要作用!
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
6
Statement
表达式语句(参考【Lecture 3】)
x+1; /* 无副作用 */ x = x+y ; /* 赋值语句,有副作用 */ … }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
+1 内存
临释时3放空间
8
Statement
表达式语句
表达式语句的执行价值在于表达式计算 过程中产生的副作用 执行x=1;的目的是改变 x的值(副作 用),而并不在于得到该赋值表达式的 值
形式
分号是语句的标志
表达式 ;
功能:计算表达式
表达式语句是基本的语句,执行效果是 完成表达式的计算
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
7
Statement
表达式语句
+
main ( ) {
x 122
int x=2, y=10; /*变量定义与初始化*/ y 10
④ 其它字符:代表自身,原样输出
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
26
Data I/O
格式输出
The answer is
#include <stdio.h> main ( )
48, 0
{
int i;
i=48;
printf("The answer is\n%d,%c", i, i);
A a’A ’ B
putchar('\''); 下一字符 putchar(c); 显示位置
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
20
Data I/O
字符数据的输入
getchar函数
• 调用形式
1
无参数!
变量=getchar();
2
getchar();
Statement Sequential Structure of Program Data Input & Output
——数据的输入输出 【重点】输入输出函数的调用方法 【难点】格式输入
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
14
Data I/O
23
Data I/O
格式输出(formatted Output)
形式
printf(格式字符串,输出列表);
功能 ① 计算输出列表中的表达式 ② 按指定的格式输出各表达式的值
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
24
Data I/O
printf(格式字符串,输出列表 ) ;
28
Data I/O
格式输出——格式控制符(部分):标志
d 以十进制形式输出有符号整数(正数不输出 符号)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
c 输出单个字符
p 输出指针的值(地址)
x 以十六进制形式输出无符号整数(不输出前 缀0x)
22
Data I/O
字符数据的输入输出
#include <stdio.h> main ( ) {
printf("Get set!"); /* “预备!” */ getchar(); /* 回车 */ printf("Go!"); /* “跑!” */ }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
形式
表达式1, 表达式2, … , 表达式n
每个表达式是需要计算并显示的对象 其中逗号(,)并不是逗号运算符号,
是表达式之间的分隔符
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
25
Data I/O
printf(格式字符串 ,输出列表) ;
18
Data I/O
字符数据(char型)的输出
putchar函数
• 调用形式
函数参数
putchar(int型表达式);
• 功能:计算参数表达式,并以表达式值为 ASCII值显示相应的一个字符
• 参数可以是字符型量(常量、变量)——将自动 转换为int型(整型提升),作为字符的ASCII值
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
27
Data I/O(自学【pp48-51:4.2】)
格式输出——格式控制符形式
%[标志 ][输出最小宽度][.精度][长度]类型
可选项
掌握基本用法和核心概念,具体要素可 在实际应用时查阅
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
Data I/O
C语言中数据的输入输出方法
通过调用输入输出标准库函数进行(See pp4858: 4.2-4.4)
需要头文件stdio.h的支持
#include <stdio.h>
main ( )
{ …
stdio.h中包含输入输出标准库 函数所需要的必要信息
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
{
Yes!
No!
y=sin(x); /* 计算sin函数值并存放到y中 */ printf("\n%f", y); /* 函数调用语句——输出y的值*/
x = x + PI/18.0; /* 增加10度= /18弧度 */
}
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
11
Sequential Structure of Program
顺序结构程序的特征
语句的排列顺序与语句的执行顺序一致
① 一个语句执行之前一定执行前一条语句 (如果存在)
② 一个语句执行之后一定执行下一条语句 (如果存在)
③ 不存在转移
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
10
Lecture 5 Data I/O & Sequential Structure
Statement Sequential Structure of
Program ——顺序结构程序
【重点】顺序结构程序的特征 Data Input & Output
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
Sequential Structure of Program Data Input & Output
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
2
Statement
基本概念
语句是程序中基本的可执行单位——在 程序执行时完成计算机对数据的特定操 作(如:改变变量的值、进行运算等)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
16
Data I/O
输入输出设备
输出设备:显示器(monitor)、打印机 (printer)、文件(file)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
17
格式输出——格式字符串:以” ”括起
① 格式控制符:以%开始,后跟一个或几个规 定字符,决定表达式输出格式,格式控制符 按顺序对应于表达式
② 转义字符:以\开始的特定字符,按指定含 义解释并输出(see pp45:Tab.4-1)
③ %%表示输出1个%
printf("%5.2f%%", 50.0);
4
Statement
C程序语句的分类
① 表达式语句:计算表达式 ② 控制语句:实现程序流程改变 ③ 复合语句:组合多个语句 ④ 空语句(;):不进行任何操作,保证正确的
语法结构
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
5
Statement
注释(comment)
21
Data I/O
字符数据的输入输出
#include <stdio.h>
main ( )
{
/* 输入一个字符,显示其ASCII值 */
char c; c=getchar();
字符型量用十进制显示
printf("%d", c);
c
}
内存单元
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
程序的功能是通过执行语句实现的 每个语句以分号(;)结尾——语法特征
语句如同自然语言中的句子,是表达完整意思的基本单位 分号(;)如同自然语言中的句号(。),表示一个句子终结
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
3
Statement
表达式与语句
第5讲 数据输入输出与顺序结构
【Chap.4】
2019.9
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
1
Lecture 5 Data I/O & Sequential Structure
Statement ——语句 【重点】表达式语句 【难点】表达式和表达式语句的区别
表达式是关于运算意图的表述(“要做什么”) 表达式自身不能产生运算效果,只有出现在语
句中时,表达式才可以得到计算(实现) x=1+2是表达式,表示希望计算1+2并把结果
送入x所在内存单元中(赋值),但这些动作 并未发生,仅仅是意图 x=1+2 ; 是语句,实现上述目的
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
• 功能:等待键盘输入,当从键盘输入一个字符并回车 时,函数值为该字符的ASCII值,是int型
• 第1种形式:把所输入字符(的ASCII值)存储到变量中
• 第2种形式:所输入字符并不保存,效果是程序暂停 (等待回车继续执行)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
输入输出
输入(input):从输入设备接收数据并 存放到指定内存单元
输出(output):把内存中的数据传输到 输出设备进行显示、打印、保存、传送 等
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
15
Data I/O
输入输出设备
输 入 设 备 : 键 盘 (keyboard) 、 鼠 标 (mouse) 、 扫 描 仪 (scanner) 、 文 件 (file)
#define PI 3.14159
main ( )
{
/* 显示0-90度之间每隔10度的正弦值*/
double x=0.0; /* 角度(弧度),sin函数要求double型参数 */
double y; /* 存放sin函数值 */
while (x<=PI/2.0) /* 循环语句——当不超过/2时循环 */
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
9
Statement
为了使用printf函数
##iinnccll程uudd序ee <<示sm例tdatioh..hh>>
为【了p使p4用1s1i:nA函pp数.E 4.】 【符pp号40常6量:APpIp的.E定1.义】
12
Sequential Structure of Program
顺序结构程序的特征
操作A 操作B
main ( ) {
int i; A. i=0; B. i = i + 1;
…… }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
13
Lecture 5 Data I/O & Sequential Structure
19
Data I/O
#include <stdio.h>
main ( )
{ char c='A';
输出换行符,Scee pp4566:6T5ab.4-1
putchar(c++); 65+32=97
内存
Biblioteka Baidu
putchar('\n'); 单引号的表示法,See pp45:Tab.4-1
putchar('A'+32); putchar('\''); putchar('A');
除非在” ”之内,/*与*/之间的内容是 注释,在编译之前(预处理阶段) /*…*/被过滤掉(用1个空格替换)
注释对增强源程序可读性起重要作用!
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
6
Statement
表达式语句(参考【Lecture 3】)
x+1; /* 无副作用 */ x = x+y ; /* 赋值语句,有副作用 */ … }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
+1 内存
临释时3放空间
8
Statement
表达式语句
表达式语句的执行价值在于表达式计算 过程中产生的副作用 执行x=1;的目的是改变 x的值(副作 用),而并不在于得到该赋值表达式的 值
形式
分号是语句的标志
表达式 ;
功能:计算表达式
表达式语句是基本的语句,执行效果是 完成表达式的计算
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
7
Statement
表达式语句
+
main ( ) {
x 122
int x=2, y=10; /*变量定义与初始化*/ y 10
④ 其它字符:代表自身,原样输出
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
26
Data I/O
格式输出
The answer is
#include <stdio.h> main ( )
48, 0
{
int i;
i=48;
printf("The answer is\n%d,%c", i, i);
A a’A ’ B
putchar('\''); 下一字符 putchar(c); 显示位置
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
20
Data I/O
字符数据的输入
getchar函数
• 调用形式
1
无参数!
变量=getchar();
2
getchar();
Statement Sequential Structure of Program Data Input & Output
——数据的输入输出 【重点】输入输出函数的调用方法 【难点】格式输入
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
14
Data I/O
23
Data I/O
格式输出(formatted Output)
形式
printf(格式字符串,输出列表);
功能 ① 计算输出列表中的表达式 ② 按指定的格式输出各表达式的值
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
24
Data I/O
printf(格式字符串,输出列表 ) ;
28
Data I/O
格式输出——格式控制符(部分):标志
d 以十进制形式输出有符号整数(正数不输出 符号)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
c 输出单个字符
p 输出指针的值(地址)
x 以十六进制形式输出无符号整数(不输出前 缀0x)
22
Data I/O
字符数据的输入输出
#include <stdio.h> main ( ) {
printf("Get set!"); /* “预备!” */ getchar(); /* 回车 */ printf("Go!"); /* “跑!” */ }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU