3_数据类型、运算符和表达式
C语言程序设计教案第3讲 数据类型、运算符与表达式

<
>
2,实型变量的分类
说明: C并没有具体规定每种类型的长度 并没有具体规定每种类型的长度, 说明:ANSI C并没有具体规定每种类型的长度,精度和数值 范围.下面是常用的C 范围.下面是常用的C编译系统的情况 类 型 字节数 有效数字 最小取值范围 float 4 6~7 -3.4*10-38~ 3.4*1038 double 8 15~16 -1.7*10-308~ 1.7*10308 long double 16 18~19 -1.2*10-4932~1.2*104932
8
取反
<
>
2.
整型变量分类
基本类型: 基本类型:int 根据数值的范围分为: , 根据数值的范围分为:int,short,long , 根据有无符号(singed/unsigned)及范围可分: 及范围可分: 根据有无符号 及范围可分
类 型 举例: 举例: [signed] int unsigned [int] [signed] short [int] unsigned short [int] [signed] long [int] unsinged long [int]
C 数 据 类 型
构造类型 指针类型 空类型 void
定义类型 typedef
<
>
2
2.2 常量与变量
一,标识符
定义:用来标识变量名,符号常量名, 定义:用来标识变量名,符号常量名,函数 数组名,类型名, 名,数组名,类型名,文件名的有效字符序 列称为标识符.(即一个名字) .(即一个名字 列称为标识符.(即一个名字) 使用规则
32767,32767,-32768,8
<
C语言第3章数据类型、运算符与表达式ppt课件

数据类型、运算符与表达式
1
主要内容
一、C的数据类型 二、常量与变量 三、基本数据类型 四、运算符与表达式
2
一、C的数据类型
(一) 什么是数据类型? (二) C语言的数据类型有哪些?
3
(一) 什么是数据类型?
对数据的描述
对操作的描述
数据结构+算法=程序
C语言中以 “数据类型”形式存在
4
所谓数据类型是按被定义变量的性质,表示形 式,占据存储空间的多少,构造特点来划分的。
int NUM=20; sum=PRICE*NUM;
11
符号常量优点
1、含义清楚。 2、在需要改变一个常量时,能够做到“一
改全改”
12
(二)变量
概念
变量代表内存中具有特定属性的一 个存储单元,它用来存放数据,也 就是变量的值。
13
(1)变量名。每个变量都有一个名字 ──变量名,代表一个地址。 (2)变量值。在程序运行过程中,变 量值存储在内存中。在程序中,通过 变量名来引用变量的值。
#include <stdio.h>
void main() {
int student,age; int if=adrress=1; float score=90;
stadent=2; Age=20; printf("%d %d %d %f",if,student,age,score); }
本程序中有 几处错误?
(5)标识符的有效长度随系统而异,如果超 长,则超长部分被舍弃。VC++6.0中规 定最大长度为247个字符。
23
请选出下列正确的标识符 M.D.John , 12%gf ,1add ,_ce36 ,age& 5thclass, lotus-1-2-3 , cd*ef , float,
第三章 数据类型、运算符与表达式

3.1 数据类型
C#中数据类型主要分为两大类:值类型和引用类 型。这里我们先讲解这两种类型,然后再讨论数据类 型之间的转换。
3.1.1 值类型
C#中值类型包括三种:简单类型、结构类型和枚 举类型。不同的类型是不同数据的集合,不同的类型 在C#中用不同的类型标识符来表示。这里我们只介绍 简单类型,结构类型和枚举类型将在后面介绍。
16位有符号整数 16位无符号整数 32位有符号整数 32位无符号整数 64位有符号整数 64位无符号整数
-32768 ~ +32767 0 ~ 65535 -2147483648 ~ +2147483647 0 ~ 232-1 -9223372036854775805 ~ +9223372036854775807 0 ~ 264-1
2. 浮点类型
浮点类型的数据包含两种:单精度浮点型(float)和 双精度浮点型(double),其区别在于取值范围和精度的 不同。
float类型是32位宽,double类型是64位宽。
单精度:取值范围在+ 1.5×10-45 ~ 3.4×1038之间,精度为7 位数。
双精度:取值范围为+5.0×-324 ~ 1.7×10308之间,精度为 15~16位数。
ToBoolean、ToByte、ToChar、ToDateTime、 ToDecimal、ToDouble、ToInt16、ToInt32、 ToInt64、ToSingle、ToString、ToSByte、 ToUint16、ToUint32、ToUint64
Char c=‘a’; Int a=Convert.ToInt16(c); string s=Convert.ToString(a); s=s+”5”; float f3=Convert.ToSingle(s);
第2章_数据类型、运算符和表达式《C语言程序设计(第三版)》-电子教案

2.2 标识符、常量与变量
符号常量
【例2-1】输入圆的半径,计算周长和面积。 #define PI 3.14159 void main() { float r,c,s; scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("r=%f,c=%f,s=%f\n",r,c,s); }
以下是合法的整型常量:
2.2 标识符、常量与变量
实型常量
实型常量只能用十进制形式表示 表示形式:
小数形式。由数字序列和小数点组成,如 3.1415926、-0.15、.15、2.等都是合法的实型 常量。 指数形式。由十进制数加上阶码标志“e”或 “E”及阶码组成,如3.14e-4或3.14E-4表示 3.14×10-4。
2.2 标识符、常量与变量
2.2.3 变量
在程序运行过程中,其存储的值可以被改变的量称 为变量 变量必须通过标识符进行说明,称为变量名。 变量名和内存单元地址存在映射关系,程序可以通 过变量名寻址,从而访问其存储的数据。
2.2 标识符、常量与变量
变量的定义和说明
数据类型 变量名1[,变量名2,…,变量名n];
long型转换成float型时由原来可达10位整数变成只有7位有效数字精度丢失但由于数的范围扩大了数据类型从较低级提升到较高级随着竞争日益激烈酒店嘴中的肥肉被大肆抢夺各大酒店在这场竞争中几乎溃不成军
21世纪高等学校精品规划教材
第2章 数据类型、运算符 和表达式
掌握C语言的基本数据类型 掌握标识符、关键字、常量和变量的使用 掌握运算符、表达式以及数据类型之间的转换 等 掌握简单数据的输入输出
3 数据类型、运算符和表达式

三、整型数据
3.1.整型常量 整型常量即整常数按不同的进制区分, 整型常量即整常数按不同的进制区分 , 整型常数 有三种表示方法: 有三种表示方法:
十进制数: 以非0 220, 560, 十进制数: 以非0开始的数 如:220, -560, 45900 八进制数: 06; 0106, 八进制数: 以0开始的数 如:06; 0106, 十六进制数: 十六进制数: 以0X或0x开始的数 如:0X0D, 0XFF, 0x4e
一般情况下,符号常量名用大写、变量用小写。 一般情况下,符号常量名用大写、变量用小写。
3、符号常量的声明和使用 一般放在程序的前端, <…>在一块: 一般放在程序的前端,与#include < >在一块: #define 符号常量名 值 如:#define Zero 0 好处: 好处: 含义清楚 (#define Second 60) (#define (#define 一改全改 (#define PI 3.14)
3. 整型变量的溢出
main(){ i,j; int i,j; unsigned k,l,m; k,l,m; i=32767 32767; i=32767; j=i+1 j=i+1; l=65535 65535u l=65535u; m=l+2 m=l+2; printf("j=%d\n",j); printf("j=% n",j); printf("l=% n",l); printf("l=%u\n",l); printf("m=% n",m); printf("m=%u\n",m); }
3.2、整型变量 整型变量的分类:加上不同的修饰符 1 . 整型变量的分类 : 加上不同的修饰 符 , 整型变 量有以下几种类型; 量有以下几种类型; C 语言标准没有规定整型变量在计算机内存中所 占的字节数,它与具体的机器和操作系统有关: 占的字节数,它与具体的机器和操作系统有关:
3 数据类型.运算符与表达式

C语言程序设计
第6页
符号常量
一般来说,下列两种情况用符号常量比较方便。 1)当某一常数在程序中多处出现时,可事先定义一个符 号常量。 2)有时,程序中的常数是有意义的,但写一个具体数字,程 序的阅读者则很难明白该常数的意义,此时可定义一个符 号常量。 例如: # define PI 3.1415926 注意:1)表示常量的标识符一般用大写 2)不能给符号常量赋值 PI=6; 错误 思考题:使用符号常量的好处? 含义清晰;一改全改
C语言程序设计
第14页
3.4 实型数据 3.4.1 实型常量
注意:1)没有unsigned和signed 之分。 2)实型常量没有单、双精度数之分;但可以赋给 一个float型或double型变量。赋值时要注意有效 数字位数。 float a; a=12345.6789 (只能接受前7位) 3)C编译系统将浮点型常量作为双精度来处理
C语言程序设计
第11页
3.3.2 整型变量
有三种整型变量(int、short int、long int): 但也可以将变量的类型定义为无符号(unsigned int) 1)有符号基本整型:signed int signed int 2)无符号基本整型:unsigned int 3)有符号短整型: signed short int signed int 4)无符号短整型: unsigned short int unsigned short 5)有符号长整型: signed long int signed long long 6)无符号长整型: unsigned long int unsigned long
THE C PROGRAMMING LANGUAGE
数据类型、运算符与表达式

