第二章-数据类型常量和变量
C语言基础知识第二章概述
2019/3/14
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
12
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八 进制) ∴字符A可以表示为‘A’、’\x41’、’\101’。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括 ASCII字符表中的所有字符(可显示字符和非显 示字符)。
– 例如: 某计算机允许表示具有七位有效数字的十进制数,计算 333.3333+0.0002222222,若计算时没有位数的限制,则结果应当 是3.3335222222。 计算机由于字长位数的限制,只能表示七位有 效数字,于是只得将小数点后的七个数字全部删掉,而仅保留其 整数部分,得到和值333.3335。 (4)根据实际要求选择单精度或双精度。
2019/3/14
C语言程序设计教程
13
• 注意: • • • • (1)字符常量只能用单引号括起来,不能用双引号 或其他括号。 (2)字符常量只能是单个字符, 不能是字符串。 ‘ab’ 不是字符常量 (3)字符可以是字符集中任意字符,但数字被定义为 字符型之后就以ASCII码值参与数值运算。 如,‘6’和6是不同的,‘6’是字符常量,而6是整型 常量。
注意
‘a’与“a”的区别。
2019/3/14
C语言程序设计教程
15
• 字符常量与字符串常量的区别:
– ⑴ 定界符不同。 – 字符常量使用单引号,而字符串常量使用双引号。 – ⑵ 长度不同。 – 字符常量的长度固定为1,而字符串常量的长度可以是0,也可以 是某个整数。 – ⑶ 存储要求不同。 – 字符常量存储的是字符的ASCII码值,而字符串常量除了要存储 字符串常量的有效字符外,还要存储一个字符串结束标志‘\0’。
中职C语言教案:数据类型
环节
教学活动内容及组织过程
个案补充
教
学
内
容
一、复习引导
上次课我们已经学习了程序的一个方面算法,现在来学习另一方面数据结构。
二、内容设计
C有三种基本数据类型,分别是整型、浮点型、字符型
(一)、常量与变量
1、常量:在程序运行过程中,其值不能被改变的量。
两种形式:一般常量和符号常量
(1)常量(字面常量):
江苏省XY中等专业学校2022-2023-1教案编号:
备课
组别
计算机
上课
日期
主备
教师
授课
教师
课题
第二章数据类型
教学
目标
1、掌握C的数据类型
2、掌握整型、实型、字符型数据的常量及变量
重点
各种基本数据类型的常量和变量
难点
不同类型的数据在内存中的物理存储形式Leabharlann 教法讲授法、案例教学法、讨论法
教学设备
黑板 计算机网络机房
a=12; b=-24; u=10;
c=a+u; d=b+u;
printf(“a+u=%d, b+u=%d\n”,c,d); }
4)整型数据的溢出
一个int型变量的最大允许值为32767,如果再加1,其结果不是32768,而是-32768。即“溢出”。
(三)、浮点型数据
1、浮点型常量的表示方法
(1)十进制浮点数
3)转义字符:
以‘ \ ’开头,后跟一个约定的字符或所要表示字符的十六进制(或者八进制)的编码;
2、字符变量:字符变量用来存放字符常量,只能放一个字符。例:char c1=‘a’, c2=‘A’;一个字符变量在内存中占一个字节。
C语言学习第二章数据类型
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。
C语言——第02章数据类型1
例2.2 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; unsigned u; a=12;b=-24;u=10; c=a+u;d=b+u; printf(“a+u=%d,b+u=%d\n”,c,d);
}
(4) 整型数据的溢出 例2.3 数据的溢出 #include <stdio.h> 2 void main() 3 { 4 short a,b; 5 a=32767; 6 b=a+1; 7 printf("%d,%d\n",a,b); 8 }
区分变量名和变量值是两个不同的概念
练习:为变量a和b分别赋一个实数,求
a-b
a+b
的结果.
#include<stdio.h> void main() { float a,b; scanf(“%f%f”,&a,&b); printf("%f\n",(a-b)/(a+b)); }
§2.4 整型数据
练习:
编写:定义2个单精度变量a和b,求其和存入变量sum中; 定义2个双精度变量c和d,求其积存入变量tim中,a、b、 c、d的值任意给。
#include <stdio.h> void main() { float a,b,sum; double c,d,tim; scanf(“%f%f%f%f”,&a,&b,&c,&d); sum=a-b; tim=c*d; printf(“sum=%f tim=%f\n”,sum,tim); }
“规范化的指数形式‛,即在字母e(或E)之前 的小数部分中,小数点左边应有一位(且只能有 一位)非零的数字。 一个实数在用指数形式输出时,是按规范化的指 数形式输出的。 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e5 其中的1.23456e2称为“规范化的指数形式”。
VFP第二章数据及数据类型
3).逻辑型常量
逻辑型常量就是表示逻辑判断结果“真”或“假” 的逻辑值。逻辑常量只有真和假两种值,分别用(.t.或.y.) 和(.f.或.n.)表示真和假。一般应在表示逻辑常量的字母 左右加注圆点符“.”以示区别。
4).日期型常量 日期型常量是表示日期值的数据,其默认格式是 {mm/dd/[yy]yy}。如{10/01/02}和{10/01/2002}均表示 2002年10月1日这一日期常量值。 系统默认的“严格日期格式”以{^yyyy-mm-dd}的形式 来表示。 ∧指该日期是严格的,表达一个确切的日期,它不受日期 设置命令SET DATE TO 和SET CENTURY ON/OFF的影响。 其中“-”可用“/”来代替。 必须注意,执行命令时, VFP默认使用严格的日期或日期 时间格式,如果要使用通常的日期或日期时间格式,必 须先执行SET STRICTDATE TO 0命令,否则会引起出 错。如果要设置严格的日期或日期时间格式,可执行命 令SET STRICTDATE TO 1。
| |
最低
对于各种逻辑运算,其运算规则可由逻辑运算真值表确 定,表所示就是逻辑运算真值表。 表 逻辑运算真值表
A .T. .T. .F. .F.
B .T. .F. .T. .F.
A .AND.B
A .OR. B
.NOT A
.T. .F. .F. .F.
.T. .T. .T. .F.
.F. .F. .T. .T.
(3)汉字 系统默认按汉字的拼音排列汉字的顺序,也就是以汉 字的拼音顺序比较“大小”,因此,汉字比较实质上是以 字母的顺序进行比较;但 Visual FoxPro 系统可以设置汉 字按笔画排列顺序,因而,汉字的“大小”就决定其笔画 数的多少。 用菜单设置汉字排列顺序方式的操作步骤为:单击 【工具】 | 【选项】命令,将打开“选项”对话框中,在 “数据”选项卡的“排序序列”下拉列表框中选择 “Stroke”项并确定,系统将按汉字的笔画数进行汉字的 排序、比较运算。 "MACHINE"按ASCII码比较大小 ?"实际"<"实习"
C语言程序设计 第2章 数据类型
2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
2.2.2.1数据类型、常量与变量
数据类型、常量与变量
2.2.1 数据类型
数学中“数”的类型:
VB的数据类型
注意点: 注意点:
数据类型实际上是一种约定。 单精度和双精度又合称为浮点型。 用“”表示空串。 VB中也常用数值0表示假值,-1表示真值。
例:
Dim a As Integer a = 100 If a Then Print "True!" Else Print "False!" End If
变量声明
变量应该先声明后使用。 中变量声明的方法是 中变量声明的方法是: 变量应该先声明后使用。VB中变量声明的方法是:
Dim <变量名> As <数据类型> <变量名> <数据类型> 变量名 数据类型 如:Dim str as String 可以在一行中定义多个变量, 注:可以在一行中定义多个变量,如: Dim dtmBeginTime As Date,dtmEndTime As Date 课堂练习: 课堂练习: P24 实践 2
2.2.2 常量与变量
1.常量:在程序运行期间始终保持不变。
注:如果程序中多次用到同一个常量,往往用一个有意 义的符号表示,这种常量称为符号常量。定义如下:
Const 常量名 [As 类型]=表达式
2.变量:赋予它新的含义。变量命名必须以字母或汉字开头,而不能以数字或其他 字符开头。 只能由字母、汉字、数字和下画线组成,不能 含有小数点、空格等字符。 字符个数不超过255个。 变量名不能使用VB中的保留字。 VB不区分变量名中字母的大小写。 为增加程序的可读性,变量名最好取有意义的 名称,建议前面加上类型缩写。(p23)
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
2.数据类型表达式和函数
工具(T)
选项(O)
区域选项卡
逻辑常数
逻辑型常量只有逻辑真和逻辑假两个值。 逻辑真值用.t.,.T.,.y.,.Y.表示, 逻辑假值用.f.,.F.,..n,.N. 表示 注意:圆点作为逻辑型常量的定界符, 必不可少。
2.1.2 内存变量
分为字段变量和内存变量 内存变量:独立于数据表而存在,通常 用来存放命令操作或程序运行过程中的 一些中间结果。 内存变量的值在操作过程中可以被改变。 退出VFP后,内存变量将被自动释放。
/FRENCH
设置是否显示世纪值
SET CENTURY ON/OFF
设置显示日期时是否显示世纪值。 当使用ON,显示世纪值,即年号以4位显示; 使用OFF,不显示世纪值,即年号以2位显示 。
例题
SET CENTURY OFF &&设置2位数字年份
SET DATE TO YMD &&设置年月日格式
日期时间型常数
{^2008-6-1,}表示2008年6月1日上午12点(午 夜)
时间部分可以采取24小时制,当时间大于或等于12, 则自然表示下午。 例如,{^2008-6-1 1:20:30 P}和{^2008-6-1 13:20:30}均表示2008年6月1日下午1点20分30秒
设置日期格式
?{^2008-6-1}
&&显示结果为08/06/01
SET STRICTDATE TO 0
&&设置不进行严格的日期格式检查
SET CENTURY ON
&&设置4位数字年份
SET DATE TO DMY &&设置日月年格式
? {^2008-6-1},{1/7/08}
第2章基本数据类型、常量及变量
型必须有一个长度的限制
这个长度是指数据存储在计算机中需要占用多少个 字节数 不同类型的数据在内存中占用的字节数是不同的
溢出处理
不同的数据类型规定了不同的机内表示长度,
也决定了对应数据量的变化范围,当某一数据 超出该数据类型所规定的范围时,计算机会拒 绝接受,而将之转换成范围内的另外某个数, 这种情况称之为溢出处理。
6
3.常量
常量
在程序运行过程中其值不能被改变的量值
例1:
1,200 3.1,-4.0 „A‟,‘b‟ “abc”,“AB\n”
提示
在程序中使用常量时,一般不需要具体指出它属于 哪一种类型C语言编译系统会自动根据常量的数据 大小和直观形式来确定它的数据类型 例2:
3,3.0,‘3‟,“3”
提示
每个数据类型都有固定的表示方式
这个表示方式确定了可能表示的数据范围以及数据在内存中 的存放形式 C程序中所出现的所有数据都必须明确指定其数据类型
数据类型的体现
常量和变量是在计算机中数据类型的表现形式
不再是抽象的概念而是实在的数据,这些数据符合对 数据类型的规定(形式和运算规则两方面) 常量和变量之间的区别在于程序执行过程中的变化情 况
3.常量
整型常量
一个整数 常用的整数类型(IBM PC机及其兼容机上对C语言整型数的规定 )
整型
2字节: -32768~32767 4字节:-2147483648~2147483647 2字节: 0~65535 4字节 :0~4294967295
长整型
C语言复习资料 第二章重点内容
11
2。 对上述已经定义的实型常量指数形式的说明:
(1)在此的digits是一位或多位十进制数字(0—9)组成。 (2)小数点之前是整数部分,之后是小数部分。 (3)小数点在没有小数时可以省略。如:3E+6 (4)指数部分用E或者e开头,幂指数可以为负,当没有符号时,视为正 指数,且其基数都为10。 (5)在不加说明的情况下,实型常量为正值,如果要表示负值,必须在 常量前使用负号。如:-2.5E-5 (6)字母E或e之前必须有数字,且E或e之后指数必须为整数。 如:e3,2.3e9.5,.e3等都是不合法的。
上述各类型整型变量占用的内存字节数随系统而异。在16位操作系 统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型 (2字节)≥short型(2字节)。
2.占用内存字节数与值域
8
显然,不同类型的整型变量,其值域不同。占用内存字 节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-11);无符号整型变量的值域为:0~(2n*8-1)。(同样适合于 各种不同的类型 ) 例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-11),即-32768~32767;一个unsigned型变量的值域为:0~ (22*8-1),即0~65535。 2.4.2 整型常量 1.三种表示形式 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以数字0+小写字母x开头)。例如0x36。
9
2.分类 (1)基本整型。在16位机中,用2字节存储,其数据范 围与int型变量一样。 (2)长整型(在数值后面加“L(l)”)。对超出基 本整型值域的整型常量,可使用长整型常量表示,其取值 范围可达-231-(231-1)。例如,123l、315L等。 3.类型匹配规则 类型匹配规则为:一个整型常量,可以赋给能容纳下其 值的整型变量。 例如,其值在-215--(215-1)的整型常量,可以赋 给int型变量和long int型变量;其值在-231--(231-1)的整 型常量,就只能赋给long int型变量。 注意:常量无unsigned型。但一个非负整型常量,只要 它的值不超过相应变量的值域(即取值范围),也可以赋 给unsigned型变量。
第2章 基本数据类型、常量和变量
第2章 基本数据类型、常量和变量2.1 C 数据类型简介一个程序应该包括对数据的描述和对数据的处理。
但是程序要面临处理的数据有各种各样的类型,例如有一个用来处理学生基本信息的程序,所要处理的数据包括:学生的学号和姓名都是字符串,学生的年龄是整数,学生的成绩用浮点数表示等等。
而不同类型的数据不仅在机内的存储格式不同(例如整数用补码存放,而字符串是按串中每个字符的ASCII 码存放的),而且可以实现的运算也不同。
为了更好地对数据进行描述和处理,C 语言被设计成强类型语言(strongly typed language ),即C 语言程序中的每个数据必须具有明确的类型。
C 语言的数据类型可分为基本数据类型(整型、字符型和浮点型)、基于基本数据类型的构造数据类型(数组、struct 、union 、enum)、指针类型、空类型(void),见图2-1。
C 语言中数据分为常量和变量。
简单理解,在程序运行过程中其值不能改变的数据就是常量,而其值可以改变的数据称为变量。
下面分别介绍各种基本数据类型的常量和变量。
图2-1 C 语言中的数据类型数据类型2.2 基本数据类型——整数类型一、整型常量整数类型常量用于表示没有小数部分的数值,在C程序中整型常量可以表示成十进制、八进制或者十六进制形式,用不同的前缀来区分:(1) 十进制整型常量以非0(零)数字开头,例如237、-2009;(2) 八进制整型常量带有前缀0(零),例如027(等价的十进制数为23),-012(等价的十进制数为-10);(3) 十六进制整型常量带有前缀0x(X),例如0x2A(等价的十进制数为42),-0XA5b(等价的十进制数为-2651)。
【例2.1】下列哪些整型常量是合法的?012,oX7A,00,078,0x5Ac,-0xFFFF,0034,7B【例2.2】下面四个选项中,均是合法整型常量的选项是。
A) 160、-0xffff、011 B) –0xcdf、01a、0xeC) -01、986,012、0668 D) –0x48a、2e5、0x【例2.3】下面四个选项中,均是正确的八进制数或十六进制数的选项是。
T2(1)_数据类型
类型标识符 [sighned] char unsighned char [sighned]short [int]
长度(位) 8 8 16 16
取值范围及精度 -128~127 0~255 -32768~32767 0~65535
整型
unsighned short[int]
[sighned]long[int]
变量的声明和赋值,使用变量的步骤:
第一步:声明一个变量
根据类型开辟空间
第二步:赋值
将数据存入空间
第三步:使用变量
取出数据使用
变量的使用
对变量的使用可以通过名字,也可以通过引用变量 的地址.
变量名
在变量 名前加 &符号
辨析变量名、变量的值、变量的地址
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据?
整数常量
使用十进制、八进制和十六进制的整数常量。
十进制整型常量由0~9十个数码组成,没有前缀,不能 以0开始,没有小数部分。如-123,0,456等 八进制整型常量以0惟前缀,其后由0~7八个数码组成, 没有小数部分,如0123(相当于十进制的83)
十六进制整型常量以0x为前缀,如0x123(29110)
例3
main() { short a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); } int 型变量的取值范围在 -32768~32767之间。
运行结果:32767,-32768
注意:在给变量赋值和进行计算的时候要考虑到取值范围, 防止出现溢出。
例4
注意用单引号,且仅有 单个字母 字符在内符中以ASCⅡ 码存放,’a’字符的 ASCⅡ码为97
^
` a~z { | }
c语言
例:
③ 其它字符
指除以上两种字符外的所有符号 ,输出时原样显示。
4. 使用说明 ① 整个格式控制字符串必须用双引号括住; ② 如果有输出项,格式控制字符串与第一个输出项之间用逗 号隔开;
③ 如果有多个输出项,各输出项之间用逗号隔开;
④ 格式转换说明符的个数应与输出项的个数相等,且顺序和
2、const定义
一般格式
const 数据类型 标识符=常数; 例 #define PI 3.14159 PI为字符串 例 const float PP= 3.14159; PP为 float 型符号常数 Const修饰得到的标识有值和类型的含义 ,而宏没有。
2.5 不同类型数据的输入输出
一. 格式化输出函数 printf( )简介
int型
2.2 常量及其类型
一、整数 说明:C语言允许使用十进制、八进制和十六进制整数。
十进制整数。
如:123,-45
八进制整数。以0开头的数是八进制数。
如:-0123
十六进制整数。以0x开头的数是十六进制数。
如:-0x12
1. 十进制整数的表示方法
一般:正(+ 可以省写)、负号(-)后跟数字串 例 -34、789
-2147483648~2147483647
0~4294967295
-3.4*1038~3.4*1038 -1.7*10308~1.7*10308
三.基本数据类型的扩展
对数值符号 signed 仅限于char和int型 的处理方法 unsigned
提供不同的 short 数据长度 long
double型
例如:
"I said ,\"good morning ! \ " " 运行结果: I said , " good morning ! "
第二章 C语言的基本数据类型
标识符的有关规定:只能由字母、数字和下划线 组成,且第一个字符必须是字母或下划线;字母区分 大小写;不同的C编译系统规定标识符长度不同(如 IBM PC的MS C取8个字符,而Turbo C则允许32个字 符),考虑到程序的可移植性及阅读程序的方便,标 识符的长度一般不要超过8个字符,且应注意做到“见 名知意”
2、十六进制整常数:十六进制整常数的前缀为0X或0x。 其数码取值为0~9,A~F或a~f。 以下各数是合法的十六进制整常数: 0X2A(十进制为42)、 0XA0 (十进制为160)、 0XFFFF (十进制为65535) 以下各数是不合法的十六进制整常数: 5A (无前缀0X)、 0X3H (含有非十六进制数码) 3、十进制整常数: 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数: 237、 -568、 65535、 1627 以下各数是不合法的十进制整常数: 023 (不能有前导0)、23D (含有非十进制数码)
各种无符号类型量所占的内存空间字节数与相应的有符号 类型量相同。但由于省去了符号位, 故不能表示负数
Turbo C中各类整型量所分配的内存字节数及数的表示范围。 类型名称 (中文) 类型名称 (英文) 占用的 字节数 2 2 2 2 4 4 取值范围 -32768~32767 0~65535 -32768~32767 0~65535 -2147483648 ~2147483647 0~4294967295
第二章 C语言的基本数据类型
教学内容: 1 C语言的数据类型 C语言的数据类型 2 常量与变量 3 整型数据 4 实型数据 5 字符型数据 6 变量赋初值 7 变量数据类型转换 基本要求: (1) 掌握基本数据类型及其常量的表示方法; (2) 掌握变量的定义及初始化方法; (3) 掌握变量数据类型的转换法 重点: C的数据类型、常量与变量、变量定义、变量赋初 始化、变量数据类型的转换 难点: 难点: 变量数据类型的转换
C语言程序设计实训教程第2章 数据类型、常量、变量、运算符与表达式
22
23
【例 2.8】 两个 char型数相加,结果为 char 型。( )[判断题,重庆市 2005年第 1次等级考 试] 答案:错 分析:结果是 int型。char型数据在运算前,先 无条件转换成 int型,再参与运算。
24
4)强制类型转换 【例 2.9】 若有 int k =5;float x=1.2;则表达 式( int)( x+ k)的值是( )。[单选题,重庆 市 2001年第 1次等级考试] A.5 B.6.2 C.7 D.6 答案:D
8
返回给定类型或表达式(运算结果)的字节数 (以 unsigned int的形式)。 强制转换运算符 把表达式的结果转变为所需的 类型。 (类型)表达式 运算过程中类型的转换 如图 2.1所示,横向表示无条件的转换,比如 在计算前,char型要先转换成 int再参与计算。 竖向表示操作符两边的操作数属于不同类型时, 精度低的向精度高的方向转换,然后再参与运算, 运算结果为转换后的类型。
9
赋值时类型转换 在赋值时,赋值号右边表达式 的值的类型自动转换为其左边变量的类型。 位运算符 位运算的操作数为整型或字符型。位 运算就是把整数的内部二进制形式按位进行运算。
图 2.1 C 语言类型转换示意图
10
①按位取反∽ 运算规则:
11
②位与(&) 运算规则:
12
③位或( |) 运算规则:
6ห้องสมุดไป่ตู้
运算符 分算术运算符、赋值运算符、关系运算 符、逻辑运算符、逗号运算符、自增和自减运算符、 条件运算符、位运算符等。 表达式 由运算符连接运算对象构成的式子。可 根据运算符的不同分类为算术表达式、赋值表达式、 关系表达式、逻辑表达式、逗号表达式、条件表达 式等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
‘a’是字符常量,“a”是字符串常量, 二者不同。
如:假设c被指定为字符变量 :char c;
c=‘a’; c=“a”;c=“CHINA”;
结论:不能把一个字符串常量赋给一个字 符变量。
▪C规定:在每一个字符串常量的结尾加一个 “字 符串结束标志”,以便系统据此判断字符串是否结 束。C规定以字符’\0’作为字符串结束标志。
1、整型变量
在使用之前必须对它们进行说明:即定义 所使用的变量的类型。
C规定在程序中所有用到的变量都必须在程 序中定义,即“强制类型定义”。
例如: int a,b;(指定变量a、b为整型) unsigned short c,d;(指定变量c、
d为无符号短整型) long e,f;(指定变量e、f为长整型)
注意:括号表示其中的内容是可选的。
▪ 整数类型的有关数
基本型
int
2字节 -32768~32767
短整型
short
2字节 -215~(215-1)
长整型
long
4字节 -231~(231-1)
无符号整型 unsigned
2字节 0~(216-1)
无符号短整型 unsigned short 2字节 0~65535
1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
2.3.2 分类及说明符号
浮点型分为单精度(float型)、双精度 (double型)和长双精度型(long double) 三类形式。
类型
位数
float
32
double
64
long double 128
数的范围
3、字符常量 (1)用单引号包含的一个字符是字符型常量。 (2)只能包含一个字符。
‘a’, ‘ A’, ‘1’
‘abc’、“a”
4、字符串常量
▪ 字符串常量是一对双撇号括起来的字符序 列。 ▪ 合法的字符串常量:
“How do you do.”, “CHINA”, “a”,“$123.45”
▪ 可以输出一个字符串,如 printf(“How do you do.”);
2、实型变量 例:float a,b;
double c,d;
3、字符型变量
例:char c1,c2;
注:
▪字符型变量只能接受一个字符,而不能接 受字符串。
例:c1=“string”;
▪一个字符变量在内存中占一个字节。
4、变量的初始化
变量的初始化:就是如何给变量赋初值。
(1)C语言允许在定义变量的同时使变量初始化。
有效数字
-3.4×10-38~3.4×1038
6~7
-1.7×10-308~1.7×10308 15~16
-1.2×10-4932~1.2×104932 18~19
2.4 字符型数据
占用一个字节,采用ASCII编码 说明符号:char
2.5 常量与变量
注意:
▪ 编译系统将大写字母和小写字母认为是两 个不同的字符。
第二章
主要内容
2.1 C语言的数据类型 2.2 整型数据 2.3 实型数据 2.4 字符型数据 2.5 常量与变量
本章要点
C的三种基本的数据类型 常量与变量
2.1 C的数据类型
C语言提供了以下一些数据类型。
数据类型
基本类型
构造类型 指针类型
整型 int
字符型 char 单精度实型
实型(浮点型)
注:
1、关键字:不允许作为用户标识符使用。
2、预定义标识符:库函数的名字和预编译 处理命令。
3、用户标识符:由英文字母、数字、下划 线组成;且第一个字符不能 是数字,必须是字母或下划 线。
2.5.1 变量
变量:程序在运行过程中其值能随之而改变的 量。
分类:整型变量、实型变量、字符型变量、指 针类型变量
float
数组类型
双精度实型
double
结构体类型 struct
共用体类型 union
枚举类型 enum
空类型(无值类型) void
2.2 整型数据
整型数据:只有整数部分,没有小数部分。 2.2.1 数制:
①十进制整数:12,3,-5,8 ②八进制整数:以0开头,后面以0~7八个 数字组成:0123,0532 ③十六进制整数:以0X开头,后面由0~9, A~F组成:0X123,0X2AF
2.2.2 分类及说明符号:
共六种
有符号基本整型 (signed) int 有符号短整型 (signed) short (int) 有符号长整型 (signed) long (int) 无符号基本整型 unsigned int 无符号短整型 unsigned short (int) 无符号长整型 unsigned long (int)
▪ 建议变量名的长度最好不要超过8个字符。
▪ 在选择变量名和其它标识符时,应注意做 到“见名知意”,即选有含意的英文单词 (或其缩写)作标识符。
▪ 要求对所有用到的变量作强制定义,也就 是“先定义,后使用” 。
标识符:用来标识变量名、符号常量名、函 数名、数组名、类型名、文件名的 有效字符序列称为~。
注意:初始化不是在编译阶段完成的而是在 程序运行时执行本函数时赋初值的,相当于 有一个赋值语句。
2.5.2 常量
常量:就是程序在运行过程中其值永远不变 的量。
分类:整型常量、实型常量、字符型常量、 字符串常量、转义字符、符号常量。
1、整型常量 (1)十进制常量:123,-1,0 (2)八进制常量:0123 (3)十六进制常量:0X123 2、实型常量 (1)小数形式:12.34,-12.34 (2)指数形式:1.234e-5
如: int a;
int a=5;
float b;
float b=3.14;
char c;
char c=‘A’;
a=5;b=3.14;c=‘A’;
(2)可以使被定义的变量的一部分赋初值。
如: int a,b,c;
c=7;
int a,b,c=7;
(3)如果对几个变量赋以同一个初值, 应写成:int a=3,b=3,c=3; 表示a、b、c的初值都是3。 不能写成: int a=b=c=3;
无符号长整型 unsigned long 4字节 0~(232-1)
例如:整数13在内存中实际存放的情况:
2.3 浮点型数据(又称实型)
2.3.1 浮点型数据的表示方法
①日常记数法:即十进制表示法。 例:3.14,9.8
②科学记数法:即指数表示法。 例:3.14e5,-3.14E-5
注意:字母e(或E)的前后必须有数字,且e后面的指数 必须为整数: