第5讲 输入输出与顺序结构
{
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
4
Statement
C程序语句的分类
① 表达式语句:计算表达式 ② 控制语句:实现程序流程改变 ③ 复合语句:组合多个语句 ④ 空语句(;):不进行任何操作,保证正确的
语法结构
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
5
Statement
注释(comment)
11
Sequential Structure of Program
顺序结构程序的特征
语句的排列顺序与语句的执行顺序一致
① 一个语句执行之前一定执行前一条语句 (如果存在)
② 一个语句执行之后一定执行下一条语句 (如果存在)
③ 不存在转移
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
第5讲 数据输入输出与顺序结构
【Chap.4】
2019.9
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
1
Lecture 5 Data I/O & Sequential Structure
Statement ——语句 【重点】表达式语句 【难点】表达式和表达式语句的区别
④ 其它字符:代表自身,原样输出
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);
格式输出——输出列表
形式
表达式1, 表达式2, … , 表达式n
每个表达式是需要计算并显示的对象 其中逗号(,)并不是逗号运算符号,
是表达式之间的分隔符
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
25
Data I/O
printf(格式字符串 ,输出列表) ;
IIP Lab., Dept.of Comput. Sci. & Technol.,Yபைடு நூலகம்U
16
Data I/O
输入输出设备
输出设备:显示器(monitor)、打印机 (printer)、文件(file)
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
17
表达式是关于运算意图的表述(“要做什么”) 表达式自身不能产生运算效果,只有出现在语
句中时,表达式才可以得到计算(实现) x=1+2是表达式,表示希望计算1+2并把结果
送入x所在内存单元中(赋值),但这些动作 并未发生,仅仅是意图 x=1+2 ; 是语句,实现上述目的
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
Statement Sequential Structure of Program Data Input & Output
——数据的输入输出 【重点】输入输出函数的调用方法 【难点】格式输入
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
14
Data I/O
格式输出——格式字符串:以” ”括起
① 格式控制符:以%开始,后跟一个或几个规 定字符,决定表达式输出格式,格式控制符 按顺序对应于表达式
② 转义字符:以\开始的特定字符,按指定含 义解释并输出(see pp45:Tab.4-1)
③ %%表示输出1个%
printf("%5.2f%%", 50.0);
A a’A ’ B
putchar('\''); 下一字符 putchar(c); 显示位置
}
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
20
Data I/O
字符数据的输入
getchar函数
• 调用形式
1
无参数!
变量=getchar();
2
getchar();
x+1; /* 无副作用 */ x = x+y ; /* 赋值语句,有副作用 */ … }
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
+1 内存
临释时3放空间
8
Statement
表达式语句
表达式语句的执行价值在于表达式计算 过程中产生的副作用 执行x=1;的目的是改变 x的值(副作 用),而并不在于得到该赋值表达式的 值
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
}
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
形式
分号是语句的标志
表达式 ;
功能:计算表达式
表达式语句是基本的语句,执行效果是 完成表达式的计算
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
7
Statement
表达式语句
+
main ( ) {
x 122
int x=2, y=10; /*变量定义与初始化*/ y 10
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
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.义】
10
Lecture 5 Data I/O & Sequential Structure
Statement Sequential Structure of
Program ——顺序结构程序
【重点】顺序结构程序的特征 Data Input & Output
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
除非在” ”之内,/*与*/之间的内容是 注释,在编译之前(预处理阶段) /*…*/被过滤掉(用1个空格替换)
注释对增强源程序可读性起重要作用!
IIP Lab., Dept.of Comput. Sci. & Technol.,YBU
6
Statement
表达式语句(参考【Lecture 3】)
• 功能:等待键盘输入,当从键盘输入一个字符并回车 时,函数值为该字符的ASCII值,是int型
• 第1种形式:把所输入字符(的ASCII值)存储到变量中