6.1 一维数组
例6.4程序中第一个for语句逐个输入10个数到数组a中,然后把a[0]送 入max中。在第一个for语句中,a[1]到a[9]逐个与max中的内容比 较,若比max的值大,则把该下标变量送入max中,因此max在己 比较过的下标变量中总是为最大者。比较结束,输出的max值即 为10个整数的最大值。
2.5 字符型数据
2.5.1 字符常量
1.字符常量的定义 用一对单引号括起来的单个字符,称为字符常量。例如,'
A','6','+'等。 2.转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠 “\”开头的转义字符,该形式将反斜杠后面的字符转变成另外的 意义,因而称为转义字符。
下一页 返回
第2章 数据类型、运算符与表达式
2.1 C语言的数据类型 2.2 标识符、常量和变量 2.3 整型数据 2.4 实型数据 2.5 字符型数据 2.6 算术运算与算术表达式 2.7 赋值运算与赋值表达式 2.8 自增、自减与逗号运算
2.1 C语言的数据类型
C语言提供有丰富的数据类型。其数据类型及其分类关系如 图2-1所示。
int i,max,a【10」; printf(”input 10 numbers:\n");
上一页 下一页 返回
6.1 一维数组
for(1=0;1<10;1++) scanf(”%d”,&a[i]);
max=a[0]; for(i=1;i<10;i++)
if(a[i]>max) max=a[i]; printf("maxnum=%d\n",max);
形பைடு நூலகம்输出。
数据类型、运算符和表达式数据、类型、运算符、表达式

字符型
字符型数据类型用于 存储单个字符。
字符型数据类型可以 用单引号或双引号括 起来表示一个字符常 量。
在大多数编程语言中, 字符型数据类型通常 用一个字节来表示。
布尔型
布尔型数据类型用于存储逻辑值, 即真(true)或假(false)。
布尔型数据类型通常用于条件判 断、逻辑运算等场合。
在大多数编程语言中,布尔型数 据类型通常占用一个字节的空间。
数据类型、运算符和表达式
目录
• 数据类型 • 运算符 • 表达式
01 数据类型
整型
01
02
03
04
整型数据类型用于存储整数, 包括正整数、负整数和零。
常见的整型数据类型有:int (整数)、short(短整数)、
long(长整数)、byte(字 节)。
整型数据类型根据其表示范围 可以分为有符号和无符号两种
算术表达式是由算术运算符和 操作数组成的。常见的算术运 算符包括加法、减法、乘法和 除法。
算术表达式的计算顺序遵循先 乘除后加减的原则,同时需要 注意括号内的运算优先级最高。
算术表达式可以包含多个操作 数和运算符,例如:`(a + b) * c - d / e`。
赋值表达式
赋值表达式用于将一个值赋给一 个变量。赋值运算符为“=”。
THANKS FOR WATCHING
感谢您的观看
赋值表达式的一般形式为“变量 = 表达式”,例如:`x = a + b`。
在赋值表达式中,变量必须是已 经声明过的,否则会导致编译错
误。
条件表达式
条件表达式也称为三元运算符,其格 式为“条件 ? 值1 : 值2”。
条件表达式常用于简化复杂的if-else 语句,例如:`max = (a > b) ? a : b`。
数据类型、运算符与表达式 习题三及参考答案

第三章习题参考答案一、单项选择题1、C语言中字符型(char)在内存中的形式存储是()。
A)源码 B)补码 C)反码D)ASCII码2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。
A)逻辑运算符高于算术运算符,算术运算符高于关系运算符B)算术运算符高于关系运算符,关系运算符高于赋值运算符C)算术运算符高于逻辑运算符,关系运算符高于关系运算符D)关系运算符高于逻辑运算符,逻辑运算符高于算术运算符3、C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是()。
A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4、以下选项中属于C语言的数据类型是()。
A)复数型 B)逻辑型C)双精度型 D)集合型5、在C语言中,int、char和short三种类型数据所占的内存()。
A)均为2个字节 B)由用户自己定义C)由所用机器的字长决定 D)是任意的6、下列常数中不能作为C语言的数据类型是()。
A)0xa5 B)2.5e-2 C)3e2 D)05827、设int类型的数据长度为2字节,则unsigned int类型数据的取值范围是()。
A)0至255 B)0至65535 C)-256至255 D)-32768至327678、在C语言中,数字029是一个()。
A)八进制数 B)十六进制数 C)十进制D)非法数9、下列可以正确表示字符型常数的是()。
A)”a”B)'\t’ C)”\n” D)29710、以下错误的转义字符是()。
A)'\\’ B)'\'’ C)'\81’ D)'\0’11、C语言中整数-8在内存中的存储形式是()。
A)1111 1111 1111 1000 B)1000 0000 0000 0000C)0000 0000 0000 1000 D)1111 1111 1111 011112、已知 int i; float f; 正确的语句是()。
基本数据类型、运算符与表达式

