第3章数类型据基础

上传人:re****.1 文档编号:586630765 上传时间:2024-09-05 格式:PPT 页数:51 大小:634.52KB
返回 下载 相关 举报
第3章数类型据基础_第1页
第1页 / 共51页
第3章数类型据基础_第2页
第2页 / 共51页
第3章数类型据基础_第3页
第3页 / 共51页
第3章数类型据基础_第4页
第4页 / 共51页
第3章数类型据基础_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第3章数类型据基础》由会员分享,可在线阅读,更多相关《第3章数类型据基础(51页珍藏版)》请在金锄头文库上搜索。

1、第第3 3章章数数据据类型基础类型基础目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础 n了解了解常量常量与与变量变量的含义。的含义。n掌握掌握基本数据类型基本数据类型的特点。的特点。n掌握掌握基本输入输出函数基本输入输出函数n掌握掌握运算符与表达式运算符与表达式目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n常量、变量和标识符常量、变量和标识符n基本数据类型基本数据类型 (整型、实型、字符型整型、实型、字符型)n数据的输入、输出数据的输入、输出n运算符与表达式运算符与表达式讲课提纲讲课提

2、纲程序程序程序程序要对数据进行操作处理:要对数据进行操作处理:要对数据进行操作处理:要对数据进行操作处理:n n处理的对象是处理的对象是处理的对象是处理的对象是数据数据数据数据(其在程序中要有合法的表现形式)(其在程序中要有合法的表现形式)(其在程序中要有合法的表现形式)(其在程序中要有合法的表现形式)n n而数据又通过而数据又通过而数据又通过而数据又通过运算符和表达式运算符和表达式运算符和表达式运算符和表达式进行操作进行操作进行操作进行操作目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础例:计算半径为例:计算半径为 5 cm的圆的面积。的圆

3、的面积。程序如下:程序如下:main( ) float r, area ; r=5 ; area=3.14*r*r; printf (%fn , area) ; 输出输出:78.500000程序中用到的数据:程序中用到的数据:r、area、5、3.14对数据进行的运算:对数据进行的运算:* 、=目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础分析:分析:计算机操作处理时,要完成以下工作计算机操作处理时,要完成以下工作:n在内存中给半径在内存中给半径 r 和运算结果和运算结果 area 开辟存储空开辟存储空间,存放它们的值。间,存放它们的值。应

4、该留多大的地方来存放应该留多大的地方来存放它们的值?它们的值?n数据数据 5 和和 3.14 与与 r 、area 不同,编程时给出确不同,编程时给出确定值且运算过程中不改变。定值且运算过程中不改变。这样的数计算机怎这样的数计算机怎么处理?么处理?n对对整数整数 5 和和小数小数3.14 ,计算机,计算机存放时是否有区别?存放时是否有区别?涉及数据类型涉及数据类型的基本知识的基本知识目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础数据类型决定数据类型决定:1. 数据占内存字节数数据占内存字节数2. 数据取值范围数据取值范围3. 其上可进行的操

5、作其上可进行的操作C C数数据据类类型型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型 void定义类型定义类型 typedef单精度型单精度型 float双精度型双精度型 double字符类型字符类型 char整整 型型实型实型枚举类型枚举类型 enum数组数组共用体共用体 nion结构体结构体 struct短整型短整型 short长整型长整型 long整型整型 int数据往往都是以某种特定形式存在的,数据往往都是以某种特定形式存在的, C语言提供的数据类型语言提供的数据类型如下:如下:返回返回目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型

6、基础数据类型基础3.2.1 常量v整型常量整型常量:10、28;v实型常量实型常量:3.14; v字符常量字符常量:a、A ; 程序运行过程中,程序运行过程中,值不发生改变值不发生改变的量称为的量称为常量常量 。n直接常量直接常量 直接常量(即直接常量(即常数常数):):10、3.14等都是直接常量等都是直接常量 。 常量分为:常量分为: 常量常量可以直接用于输入或赋给其他变量可以直接用于输入或赋给其他变量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础1.1.整型常量整型常量三种形式:三种形式:十进制十进制整数:由数字整数:由数字0 09

