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_数据类型、运算符和表达式

基本数据类型 ●字符型
字符常量是用单引号括起来的一个字符。例如’ 字符常量是用单引号括起来的一个字符。例如’a’,’b’,’=’,’+’,’?’都是合 都是合 字符常量。 语言中,字符常量有以下特点: 法 字符常量。在C语言中,字符常量有以下特点: 1.字符常量只能用单引号括起来,不能用双引号或其它括号。 字符常量只能用单引号括起来, 字符常量只能用单引号括起来 不能用双引号或其它括号。 2.字符常量只能是单个字符,不能是字符串。 字符常量只能是单个字符, 字符常量只能是单个字符 不能是字符串。 3.字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参 字符可以是字符集中任意字符。 字符可以是字符集中任意字符 与数值运算。 是字符常量, 与数值运算。如’5’和5 是不同的。’5’是字符常量,不能参与运算。 和 是不同的。 是字符常量 不能参与运算。 转义字符是一种特殊的字符常量。转义字符以反斜线“ 开头 开头, 转义字符是一种特殊的字符常量。转义字符以反斜线“\”开头,后跟一 是一种特殊的字符常量 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义, 个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称 转义”字符。 广义地讲, “转义”字符。 广义地讲,C语言字符集中的任何一个字符均可用转义字 符来表示。 正是为此而提出的。 符来表示。\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六 和 正是为此而提出的 和 分别为八进制和十六 进制的ASCII代码。如\101表示字母 A" ,\102表示字母 代码。 表示字母" 表示字母"B",\134表示反 进制的 代码 表示字母 表示字母 , 表示反 斜线, 表示换行等。 斜线,\XOA表示换行等。 表示换行等
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
第3章数据类型与表达式

//结果i=2;
•赋值语句可以连续进行。 例:a=b=c=0,根据右结合性,该表达式等价于: a=(b=(c=0))
36
2、复合赋值运算
•算术运算符“+ — * / %”和赋值运算符“=”结 合起来,形成复合赋值运算符。
+= :加赋值运算符; 如a+=3,等价于 a=a+3 -= :减赋值运算符; 如a-= b+ 3,等价于 a=a- (b+3) *=、/=、%= 与此类似
20
2)字符变量:char,占1个字节空间,只能存放 一个字符。 例如:char c1,c2; c2=‟a‟; 定义了字符型变量c1,c2,把’a‟存放到c2中 •存储特点: 在字符变量中实际上存储的是字符的ASCII码, 其存储形式与整数的存储形式相同。 字符数据与整型数据可相互赋值,直接运算。 例如: char c; c=97;相当于c=„a‟;
26
“%”是求余运算。a%b计算a除以b后的余数,也 是a模b的值。它要求两个运算对象必须是整型,其 结果也是整型量。 例:5%2结果为1 2%5结果为2 10%3.0 语法错误
27
2.算术表达式
• 用算术运算符和括号将运算对象(操作 数)连接起来的、符合C语法规则的式子。 如:1+3.5*2-10 (x+y)*3-6+‟a‟ • 表达式的值
long [int]
unsigned [int]
unsigned short[int]
4
4 2 4
unsigned long[int]
说明:数据类型所占字节数编译系统的不同而不同,上表以 Visual C++6.0为例 12
整型变量举例:
数据类型、运算符和表达式数据、类型、运算符、表达式