深入了解编程的基础 - 基本数据类型、运算符与表达式。从整型到字符型,从 算术运算符到逻辑运算符,让我们一起探索编程的核心。
基本数据类型
1 整型数据类型
不同整型数据类型的表示范围和字节大小,如 int、long 等。
2 浮点型数据类型
浮点型数据类型的表示范围和精度,如 float、 double 等。
3 字符型数据类型
4 布尔型数据类型
字符型数据的表示和转义字符,如 char、\n、\t 等。
布尔型数据类型的取值范围和应用场景,如 true、 false。
运算符
算数运算符
各种算数运算符的应用和注意事项,如 +、-、*、/、 % 等。
比较运算符
比较运算符的使用和返回值,如 ==、!=、>、< 等。
算术和布尔表达式
1
算术表达式
算术表达式的组合和求值,如:a + b * c。
2
布尔表达式
布尔表达式的写和返回值,如:a > b && c == 0。
3
表达式的优化
表达式的优化和求值顺序,提高计算效率。
数组和字符串
数组
字符串
枚举类型
数组元素的访问和下标越界的处理。 字符串的表示和基本操作,如连接、 枚举类型的定义和在实际编程中的
逻辑运算符
逻辑运算符的含义和真值表,如 &&、||、!等。
位运算符
位运算符的定义和位移操作,如 &、|、^、<<、>> 等。
赋值运算和简化运算符1 Nhomakorabea赋值运算符
赋值运算符的意义和连续赋值,如 =、+=、-= 等。
数据类型及运算符