7、9和正负号表示和正负号表示. .如如 32 32、-8-8、0 0等等 八进制八进制整数:由数字整数:由数字0 0开头开头( (注意:不是字母注意:不是字母o) o) , ,后跟数后跟数字字0 07 7表示表示. .如如 012 012、011011、016 016 十六进制十六进制整数:由整数:由0 0x(x(或或0 0X)X)开头开头, ,后跟后跟0 09,9,a af,Af,AF F表表 示示. .如如 0 0x123,0Xffx123,0Xff注意注意:八进制数、:八进制数、十六十六进制数的制数的合法数字表合法数字表示,示,十六十六进制数制数中字母大、小写等同中字母大、小写等同0xaa

8、等同于0xAA3.2.1 常量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础2.2.实型常量(浮点数)实型常量(浮点数) 即带小数点的实数。即带小数点的实数。 v表示形式:表示形式:l十进制数形式十进制数形式:(必须有小数点):(必须有小数点) 如如0.12340.1234、.1234.1234、1234.1234.、0.00.0 l指数形式指数形式:由由尾数、字母尾数、字母e e或或E E、指数指数三部分组成。三部分组成。如如3.853.85e4 e4 或或 3.853.85E4 E4 均表示均表示 3.853.8510104 4,(e

9、e或或E E之前必之前必须有数字;指数必须为整数)须有数字;指数必须为整数)例例: :判断下列判断下列指数形式的指数形式的合法性合法性 13E6 13E6 3.5e4.53.5e4.5 .e3.e3 1.23456e1.23456e2 2 e e规范化的指数形式规范化的指数形式: : 在字母在字母e(e(或或E)E)之前的尾数中,小数点左之前的尾数中,小数点左边应有一位有一位( (且只能且只能有一位有一位) )非零的数字。例如非零的数字。例如: 3.478e2 : 3.478e2 3.2.1 常量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基

10、础3.3.字符常量字符常量n字符常量字符常量区分大小写区分大小写如如 a、I、A、n如 a、A是两个不同的字符常量 n字符常量的字符常量的值值:该字符的:该字符的ASCIIASCII码码值值如如 a a在内存的字节中存放的在内存的字节中存放的ASCIIASCII值是值是9797 特殊的字符常量特殊的字符常量 :以一个以一个“ ”开头的字符序列。开头的字符序列。( (转义字符转义字符) )n 定义定义: :用用单引号单引号括起来的单个括起来的单个普通字符普通字符或或转义字符转义字符. . 3.2.1 常量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据

11、类型基础转义字符转义字符含义含义nvradddtbf“xhh转义字符转义字符含义含义换行换行垂直制表垂直制表回车回车响铃响铃单引号单引号3位位8进制数代表的字符进制数代表的字符水平制表水平制表退格退格换页换页反斜线反斜线双引号双引号2位位16进制数代表的字符进制数代表的字符“转义字符转义字符”:即:即 将反斜杠(将反斜杠( )后面的字符转换成另外的意义。)后面的字符转换成另外的意义。如:如: n n 中中 的的 “n n” 不代表字母不代表字母 n n 而作为而作为 “换行换行” 符。符。(仍代表一个字符仍代表一个字符) 以以“”“”开头的特殊字符开头的特殊字符3.2.1 常量目标要求目标要求

12、课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n字符常量与字符串常量不同字符常量与字符串常量不同4.4.字符串常量字符串常量n定义:用定义:用双引号双引号(“”)(“”)括起来的括起来的若干字符若干字符, ,简称:简称:字符串字符串 如如”STRING”STRING”n存储:存储:每个字符串尾每个字符串尾自动自动加一个加一个 00 作为字符串结束标作为字符串结束标志志a a 0例例 a“a”例例 空串空串 “”0例例 字符串字符串“STRING”STRING”在内存中在内存中S T R I N G 03.2.1 常量目标要求目标要求课后作业课后作业讲课提纲

13、讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础#define PI 3.14#define PI 3.14 main()main() float r,circle,area; float r,circle,area; r=2.4; r=2.4; circle=2*PI*r; circle=2*PI*r; area=PI*r*r; area=PI*r*r; printf(circleprintf(circle=%f,area=%=%f,area=%fn,circle,areafn,circle,area);); 程序的运行结果是:程序的运行结果是:circle=15.072001,

