3数据类型及其运算
- 格式:ppt
- 大小:238.00 KB
- 文档页数:58
第 章第 章(以)(以)数值类型及 输入输出3.以价语言的数据类型3.2(以)3.2(以) 常量常量––– 数值型为例3.3(以)3.3(以) 简单变量简单变量––– 数值型为例3.4(以)3.4(以) 数学函数数学函数数学函数格式输入输出函数––– 数值型为例一 两类常量常数常量和符号常量常数常量如-以令以令,,3.以4符号常量符号常量: : : 用用标识符标识符表示的常量表示的常量表示的常量 符号常量用预处理预处理宏定义宏定义命 定义在函数之外命 定义在函数之外定义形式定义形式:: P2只P2只#define标识符常量例如例如#define PI 3.以4含义含义定义定义PIPIPI为符号常量为符号常量为符号常量习惯用大写 母 ,, 值为值为值为3.以43.以4简单 量简单变量简单变量 标识符标识符标识符命命命简单变量的类型定义简单变量的类型定义::类型 变量变量 以,以,以,变量变量变量 2,......,2,......,2,......,变量变量变量 n;n;注意事注意事 ::(以)(以) 变量必 先定义 使用变量必 先定义 使用(2)(2) 每个变量必 被指定为一种类型每个变量必 被指定为一种类型(3)(3) 一般习惯 用小写 母表示变量一般习惯 用小写 母表示变量一般习惯 用小写 母表示变量 ,,, 用大写 母用大写 母表示符号常量表示符号常量 ,, 示区别示区别仅是习惯 是规定仅是习惯 是规定仅是习惯 是规定注意事注意事 ::(以)(以) 变量必 先定义 使用变量必 先定义 使用(2)(2) 每个变量必 被指定为一种类型每个变量必 被指定为一种类型(3)(3) 一般习惯 用小写 母表示变量一般习惯 用小写 母表示变量一般习惯 用小写 母表示变量 ,,, 用大写 母用大写 母表示符号常量表示符号常量 ,, 示区别示区别仅是习惯 是规定仅是习惯 是规定仅是习惯 是规定int a,b,c; /* a,b,c 为整型 量*/float x,y,z; /* x,y,z 为单精度浮点型 量*/三 C 语言的标识符标识符: : 用来标识变量用来标识变量用来标识变量 符号常量符号常量 函数 数组数组类型 的有效 符序列类型 的有效 符序列标识符命 规则: : 母或 划线开头母或 划线开头母或 划线开头 由 母 数数划线组成划线组成T价T价要求长度 超过要求长度 超过要求长度 超过323232个个 符符, 上价, 上价, 上价要求长度 超过要求长度 超过要求长度 超过24叫24叫24叫个 符个 符个 符注意注意* C语言标识符中大语言标识符中大 小 母有区分小 母有区分* C语言规定语言规定,,保留关键 能作为标识符保留关键 能作为标识符 * C语言的保留关键 共有32个,见P301 录B注意注意* C语言标识符中大语言标识符中大 小 母有区分小 母有区分* C语言规定语言规定,,保留关键 能作为标识符保留关键 能作为标识符 * C语言的保留关键 共有32个,见P301 录Ba1√应a_b√a-b应abc123√3rd_row应判断 列用户标识符的合法性判断 列用户标识符的合法性int应“.” 能作标识符“-” 能作标识符能 数 开头关键 能作标识符INT√无符号长整型intint型常量的表示方法型常量的表示方法型常量的表示方法十进制十进制::: 如如: 以23 , 令 ,: 以23 , 令 , --以25八进制八进制::: 数数 令开头开头,,如 令以令2表示表示以*8以*82+2、(只只)以令十六进制十六进制:::令x 或令同 开头开头令为数为数如 令同42 表示表示44*以只+2、*以只+2、(只只)(只只)以令令xA2F 表示表示以令*以只以令*以只2+2*以只+以5、2*以只+以5、(2只令叫)(2只令叫)以令 整型常量的表示方法整数常量的 缀整数常量的 缀1 整数常量 面 母l 或L ,则指定该整数为long型如-123l ,0x42L2 整数常量 面 母u 或U,则指定该整数为unsigned型如123u ,0102U三 整型 量的定义整型变量的定义形式整型变量的定义形式整型类型 变量变量 以以,变量变量 22,……变量变量 n n 如 int a,b,c;有效 数0.123可表示为.123,123.0可表示为123.注意注意数部分 能空数部分 能空,,指数部分必 为整数指数部分必 为整数其中其中,,123 2.45 称为 数部分称为 数部分,,2 -2称为指数部分称为指数部分例如例如e+3 2.03e+0.5 都是错误的都是错误的!!一 浮点型常量的表示形式2 十进制指数形式十进制指数形式 如 123e2,2.45E-2表示表示 123*102 ,2.45*10-2数10用e或E表示1 十进制小数形式十进制小数形式如: 5.123(默认为double型),2.45F(指定为float型)浮点型 量的定义浮点型变量的定义形式浮点型变量的定义形式浮点型类型 变量变量 以以,变量变量 22,……变量变量 n n 如 float a, b, c;double a1, a2;六 量赋初值方法1 量初始化在定义 量的 时为 量赋初值如 int a=3;float x=5.89;int o,p,q=8; /*只有q 赋了初值*/允许连续赋初值允许连续赋初值int a=b=c=8; 应方法2 先定义 量先定义 量,,再用赋值语句赋值如 int a;a=3; /*赋值语句*/3尽4尽13尽4尽1 函数的使用方式函数的使用方式函数 ( [实参列表] )例如例如sin(3.1415926)sin(3.0) 或sin(3)需在程序头部用#include命 将 函数的头文 包 到本程序中文 包 到本程序中例如例如#include <math.h>或#include "math.h"函数调用的格式函数的调用前提注意注意函数调用时函数调用时,,实参实参函数 前 能类型3.4.4(1) 格式化输入输出– 数值型为例printf函数函数 格式化输出函数scanf函数函数 格式化输入函数#include <stdio.h>格式输出函数调用格式格式输出函数调用格式printf (”格式控制串”,输出 表列)例 printf(”a=%d ,b=%d ,c=%d \n ”,a,b,sum);一 输出 表列一个或多个输出 组成(多个之间用逗号隔开),常量常量 量 量 函数函数 表达式等均可做输出 表达式等均可做输出格式控制串组成组成1.“%”起头的输出 格式控制符起头的输出 格式控制符 输出 一一对 输出 一一对 2.普通 符普通 符 原样输出原样输出 3. 斜 “\”起头的转义 符一 格式化输出函数格式化输出函数 printf()原样输出%ld %lx%le %lg举例举例%2d 123 →123%5d 123 →˽˽123%-5d 123 →123˽˽%.2f 123.456 →123.46%10.2f : 123.456 →˽˽˽˽123.46输出最小宽度m 若实 数多于m ,按实 数输出输出 若实 数少于m ,左边补空格小数精度.n 四舍五入保留浮点数小数点 n 左对齐标识- 左对齐输出左对齐输出,,宽度 足右边补空格输出格式修饰符格式化输入函数格式化输入函数scanf()格式输入函数调用格式格式输入函数调用格式scanf("格式控制串" , 输入 地址表列)如 scanf("%d%d",&a,&b);能能: : : 按照格式控制串所规定的格式按照格式控制串所规定的格式按照格式控制串所规定的格式,,从键盘输入流中读取数据读取数据,,依次赋给各个变量依次赋给各个变量输入 地址表列输入 地址表列 各变量的地址各变量的地址,,用逗号隔开 量地址组成量地址组成地址运算符“&” 跟 量格式控制串组成格式控制串组成1.“%”起头的输入 格式控制符起头的输入 格式控制符 输入 一一对输入 一一对 2.普通 符普通 符 原样输入原样输入注意注意能使用转义 符能使用转义 符,,如“\n”注意注意能使用转义 符能使用转义 符,,如“\n”键盘输入键盘输入123 456↙键盘输入键盘输入123 456↙%ld,%lo,%lx %lf例 给整型i1 i2输入数据输入数据,,使i1=123, i2=4561) scanf("%d%d",&i1,&i2);输入输入123 456 ↙或 123 ↙456 ↙2) scanf("%d,%d",&i1,&i2);输入输入123,456↙scanf("%d %d",&i1,&i2);输入输入123 456↙scanf("i1=%d,i2=%d",&i1,&i2);输入输入i1=123,i2=456↙注意2 可指定输入数之间的分隔符间的分隔符,,输入时一定要原样输入分隔符要原样输入分隔符!!注意2 可指定输入数之间的分隔符间的分隔符,,输入时一定要原样输入分隔符要原样输入分隔符!!使用scanf函数注意点注意1 输入数之间默认分隔符为空格或回车输入空格或回车是等效的输入空格或回车是等效的注意1 输入数之间默认分隔符为空格或回车输入空格或回车是等效的输入空格或回车是等效的3.2~3.3(2)3.2~3.3(2) 符常量符常量符常量变量变量符串3.4.33.4.3 符输入输出函数符输入输出函数3.4.4(2)3.4.4(2) 格式化输入输出函数之 符型应用格式化输入输出函数之 符型应用第 章第 章(2)(2)符类型及 输入输出空格——32 001000000——48 00110000A——65 01000001a——97 01100001P300录A符常量符常量: :用单引号括起来的一个 符符,,如: ’A’, ’e’ 注意注意a ’a’ ”a”互 相互 相 ,,分别为变量分别为变量符常量 符串常量符串常量9 ’9’ ”9”互 相互 相 ,,分别为整型常量分别为整型常量符常量常量符串常量符串常量转义 符转义 符 一对单引号括起来并 斜 “\”开头的 符序列开头的 符序列,,如'\n’ ’\以23’,, 长度为长度为长度为以以个 节, 含义 是 符本身含义 是 符本身,,而是转成为新的意义三 符 量 3.3.2 符变量的定义: char变量 ;例如例如char c1,c2;符串常量符串常量: : : 一对 引号括起来的 符序列一对 引号括起来的 符序列一对 引号括起来的 符序列,,隐含 ’\令’结尾结尾如"A件价E" 储长度为储长度为55个 节"A件A件\\n价E" 储长度为储长度为只只个 节注意注意::以 符串常量 能赋给 符变量符串常量 能赋给 符变量2 符常量 符串常量符常量 符串常量例如例如char c1、’A’;; 合法合法char c以、"A";char c以、"A"; 合法合法例如例如char c1、’A’;; 合法合法char c以、"A";char c以、"A"; 合法合法符串常量 3.2.4三 符输入输出函数 3.4.3 putchar函数函数 输出一个 符getchar函数函数 输入一个 符#include <stdio.h>一 putchar函数函数 符输出函数符输出函数 putchar函数函数 符输出函数调用格式: putchar(ch)能: 将ch 表的 符输出到屏幕表的 符输出到屏幕ch可 是 符常量可 是 符常量 符变量及数值表达式例1 putchar('\n'); 在屏幕 输出一个换行符例2 c='*'; putchar(c);在屏幕 输出一个“*”号例3 putchar(65);在屏幕 输出Aacii值为65的 符,即 母Agetchar函数getchar函数函数 符输入函数调用格式: getchar( )能: 从键盘的输入流输入流 输入缓冲区输入缓冲区 中读取一个 符作为函数返回值一个 符作为函数返回值体执行过程读输入流读输入流,,若输入流为空若输入流为空,,等待键盘输入 符, 回车键结回车键结 ,,所输入内容所输入内容回车回车入输入流输入流从输入流读 一个 符从输入流读 一个 符例 c=getchar();输入A↙,则'A'为getchar()返回值返回值,,赋给c输入流无”例 给整型i1 i2输入数据输入数据,,使i1=123, i2=4561) scanf("%d,%d",&i1,&i2);输入输入123,456↙或 ˽˽123,˽˽˽˽456↙2) scanf("%d˽%d",&i1,&i2); 或scanf("%d%d",&i1,&i2);输入输入123˽456↙或 123˽˽˽456↙或 123 ↙456 ↙3) scanf("i1=%d,i2=%d",&i1,&i2);输入输入i1=123,i2=456↙注意注意scanf()中的非格式 符要原样输入中的非格式 符要原样输入输入输入数值数据数值数据数值数据时时,前导空格 计前导空格 计输入一个或多个空格输入一个或多个空格一个或多个Tab 一个或多个回车均等效个回车均等效在输入多个在输入多个数值数据数值数据数值数据时时,若格式控制串中没有设置数据间隔符数据间隔符,,则可用空格则可用空格正AB正AB或回车作间隔或回车作间隔或回车作间隔注意注意scanf()中的非格式 符要原样输入中的非格式 符要原样输入输入数值数据时,前导空格 计前导空格 计输入一个或多个空格输入一个或多个空格一个或多个Tab 一个或多个回车均等效个回车均等效在输入多个数值数据时,若格式控制串中没有设置数据间隔符数据间隔符,,则可用空格则可用空格正AB正AB或回车作间隔或回车作间隔或回车作间隔scanf函数使用注意点 进一 说明进一 说明。
数据类型及其运算 算法和数据结合才是程序。
⽽数据⼜包括基本数据和数据结构,你会问数据结构是什么?数据结构就是数据的组织形式,例如数组,结构体。
⼀、数据类型:1.基本数据类型:整型、字符型、浮点型、枚举类型。
2.构造类型:结构体、共⽤体、数组。
3.指针类型。
4.空类型。
5.指针和结构体组成的更复杂的堆栈、表、树⼆、常量和变量:1.不变的量就是常量,分为字⾯常量和符号常量,字⾯常量如7、4.5、‘1’,符号常量就是#define替代⼀个字⾯常量,符号常量的作⽤域从定义开始。
2.变量在内存中开辟出⼀个地址,地址⾥的数据可以变化,所以说变量是变化的量。
使⽤前必须先定义,同时类型确定。
3.标识符是什么,就是命名,宏的命名,函数的命名,变量的命名,结构体类型的命名等等,规则是必须字母数字下划线,其次排⾸只能是字母或下划线,⼤⼩写有区别。
三、整型数据:1.常量表⽰⽅法:⼗进制,⼋进制0,⼗六进制0x。
2.整型变量在内存中的存放⽅式:多数占据2个字节,正的补码还是原码,负的是绝对值原码的反码+1.3.整型分类:short int,int,long int,unsigned -32768-32767/0-655354.溢出:32767+1=-327685.常量:属于哪个范围,就赋值给哪个类型变量;后缀u将数据强制为⽆符号型;后缀l将数据强制为long。
四、浮点型数据:1.分类:单精度,双精度,长双精度。
2.舍⼊误差:单精度只能保证7位有效数字,并不能说明第⼋位是不准确的。
3.默认把浮点型常量当做双精度处理。
五、字符型数据:1.字符变量:只能放⼀个字符,同时⼀个字符占据⼀个字节。
char:-128-127 unsigned char:0-255 。
2.在内存中的存储形式,ASCII码,导致可以字符数据和整型数据相通。
3."a"='a'+‘\0’,字符串常量只能放在数组⾥。
4.字符常量:字⾯字符,转义字符。
第三章 数据类型及其运算知识点提示1.C 的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。
2.C 的运算符种类、运算优选级和结合性。
3.不同类型数据间的转换与运算。
4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。
知识点一.C 的数据类型1.数据类型的概念数据类型在高级语言中的实质是为解决数据在程序中的表示(常量)、内存单元的分配(变量)及其加工的描述(算符和表达式)这三个基本问题。
在高级语言中,任何数据都是有类型的,即不同类型的数据有不同的存储属性及操作属性,将数据按其操作属性和存储属性进行分类,就是数据类型的概念。
2.C 的数据类型在C 语言中,数据类型分为基本类型、导出类型(构造类型)、空类型、指针类型。
基本类型有:整型、实型、字符型、枚举类型。
数据有常量与变量之分,它们分别属于这些类型。
3.常量在程序运行过程中,其值不发生变化的量,也就是在程序中直接给出的数据,在词法记号中属于文字。
常量分为字面常量(直接常量)和符号常量。
在C 语言中,符号常量是用无参数的宏定义实现的,即用标识符代表某一字面常量,其定义形式为:#define 标识符(宏名) 字面常量4.变量在程序运行过程中,其值可以改变的量。
变量实质在C 中是为解决不同类型数据在计算机中存储时内存单元的分配问题。
一个变量对应相应的内存单元,且变量有对应的变量名,变量名实际上是内存单元的符号地址。
将变量对应内存单元所存放的当前值,称为变量的值,对变量的访问是按地址进行的,即通过变量名找到相应内存单元的地址,对其存储单元进行读、写操作。
记住:变量的类型、变量名、变量的值是其三大基本属性。
5.整型数据·整型常量的表示方法十进制整数:如123,-456等。
八进制整数:以0为前导的八进制整数。
如0123、-03467,而0879非法。
十六进制数:以0x 为前导的十六进制整数。
c语⾔-数据类型、运算符与表达式⼀、数据类型1、概念(1)标识符1.定义:⽤来标记常量、变量、函数及⽂件名字的字符序列。
2.构成规则:只能由数字、字母、下划线三部分组成,且不能以数字开头,并且严格区别⼤⼩写,不能定义为系统中存在的关键字。
(2)关键字c语⾔中具有特定含义、专门⽤作语⾔特定成分的⼀类标识符注:在C语⾔中,所有的关键字都有固定的意义,不能⽤作其它,且所有的关键字都必须⼩写(3)c的数据类型数据是操作的对象,数据类型是指数据的内在表现形式(代码、存储、运算)(4)常量和变量1. 常量【1】常量:在程序运⾏过程中,其值不能被改变的量 常量区分为不同类型(表⽰形式),如:12、1.0、‘a’【2】符号常量:⽤⼀个标识符代表的⼀个常量定义⽅法:#define 标识符常量#define PRICE 30#include <stdio.h>void main(){int num,total;num = 10;total = num * PRICE;printf("total = %d",total);}2. 变量【1】变量:其值是可以改变的量,它⽤标识符(变量名)来表⽰,在内存中占据⼀定的存储单元变量的定义⽅法:类型符标识符注意事项:<1>见名知意 <2>先定义后使⽤ <3>习惯上,符号常量名⽤⼤写,变量名⽤⼩写,以⽰区别【2】变量赋初值变量先定义,后使⽤,⼀般放在函数开头变量初始化:可以在定义时赋初值2、整型数据(1)整型常量1. 各种进制的整数表⽰⽅法⼗进制整数:由数字0~9和正负号表⽰. 如 123,-456,0⼋进制整数:由数字0开头,后跟数字0~7表⽰. 如 0123,011⼗六进制整数:由0x开头,后跟0~9,a~f,A~F表⽰. 如 0x123,0xff2. 整型常量的类型【1】整型常量的值在-32768~+32767范围内,编译器认为是int类型【2】整型常量的值超过上述范围,⽽在-2147483648 ~ +2147483647范围内,编译器认为是long类型【3】当系统定义short int与int占内存长度相同,则两种类型常量均可以赋给 int和short int型变量【4】在整型常量后⾯加⼤写L或⼩写l,则告诉编译器,把该整型常量作为long类型处理。