【说明】 参数number1,number,...为需要求和的数值(包括逻辑值及 文档表达式)、区域或引用。参数表中的数字、逻辑值及数字的文本 表达式可以参与计算,其中逻辑值被转换为1,文本被转换为数字。如 果参数为数组或引用,只有其中的数字将被计算,数组或引用中的空 白单元格、逻辑值、文本或错误值将被忽略。
(4)compare:可选。数字值,表示判别子字符串时使用的比较方式。
举例
Dim arr,brr,s,m,n,y s=”abc,d,e,f,g” arr=Split(s,”,”) 结果是一个包含5个项的一维数组 m=Split(s,”,”)(0) 令m为数据的第1项,为abc brr=Split(s,”,”,2) 将s以逗号分为2项,brr(0)=abc, brr(1)=”d,e,f,g” n= Split(s,”,”,2)(0) 令n=abc y= Split(s,”,”,2)(1) 令y=”d,e,f,g”
日期时间函数
1、Date【格式】 Date()【功能】 返回当前系统的日期。
2、Time【格式】 Time()【功能】 返回当前系统的时间。
3、Now【格式】 Now()【功能】 返回计算机系统日期和时间。
4、Year【格式】 Year(<日期表达式>)【功能】 返回日期表达式中表示年份的整数。
5、Month【格式】 Month(<日期表达式>)【功能】 返回日期表达式中表示月份的 整数,其值在1~12之间。
数据类型
布尔型
布尔型数据的存储空间为16位,表示 逻辑值的真或假。布尔型变量只有两个 值“True”和“False”。声明布尔型 变量的关键字为Boolean。
C语言第3章数据类型、运算符、表达式