14、rea=18.086401 程序中用程序中用# #definedefine命令行定义命令行定义PIPI代表代表常量常量3.143.14,此后凡在本文件中出现的此后凡在本文件中出现的PIPI都代表都代表3.143.14,可以和常量一样进行运算。可以和常量一样进行运算。 n符号常量符号常量 C语言中特殊常量语言中特殊常量符号常量即符号常量即给常量起一个名。给常量起一个名。返回返回3.2.13.2.1 常量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础用来标识变量名、符号常量名、函数名、数组名、用来标识变量名、符号常量名、函数名、数组名、类型名、

15、文件名的有效字符序列称为标识符。类型名、文件名的有效字符序列称为标识符。规定标识符只能由规定标识符只能由字母、数字和下划线字母、数字和下划线三种字符三种字符组成,并且第一个字符必须为字母或下划线。组成,并且第一个字符必须为字母或下划线。 例例: :判断下列标识符号合法性判断下列标识符号合法性areaarea、sumsum、 a&ba&b、$234$234、 _ _aboveabove、PIPI 、namename、NameName、classclass、CLASSCLASS 1.1.标识符标识符3.2.23.2.2 变 量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章

16、章 数据类型基础数据类型基础C语言的标识符可以分为以下三类语言的标识符可以分为以下三类:关键字关键字 : :在程序中都代表着固定的含义,不能另在程序中都代表着固定的含义,不能另作它用。作它用。 预定义标识符预定义标识符 : :有特定的含义有特定的含义 。为了避免误。为了避免误 解,建议用户不要把这些预定解,建议用户不要把这些预定 义标识符另作它用。义标识符另作它用。 用户标识符用户标识符 :由用户根据需要定义的标识符:由用户根据需要定义的标识符 C语言的标识符中,将语言的标识符中,将区分大小写区分大小写,name和和Name、CLASS和和class都是不同的标识符。都是不同的标识符。标识符标

17、识符目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础3.2.2 3.2.2 变 量#define PI 3.14 #define PI 3.14 main()main()float float r,c,arear,c,area; ; r=2.4; r=2.4; printf(cprintf(c=%f,area=%=%f,area=%fn,c,areafn,c,area););r r、c c和和areaarea就是变量名就是变量名 ,命名,命名规则应遵守标识符命名规则规则应遵守标识符命名规则 2. 变量的定义变量的定义 程序运行过程中,程序运行

18、过程中,值可改变值可改变的量称为的量称为变量变量。每一个。每一个变量都应该有一个名字作为标识。变量都应该有一个名字作为标识。 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础变量定义的一般变量定义的一般格式格式: 数据类型数据类型 变量变量1 1 ,变量,变量2 2,变量,变量n;n;C语言所允许的任何数据类型,语言所允许的任何数据类型,包括包括基本数据类型基本数据类型及及构造数据构造数据类型类型 等等合法标识符例例: int i; float data;变量必须遵从变量必须遵从“先定义,后使用先定义,后使用”的原则。的原则。如如: int

19、i; i=10 i=10;(将(将1010这个值赋给这个值赋给i i这个变量)这个变量) 变量定义变量定义可执行语句可执行语句3.2.23.2.2 变 量目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础3.变量的赋值与初始化变量的赋值与初始化赋值格式:赋值格式:变量名表达式变量名表达式例:例:a=10; 可在定义变量时给变量赋初值,称为可在定义变量时给变量赋初值,称为变量初始化变量初始化。格式:格式:类型符类型符 变量变量1=值值1, 变量变量2=值值2;例:例:int a=1;b=3;c=100;3.2.23.2.2 变 量目标要求目标要求

20、课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础1.1.整型数据在内存中的存放形式:整型数据在内存中的存放形式: 数据在内存中是以数据在内存中是以二进制形式二进制形式存放的。存放的。 一一个个intint整整数数VCVC环环境境下下通通常常用用4个个字字节节存存放放:其其中中最最高高位位用用来来存存放放整整数数的的符符号号, 0 0表表示示正正整整数数, 1 1表表示示负负整数整数 实际上,一个实际上,一个有符号整数有符号整数在内存中,是以在内存中,是以补码补码形式形式存放的。存放的。 若若说说明明为为无无符符号号整整数数,其其中中最最高高位位不不再再用用来