字符型
字符型数据类型用于 存储单个字符。
字符型数据类型可以 用单引号或双引号括 起来表示一个字符常 量。
在大多数编程语言中, 字符型数据类型通常 用一个字节来表示。
布尔型
布尔型数据类型用于存储逻辑值, 即真(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`。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 数据类型、运算符与表达式
一、单项选择题
1、以下选项中,不正确的 C 语言浮点型常量是(C )。
A. 160.
B. 0.12
C. 2e4.2
D. 0.0
2、以下选项中,( D )是不正确的 C 语言字符型常量。
A. 'a'
B. '\x41'
C. '\101'
D. "a"
3、 在 C 语言中,字符型数据在计算机内存中,以字符的( C )形式存储。
A.原码
B.反码
C. ASCII 码
D. BCD 码
4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。
x=(i=4,j=16,k=32)
A. 4
B. 16
C.32
D.52
5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。
A. 算术运算、赋值运算、关系运算
B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算
D. 关系运算、算术运算、赋值运算
6、若有代数式bc ae
3 ,则不正确的C 语言表达式是(C )。
A.a/b/c*e*3
B. 3*a*e/b/c
C.3*a*e/b*c
D. a*e/c/b*3
7、表达式!x||a==b 等效于( D )。
A. !((x||a)==b)
B. !(x||y)==b
C. !(x||(a==b))
D. (!x)||(a==b)
8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( B )。
A. 0,0
B. 0,1
C. 1,0
D. 1,1
9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。
A. 3
B. 0
C. 9
D. -12
10、在以下一组运算符中,优先级最低的运算符是( D )。
A. *
B. !=
C. +
D. =
11、设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是( B )。
A. 6
B. 12
C. 15
D. 表达式出错
12、若已定义 x 和 y 为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。
A. 1
B. 2
C. 2.0
D. 2.5
13、sizeof (double)的结果值是( A )。
A. 8
B. 4
C. 2
D. 出错
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d 的结果为( D )。
A. 4
B. 3
C. 2
D. 1
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
A. 10<a<15
B. a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15
D. !(a<=10) && !(a>=15)
16、设 f是实型变量,下列表达式中不是逗号表达式的是( D )。
A. f= 3.2, 1.0
B. f>0, f<10
C. f=2.0, f>0
D. f=(3.2, 1.0)
17、表达式18/4*sqrt(4.0)/8值的数据类型是( C )。
A. int
B. float
C. double
D. 不确定
18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=’A’+’6’-‘3’;后c2中的值是( A )。
A. D
B. 68
C. 不确定的值
D. C
19、以下用户标识符中,合法的是( B )。
A. int
B. nit
C. 123
D. a+b
20、C 语言中,要求运算对象只能为整数的运算符是( A )。
A. %
B. /
C. >
D. *
21、若有说明语句:char c='\72';则变量c在内存占用的字节数是( A )。
A. 1
B. 2
C. 3
D. 4
22、字符串"ABC"在内存占用的字节数是( B )。
A. 3
B. 4
C. 6
D. 8
23、要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。
A. char a="3";
B. char a=’3’;
C. char a=%;
D. char a=*;
24、下列不正确的转义字符是( C )。
A. \\
B. \'
C. 074
D. \0
二、填空题
1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为 1 、 0 、 1 、 1 。
4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。
5、判断变量 a、b 的值均不为 0 的逻辑表达式为 1 。
6、求解赋值表达式 a=(b=10)%(c=6),表达式值 4 、a、b、c 的值依次为 1 0 6 。
7、求解逗号表达式 x=a=3,6*a 后,表达式值18 、x、a 的值依次为 3 3 。
8、数学式a/(b*c)的 C 语言表达式 a/(b*c) 。
三、判断题
()1、C语言中,非0值作为true,0作为false;若表达式取得true值时,结果为1,取得false值时,为0。
()2、为了确保表达式n/2的值为float型,可写成float(n/2)。
()3、若有(float)x,则x变成float型变量。
()4、若a=3,b=4,c=5,则d=!(a%b)的值是0。
()5、a是实型变量,进行赋值a=10,因此实型变量中允许存放整型值
()6、在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
()7、执行表达式a=b后,在内存中a和b存储单元中的原值都将被改变,a的值已由原来的改变为b的值,b的值由原来改变为0
()8、有a=3,b=5。
执行a=b,b=a后,使a的值为5,b的值为3。
()9、 getchar( )和scanf()均为输入函数,它们之间可通用,没有任何区别。
()10、执行语句scanf("%6.3f" ,&a)后,输入123456可使a的值为123.456 。
()11、 putchar()函数的作用是输出一串字符。
()12、使用scanf()函数,在输入数据时,若遇非法输入则认为该数据输入结束。
()13、在C中所用的变量必须先定义后使用。
()14、在 C 程序中,运算符%仅能用于整型数的运算。
()15、APH与aph 分别表示不同的变量。
()16、设x和y都是int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是交换x和y 的值。
()17、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为0。
()18、C语言中无逻辑变量,也无逻辑表达式。
四、编程题:
1、设长方形的高为 1.5,宽为 2.3,编程求该长方形的周长和面积。
#include <stdio.h>
int main()
{
float a=1.5,b=2.3,l,s;
l=2*(a+b);
s=a*b;
printf("l=%f,s= %f\n",l,s);
}
2、编写一个程序,将大写字母 A转换为小写字母 a。
#include <stdio.h>
int main()
{
char ch;
printf("Please input A~Z: ");
scanf("%c", &ch);
if(ch >= 'A' && ch <= 'Z')
printf("%c\n", ch+32);
else
printf("Please input A~Z\n");
return 0;
}。