第2章__C语言的基本数据类型和变量的存储类
C语言-基本数据类型、常量和变量

(2)八进制整数 以数字0打头,后跟0~7组成的数字串。例如: 0123表示八进制常数123,相当于十进制数83。 八进制整数可以加上后缀u(U),l(L)或ul(UL)分别构成八进制 的无符号数、长整数或无符号长整数。例如: 012345u、02765543102l、0345675026ul等。 (3)十六进制整数 以数字0和小写字母x(或大写字母X)打头,后跟0~9及A~ F(或a~f)组成的数字字母串。其中,A~F(或a~f)分别表示 十进制的10~15。例如: 0x2f是一个十六进制,相当于十进制的47。 若在十六进制数后面加上后缀u(U)、l(L)或ul(UL), 则分别构成十六进制的无符号数、长整数或无符号长整数。如: 0x89ad476bu, 0x9043fecd2l, 0x98bfd5ca7ul
三个属性: ① 变量分为不同的数据类型,数据类型决定了该变量存储
的数据的含义。
② 变量分为不同的存储类型,存储类型决定了变量在计算 机中的存储位置及其寿命(生命期)。
③ 变量在程序中的定义位置决定了该变量的作用域,即起
作用的范围。
1. 变量的定义
C语言规定,变量必须先定义后使用,变量的数据类型与变 量名本身无关。 变量定义一是定义变量的数据类型,二是定义变量的名称, 三是说明变量的存储类型,其一般格式为: [存储类型] 数据类型 变量清单; char ch1; static int i, j, k; short int si; float f1, f2; double balance, profit, loss; 变量的数据类型可以是字符型、整型、浮点型、双精度型等。
signed int
signed long
unsigned int
unsigned long
《C语言程序设计》(软件技术11级)(第2章)

2.1基本字符、标识符和关键字
2.1.3 关键字(保留字) 为系统预定义的标识符,在C语言中有特殊的 含义
void int return float double char long short unsigned if else switch case default break
do while continue for
2.3数据的格式化输出和输入
输入输出函数库: stdio.h printf() scanf() getchar() putchar() gets() puts()
2.3数据的格式化输出和输入
2.3.1数据的格式化输出
学一学
printf( 格式控制,【输出列表】) ;
格式控制是用双引号括起来的字符串,分两种情况: 1.字符串只含有普通字符或转义字符,则不包含输出 列表。(练一练:\*‟\n‟为转义字符,表示换行*\)
结构类型 联合类型 枚举类型
struct union enum
空类型(无值类型) void
2.2数据类型及常数、变量
1.不同类型的数据在内存中占据不同长度的存 储区(字节),且采用不同的表示方式。 2.一种数据类型对应着一个取值的范围 3.一种数据类型对应着一组允许的操作 4.构造类型数据是由基本类型按照一定的规律 构造出来的。 5.C语言的数据又可分为常量和变量,他们都 分别属于上述类型中得一种。
iSum=iPrize1+iPrize2;
printf("该同学的奖学金为:%d\n",iSum);
return 0;
}
2.3数据的格式化输出和输入
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语言基本数据类型