21、来存存放放整整数数的的符符号号,二二进进制制位位全全部部用用来来存存放放整整数数数数值值,因此无符号整数不可能是负数因此无符号整数不可能是负数3.3.1 整型数据目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n数值的表示方法数值的表示方法原码、反码和补码原码、反码和补码n原码原码:最高位为符号位,其余各位为数值本身的绝:最高位为符号位,其余各位为数值本身的绝对值对值n反码反码:n正数:反码与原码相同正数:反码与原码相同n负数:符号位为负数:符号位为1,其余位对原码取反,其余位对原码取反n补码补码:n正数:原码、反码、补码相同正数:原码、反码

22、、补码相同n负数:最高位为负数:最高位为1,其余位为原码取反,再对整,其余位为原码取反,再对整个数加个数加1目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础原码反码补码+7000001110000011100000111-7100001111111100011111001+0000000000000000000000000-0100000001111111100000000数的范围0111111111111111(-127+127)0111111110000000(-127+127)0111111110000000(-128+127)(用一字

23、节表示数)(用一字节表示数)负数补码负数补码转换成转换成十进制数十进制数:最高位不动,其余位取反末位加:最高位不动,其余位取反末位加1例 补码:11111001 取反:10000110 末位加1:110000111=-7目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础2. 分类分类 : 归纳起来,可以用以下归纳起来,可以用以下6 6种整型变量。即:种整型变量。即:n有符号有符号基本整型基本整型 signed signed intint n有符号有符号短整型短整型 signed signed shortshort intint n有符号有符号长

