第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);}
- 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 键)结束。