Download presentation
Presentation is loading. Please wait.
Published byLotte Smets Modified 5年之前
1
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例
2
2.1 数据类型概述
3
问题1 数据在计算机中是如何存储的? 冯·诺依曼计算机 指令和数据都存储在计算机内存中 都以二进制(Binary)形式存储在内存中
4
问题2 为什么用二进制存储? 二进制在电器元件中易实现 双稳态元件很多 电压的高与低 电容器的充电与放电 脉冲的有与无 晶体管的导通与截止
二进制运算较十进制简单 易于在物理上实现存储 与逻辑真假一一对应 用1表示真,0表示假
5
问题3 何为二进制? 十进制数 用0-9这10个数码表示十进制数的一个数位 逢10进1、借1当10 可表示为10的多项式之和
如 即 1×102+2×101+3×100+4×10-1+5×10-2+6×10-3 二进制数 用0-1这2个数码表示十进制数的一个数位 逢2进1、借1当2 可表示为2的多项式之和 如( )2即 1×22+0×21+1×20+1×2-1+0×2-2+1×2-3
6
问题4 如何表示二进制的正负? 使用二进制数的最高位(最左位)表示正负,称为符号位 0表示正数,1表示负数
(123)10即 (-123)10即 加减法表示不方便 如何区别0? 以补码形式存储负数 便于用统一的形式表示0 便于实现加减法运算
7
问题4 如何表示二进制的正负? 补码 正数和零的原码、反码、补码均相同
负数:原码 -> 反码(原码按位取反) -> 补码(=反码+1) 例如: (-123)10 原码: 反码: 补码: 例如: (-1)10 原码: 反码: 补码:
8
问题5 数据在程序中是如何表示的? 二进制的压缩表示:八进制、十六进制 二进制和八进制如何相互转换? 3位一组,直接转换
( )2 分组:1,111,111,110,000,101 转换:(177605)8 ( )8 转换:001,010,011,100,101,110,111 转换:( )2
9
问题5 数据在程序中是如何表示的? 二进制和十六进制如何相互转换? 4位一组,直接转换,用A-F表示10-15
( )2 分组:1111,1111,1000,0101 转换:(FF85)16 (3A4E)16 转换:0011,1010,0100,1110 转换:( )2
10
常量 常量就是在程序使用之前预先设定并在整个运行过程中没有变化的量。 C语言有两种实现常量的方法: 直接常量和符号常量
11
变量 变量是在程序执行过程中其值可以改变的量。 在程序中需要先定义变量,再使用变量。 定义变量包含两个步骤: ① 指出变量的数据类型。
例如: int studentID; //int是变量的数据类型 ② 为每个变量取一个名称(变量名)。 int studentID; //studentID是变量名
12
C语言允许把数据存放在变量中,每一个变量都由一个变量名来标识。变量名的命名规则要满足标识符的规定。
每个变量都必须具有一个类型。 每个变量根据它的类型,在内存中占据一 定数目的字节单元,该变量的值就存放在 这些内存单元中。
13
变量 变量的本质就是命名的内存单元 变量名 prod 实际上是一个符号地址 内存单元的地址 prod 123 123是 prod的值
内存单元的内容 变量的本质就是命名的内存单元
14
标识符 标识符即用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。
15
标识符的命名规定 只能由大小写字母、下划线和数字组成; 开头的第一个字符只能是大小写字母或 下划线; 大小写是敏感的;
不能与C的关键字重复; 名字在整个程序中必须是唯一的; 名字的长度不能超过系统的规定。
16
非法标识符的例子 非法的C标识符: 3rd_entry (数字开头) all$done (包含非法字符$) the end (包含空格)
int (系统关键字)
17
2.2 基本数据类型
18
数据类型的概念 数据类型:数据存在的组织和形式。 程序中用到的所有数据都必须指定其数据 类型。
19
C的数据类型 整型 单精度型 基本类型 浮点型 双精度型 C的数据类型 字符型 数组类型 结构体类型 构造类型 联合类型 指针类型 枚举类型
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 其上可进行的操作 指针类型 枚举类型 空类型
20
2.2.1 整型数据的常量与变量
21
1. 整型数据类型
22
2.整型常量 整型常量即整常数。 C中有下面三种形式的整型常量: 1) 十进制整型常量: 由数字0~9和正负号表示
如: 123, -456, 0
23
2. 整型常量 2)八进制整型常量: 由数字0开头,后跟数字0~7表示. 如: 0123, 即(0123)8 =(83)10
注意:八进制整型常量中不应出现“7”以上的数码。 如: 0128, 0209
24
2. 整型常量 3) 十六进制整型常量:以 “0x或0X”开头后跟0~9,a~f或A~F表示
如: 0xFF, 即(0xFF)16 =(255)10 0123=1*82+2*82+3*80 0x123=1*162+2*162+3*160=291 24
25
2. 整型常量--整型数据的存放 例如:short a=10; 内存中实际存放的是 +10 的补码 a 10 1
1 例如:unsigned short a=-10; 内存中实际存放的是 -10 的补码 a -10 1 输出a的值为:65526
26
3. 整型变量 变量定义的一般格式是: 类型 变量名; /* 注释 */ 定义整型变量 int i; // 定义变量i,系统为变量i分配4个字节的内存 int i, j, k; //定义i,j,k三个整型变量 注:C语言中的所有关键字都是小写的。
27
3. 整型变量-----变量先定义后使用的好处
3. 整型变量-----变量先定义后使用的好处 #include <iostream> using namespace std; int main() { int a , b , sum ; a = 123; b = 456; sum = a + b; cout<<"sum="<<sim<<endl; return 0; } sim在这之前从未定义过,所以编译不能通过,且会出现错误信息。 此处定义的变量名是 sum Error:Undefined symbol 'sim'
28
4. 整型变量的初始化 C语言允许在定义变量的同时赋值,这称为变量初始化。 也可以给部分变量赋初值 int i = 0;
4. 整型变量的初始化 C语言允许在定义变量的同时赋值,这称为变量初始化。 int i = 0; int number = 12345; 也可以给部分变量赋初值 int i, j, k = 0;
29
4. 整型变量的初始化 ◆不能用连续赋值方式给多个变量赋同一初值 如:int TotalScore = AverScore = 0;
4. 整型变量的初始化 ◆不能用连续赋值方式给多个变量赋同一初值 如:int TotalScore = AverScore = 0; 正确的应该是: int TotalScore=0, AverScore=0;
30
2.2.2 浮点型数据的常量与变量
31
1. 浮点型数据类型 1. 浮点型数据类型
32
2. 浮点型常量 实数又叫“浮点数”。 C语言中,实数常量有两种表示形式: 十进制小数形式:由数字和小数点组成。 (小数点必须有)
如: 10.23, , .12, 0.0, 89.
33
2. 浮点型常量 指数形式:±s E ±n 或 ±s e ±n 形式。 注意: E或e前面必须有数字,后面的指数 必须为整数。
34
2. 浮点型常量----为浮点型常量指定类型 默认为double型。 在常量后加字母f或F,指定数据是float型常量。如 f
35
3. 浮点型变量 定义浮点型变量 float a=1.0f; // 定义变量a,系统为它分配4个字节的内存,并为a赋初值1.0 double number=0.0; // 定义变量number,系统为它分配8个字节的内存,并赋初值为0.0
36
2.2.3 字符型数据的常量与变量
37
1. 字符型数据类型
38
1. 字符型数据类型----在内存中的存储方式
字符型数据在内存中占一个字节,该字节中保存的是其ASCII代码。 常用字符的ASCII 代码表 ASCII值 字符 NUL 48 65 A 97 a 10 LF 换行 49 1 66 B 98 b 13 CR 回车 … 32 空格 57 9 90 Z 122 z
39
汉字存储 汉字编码,兼容ASCII码,使用连续的2字节存储一个汉字,每个字节的最高位为1 GB2312 6763字 定长2字节
GBK 字 定长2字节 GB 字(强制) 变长4字节 GB 字(推荐) 变长4字节 BIG 字 定长2字节
40
其他字符编码 Unicode ISO制定 2字节编码,共编码65536个字符 可编码所有语言的所有字符 UTF-8
变长字符编码 用于在网页上显示国际字符 Java使用其变种UTF-16
41
2. 字符型常量 C语言中,字符常量是用单引号’ 括起来的一个字符,这些字符都是ASCII码集中的字符。
2. 字符型常量 C语言中,字符常量是用单引号’ 括起来的一个字符,这些字符都是ASCII码集中的字符。 比如:’a’ , ’A’ , ’d’ , ’D’ ,’?’ , ’%’ , ’$’ , ’2’ , ’4’ 注意: ’a’ 和 ’A’ , ’d’ 和 ’D’ 都是不 同的字符常量。
42
2. 字符型常量----转义字符常量 另外:C语言还存在转义字符常量。 它以 \ 字符开头,后面跟一个字符或代码值,并用单引号括起来。
2. 字符型常量----转义字符常量 另外:C语言还存在转义字符常量。 它以 \ 字符开头,后面跟一个字符或代码值,并用单引号括起来。 比如: ’\n’ , ‘\t’ , ‘\r’ , ‘\\’
43
2. 字符型常量----转义字符常量及其含义 转义字符 含义 ASCII 代码 控 制 字 符 \n 回车换行(光标移到下一行第一列) 10
2. 字符型常量----转义字符常量及其含义 转义字符 含义 ASCII 代码 控 制 字 符 \n 回车换行(光标移到下一行第一列) 10 \t 水平制表 (光标移到下一个Tab位置) 9 \b 退格(光标移回到同一行前一列) 8 \r 回车(光标移到同一行第一列) 13 \f 换页(光标移到下一页开头) 12
44
2. 字符型常量----转义字符常量及其含义 转义字符 含义 ASCII 代码 \ddd
2. 字符型常量----转义字符常量及其含义 转义字符 含义 ASCII 代码 \ddd ddd为1至3位八进制数字构成,表示对应的ASCII码的字符 \xdd dd为1至2位十六进制数字构成,表示对应的ASCII码的字符 特殊标点符号 \\ 反斜杠字符 “\” 92 \‘ 单引号(撇号)字符 ‘ 39 \“ 双引号字符 “ 34 如 ’\101’ ’A’ ’\012’ ’\n’ ’\376’ ’’ ’\x61’ ’a’ ’\60’ ’0’ ’\483’ --- () 例5:(程序) ’A’--’\101’---’\x41’----65 举例: char a; a=‘A’; a=65; 44
45
2. 字符型常量----字符型数据在内存中的存储方式
2. 字符型常量----字符型数据在内存中的存储方式 ASCII 值=65 ’A’ 65 1 这个字节存储的内容是 。 如果它以整型的格式输出,则输出65; 如果它以字符型格式输出,则输出A。
46
3. 字符型变量 定义型变量 char a; // 定义变量a,系统为它分配1 个字节的内存 a='a'; // 把'a'常量赋值到a变量中
47
3. 字符型变量---整型数据和字符型数据通用
3. 字符型变量---整型数据和字符型数据通用 字符型数据存储对应的 ASCII 码,和整型数据在一定范围内可以通用,即可以相互赋值,相互输出,也可以在一起进行运算。 “一定范围内” 指的是“一个字节”所能保存的整数范围内。 char linefeed = 65; char linefeed = 'A';
48
2.2.4 字符串常量
49
2.2.4 字符串常量 C语言中,字符串常量是用双引号" 括起来的若干个字符。 比如:’’a” , ”A” , ”hello” ,
”OK” , ”SiChuanDaXue” ◆字符串常量在内存中占用连续的字节单元,每个字符按顺序占一个字节。 系统自动在字符串常量的结尾加一个字符串结束标志字符, 表示字符串结束。
50
2.2.4 字符串常量---字符串结束标志字符 C语言中,字符串结束标志字符是 ’\0’ 。
◆ ’\0’ 是ASCII码为0的字符。它是一个“空操作字符”,它既不引起任何控制动作,也不产生任何显示。 ◆ 因此,字符串常量在内存中占用的字节数等于可见字符数加上1。
51
字符串结束标志字符也是一个字符,也要占用一个字节。
2.2.4 字符串常量---字符串结束标志字符 字符串结束标志字符也是一个字符,也要占用一个字节。 5个可见字符 H E L O \0 ” HELLO ” 总共占用6个字节 没有字符串变量,字符串用字符数组存放。
52
2.2.4 字符串常量---’A’和”A”的区别 ’A’ 是字符常量,占一个字节单元 ”A” 是字符串常量,占两个字节单元, 包括’ A’和’\0’两个字符 ◆不能把一个字符串常量赋值给一个字符变量。 如 char c1 = ”A” ; 是错误的。
53
2.2.5 常变量
54
2.2.5 常变量 用const关键字把一个变量声明转换成常量声明 例如,用常变量PI存储π的值 const double PI = ;
55
2.3 运算符与表达式
56
2.3.1 运算符与表达式概述
57
1.运算符 运算符:一些特定的符号,具有特定的运算功能. 例如: 算术运算(加、减、乘、除) 比较运算(大于、小于、等于)
逻辑运算(与、或、非) C语言共有34种运算符。
58
1.运算符 学习运算符应注意: 运算符功能 与运算量关系 要求运算量个数 要求运算量类型 运算符优先级别 结合方向 结果的类型
59
2.表达式和表达式语句 表达式:按照运算符的性质,用运算符把数据连接起来以达到运算目的的式子。
每一个表达式都会有一个运算的结果,称为表达式的值。一个表达式中往往包含多个运算符,所以必须熟悉每一种运算符的性质(优先级别和结合性),才能写出正确的表达式。 在表达式的末尾加上一个分号“;”就构成了表达式语句。
60
2.3.2 算术运算符和算术表达式
61
1. 基本的算术运算符 ◆算术运算符(双目): + 加 - 减 * 乘 / 除 % 求余 如: 20*4 ;
+ 加 - 减 * 乘 / 除 % 求余 如: 20*4 ; 10-3+5*2-8%9/3 ; 3%5
62
1. 基本的算术运算符---算术运算符的说明 说明: 两整数相除,结果为整数 %要求两侧均为整型数据,其结果的符号与左边数据的符号相同。
63
1. 基本的算术运算符---例 例 -5/2.0 = -2.5 例 -5%2 = -1 5.5%2 ()
#include <iostream> using namespace std; int main( ) { int a=3, b=5, c=0; c = a/b; cout<<“c=”<<c<<”\n”; c = b/a; return 0; } 例 -5/2.0 = -2.5 例 -5%2 = -1 5.5% ()
64
2. 算术运算的优先级与结合性 算术运算符的优先级: *、/、% 同级 +、- 同级 高 低 算术运算符的结合性: 自左向右 参考课本的附录
C语言全部34种运算符的性质以及 优先级和结合性。
65
3. 自增、自减运算符 ◆自增、自减运算符(单目) 运算符: ++ -- 优先级: 高于算术运算符 结合性: 右结合性
运算符: ++ -- 优先级: 高于算术运算符 结合性: 右结合性 作 用: 使变量的值加1或减1
66
? 3. 自增、自减运算符 ◆用法:设i是个整型变量, ++i -- i (运算符前置) i++ i -- (运算符后置) 两种用法的区别?
67
? 3. 自增、自减运算符----使用注意事项 注意:自增、自减运算符的运算量只能 是变量,不可能是常量或表达式。 为什么?
因为自增、自减运算符有赋值功能,常量和表达式不能被赋值。 ++ i i = i + 1 - - i i = i - 1 像下面这样的用法就是错误的: (x+y) ++
68
2.3.3 赋值运算符和赋值表达式
69
1. 赋值运算符的功能、优先级和结合性 ◆赋值运算符(双目) 运算符: = 优先级: 低于算术运算符。 结合性: 右结合性
作 用:将一个数据赋值给一个变量, 这个数据可以是常量、变量或 表达式。
70
1. 赋值运算符的功能、优先级和结合性 ◆赋值表达式一般形式: 变量=表达式 如:num=40 把常量40赋值给变量num
如:aver=total/num 把表达式total/num的值赋给变量aver 如:temp=aver 把变量aver的值赋给变量temp
71
3. 赋值运算符的使用 注意:赋值表达式的左边只能是变量, 而右边可以是常量、变量或任何合法的 C表达式。 像下面这样的用法就是错误的:
10 = x x+y = 1 整个赋值表达式的值就等于赋值后的左边变量的值。
72
3. 赋值运算符的使用 规则:赋值号右边表达式值自动转换成左边变量的类型 例 int i; i=2.56; //结果i=2;
例 float f; int i; i=10; f=i; //结果 f=10.0
73
2.3.4 关系运算符和关系表达式
74
1. 关系运算符的功能 ◆关系运算符(双目):也叫“比较运算符” 6种: < 小于 <= 小于等于
6种: < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 != 不等于 ◆关系表达式的运算量可以是常量、变量或任何合法的表达式。 如:a*a <= 100 如:NowIndex == MaxIndex
75
<、<=、>、>= 同级
2. 关系运算符的优先级和结合性 关系运算符的优先级: <、<=、>、>= 同级 ==、!= 同级 高 低 算术运算符 = 赋值运算符 关系运算符的结合性: 自左向右
76
3. 关系运算符使用的注意事项-- (1)关系运算符使用左右操作数的算数运算值
◆每一个表达式都有一个算术运算值和一个逻辑值。 所谓算术运算值,即表达式的运算结果。 所谓逻辑值,规则是:非0的算术运算值其逻辑值是1;0的逻辑值为0。表示“真”或“假”
77
3. 关系运算符使用的注意事项 ◆关系运算符在比较左右表达式的值的大小时,使用左右操作数的算数运算值,而不是逻辑值。
但关系运算的值是“逻辑值”,表示“真”或“假”,而且 “真”用整数1表示; “假”则得到整数0。
78
3. 关系运算符使用的注意事项 = 是“赋值运算符”。赋值表达式中,赋值 运算符的左边只能是变量。
= 是“赋值运算符”。赋值表达式中,赋值 运算符的左边只能是变量。 == 是“等于关系运算符”。关系表达式中,运算符的两边可以是常量、变量或任何合法的表达式。
79
3. 关系运算符使用的注意事项 (a = 1)==(b = 2) 是正确的关系表达式 (a = 1) = (b = 2) 是错误的赋值表达式
这个赋值表达式的值是2 a == 2 这个关系表达式的值是 0
80
2.3.5 逻辑运算符和逻辑表达式
81
1. 逻辑运算符的功能 逻辑运算符:3种 && 逻辑与(双目) || 逻辑或(双目) ! 逻辑非(单目)
82
? 1. 逻辑运算符的功能-- &&逻辑与 &&逻辑与: 全部运算量的逻辑值都为1,逻辑与运算才为1;
只要有一个运算量为0,逻辑与运算即为0 例: 要求写一个表达式,判断变量x的值是否在 (-5,+5)范围内。 考虑x=-6 数学上的表达:-5 < x < +5 ? C语言中的表达: 82
83
1. 逻辑运算符的功能-- &&逻辑与 例如: 当x=6时 在C语言中用-5 < x < +5判断,
结果是:1。 表示“成立”。 判断错误。 应该这样使用: x > -5 x < +5 && -5 +5
84
1. 逻辑运算符的功能-- || 逻辑或 || 逻辑或: 全部运算量的逻辑值都为0,逻辑或运算才为0;
只要有一个运算量逻辑值为1,逻辑或运算即为1 x < -5 x > +5 || -5 +5
85
1. 逻辑运算符的功能-- ! 逻辑非: ! 逻辑非: 运算量的逻辑值为1 ,逻辑非运算则为0; 运算量的逻辑值为0 ,逻辑非运算则为1
1. 逻辑运算符的功能-- ! 逻辑非: ! 逻辑非: 运算量的逻辑值为1 ,逻辑非运算则为0; 运算量的逻辑值为0 ,逻辑非运算则为1 x < 0 ! (x > =0)
86
2. 逻辑运算符的优先级和结合性 逻辑运算符的优先级: 逻辑运算符的结合性: 关系运算符 && 逻辑与 高 低 算术运算符 || 逻辑或
! 逻辑非 = 赋值运算符 逻辑运算符的结合性: && 、|| 自左向右 ! 自右向左
87
3. 逻辑运算符使用的注意事项 逻辑运算的运算量:可以是任何类型的数 据。既可以使常量、变量,也可以是表达式。
◆逻辑运算符两边的运算量都使用表达式的逻辑值,即“0”或“1”。 逻辑表达式的运算结果也是逻辑值:0 或 1 如:x && y + z 如:5 && 3 && ! 0 结果:1
88
3. 逻辑运算符使用的注意事项 逻辑运算的运算量:可以是任何类型的数 据。既可以使常量、变量,也可以是表达式。
◆逻辑运算符两边的运算量都使用表达式的逻辑值,即“0”或“1”。 逻辑表达式的运算结果也是逻辑值:0 或 1 如:x && y + z 如:5 && 3 && ! 0 结果:1
89
((a+b)>c)&&(b==c) (7>c) && (b==c) 1 && (b==c) 1 && 0 → 0
3. 逻辑运算符使用的注意事项- 逻辑表达式:例 #include <iostream> using namespace std; int main( ) { int a = 3, b = 4, c = 5, d = 0, x = 0, y = 0; d = a + b > c && b == c; cout<<d<<endl; return 0; } ((a+b)>c)&&(b==c) (7>c) && (b==c) 1 && (b==c) 1 && 0 → 0 输出0
90
3. 逻辑运算符使用的注意事项 对于“&&”表达式和“||”表达式,系统按从左向右顺序求解时,如果当求出某个运算量后整个逻辑表达式的值就能够确定时,则余下的运算量不被求解。
91
3. 逻辑运算符使用的注意事项 x < -5 || x > +5 假设: x = -6 1 || x < +5 1
没有被求解 1 x > -5 && x < +5 假设: x = -6 && x < +5 没有被求解
92
3. 逻辑运算符使用的注意事项 运行结果: 1 a=4, c=5 x=4, y=0 #include <iostream>
using namespace std; int main( ) { int a = 3, b = 4, c = 5, d = 0, x = 0, y = 0; d = a + b > c && b == c; cout<<d<<endl; d = a ++ | | c ++; d = ! (x = a) && (y = b); cout<<“a =“<<a<<“, c =“<<c<<endl; cout<<“x =“<<x<<“, y =“<<y<<endl; return 0; } 运行结果: 1 a=4, c=5 x=4, y=0
93
2.4 混合运算与类型转换
94
2.4.1 自动类型转换 ◆不同类型的数值型数据之间可以进行混合运算。如:10+‘a’+1.5*123.45*’B’
◆系统在求解时,先自动把不同类型的数据转换成同一类型,然后进行运算。转换规则如图: 运算对象不同时转换 必定的转换
95
2.4.2 强制类型转换 ◆强制类型转换运算符(单目) 运算符: (类型名) 用 法: (类型名) (变量或表达式)
用 法: (类型名) (变量或表达式) 优先级: 高于算术运算符 结合性: 右结合性 如:(long)(length-200) 如:(float)5/3 相当于:((float)5)/3
96
2.4.2 强制类型转换 注意:参与强制 类型转换的变量 本身的类型并不 会改变。 #include <iostream>
using namespace std; int main( ) { float a = 3.5, b = 2.3; int c; c = (int) a - (int) b ; cout<<“c=”<<c<<endl; c = (int) a % c ; return 0; } 注意:参与强制 类型转换的变量 本身的类型并不 会改变。
97
2.4.3 赋值运算中的类型转换 赋值运算中左右操作数数据类型不一致时,自动类型转换的原则是:
将运算符右边的值的类型转换成与左边变量的类型一致。
98
2.5 数据的输入输出
99
2.5.1 使用cin和cout进行数据输入输出 cin是C++的标准输入流对象, cout是C++的标准输出流对象,
它们都在头文件iostream中定义。 因此使用这两个流对象需要加载这个头文件。
100
1. 输出流对象cout cout是C++的标准输出流,用于在屏幕上显示插入的字符。 例如:
cout << "Good Morning!\n"; cout和输出运算符<<一起使用,<<的作用是将字符串“Good Morning!\n”写入到输出流cout中,也就是输出在标准输出设备(通常是屏幕)上。
101
1. 输出流对象cout---例 int studentID = 12345678; float score = 98.5;
输出结果为: studentID= , score=98.5, grade=A int studentID = ; float score = 98.5; char grade = 'A'; cout << "studentID=" << studentID << ", score=" << score << ", grade=" <<grade <<endl; 将多个数据写入到输出流cout中 控制符endl代表回车换行操作
102
2. 输入流对象cin cin是C++的标准输入流对象。用于从键盘输入信息至内存变量。 例如:
int studentID; float score; cin >> studentID >> score; // 输入一个整数和浮点数。 输入: (数据间用空格分隔) 用cin输入变量时,C语言会自动识别变量的类型,将输入的字符转换成合适的数值传给变量。
103
2.5.2 单个字符的输入输出
104
1. 字符输出函数putchar() putchar()函数的功能:向标准输出设备(一般是屏幕)输出一个字符。
它需要一个字符型的参数(参数可以是常量、变量或表达式)。它的一般形式是: putchar(字符型数据);
105
1. 字符输出函数putchar()---例 运行结果: BOY Ab #include <iostream>
using namespace std; int main( ) { char a, b; int c, d; a = 'B'; b = 'O'; c = 65; d = 66; putchar(a); putchar(b); putchar('Y'); putchar('\n'); putchar(c); putchar(d+32); return 0; } 运行结果: BOY Ab
106
2. 字符输入函数getchar() getchar()函数的功能是从键盘获得一个字符,并将这个字符作为函数的返回结果,返回给调用它的程序。
107
2. 字符输入函数getchar() --执行过程
函数调用的语句时,会暂时停下来,此时 屏幕上有一个闪烁的光标,等待用户从键 盘上的输入。用户必须键入有关信息并按 Enter键后程序才能继续向下执行。
108
2. 字符输入函数getchar()—例 字符输入函数getchar :例 运行结果: B↙ (用户键入字 符B后,再键入“回 车”键)
#include <iostream> using namespace std; int main( ) { char ch; ch = getchar( ); putchar(ch); return 0; } 运行结果: B↙ (用户键入字 符B后,再键入“回 车”键) B (putchar函数再在屏幕上输出一个字符B)
109
2.6 顺序程序设计举例
110
程序开发的过程 用计算机解决问题的过程大致是: 1.分析问题,首先从数学上找出解决该问题的方法(数学模型,公式)
2.拟出具体的解决步骤(算法,流程图) 3.用某种计算机语言实现(程序设计方法,基本控制结构,程序) 4.运行该程序,找出错误,直到结果正确(编辑源程序,编译,连接,调试)
111
例 已知1厘米等于0.3937英寸。编写一个程序,要求输入以厘米为单位的身高,然后显示该身高值等于多少英寸。 算法分析:
题目中已给出了数学上厘米和英寸换算的比率。因此程序只需从键盘获得以厘米为单位的身高,然后乘以这个比率,就可以得出以英寸为单位的身高。 基本步骤: 包含相应的头文件 根据题目需要定义变量(类型、名字、初值) 从键盘输入需要的数据 进行相关的运算 输出计算结果
112
例 包含头文件 #include <iostream> using namespace std; int main() 定义变量
{ const double CM_INCH_RATIO=0.3973; double height_cm, height_in; cout<<"请输入你的身高(单位:厘米):"; cin>>height_cm; height_in = height_cm * CM_INCH_RATIO; cout<<"你的身高为"<<height_in<<"英寸"<<endl; return 0; } 定义变量 (类型、初值) 提示输入,然后得到输入的数据 进行 相关的 计算 输出需要 的结果
Similar presentations