24、整型长整型 signed signed longlong intint n无符号无符号基本整型基本整型 unsigned unsigned intint n无符号无符号短整型短整型 unsigned short unsigned short intint n无符号无符号长整型长整型 unsigned long unsigned long intint 3.3.1整型数据目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础1. 实型数据在内存中的存放形式实型数据在内存中的存放形式 一个实型数据在一个实型数据在内存中占内存中占4 4个字节个字节(32

25、(32位位) )。2. 2. 实型变量的分类(实型变量的分类(注意其有效位注意其有效位) C C实实型型变变量量分分为为单单精精度度( (floatfloat型型) )、双双精精度度( (doubledouble型型) )和长双精度型和长双精度型( (long doublelong double) )三类。三类。实型变量也应在使用前加以定义。如:实型变量也应在使用前加以定义。如: floatx,y; (指定指定x、y为单精度实数为单精度实数) double z; (指定指定z为双精度实数为双精度实数)3.3.2 实型数据目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章

26、 数据类型基础数据类型基础1. 1. 字符变量的定义字符变量的定义 :一个字符变量在内存中占一个字符变量在内存中占一个字节一个字节 charcharc1c1,c2c2; c1=a c1=a;c2=bc2=b;/*/*对对c1c1、c2c2赋值赋值 */ */2. 字符数据在内存中的存放及其使用方法字符数据在内存中的存放及其使用方法 :存放的是该字符相应的存放的是该字符相应的ASCII码码。例如:例如: 字符字符a 的的ASCII码为码为97,b为为983.3.3 字符型数据目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础字符输出函数字符输出函

27、数putchar()n作用作用:向终端输出一个字符。向终端输出一个字符。n基本格式:基本格式:putchar(ch)n用法说明:用法说明:n参数参数ch可以是可以是除字符串常量除字符串常量之外的之外的字符、整型、字符、整型、实型常量、变量或各种表达式实型常量、变量或各种表达式 n在程序中使用在程序中使用putchar()函数时,该程序的开头必函数时,该程序的开头必须用一条预编译命令须用一条预编译命令“#include ”。 nputchar()函数可以输出控制字符,如:函数可以输出控制字符,如: putchar(n);3.4.1 3.4.1 putcharputchar函数函数例例 在在put

28、charputchar函数中使用不同参数输出字符函数中使用不同参数输出字符A A。#include #include stdio.hstdio.h main()main() char char chch=A;=A; intint i=65; i=65; putchar(chputchar(ch); /*); /*输出字符变量所代表的字符,输出字符变量所代表的字符,*/*/ putchar(iputchar(i); /*); /*输出以整型变量输出以整型变量i i的值为的值为ASCASC码的字符,码的字符,*/*/ putchar(Aputchar(A); /*); /*直接输出字符常量直接输出

29、字符常量AA,*/*/ putchar(65); /* putchar(65); /*输出以十进制整型常量输出以十进制整型常量6565为为ASCASC码的字符,码的字符,*/*/ putchar(nputchar(n); /*); /*输出一个换行符输出一个换行符* */ / 程序运行结果:程序运行结果: AAAA AAAA目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础字符输入函数字符输入函数getchar() n作用:作用:接收接收从终端(一般指键盘)输入的从终端(一般指键盘)输入的一个字符一个字符。 n基本格式:基本格式: getcha

30、r() 没有参数没有参数3.4.2 3.4.2 getchargetchar函数函数例例 输入单个字符输入单个字符#include stdio.hmain() char ch; ch=getchar(); /*从键盘上接收一个字符从键盘上接收一个字符*/ putchar(ch); /*在屏幕上输出该字符在屏幕上输出该字符*/运行过程:运行过程: A A A A目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础例例 输入输出字符练习。输入输出字符练习。 #include main( ) char ch1,ch2,ch3; ch1=getchar(

31、 ); ch2=getchar( ); ch3=getchar( ); putchar(ch1); putchar(ch2); putchar(ch3);ABC ABC ABCABC ABCDEFGABCDEFGABCABCabcabc abcabc 运行情况:运行情况:AABC BC A AB B返回返回目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础格式:格式:printf( (“格式控制串格式控制串”,输出,输出项项表表) )功能:按指定格式向显示器输出数据功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回返值:正常

32、,返回输出字节数;出错,返回EOF(-1)EOF(-1) 3. 4. 3 printf 函数函数n输出表项:输出表项:要输出的数据(可以没有,多个时以要输出的数据(可以没有,多个时以“,”分分隔)隔)n格式控制串:包含两种信息格式控制串:包含两种信息n格式说明格式说明: %修饰符修饰符格式字符格式字符 用于指定输出格式用于指定输出格式n普通字符或转义序列普通字符或转义序列:原样输出:原样输出n格式字符格式字符目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础d,ix,Xoucse,Efg%格式字符:格式字符:十六进制无符号整数十六进制无符号整数

33、不带符号十进制整数不带符号十进制整数十进制整数十进制整数指数形式浮点小数指数形式浮点小数单一字符单一字符字符串字符串八进制无符号整数八进制无符号整数小数形式浮点小数小数形式浮点小数e和和f中较短一种中较短一种百分号本身百分号本身int a=567;printf ( “%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=56

34、7.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);5.677890e+02567ff101567AABC567.789000567.789%n说明说明n格式字符要用小写(除格式字符要用小写(除O、X可用大写外)可用大写外)n格式字符格式字符与与输出项输出项个数应相同,按先后顺序一一对应个数应相同,按先后顺序一一对应例例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);输出结果输出结果: : 3 4 a=3, b=4例例 main() unsi

35、gned int u=65535; printf(”u=%dn,u); 输出结果:输出结果:u=-1u=-1目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n附加格式说明符(修饰符)附加格式说明符(修饰符).n.n对实数对实数, ,指定小数点后位数指定小数点后位数( (四舍五入四舍五入) )对字符串对字符串, ,指定实际输出位数指定实际输出位数修饰符修饰符功功 能能m m输出数据域宽输出数据域宽, ,数据长度数据长度m,m,左补空格左补空格; ;否则按实际输出否则按实际输出输出数据在域内左对齐(缺省右对齐输出数据在域内左对齐(缺省右对齐) )

36、- -指定在有符号数指定在有符号数的正数前显示正号的正数前显示正号(+)(+)+ +输出数值时指定左面不使用的空位置自动填输出数值时指定左面不使用的空位置自动填0 00 0在八进制和十六进制数前显示前导在八进制和十六进制数前显示前导0 0,0 0x x# #在在d,o,x,ud,o,x,u前,指定输出精度为前,指定输出精度为longlong型型在在e,f,ge,f,g前,指定输出精度为前,指定输出精度为doubledouble型型l l返回返回目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础 3. 4. 4 scanf函数函数格式格式: :