例如
➢字符常量‘a’占一个字节 ➢字符串常量"a" 占2个字节
‘a’ → “a” →
0110 0001 ……
0110 0001 0000 0000
(97)10
(97)10 (0)10
7.变量赋初值
变量赋初值
C语言允许定义变量时赋予初值。
➢int i = 6;
也可对某个变量赋初值:
➢int a, b, c = 6;
如: 0x16, 0x28
4.整型数据
整型变量
分类:
➢基本型 用“ int ”定义; ➢短整型 用“ short int ”或 “ short ”定义; ➢长整型 用“ long ”或 “ long int ”定义; ➢无符号型 用“ unsigned ”定义,不存放符号;
整型变量定义方式
➢基本整型:int a, b, c; ➢短整型 : short int 或 short a, b, c; ➢长整型: long int 或 long a, b, c; ➢无符号型:unsigned a, b; unsigned short a, b
10+‘a’+1.5–8765.1234 ‘b’
8.各种数值型数据间的混合运算
转换方法(自动转换)
double float
高
long
unsigned
低 int char, short
图中“ ” 表示必定转换。如'a' +' b',先转换为int,结果为 int。
既使是同一种类型也按" "转换。
对于“++”和“--”的使用要避免二义性
10.赋值运算符和赋值表达式
数据类型、运算符和表达式

一.数据类型,运算符与表达式1.1数据类型短整型(short int)整形基本整型(int)长整型(long int)字符型(char)单精度类型(float)基本整型浮点型双精度类型(double)长双精度型(long double)枚举类型(enum)数据类型数组类型构造类型结构类型(struct)共用体类型(union)指针类型(*)空类型(void)1.2 常量与变量1.2.1常量和符号常量1)在程序运行中,其只不能被改变的量称为常量P38常量类型注:P38 用define定义的常量不能再被赋值。
2)变量:变量名为门牌号,变量值为家庭成员。
注:标识符只能由字母、数字、下划线组成。
并且第一个字符不能为数字。
区分大小写。
(先定义,后使用;可读性强悍)P39 ansic 一段了解一下即可。
1.3 整形数据1.3.1整型常量的表达方法1)十进制整数:123,--4556.42)八进制整数:以0开头的,八进制数字0123=十进制0×83+1×82+2×81+3×80=83 3)十六进制整数:以0X开头的,转化方法同八进制。
1.3.2 整型变量1)了解补码的知识(整数不变,负数按位取反再加1)注:存贮单元中,最左端的符号位,0正1负。
2)根据数值的范围分为int,long,short。
P41Int的范围—215 ~~(215 —1)= 32768~~—32767Unsigned无符号, 没有0正1负的书法了,范围扩大一倍。
Signed 有符号,有0正1负的说法。
什么也不加默认为signed。
3)整形变量定义:“强制类型定义”P43使用方法。
4)数据的溢出:(循环)1.3.3整型常量的类型(了解一下,重点(4)(5)条)1.4浮点数据1.4.1 浮点型常量的表达方法1) 十进制(平常数学中该怎么写就怎么写)2)指数形式123e3,123E3 表示123×103注意:1,E不区分大小写。
c语言-数据类型、运算符与表达式

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类型处理。
数据类型、运算符和表达式实验报告