0.0314159 +2
数字部分 指 数 (尾数) (阶码)
<
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
例转义••转字字转义符符义字转常字符义量符举字的:例反符如值含(斜c及义:h‘线2其该_a后0含’字0面1义符.‘cA跟:,的c’h一转A2‘?S_个义C0’字I0字I4符‘码.符\cn)值或’ 一‘\1个01代含’ 码义值表示 m{} \\\\\vnaar‘ppppirrrrniiii<(nnnn)如ttttffff((((""""IT\\‘‘‘例1\Cu\\s036例‘a如r\1A70{}垂Py1bm6’单’:\:0or-x直’\换回响1oa-"引4-\p-’gi-‘‘'制H-行车铃-2nCr--r号---i(-oa表-C-A0\n-)--'-wm-’’’-"t\--\——-nf--1)\-(a--";\-“0--\r——--)n-Y1e--;’-’"’0\64-y-b)’--58o;‘-=,Au-’\-,?n’--\”\\\"’‘‘\\tfb‘‘)\\“\\\\x;nx4n‘a4\68"’’10—13—)’1;’’-2—-—--’运 AI\T--Cs-u--1-运 屏 打a9B-行--rP0-y-7--b--行 幕 印--:rC结,o--”-6o---H结显机5g--果‘-C---or水--果示输(a:’w--m’-退换反双平::出)a-(a屏\-’r格页斜引制’:=e\幕n线号表¥y’显ou示?”)
{
in•t可i =用0;sizeof(类型标识符)测量
printf ("char: %d bytes.\n",sizeof(char));
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称为“规范化的指数形式”。
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);
C语言教材 第2章

第2章 C 语言的基本数据类型本章要点了解C 语言的数据类型,掌握基本数据类型的应用及其相互转换规则,理解变量和常量的概念,并掌握其定义及引用方法。
本章的难点是数据在内存中的存储形式。
第一节 C 语言的数据类型由于信息的表现形式多种多样,处理的方法也不相同,所以,我们必须考虑用不同形式的数据来表示不同的信息。
例如:一个班级的人数要用整数来表示;班级学生的平均成绩要用小数表示;学生的姓名、性别要用字符来表示;一个班级学生某一门课程的成绩要用一组不同的数值来表示等。
计算机语言中的数据类型就是为了能够高效处理各种不同的数据而引进的一个概念,是指数据的内在表现形式。
不同的数据类型具有不同的取值范围和不同的操作。
C 语言提供的数据类型如图2-1所示。
在程序中使用的所有数据都必须指定它的数据类型,C 语言的数据类型由基本类型和非基本类型组成。
其中,基本数据类型是其他数据类型的基础。
C 语言中的基本数据类型包括整型、实型(浮点型)、字符型,其中实型又包括单精度和双精度两种类型。
本章主要讨论这4种基本类型。
整型、单精度型、双精度型和字符型数据定义的关键字分别为:int 、float 、double 和char 。
除了这四个关键字外,C 语言中还提供了一些数据类型的修饰符,如:long 、short 、signed 和unsigned 。
它们的作用是与基本类型的定义关键字结合起来使用,以对基本类型进行扩充,使得在程序编写的过程中可以灵活调整数值的范围以及所占用的存储空间。
结合修饰符的应用,基本数据类型可进一步划分,如表2-1所示。
表2-1 各种数据类型及其说明语言的数据类型图)空类型(指针类型)共用体类型()结构体类型(数组类型构造类型)枚举类型()字符型()双精度型()单精度型(实型(浮点型))整型(基本类型C 12void union structenum char double float int -⎪⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎪⎩⎪⎪⎨⎧⎩⎨⎧说明:(1)表中方括号内的部分是可以省略不写的。
计算机二级第2章 语法基础

16
字符串常量和字符常量的区别
字符常量'A'与字符串常量 是两回事: 字符常量 与字符串常量"A"是两回事: 与字符串常量 是两回事
1. 定界符不同:字符常量使用单引号,而字符串常量使 定界符不同:字符常量使用单引号,
用双引号; 用双引号;
2. 长度不同:字符常量的长度固定为 ,而字符串常量 长度不同:字符常量的长度固定为1,
2.
3.
13
程序举例
main( ) { char ch1,ch2; ch1='a'; ch2='b'; printf("ch1=%c,ch2=%c\ printf("ch1=%c,ch2=%c\n",ch1,ch2); printf("ch1=%d,ch2=%d\ printf("ch1=%d,ch2=%d\n",ch1,ch2); } 程序运行结果: 程序运行结果: ch1=A,ch2=b ch1+200=297 ch1+200=) ch1+256=353 ch1+256=a
程序运行结果: 程序运行结果: ch1=a,ch2=b ch1=97,ch2=98
main( ) { char ch1,ch2; ch1='a'; ch2='B'; /*字母的大小 写转换*/ printf("ch1=%c,ch2=%c\n",ch132,ch2+32); /*用字符形式输出一个大于256的数值*/ printf("ch1+200=%d\n", ch1+200); printf("ch1+200=%c\n", ch1+200); printf("ch1+256=%d\n", ch1+256); 14 printf("ch1+256=%c\n", ch1+256);}
C语言数据类型ppt课件

2.2 常量与变量
(3)整型数据在内存中的存放形式
int x; x=10; 则变量x的值10在内存中的存放形式:
int x;
x=-10; 则变量x的值10在内存中的存放形式:
22
2.2 常量与变量
(4)整型数据的溢出
例2-2 整型数据的溢出问题
#include <stdio.h>
int main()
\r
<
\a
\‘
回车 响铃 单引号
\ddd 3位8进制数代表的字符
转义字符 \t \b \f \\ \“ \xhh
含义 水平制表 退格 换页 反斜线 双引号 2位16进制数代表的字符
12
2.2 常量与变量
如 ‘\101’ -----------‘A’ ‘\012’ -----------’\n’ ‘\376’ -----------’’ ‘\x61’ -----------’a’ ‘\060’ -----------’0’
unsigned short。 ⅲ. 无符号长整型:类型说明符为
unsigned long。
20
2.2 常量与变量
(2)整型变量的定义与使用
例2-1 整型变量的使用
#include <stdio.h> int main() {
int x,y,z; x=10;y=20; z=x+y; printf(“x+y=%d\n”,z); return 0; } 输出结果:x+y=30
说明:数据类型所占字节数随机器硬件不同而不同, 上表以IBM PC机为例。
4
2.2 常量与变量
• 数据是程序的处理对象 • C语言将数据分为常量与变量
C语言 第2章

2.2.2 整型变量
整型变量在计算机中占两个字节。 整型变量在计算机中占两个字节。 用以说明整型变量的关键字( 用以说明整型变量的关键字(也称为数据类型 int。 符)为int。 定义变量数据类型语句的一般格式为: 定义变量数据类型语句的一般格式为: 数据类型符 变量名1,变量名2,……; 变量名1 变量名2
第2章 基本数据类型、操作符和表达式 基本数据类型、
2.1 数据类型 2.2 整形数据 2.3 实型数据 2.4 字符型数据与字符串 2.5 变量说明与初始化 2.6 运算符和表达式
2.1
数 据 类 型
在C语言中,数据的类型分为基本数据 语言中, 类型、构造类型、指针类型和空值类型。对 类型、构造类型、指针类型和空值类型。 于每一种数据类型的数据,又有分成几种不 于每一种数据类型的数据, 同类型,如图2.1所示。 所变量用来存储实型数据。 实型变量用来存储实型数据。实 型变量分为如下两种。 型变量分为如下两种。
(1)单精度实型变量或简称实型变量或浮点型 变量,其类型标识符为float 变量,其类型标识符为float; float; (2)双精度实型变量或称双精度浮点型变量, 双精度实型变量或称双精度浮点型变量, 其类型标识符为double 其类型标识符为double 。
\ddd
例 main() 3位8进制数代表的字符 { }
\xhh
printf(“Y\b=\n”);
2位16进制数代表的字符 运行结果:
屏幕显示:= 打印机输出:¥
2.4.2 字符型变量
字符型变量是C语言的一种数据类型, 字符型变量是C语言的一种数据类型, 用关键字( 类型符) char说明 说明, 用关键字 ( 类型符 ) char 说明 , 用于存储 字符常量或数值。 字符常量或数值。 一个字符型变量只能存储一个字符, 一个字符型变量只能存储一个字符,它 是以该字符的ASCII 码值存储的 码值存储的, 是以该字符的 ASCII码值存储的 , 并占一 个字节的宽度。例如,字母a ASCII码是 个字节的宽度。例如,字母a的ASCII码是 97,在变量的内存中存储的就是97。 97,在变量的内存中存储的就是97。
C语言第2章 数据类型及运算符

C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
第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
长整型
第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】下面四个选项中,均是正确的八进制数或十六进制数的选项是。
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语言基本数据类型及运算8节

2015/11/29
【例2.4】静态局部变量的使用
f(){ static int a=1; auto b=0; a=a+1; b=b+1; printf("a=%d,b=%d\n",a,b);
main(){ f(); f();
f();
}
运行结果为: a=2,b=1 a=3,b=1
在字符串中有转义字符。 例如:“ab\072cdef” 长度为7 ; 8
2015/11/29
“\\\n33abcd”
长度为
8
2.3 变量
变量是指在程序运行过程中其值可以发生变化的量。 2.3.1变量的数据类型及其定义 1.变量的数据类型(基本) 字符型、整型、单精度实型、双精度实型,它们分别用 关键字char、int、float、double进行定义。另外,还有无 符号整型和无值型,它们分别用关键字unsigned和void进 行定义。 见表2,表3
2015/11/29
3
限制在本区间使用
1.基本整型常量和短整型-32768~32767。
2.长整型常量-2147483648~2147483647,整数后面 加上字母l(或 L)。
3.无符号整型常量表示的数据全部是正数,没有符号 位。
int , short int,long int ,unsigned int
printf("\na=%d,b=%d\n",a,b);
17
(4) 外部变量
Tubro C系统规定在某一个源程序中定义的全局变量,其 它的多个文件可以使用,这就是所说的程序间的数据交 流。
《新概念C语言能力教程》第2章基本数据类型

• 其中的l(long)和h(short)称为长度修饰符,是附加的格式说明符。
格式字符串与数据类型
• unsigned short a = -1u; • 语句printf("%hu", a);中格式字符串hu(无符号短整型)准确地匹配了变量a
printf函数的输出结果不会是22亿。这条语句有逻辑错误。
分析下面语句的输出结果。
• printf("%lu", 2200000000); • printf("%ld", -1); • printf("%lu", -1u); • printf("%hd", -1); • printf("%hu", -1u); • printf("%hu", -2);
编码和解码
• 现实世界中的数据转换成由0和1组成的二进制串,计算机才能存储和处理。 由数据得到01串称为编码;由01串得到数据称为解码。
• 每类数据都各有特点,只用一种编码规则统一编码是不现实的。不同类型的 数据如整数和小数,采用了不同的编码规则。
• 多种编码规则导致不同数据的编码结果可能相同,因此,只有确定了编码规 则,才能正确解码。
功的识别的16。 • 当用户输入32789↙时,全部识别成功,但短整型变量m的实际值不会是
的类型,printf函数正确地输出变量a的实际值65535。 • 语句printf("%hd", a);中格式字符串hd(短整型)与变量a的类型不匹配,
C语言程序设计第二章

2.2常量和变量
变量的类型
2.3 整型数据
2.3.1整型常量 整型常量即整常数。在C语言中,整型常量可以用十进制、八 进制、十六进制3种形式表示。 1.十进制整数 由0~9共10个数码组成。如5234,-78,0等。注意:5234不能 写成5,234。 2.八进制整数 八进制整数必须以数字o开头,组成八进制的数码为0~7。如 o123,o101,o645,o763等。 3.十六进制整数 十六进制整数以0x或0X开头(0为数字),组成十六进制的数码为 0~9,A~F(a~f)。如0x99A,0X97C,0x59ff等。
基本类型 实型 字符类型 (char) 枚举类型 (enum) 数组类型([]) 结构体类型 (struct) 共用体类型 (union) 文件类型 (FILE)
单精度型 (float) 双单精度型 (double)
符号长整型 (unsigned long)
构造类型
C语言提供的数据类型如右所 示:
2.3 整型数据
3.整型变量的定义 整型变量的定义的格式如下: 类型标识 变量名1,变量名2,变量名3…… 类型标识符可以是int、short、long、unsigned,或是它们的组合,例 如: int x,y; //指定变量x、y为整型变量 long c,d; //指定变量c、d为长整型变量 unsigned age,hight; //指定变量age,hight为无符号整型变量 变量的定义,一般放在一个函数开头的声明部分。 4.整型变量的赋值 可以将一个整型常量或整型变量赋值给整型变量,例如: int x=456;
2.4 实型数据
2.4.1实型常量 在C语言中,实型表示实数的集合,实型常量又称为实数。实 型常量只能用十进制形式表示,不能用八进制或十六进制形式表示。 实型常量有两种表示形式 1.十进制小数形式 十进制小数形式由数码0~ 9和小数点组成。如0.123,.123, 0.0,0.1,-267.8230,0.,.0等。 2.十进制指数形式 由十进制数码,“e”或“E”(代表×10)组成。如1e5, 139.5E2,-1.99e-3(代表1×105,139.5×102,-1.99×10-3)等。 格式如下: 小数或整数e(或E)+(或-)整数
第二章 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的数据类型、常量与变量、变量定义、变量赋初 始化、变量数据类型的转换 难点: 难点: 变量数据类型的转换
第2章_C语言快速入门-1数据类型(1.5)

2.3.3字符常量
采用’ ‘括住的单个字符为字符型常量。 例如:‘4’ ‘c’ 字符常量在计算机内是采用该字符的ASCII编 码值来表示的,其数据类型为char。
2018/5/13
21
2.3.3字符常量
字符数据: C语言中字符数据存储时实际上是存储的
ASCII码,因此可以参与各种数学运算。
– 例如: ’a’+ ’5’=97+53
– 注意:’5’和整数5的区别
’5’是字符数据,其ASCII
码值是53 ,’a’的ASCII码
97
2018/5/13
22
2.3.3字符常量
转义字符 – 一些特殊字符(无法从键盘输入或者另有它用)用
转义字符表示
2018/5/13
23
2.3.4字符串常量
缺省为double – 字符型(e.g. 'z' '3' '$' '\n' ) 用\开头的字符为转义字符, 代表1个字符
2018/5/13
– 字符串(e.g. "UKM" "1" "5a" ) – 宏常量(e.g. #define PI 3.141592)
14
2.3.1整型常量
(由若干个数字组成) 整型常量的几种表示形式:
–Windows自启动时刻起,有一个计数器,记录系统已经 运行了多少毫秒。此计数器是个unsigned long 类型的变 量 –unsigned long的最大值是:4294967295 –一天有 24*60*60*1000 = 86400000毫秒 –4294967295 / 86400000 = 49.71026961805…… –当49.7天的时候,此计数器会溢出,引起死机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5.3 格式输出函数
格式输出函数
printf(“格式控制字符串”, 输出项表列); – 输出若干个任意类型的数据
printf("a=%d
b=%f", a, b);
输 出 表 列
25
函数名 普通 字符 格式说明
2.5.3 格式输出函数
printf函数常用的格式字符
格式符
d o x、X u c s f e、E g、G %%
11
2.2.3字符型数据的存储表示
字符型数据在C语言中是和整型数据同等对待的。任何一 个字符都相当于一个整型量,其值就是该字符的编码值。 C语言中凡是整型量可以出现的地方,字符型量都可以出 现。对于采用ASCII编码的系统,实际上,C语言在内部 将每个字符型量都看作字长为8的整型量。
例如,x的十进制ASCII码是120,y的十进制ASCII码是121。对字 符变量a、b赋予'x'和'y'值: a='x'; b='y'; 实际上是在a、b所在的两个字节内分别存放整数120和121:
3
变量
变量的概念
变量名和变量值的区别:在程序运行过程中从 变量x中取值,实际上是通过变量名x找到相应的内 存地址,从其存储单元中取数据30。
变量名与变量值的区别
4
§2.1 整型数据
2.1.1 整型常量
表示形式:计算机中用二进制形式存储数据; 为便于表示和使用,整型常量还可以表示成十进 制、八进制和十六进制
第2章 C语言的基本数据类型 和变量的存储类
C数据类型如下:
变量
变量的概念
变量是指在程序运行过程中可以发生改变的量 变量的特征:
(1)它有一个变量名,变量名的命名方式符合标识符的 命名规则。 (2)变量有类型之分。 不同类型的变量占用的内存单元(字节)数不同, 因此每个变量都有一个确定的类型。 (3)变量可以存放值。 程序运行过程中用到的变量必须有确切的值,变量 在使用前必须赋值,变量的值存储在内存中。在程 序中通过变量名来引用变量的值。
a:
0 0
1 1
1 1
1 1
1 1
0 0
0 0
0 1
12
b:
char型与int型之间的关系
注意: 1、一个字符型变量占一个字节,只能存放一个 字符,存放该字符的ASCII码值; 2、由于字符型数据也是以整数形式进行存储, 所以它可以以字符形式、整数形式输出; 3、常用字符的ASCII码值: ’ ’ :0x20(32) ’0 ’ : 0x30(48) ’A’ :0x41(65) ’a’ :0x61(97)
17
误差、实型数据的有效数字位数
例
#include <stdio.h> main() { float a; double b; 1234567936.000000 1234567890.000000
float型数据提供 7位有效数字
a = 123456.789e4; b = 123456.789e4; printf("%f\n%f\n", a, b); }
15
2.3.1 浮点型常量(实型常量 )
实型常量的表示形式 – 十进制小数形式 123.45、456.78 – 指数形式 1e-2、4.5e3
注意:
– 非指数形式由数字和小数点组成 – 123. 、 +123.、.123都是合法的非指数形式 – 指数形式 – e或E之前必须有数字(可以是非指数型浮点常量,可以是
输出数值时指定左面不使用的空格位置自动填0
27
d 格式符
%d、%md、%-md、%0md、%ld
分析下面程序的运行结果。
#include <stdio.h>
void {
main()
程序运行结果: 123 ︼︼︼123 123 123︼︼︼ 000123
int x=123;
}
19
#include
<stdio.h>
main() { printf("Data type Number of bytes\n"); printf("------------ ---------------------\n"); printf("char %d\n", sizeof(char)); printf("int %d\n", sizeof(int)); printf("short int %d\n", sizeof(short)); printf("long int %d\n", sizeof(long)); printf("float %d\n", sizeof(float)); printf("double %d\n", sizeof(double)); }
功能
以带符号的十进制形式输出整数(正数不输出符号) 以八进制无符号形式输出整数(不输出前导符0) 以十六进制无符号形式输出整数(不输出前导符0x) x、X决定十六进制数的a~f以小写或大写形式输出 以无符号十进制形式输出整数 输出单个字符 输出字符串 以小数形式输出单、双精度实数(隐含6位小数) 以指数形式输出单、双精度实数 选择f和e格式中输出宽度较小的格式输出,且不输出无意 义的0 输出百分号本身
13
小写字母转换为大写字母
#include <stdio.h> main() { char ch = 'b'; printf("%c, %d\n", ch, ch); ch = 'b' - 32; printf("%c, %d\n", ch, ch); } #include <stdio.h> main() { char ch = 'b'; printf("%c, %d\n", ch, ch); ch = 'b' - ('a' - 'A') ; printf("%c, %d\n", ch, ch); }
5
八进制与十六进制常数
以数字“0”开始的整型常数是八进制数 – 022、-037 – 010和10大小不一样 – 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的整型常数是十六 进制 – A~F和a~f用来表示十进制的10~15 – 十六进制的形式比较常用 – 0x12、-0x1F, -0x1f
字符输入函数
getchar() – 表示从输入设备接收一个字符,该函数无参数 – 函数值为从输入设备接收的字符 – 如: ch=getchar()
22
例
#include main() { char <stdio.h>
运行程序
Press a key and then press Enter: A↙ You pressed A
8
2.2.1 字符(Character)常量
转义字符及其含义
含 义 ASCII代码 10 9 8 13 12 92 39 34 0
字符形式 \n \t \b \r \f \\ \' \" \0 \ddd \xhh
换行,将当前位置移到下一行开头 水平位移,跳到下一个tab位置 退格,将当前位置移到前一列 回车,将当前位置移到本行开头 换页,将当前位置移到下一页开头 反斜杠字符“\” 单引号字符“'” 双引号字符“"” 空字符 1到3位八进制数所代表的ASCII码字符 1到2位十六进制数所代表的ASCII码字符
26
2.5.3 格式输出函数
printf函数常用的附加格式说明符
附加格式说明符 m(m为正整数) .n(n为正整数) l h 0 功能 数据左对齐输出,无-时默认右对齐输出 数据输出宽度为m,如果数据宽度超过m,按实际输出 对实数,n是输出的小数位数,对字符串,n表示输出前n个字符
ld输出long型数据,lf,le输出double型数据 用于格式符d、o、u、x或X,表示对应的输出项是短整型
整数),且e或E后必须为整数。 – e4、12e2.5都是非法的指数形式
16
浮点型变量(实型变量)
浮点型变量分为单精度型(float)、双精度型 (double)
浮点型变量类型
类型标识符 所占字节 有效数字 数值范围
类型
单精度型 双精度型
float double
4 8
6~7 0以及1.2×10-38~3.4×1038 15~17 0以及2.3×10-308~1.7×10308
b, 98 B, 66
b, 98 B, 66
14
2.2.4 字符串(String)常量
用双引号括住的由0个或多个字符组成的字符序列 – "I am a string" – ""表示空字符串 – 转义字符也可以在字符串中使用 – 引号只作为字符串开始和结束的标志 – C语言内部用’\0’表示字符串的结束 – 除注释外,是惟一可以出现中文的地方 "x"和’x’是不同的
ch;
printf("Press a key and then press Enter:");
ch = getchar(); printf("You pressed "); putchar(ch); putchar('\n');
}
23
关于getchar()函数的说明和注意事项:
①
getchar() 函数接收的字符可以赋给一个字符变量或整型变 量,也可以不赋给任何变量,作为表达式的一部分。 c=getchar(); putchar(c); 可以用下面一行语句代替: putchar(getchar( )); ② getchar()函数只能接收一个字符,即使从键盘上输入多个 字符,也只接收第一个字符。 ③ 从键盘上输入的字符不能带单引号,输入以回车键(Enter 键)结束。