37、scanfscanf(“(“格式控制串格式控制串”,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定的功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中存储单元中, ,并按回车键结束并按回车键结束返值:正常,返回输入数据个数返值:正常,返回输入数据个数n地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&n格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(“%d”,&a); 输入:输入:10 则则 a=10例例 scanf(“%x”,&a); 输入:输入:11 则则 a=17目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课

38、内容讲课内容第第3章章 数据类型基础数据类型基础附加格式说明符(修饰符)附加格式说明符(修饰符)l修饰符修饰符功功 能能hm*用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o,xd,o,x前,指定输入为前,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为doubledouble型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例 scanf(“%4d%2d%2d”,&yy,&mm,&d

39、d); 输入输入 19991015 则则1999yy, 10 mm, 15 dd例例 scanf(“%3d%*4d%f”,&k,&f); 输入输入 12345678765.43 则则123k, 8765.43f例例 scanf(“%2d %*3d %2d”,&a,&b); 输入输入 12 345 67 则则12a, 67b例例 scanf(“%3c%2c”,&c1,&c2); 输入输入 abcde 则则ac1, d c2目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n输入分隔符的指定输入分隔符的指定n一般以一般以空格、空格、TAB或回车键或

40、回车键作为分隔符作为分隔符n其它字符做分隔符其它字符做分隔符时,输入时需原样输入时,输入时需原样输入。(上机调程时尤其注意)(上机调程时尤其注意)例例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入输入 123 123 123 输出输出 a=123,b=83,c=291例例 scanf(“%d:%d:%d”,&h,&m,&s); 输入输入 12:30:45 则则12 h, 30 m, 45 s例例 scanf(“%d,%d”,&a,&b) 输入输入 3,4 则则3a, 4 b例例 scanf(“a=%d,b=%d,c=

41、%d”,&a,&b,&c); 输入输入 a=12,b=24,c=36 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n说明:说明:n用用“%c”格式符时,格式符时,空格空格和和转义字符转义字符作为有效字符输入作为有效字符输入如如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入若输入a a b b c c 则则ac1, c2, b c3n输入数据时,遇以下情况认为该数据结束输入数据时,遇以下情况认为该数据结束:n遇空格、遇空格、TAB、或回车或回车n遇宽度结束遇宽度结束n遇非法输入遇非法输入如如 scanf(“%d%c%f”

42、,&a,&b,&c); 若输入若输入1234a123o.26 则则 1234 a, a b, 123 c例例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10例例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%dn”,x,ch);执行:执行:123 输出:输出:x=123,ch=10例例 int x; char ch; scanf(“%d”,&x); scan

43、f(“ %c”,&ch);或或 scanf(“%*c%c”,&ch); 返回返回目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础3 35 5 运算符与表达式运算符与表达式 一、运算符和表达式简介一、运算符和表达式简介 表达式由表达式由运算符运算符( (例如:例如:+ + * * ) )、运算对象运算对象( (也称也称操作数,可以是常量、变量等等操作数,可以是常量、变量等等) )和和括号括号组成。表达式运组成。表达式运算所得到的结果值便是算所得到的结果值便是表达式的值表达式的值。 例如:例如: a+b xy C C语言的运算符丰富,几乎大部分操

44、作都由运算符来语言的运算符丰富,几乎大部分操作都由运算符来完成。归纳起来,完成。归纳起来,C C的运算符有以下几类:的运算符有以下几类: 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础算术运算符算术运算符 * / % * / % 指针运算符指针运算符 * * 和和 & & 关系运算符关系运算符 = = = = = = != = = != 求字节数运求字节数运算符算符 sizeofsizeof 逻辑运算符逻辑运算符 ! & | & | 强制类型转强制类型转换运算符换运算符 ( (类型类型) ) 位运算符位运算符 | | & & 分量运算符分量

45、运算符 赋值运算符赋值运算符 = =及其扩展赋值运及其扩展赋值运算符算符 下标运算符下标运算符 条件运算符条件运算符 ? ? : 其他其他 如函数调用如函数调用运算符运算符( ) ( ) 逗号运算符逗号运算符 , 3 35 5 运算符与表达式运算符与表达式 运算符种类:运算符种类:目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础v 二元运算符二元运算符( (或双目运算符或双目运算符) ):运算符需要两个操作数运算符需要两个操作数使用形式为:使用形式为: 操作数操作数1 1 运算符运算符 操作数操作数2 2 一元运算符一元运算符( (或单目运算

46、符或单目运算符) ):运算符需要一个操作数运算符需要一个操作数v 优先级:决定表达式的运算顺序。优先级:决定表达式的运算顺序。v 结结合合性性:是是指指当当一一个个操操作作数数左左右右两两边边的的运运算算符符优优先先级级相相同同时时,按按什什么么样样的的顺顺序序进进行行运运算算。包包含含自自左左向向右右,自右向左自右向左两种顺序。两种顺序。3 35 5 运算符与表达式运算符与表达式 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础二、算术运算符与算术表达式二、算术运算符与算术表达式n基本算术运算符和表达式基本算术运算符和表达式n基本算术运算符

47、:基本算术运算符:+ -+ - ( (正负正负) ) * / % * / % + -(+ -(加减加减) ) n结合方向:从左向右结合方向:从左向右n优先级:优先级: + -+ - - -* / %* / % - - + + (2) (3) (4) (2) (3) (4)说明:说明:n“-”“-”可为可为单目单目运算符时运算符时, ,右结合性右结合性n两两整数相除,结果为整数整数相除,结果为整数;一侧为实型结果为实型;一侧为实型结果为实型n% %要求两侧要求两侧均为整型均为整型数据数据3 35 5 运算符与表达式运算符与表达式 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第

48、第3章章 数据类型基础数据类型基础n自增、自减运算符自增、自减运算符 + -+ -n作用:使变量值加作用:使变量值加1 1或减或减1 1n种类:种类:n前置前置 + +i, -i (i, -i (先执行先执行i i+1+1或或i-1i-1,再使用再使用i i值)值)n后置后置 i+,i- (i+,i- (先使用先使用i i值值, ,再执行再执行i i+1+1或或i-1i-1)n说明:说明:n+ -+ - - - 不能用于常量和表达式不能用于常量和表达式, ,如如5+5+,( (a+ba+b)+)+n+ - - + - - 结合方向:结合方向: 自右向左自右向左n优先级:优先级:- + - +

49、- - -* / % -+ - -* / % -+ - (2) (3) (4)(2) (3) (4)例例 - -i+ i+ -(i+) -(i+) i=3; i=3; printf(“%d”,-iprintf(“%d”,-i+); +); /-/-3 3 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础例例 j=3; k=+j; j=3; k=+j; j=3; k=j+; j=3; k=j+; j=3; j=3; printf(“%d”,+jprintf(“%d”,+j); ); j=3; j=3; printf(“%d”,jprintf(“

50、%d”,j+); +); a=3;b=5;c=(+a)*b; a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; a=3;b=5;c=(a+)*b; 无论是作为无论是作为前缀前缀还是作为还是作为后缀后缀运算符,对于运算符,对于变变量本身量本身来说自增来说自增1 1或自减或自减1 1都具有相同的效果,都具有相同的效果,但作但作为为表达式表达式来说却有着来说却有着不同的值。不同的值。 3 35 5 运算符与表达式运算符与表达式 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n复合赋值运算符复合赋值运算符n种类种类:+= -=

51、 *= /= %=+= -= *= /= %= = = = &= = |= &= = |=n含义:含义: 变量变量 op= op= 表达式表达式 变量变量 = = 变量变量 op op 表达式表达式a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例 a=10 /*把常量10赋给变量a*/ 3 3赋值运算符和表达式赋值运算符和表达式n简单赋值运算符简单赋值运算符n符号:符号: = =n格式:格式: 变量变量名名 = =表达式表达式n作用:将一个数据(常量或表达式)赋给一个变量作用:将一个数据(常量或表达式)赋给一个变量3 35 5 运算符与表达式运算符与表达式 目标要求目标要求

52、课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n赋值表达式的值与变量值相等赋值表达式的值与变量值相等,且可嵌套且可嵌套n说明说明: :n结合方向:结合方向:自右向左自右向左n左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式例例 int i; i=2.56; /结果结果i=2;例例 3=3=x-2*y;x-2*y; a+b=3; a+b=3;n赋值转换赋值转换规则规则: :使赋值号右边表达式值使赋值号右边表达式值自动自动转换转换成其左边变量的类型成其左边变量的类型例例: : a=b=c=5a=b=c=5 a=(b=5) a=(b=5) a

53、=5+(c=6) a=5+(c=6) a=(b=4)+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) a=(b=10)/(c=2)/表达式值为表达式值为5 5,a,b,ca,b,c值为值为5 5/ / b=5;a=5b=5;a=5/表达式值表达式值1111,c=6,a=11c=6,a=11/表达式值表达式值1010,a=10,b=4,c=6a=10,b=4,c=6/表达式值表达式值5 5,a=5,b=10,c=2a=5,b=10,c=23 35 5 运算符与表达式运算符与表达式 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类

54、型基础假设已有整型变量假设已有整型变量a,其值为其值为3,试计算表达式:,试计算表达式:a+=a- -=a*a的值。的值。 main()main() intint a=3; a=3; printf(%dn,aprintf(%dn,a+=a-=a*a);+=a-=a*a); 程序的运行结果是:程序的运行结果是: -12 -12 1. 1. 先计算先计算“a*a” ;a*a” ;2. 2. 计算计算“a-=9”;a-=9”;3 .3 .计算计算“a+=-6”a+=-6”。3 35 5 运算符与表达式运算符与表达式 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型

55、基础数据类型基础v说明:说明: (1) 逗号运算符的结合性为从左到右,因此逗逗号运算符的结合性为从左到右,因此逗号表达式将从左到右进行运算。号表达式将从左到右进行运算。a=3*5,a*4 整个逗号表达式的值为整个逗号表达式的值为60 (a=3*5,a*4),a+5 printf(%dprintf(%d,%d%d,%d%d,a a,b b,c c) ); (3)一一个个逗逗号号表表达达式式又又可可以以与与另另一一个个表表达达式式组组成成一个新的逗号表达式。一个新的逗号表达式。 (4)并并不不是是任任何何地地方方出出现现的的逗逗号号都都是是作作为为逗逗号号运运算符。例如函数参数也是用逗号来间隔的。

56、算符。例如函数参数也是用逗号来间隔的。(2 2)逗号的运算优先级最低)逗号的运算优先级最低四、逗号运算符和逗号表达式四、逗号运算符和逗号表达式 n形式:形式:表达式表达式1,1,表达式表达式2,2,表达式表达式n nn逗号表达式逗号表达式的值:的值:等于表达式等于表达式n n的值的值目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础说明说明:必定的转换必定的转换运算对象类型不同时转换运算对象类型不同时转换intintdoubledoubledoubledoubledoubledouble ch/i + f*d - (f+i)char ch; i