广州大学实验报告学院商学院专业、班级姓名、学号课程名称C程序设计项目名称数据类型、运算符和表达式实验实验时间:2012 年 3 月20 日数据类型、运算符和表达式实验报告开课实验室:2012年3月20日d=5.670000,e=-6.780000f=1234.567890,g=0.123457m=50000,n=-600000p=32768,q=40000第3页四、实验结果及分析实验一输出结果为:a,b值互换。
分析:在C程序设计中,两个值互换需要一个中间变量来储存数据,如果直接交换会导致其中一个数据丢失。
实验二分析:实验二为自己设计的程序。
在设计这个程序是要注意scanf的用法。
Scanf 为格式输入符,在输入字符时要注意字符输入方式。
在本次实验中其调用格式为:scanf("<格式化字符串>",<地址表>);实验三分析:输出格式的不同会导致输出结果的不同。
将负数赋值给无符号变量时,无符号变量会将这个负值的符号也纳入计算范围从而返回一个正值,导致最后输出结果不正确。
这个实验让我认识到在设计程序时要注意输出格式的选择。
实验四分析:实验四更加强调个语句中在程序的含义。
程序为:printf("d=% f,e=% f\n",d,e);printf("f=% f,g=% f\n",f,g);输出结果为:当程序改为:printf("d=%-6.2f,e=%-6.2f\n",d,e);printf("f=%-15.6f,g=%-15.10f\n",f,g);输出结果为:继续将程序改边为:printf("d=%-6.2f\te=%-6.2f\n",d,e);printf("f=%-15.6f\tg=%-15.10f\n",f,g);输出结果为:以上3种都是改变了输出格式使输出数据的有效数字改变。
C语言数据类型、运算符与表达式