57、nt i; float f; double d; 整整型型、实型型可可以以混混合合运运算算。运运算算时不不同同类型型的的数数据据要先要先转换成同一成同一类型,然后型,然后进行运算。行运算。(隐式式转换)返回返回3.6 3.6 不同类型数据之间的转换不同类型数据之间的转换 目标要求目标要求课后作业课后作业讲课提纲讲课提纲讲课内容讲课内容第第3章章 数据类型基础数据类型基础n强制类型转换强制类型转换运算符运算符 : :一般形式:一般形式:(类型名类型名)(表达式)表达式) 例例 (double)a (double)a (将将a a转换成转换成doubledouble类型类型) ) ( (int)(

58、x+yint)(x+y) () (将将x+yx+y的值转换成整型的值转换成整型) ) ( (float)(5%3) (float)(5%3) (将将5%35%3的值转换成的值转换成floatfloat型型) ) 说明:强制转换得到所需类型的中间变量,说明:强制转换得到所需类型的中间变量, 原变量类型不变。原变量类型不变。强制类型转换。强制类型转换。main()main() float x; float x; intint i; i; x=4.5; x=4.5; i=( i=(int)xint)x; ; /*/*强制类型转换强制类型转换 */*/ printf(xprintf(x=%f,i=%dn,x,i);=%f,i=%dn,x,i); 程序的运行程序的运行结果是:果是:x=4.500000x=4.500000, i=4 i=43.6 3.6 不同类型数据之间的转换不同类型数据之间的转换

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号