整型数 1 1 1 1 1 1 1 1 无符号整型数 1 1 1 1 1 1 1 1
表示-1的补码 1 1 1 1 1 1 1 1 表示 的补码 1 1 1 1 1 1 1 1 表示数值 表示数值65535
6
整型数据
整型变量的定义 对变量的定义,一般是放在一个函数的开头部分的声明部分。 对变量的定义,一般是放在一个函数的开头部分的声明部分。 main( ) { int a, b, c, d; /* 定义整型变量 */ unsigned u; a = 12; b = -24; u = 10; c = a + u; d = b + u; printf( “a + u = %d \t b + u = %d \n”, c, d ); } 整型数据的溢出 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 如果一个整型变量存放的值,超出它所允许的范围,将会产生溢出, 例如一个into型变量,如果其值为 型变量, 就会产生溢出, 例如一个 型变量 如果其值为32767,再加 就会产生溢出, ,再加1就会产生溢出 变成-32768。但运行时并不报错。 变成 。但运行时并不报错。
• 字符数据的存放 以字符的ASCII码存放在存储单元中
97
C1
98
C2
01100001
C1
01100010
C2
13
字符型数据
• 例子 大小写字母的转换 main( ) {char c1,c2; c1=‘a’;c2=‘b’; c1=c1-32;c2=c2-32; printf(“%c %c”,c1,c2);} main() {into i; char c; i=‘a’;c=97; printf(“%c,%d\n”,c,c); printf(“%c,%d\n”,i,i);} 注意: 注意:1、字符型数据和整形数据是通用的。但字符数据只能 存放0~255范围内的整数。 2、字符数据与整数可以直接进行算术运算。 3、字符数据与整型数据可以相互赋值 4、Turbo C将字符数据处理成带符号的整数,如果不想 按有符号处理,可将字符变量定义为unsigned char类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本数据类型 ●字符型
字符常量是用单引号括起来的一个字符。例如’ 字符常量是用单引号括起来的一个字符。例如’a’,’b’,’=’,’+’,’?’都是合 都是合 字符常量。 语言中,字符常量有以下特点: 法 字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 字符常量只能用单引号括起来, 字符常量只能用单引号括起来 不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 字符常量只能是单个字符, 字符常量只能是单个字符 不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参 字符可以是字符集中任意字符。 字符可以是字符集中任意字符 与数值运算。 是字符常量, 与数值运算。如’5’和5 是不同的。’5’是字符常量,不能参与运算。 和 是不同的。 是字符常量 不能参与运算。 转义字符是一种特殊的字符常量。转义字符以反斜线“ 开头 开头, 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一 是一种特殊的字符常量 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义, 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义”字符。 广义地讲, “转义”字符。 广义地讲,C语言字符集中的任何一个字符均可用转义字 符来表示。 正是为此而提出的。 符来表示。\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六 和 正是为此而提出的 和 分别为八进制和十六 进制的ASCII代码。如\101表示字母 A" ,\102表示字母 代码。 表示字母" 表示字母"B",\134表示反 进制的 代码 表示字母 表示字母 , 表示反 斜线, 表示换行等。 斜线,\XOA表示换行等。 表示换行等
分配字节数 ■■ ■■ ■■ ■■ ■■■■ ■■■■
基本数据类型 ●实型
实型也称为浮点型。实型常量也称为实数或者浮点数。 实型也称为浮点型。实型常量也称为实数或者浮点数。在C语言中,实数只采 语言中, 用十进制。它有二种形式: 用十进制。它有二种形式: 十进制数形式和指数形式 。 1.十进制数形式 十进制数形式 由数码0~ 和小数点组成 例如: , , 和小数点组成。 由数码 9和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,, , , , 267.8230等均为合法的实数。 等均为合法的实数。 等均为合法的实数 2.指数形式 指数形式 由十进制数,加阶码标志“ 或 以及阶码( 由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组 以及阶码 只能为整数,可以带符号) 其一般形式为a 为十进制数, 为十进制整数 为十进制整数) 成。其一般形式为 E n (a为十进制数,n为十进制整数)其值为 a*10,n 如: 为十进制数 2.1E5 (等于 等于2.1*10,5), 3.7E-2 (等于 等于3.7*10,)-2*) 0.5E7 (等于 等于0.5*10,7), -2.8E-2 (等 等于 等于 等于 等 无小数点) 阶码标志E之前无数字 于-2.8*10,)-2*)以下不是合法的实数 345 (无小数点 E7 (阶码标志 之前无数字 以下不是合法的实数 无小数点 阶码标志 之前无数字) 5 (无阶码标志 53.-E3 (负号位置不对 2.7E (无阶码 无阶码标志) 负号位置不对) 无阶码) 无阶码标志 负号位置不对 无阶码 实型变量分为两类:单精度型和双精度型, 其类型说明符为float 单精度说明符, 单精度说明符, 实型变量分为两类:单精度型和双精度型, 其类型说明符为 分为两类 double 双精度说明符。在Turbo C中单精度型占 个字节(32位)内存空间,其数 双精度说明符。 中单精度型占4个字节 中单精度型占 个字节( 位 内存空间, 值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占 个字节(64位) 七位有效数字。 值范围为 ~ ,只能提供七位有效数字 双精度型占8 个字节( 位 位有效数字。 内存空间,其数值范围为1.7E-308~1.7E+308,可提供 位有效数字。 内存空间,其数值范围为 ~ ,可提供15位有效数字
1.基本数据类型 基本数据类型 基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说, 基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基 本数据类型是自我说明的。 本数据类型是自我说明的。 2.构造数据类型 构造数据类型 是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说, 是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个 构造类型的值可以分解成若干个“成员” 元素” 每个“成员” 构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本 数据类型或又是一个构造类型。 语言中, 数据类型或又是一个构造类型。在C语言中,构造类型有以下几种: 语言中 构造类型有以下几种: ·数组类型 ·结构类型 ·联合类型 数组类型 结构类型 联合类型 3.指针类型 指针类型 指针是一种特殊的,同时又是具有重要作用的数据类型。 指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量 在内存储器中的地址。虽然指针变量的取值类似于整型量, 在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不 同的量,因此不能混为一谈。 同的量,因此不能混为一谈。 4.空类型 空类型 在调用函数值时,通常应向调用者返回一个函数值。 在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有 一定的数据类型的,应在函数定义及函数说明中给以说明,但是,也有一类函数, 一定的数据类型的,应在函数定义及函数说明中给以说明,但是,也有一类函数, 调用后并不需要向调用者返回函数值, 这种函数可以定义为“空类型” 调用后并不需要向调用者返回函数值, 这种函数可以定义为“空类型”。其类型说 明符为void。 明符为 。
\n \t \v \b \r \f \\ \’ \a \ddd \xhh
字符变量的取值是字符常量, 单个字符。 字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是 char。字符变量类型说明的格式和书写规则都与整型变量相同。 。字符变量类型说明的格式和书写规则都与整型变量相同。 例如: 例如: char a,b; 每个字符变量被分配一个字节的内存空间,因此只能存放一 每个字符变量被分配一个字节的内存空间, 分配一个字节的内存空间 个字符。字符值是以ASCII码的形式存放在变量的内存单元之中的。如x的 码的形式存放在变量的内存单元之中的。 个字符。字符值是以 码的形式存放在变量的内存单元之中的 的 十进制ASCII码是 码是120,y的十进制 的十进制ASCII码是 码是121。对字符变量a,b赋予 赋予’ 十进制ASCII码是120,y的十进制ASCII码是121。对字符变量a,b赋予’x’ 实际上是在a,b两个单元内存放 和’y’值: a=’x’;b=’y’;实际上是在 两个单元内存放 值 实际上是在 两个单元内存放120和121的二进制代 和 的二进制代 码: a 01111000 b 01111001 所以也可以把它们看成是整型量。 语言允许对整型变量赋以字符值, 所以也可以把它们看成是整型量。 C语言允许对整型变量赋以字符值, 也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出, 也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出, 也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量, 也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量, 当整型量按字符型量处理时, 只有低八位字节参与处理。 当整型量按字符型量处理时量包括整型常量、整型变量。整型常量就是整常数。 整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用的 语言中, 整常数有八进制、十六进制和十进制三种。 整常数有八进制、十六进制和十进制三种。 1.八进制整常数 八进制整常数 八进制整常数必须以0开头 即以0作为八进制数的前缀 数码取值为0~ 。 开头, 作为八进制数的前缀。 八进制整常数必须以 开头,即以 作为八进制数的前缀。数码取值为 ~7。八 进制数通常是无符号数 无符号数。 进制数通常是无符号数。 以下各数是合法的八进制数:015 0101 0177777 以下各数是合法的八进制数: 以下各数不是合法的八进制数: 以下各数不是合法的八进制数: 256(无前缀 03A2(包含了非八进制数码 -0127(出现了负号 无前缀0) 包含了非八进制数码) 出现了负号) 无前缀 包含了非八进制数码 出现了负号 2.十六进制整常数 十六进制整常数 十六进制整常数的前缀为 前缀为0X或 。其数码取值为0~9,A~F或a~f。 十六进制整常数的前缀为 或0x。其数码取值为 , 或 。 以下各数是合法的十六进制整常数:0X2A 0XA0 0XFFFF 以下各数是合法的十六进制整常数: 以下各数不是合法的十六进制整常数: 无前缀0X) 0X3H (含有非十六进制数 以下各数不是合法的十六进制整常数:5A (无前缀 无前缀 含有非十六进制数 码) 3.十进制整常数 十进制整常数 十进制整常数没有前缀 其数码为0~ 。 没有前缀。 十进制整常数没有前缀。其数码为 ~9。 以下各数是合法的十进制整常数: 237 -568 65535 1627 以下各数是合法的十进制整常数: 以下各数不是合法的十进制整常数: 不能有前导0) 23D (含有非十进制数码 含有非十进制数码) 以下各数不是合法的十进制整常数: 023 (不能有前导 不能有前导 含有非十进制数码
【考点一】 C 语言的数据类型 考点一】 程序中使用的各种变量都应预先加以说明,即先说明,后 程序中使用的各种变量都应预先加以说明,即先说明, 使用。对变量的说明可以包括三个方面: 使用。对变量的说明可以包括三个方面: ·数据类型 数据类型 ·存储类型 存储类型 ·作用域 作用域 所谓数据类型是按被说明量的性质,表示形式, 数据类型是按被说明量的性质 所谓数据类型是按被说明量的性质,表示形式,占据存储 空间的多少,构造特点来划分的。 语言中, 空间的多少,构造特点来划分的。在C语言中,数据类型可分 基本数据类型,构造数据类型,指针类型,空类型四大类。 为:基本数据类型,构造数据类型,指针类型,空类型四大类。