C语言_数据的表示与运算
c语言的数据类型、运算符和表达式

数据类型、运算符和表达式一、C 语言的基本数据类型数据是程序处理的对象。
C 中将数据分为不同的数据类型,任何数据都属于某一种特定的数据类型。
数据类型的作用有两个:一是指明为数据分配多大的存储空间和规定了数据的存储结构,进而规定了数据的取值范围;二是规定了数据所能进行的操作。
C 的数据类型分为基本数据类型和构造类型。
基本数据类型是系统定义的,用户可以直接使用。
构造类型由用户自行定义。
C 的数据类型如图所示。
C 标准没有规定各类数据所占用内存位数。
所以不同c 编译系统的各类数据所占用内存位数是不一样的。
上机使用时,应注意使用的c 编译系统的具体规定。
Turbo C 基本类型 所占位数 数的范围 [signed] char 8 -128~127 unsigned char 8 0~255 [signed]int 16 -32768~32767 short [int] 16 -32768~32767long [int] 32 -2147483648~2147483647 unsigned [int] 16 0~65535 unsigned short [int] 16 0~65535 unsigned long [int]320~4294967295C++数据类型基本类型字符型(char) 空类型(void)整型短整型(short int) 无符号整型(unsigned int)长整型(long int)基本整型(int) 实型(浮点型) 双精度型(double)单精度型(float) 指针构造类型枚举(enum) 联合(union)结构体(struct)数组float 32 约6位有效数字double 64 约12位有效数字在Visual C++中:char:1 Byteint:4 Byteshort:2 Bytelong:4 Bytefloat:4 Bytedouble:8 Byte二、常量常量:整型常量、实型常量、字符常量、字符串常量、符号常量1.整型常量C语言程序中可以使用十进制、八进制和十六进制来表示整型常量。
C语言的基本数据类型及其运算

——C语言中的数据分为常量和变量。他们都有类型之分。 常量和变量是在计算机中数据类型的具体表现形式,它们不再 是抽象的概念而是实在的数据,这些数据符合对数据类型的规定 (形式和运算规则两方面)。常量和变量之间的区别在于程序执行
过程中的变化情况。常量是一成不变的,而变量则可以不断改变。
变量定义的格式:
type namelist;
数据类型的 类型标识符 准备声明的变 量名称列表
当同时声明多个变量 时,需要将变量名之 间用“,”逗号分隔开。
注意: 任何一个变量都必须具有确定的 数据类型,变量类型告诉 C该变 变量的基本数据类型: 量的用法以及保存的方法。不管 整型变量、实型变量、字符型变量 变量的值怎样变化,必须符合该 类数据类型的规定(形式和规则 两个方面)。
字符串
本钢工学院 计算机系马驰 v1.0 2003年6月 第12页
C语言的基本数据类型及其运算
符号常量:在C语言中允许程序中的常量定义为一个标识符,这个
标识符称为符号常量。既带有名字的常量。 定义格式: #define <符号常量>
符号常量必 须在使用前 先定义 例如: <常量> #define #define
溢出处理:不同的数据类型规定了不同的机内表示长度,也决定了
对应数据量的变化范围。当某一数据超出该数据类型所 规定的范围时,计算机会拒绝接受,而将之转换成范围 内的另外某个数,这种情况称之为溢出处理。
溢出演示:21.c
本钢工学院 计算机系马驰 v1.0 2003年6月 第4页
C语言的基本数据类型及其运算
符号常量
本钢工学院 计算机系马驰 v1.0 2003年6月 第13页
C语言的基本数据类型及其运算
二、C语言数据类型和运算符号

意义: 意义:可提高执行效率.
4, 3
基本运算符使用注意事项
算术运算符和算术表达式 注意以下几点: ⑴ 两个整数相除结果为整数,如5/3的结果为1.如果参加 两个整数相除结果为整数,如5/3的结果为1 运算的两个数中有一个数为实数,则结果是double型. 运算的两个数中有一个数为实数,则结果是double型. ⑵ 模运算符%,又称求余运算符,要求%两侧均为整型数据, 模运算符%,又称求余运算符,要求% 如7%4的值为3;而且余数的值符号与被除数一致,如- 7%4的值为3 7%- 的值为-3 7%-4的值为-3. ⑶ 运算符"+ +"是操作数加1,而"--"是操作数减1, 运算符" +"是操作数加1,而"--"是操作数减1 只适用于变量,不能用于常量或表达式.
21/25 21/25
举例:写出下列表达式的值 若有定义:int a=3, b=2, c=1; char ch1='a'; 1) b+c!=a 2) ch1<'b' 3) a%2==0 4) (a>b)>(b<c) 5) a>b>b<1 6) a>b==c 7) f=a>b>c
22/25 22/25
基本运算符使用注意事项
基本算术运算符: + 加 / 取正 (双目运算符 / 单目运算符) - 减 / 取负 (双目运算符 / 单目运算符) * 乘 (双目运算符) / 除 (双目运算符) % 整除取余 (双目运算符) 注意: 1)两整数相除结果仍为整数 如:5/2 2 -5/3 -1 1/2 0 要依实际应用情况加以利用或避免. 2)求余运算要求两运算元素均为整型,余数仍 为整型; 如:int a, b; a=11%3; /*2 a*/ b=5%a; /*1 b*/ 若有: a=11.0%3; 编译时将视为语法错.
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
C语言数据表示及运算

2.2
• 常量、变量 • 常量:
程序中数据是如何表示的? #include <stdio.h>
void main() { int i,x,s,avg; 程序运行过程中,其值不能 i=0; 被改变的量。常量也相应地 s=0; 区分为不同的类型: 八进制十六进制 do{ 整型 125,-100, 0,037,0x38 scanf("%d",&x); 默认为int,可以用后缀指 s=s+x; 明类型:289L,32767L, i=i+1; 39u,39090u,65536Lu }while(i<10); 实型 3.14,-3.7e9, .23e-3 默 avg=s/10; 认double类型,9.6f为float型 printf("avg=%d\n",avg); 字符型 ‘a’, ‘b’,‘2’ }
类型 float Double long double 位数 4字节 8字节 16字节 绝对值范围 10-38 ~1038 10-308 ~10308 10-4932 ~104932 有效数字 7 16 19
单个字符的存储方式: 存储字符的编码; 目前大多数计算机采用ASCII代码; 占用的空间:一个字节的存储空间。 例如: 字符’A’ 为char类型,在内存中占1字 节,存储的是其ASCII码值65。
printf(“a=%d\nb=%d\n”, a , b );
转义字符 \\ \’ \” \n \t \r \f \b \ddd
表示含义 反斜杠字符“\” 单引号字符 双引号字符 换行,将当前位置移到下一行开头 水平制表,横向跳到下一个输出区 回车,将当前位置移到本行开头 打印换页,将当前位置移到下页开头 退格,将当前位置移到前一列 1到3位八进制数所代表的字符
C语言的数据和运算.

第2章 C语言的数据和运算[目的要求]1. 了解C语言的数据类型;2. 掌握常量与变量的概念;3. 掌握整型、实型、字符型数据的常量和变量的引用方法;4. 掌握简单的输入和输出;5. 掌握变量赋初值的方法;6. 掌握各类数据的混合运算;7. 掌握算术、关系、逻辑运算符和算术、关系、逻辑表达式;8. 掌握赋值运算符和赋值表达式、逗号运算符和逗号表达式。
[基本内容]1. C语言的数据类型;2. 常量与变量;3. 简单的输入(scanf())和输出(printf());4. 运算符和表达式。
[重点难点]1.重点:数据类型、表达式。
2.难点:变量、表达式。
[课时安排]4学时。
2.1 程序设计概述一个程序应包括对数据的描述和对数据处理的描述。
1.对数据的描述,即数据结构。
2.对数据处理的描述,即电脑算法。
算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。
为此,著名电脑科学家沃思〔Nikiklaus Wirth〕提出一个公式:数据结构 + 算法 = 程序2.2 C语言的数据类型C语言提供的数据结构,是以数据类型形式出现的。
具体分类如下:1. 基本类型分为整型、实型〔又称浮点型〕、字符型和枚举型四种。
2. 构造类型分为数组类型、结构类型和共用类型三种。
3. 指针类型。
4. 空类型C 语言中的数据,有常量和变量之分,它们分别属于上述这些类型。
本章将介绍基本类型中的整型、实型和字符型三种数据。
2.3 常量和变量2.3.1 常量1. 常量的概念在程序运行过程中,其值不能被改变的量称为常量。
2. 常量的分类〔1〕整型常量〔2〕实型常量〔3〕字符常量。
〔4〕符号常量。
2.3.2 变量1. 变量的概念在程序运行过程中,其值可以被改变的量称为变量。
2. 变量的两个要素〔1〕变量名。
每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。
〔2〕变量值。
在程序运行过程中,变量值存储在内存中。
在程序中,通过变量名来引用变量的值。
C语言-数据类型及运算

2018/7/29电子科技大Βιβλιοθήκη 计算机学院2.2.6 符号常量
将常量定义为一个标识符,称为符号常量。通常用大 写表示。 如:
#define PI
#define TRUE
3.1415926
1
#define
STAR
‗*‘
便于程序调试和修改
2018/7/29 电子科技大学计算机学院
2.3 变量
在程序执行过程中其值可以改变的量。
2018/7/29 电子科技大学计算机学院
2.4.3 关系运算与逻辑运算 关系运算符: 大于 a>b 大于等于 小于 a<b 小于等于 等于 a==b 不等于
a>=b a<=b a!=b
关系表达式的值为真用 1 或 非零数值表示, 关系表达式的值为假用零表示。 例如: 设 x=100; printf(―%d%d%d\n‖,x==100,x<100,x>=100); 输出为: 1 0 1 字符型数据按其ASCII 码值进行关系运算: ‗b‘<‗f‘ 值为 1; ‗9‘<‗3‘ 值为 0 ;‗A‘==65 值为 1
2018/7/29 电子科技大学计算机学院
5. 右移位运算 变量名>>右移位数 每右移1位相当于除以2 每右移n位相当于除以2的n次幂 6. 左移位运算 变量名<<左移位数 每左移1位相当于乘以2, 每左移n位相当于乘以2的n次幂 注意: 在移位时,变量一端被移出的位被舍弃,另 一端空出的位一般则以0填充。
float b=123.67;
&a2500H 2501H &b2502H 2503H 2504H 2505H 2506H
| |—————— |---- 1250 ----- a=1250 |—————— |-------|-------|----123.67 ------ b=123.67 |——————
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语言的基本数据类型及运算

解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
2020/12/11
原码、反码和补码
11
正数:原码、反码、补码相同
– 符号位为0,数值为对应的二进制数。 +109
[01101101]原 = [01101101]反 = [01101101]补
• 指数只能是整数,而尾数则可以是整数也可以是 小数 ,无论指数或尾数均不能省略 例如:1e、E.5、E-3 非法
• 实型常量的类型:默认为double型,后面加F (或f),则强调表示该数是float类型 例如:3.5f、1e2F
2020/12/11
3. 字符型常量
22
可视字符常量 – 单引号括起来的单个可视字符 例如:'a'、'A' 、'+' 、'3'、' ' 等
例如: #define LEN 2.5
定义符号常量
main( )
{ float a,b;
a= 2*3.14 *LEN;
使用符号常量
b=3.14*LEN*LEN;
printf("a=%f,b=%f\n",a,b);
}
编译前系统进行替换
2020/12/11
5. 符号常量
25
main( )
{ float a,b;
负数:
– 原码符号位为1,数值为绝对值的二进制
数。
-109 [11101101]原
– 反码符号位为1,数值为绝对值的二进制
数各位变反。 -109 [10010010]反
– 补码符号位为1,数值为绝对值的二进制
C语言程序设计 第1章 基本数据类型与运算

注意: ANSI C规定标识符的长度可达31个字符,但一般系统使用的标识符, 其有效长度不超过8个字符。 标识符不能采用系统的关键字(保留字)。区分大小写。
不合法的C语言标志符: call…name 39test -string1
1.5 常量与变量
常量
程序中值不发生变化的量。
整型 数值常量
实型
main() {int i,s,a[10]; for(i=0;i<10;i++)
scanf("%d", &a[i]); for(s=0,i=0;i<10;i++)
s=s+a[i]; printf("sum=%d",s); {
1.2 语言处理程序
用非机器语言书写的程序必须进行翻译,即用高级语言或汇编语 言编写的程序必须翻译成计算机能识别的指令序列,完成这一任
函数的构成
一个函数是由函数的说明部分和函数体两部分组成。
int max(int x,int y)
{ int z; if (x>y) z=x; else z=y; return(z) ;
① 函数的说明部分 int max(int x,int y)
函数返回值类型 函数名 函数参数列表
}
main( )
字符串常量 用双引号括起来的一串字符。如:"abcd " 双引号为字符常量标志。
注意: 'a' 和"a"的区别
'a' :字符常量,占一个字节存储空间,存储其ASCII码。
"a" :字符串常量,该字符串只有一个字符,占二个字节存储空 间。 字符串存储:除了存储所有字符外,系统还要存储字符串结束标 志'\0'。
C语言的基本数据类型及其表示算术运算与赋值运算

§2.2 数Байду номын сангаас与数据类型(完)
关于类型的含义 1.不同类型数据在内存中占不同的存储空 间,且采取不同的存储形式。 2.不同类型数据对应不同的取值范围。 3.数据类型确定了允许对其进行的操作。
共 47页 第 10 页
§2.3
C语言的基本数据类型
整型 int char 字符型
基本类型
实型(浮点型)
按照数据在程序中的取值:
共 47页 第 4 页
§2.1
程序设计的基本知识(续)
开始 s=0,a=0 输入n N a<n
算法的表示--流程图
用规定的一系 列图形、流程线和 文字说明算法中的 基本操作和控制流 程
输出 s
结束
Y s=s+a a=a+1
共 47页
第 5 页
§2.1
程序设计的基本知识(续)
结构化程序设计
四、面向过程程序设计方法
int型表示数的范围:-
32768 ~ 32767
共 47页 第 19 页
4. 输入输出形式 : d,%ld,%x,%o,%u
§2.3
C语言的基本数据类型(续)
包括实型常量和实型变量
2.3.3 实型数据 一、实型常量
有两种表 示形式
小数 0.123 实型常量只能用十进制 形式表示,不能用八进 指数 3e-3 制和十六进制
共 47页 第 34 页
§2.4 算术运算与赋值运算(续)
2. 只能用于变量,不能用于表达式和常量
(i+k) ++ ,
--3
3. 优先级:高于双目算术运算符 4. 结合性:从右向左
i=3; k=i++ + i++ + i++; i=3; k= ++i + ( ++i) + (++i);
C语言——数据表示

解:N=log257=6
2.3表示数据
• 文本代码
不同的位模式集合被设计用于表示文本符号, 每一个集合被称为代码。表示符号的过程被称为 编码。 ASCII 美国信息交换标准码,可定义128种不同 的符号。7位模式 奇偶校验 扩展ASCII 8位模式, ASCII码左侧补零。 Unicode 16位模式 能表示65536个符号 ISO 32位模式 足以表示现今世界上的任何符号
2 数据的表示
• 数据的类型 • 计算机内部数据 • 表示数据 • 数的表示
2 .1数据的类型
数据
文本
数字
图像
音频
视频
2.2计算机内部数据
• 位(b) 存储在计算机中的最 小数据单位,0或1 计算机使用各种各样 的两态设备存储数据
2.2计算机内部数据
• 位模式 (字) 由位组成的序列,有时也称为位流。
图像分为位图图形和矢量图形
位图
彩 色 图 像
2.3表示数据
•图像
图像分为位图图形和矢量图形
矢量图
位图图像占据空间大,调整图像大小困难。
矢量图是将图像分解成直线和曲线,用数学 公式表示。
2.3表示数据
•音频
音频转成数字数据,并使用位模式存储。音频本质是是连 续性的(模拟的),不是离散的(数字的)。具体步骤如下: 1)对模拟信号进行采样。采样就是以相等的间隔来测量信 号的值。 2)量化采样值。量化就是给采样值分配值(从值集中)。例 如,如果一采样值为29.2,而值集为0到63的整数值,因 此量化该采样值即是给该采样值赋值29。 3)将量化值转换成位模式。例如,把29转换为位模式为 00011101。 4)储存位模式。
2.4.1 进制
2.4.2 转换
C语言 第3章 数据类型、运算符与表达式

Page 16
C语言 程序设计
第3章 数据类型、运算符与表达式
3.3 变量
例3-4 判断下列用户标识符的合法性: √ a1 X .不能作标识符 abc.c √ a_b X -不能作标识符 a-b √ abc123 X 不能以数字开头 3a int X 关键字不能作标识符
Page 17
C语言 程序设计
Page 10
字符形式
\n \t \b \\ \’ \” \ddd \xhh
能
C语言 程序设计
第3章 数据类型、运算符与表达式
转义字符
(新行)1234 (新行)abcd (新行)
printf("\n1234\nabcd\n");
printf(―\nab\ttd\tef\n);
(新行)ab (新行) td ef
C语言 程序设计
ቤተ መጻሕፍቲ ባይዱ
第3章 数据类型、运算符与表达式
常数常量
整型常量:
数据溢出:注意变量的取值范围 例3-1 #include <stdio.h> void main() { int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); 32767: (0111111111111111)2 32767+1: (1000000000000000)2 }
Page 7
C语言 程序设计
第3章 数据类型、运算符与表达式
常数常量
浮点型常量(实数):
后缀: 实数:double型常量 实数+F|f:float型常量 实数+L|l:long double型常量 浮点型数据存储方式:按规范指数形式进 行存储 数 符 尾数 指数 符号 指数
C语言-数据类型运算符和表达式

3/86
C程序常见符号分类
关键字(Keyword) – 又称保留字( C Reserved Word )
A word that has special meaning in C
标识符(Identifier) – C Standard Identifier(系统预定义标
识符)
A word having special meaning but may be redefined (but is not recommended!!)
习题2.2(4)字符串"\t\"Name\\Address\n"的长度?
– 15
2020/5/7
11/86
变量(Variable )
A name associated with a memory cell whose value can change – 其值在程序执行过程中是可以改变的 Properties of a variable – Name 变量名 – Type 变量类型 – Value 变量的值 – Address 变量的存储单元——地址
第2章 数据类型、运算符与表达式
思考
C程序的框架是什么样的? 如何编写程序实现,计算两个整数x=2,y=3的和,然后 显示器输出两个数相加的结果?
如何编写程序实现从键盘输入两个整数,然后显示器 输出两个数相加的结果?
2020/5/7
2/86
一个简单的C程序例子
#include <stdio.h>
unsigned – 用来修饰char、int、short和long – 无符号整数(正整数和0)
2020/5/7
24/86
不同类型取值范围不同
C语言直接提供的任何类型都有取值范围。
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语言基本数据类型及运算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语言 第3章 数据类型及其运算

– unsigned int型常量 123u、 123U
• 整型常量的类型
根据其值所在范围确定其数据类型
在整型常量后加字母l或L,认为它是long int 型常量
例:12与12L
2015/12/23 25
整型常量的表示形式
• 十进制形式 :[±]若干个0~9的数字
如:100,-50, 0
• 八进制形式: [±]以0开头的若干个0~7数字
• 无符号长整型
unsigned long [int] ;
2015/12/23
20
二进制存放与溢出
(1)10= (0000 0000 0000 0001)2补码
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(-1)10= (1111 1111 1111 1111)2补码
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
00000000 00000000 00000001 01010100 5 例 :01736L 为long int 型 2 4
00000000 00000000 00000011 11011110
1
2015/12/23
7
3
6
27
何谓类型溢出(Overflow)?
• C语言提供的任何类型都有取值范围。当向其赋超 过此范围的数值,就会产生数值溢出,得到一个不 正确的结果。 • 例如:short int的范围是-32768~32767 – 如果超出取值范围,给它一个小于-32768或者 大于32767的数会如何呢?
(65535)10=(1111 1111 1111 1111)2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1、c语言-数据类型与运算符(含答案)详解(K12教育文档)

1、c语言-数据类型与运算符(含答案)详解(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(1、c语言-数据类型与运算符(含答案)详解(word版可编辑修改))的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为1、c语言-数据类型与运算符(含答案)详解(word版可编辑修改)的全部内容。
一、选择题1。
可用作C语言用户标识符的一组标识符是( B ).A. void define +WORDB. a3_b3 _123 YNC. for —abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A。
0 B. ‘0’ C。
“0” D。
0.03。
程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A。
空格或逗号 B。
逗号或回车 C. 逗号或分号 D. 空格或回车4。
设"int a=12;”,则执行完语句"a+=a*a;"后,a的值是( C )。
A。
12 B. 144 C. 156 D. 2885。
假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。
A。
1。
0/a*b*c B。
1/(a*b*c) C。
1/a/b/(float)c D. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。
A. 15 B。
26,15 C。
15,26 D. 267。
设x是一个int型的,y的值为10,则表达式 x && y的值为(C ).A。
第二讲_C语言中的数据运算

第二讲 C语言中的数据运算主要内容C语言中的数据类型(浮点、字符型)变量赋值与混合运算算术运算和强制类型转换赋值运算和赋值表达式逗号运算和逗号表达式输入输出再讨论浮点型数据(实型数据)实型变量数据存储:指数形式:符号位 尾数(为[0,1]间的小数) 指数尾数和指数的位数没有统一标准,由各C系统自定。
实型变量的分类类型 字节数 有效数字 表示数值范围float 4 7 10 38 ~10 38double 8 16 10 308 ~10 308 实型变量定义float 变量表;double 变量表;。
说明:double数据的输入格式串是“%lf”或“%le”练习1:编程输入一个 float 数据后直接输出,理解 float 的有效数字。
练习2:编程输入一个double数据后直接输出。
实型常量²十进制小数形式:必须有小数点。
如:3.14159、-23.4563、.5、1.²指数形式:字母e前必须有数字,字母e后必须为整数。
如:1.5e4、6.8e-10说明:n实型常数只以十进制表示n所有实型常数默认为double,加 f或 F显式说明为 floatn绝对值小于1的实数,小数点前的 0可略n Turbo C用默认格式输出实型数时,保留小数点后6位n实型数据易产生误差,对于实型数据的比较,谨用“= =” 。
#include <stdio.h>#include <math.h>main(){int a,b;if(1./41*41==1)a=1;else a=0;if (sqrt(2)*sqrt(2)==2) b=1;else b=0;printf("%d\t%d\n",a,b);}思考1. double 和 float,哪种类型表示的数据精度高?有效位数分别是?2. 用什么格式串输入数据给 double 型变量?3. 用什么格式串输出 double 型数据?4. 目前认识的输出格式串有哪些?5. 3.5 是哪种类型的常量?6. 如何表示 float 型的常量?7. 实型数据可以以八进制或十六进制输出吗?8. 输出 double 型数据的格式串是?字符型数据字符常数n直接表示, 如'a', '9', 'Z'n ASCII码值表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优先级与结合性
赋值运算符: ( = 以及扩展的赋值运算符)
(1)计算表达式的值后赋值给变量
例如:a=b*2/3; i=i+1;
C语言的表达式加上分 号成为一条语句。
(2)赋值表达式的值:赋值后变量的值 例如:printf("%d",a=30); (3)优先级与结合性:右结合 例如:a=b=c=0; 等价于 a=(b=(c=0));
(3)表达式中不同数据类型的转换 自动转换:编译系统自动完成 强制类型转换:(类型名)(表达式)
int a=10,result; float b=2.5; double c=19.5; 自动转换: long d=3; 混合运算:整型(包括 int,short,long )、浮 result=20+’A’+a*b -c/d; 点型(包括float,double )可以混合运算。 printf(“%d \n”,result); 在进行运算时,不同类型的数据会自动先转 请分析表达式计算过程及运行结果? 换成同一类型,然后进行运算.
== )
(8)指针运算符 (*和&) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) ) (11)分量运算符(.->) (12)下标运算符([ ]) (13)其他 (如函数调用运算符())
优先级与结合性
关系运算符: ( > <
>=
<=
!=
== )
(1)关系表达式的值:真——1,假——0
(3)i++与++i的区别: ++i是先执行i=i+1后,再使用i的值,如 j=++i; i++是先使用i的值后,再执行i=i+1,如 j=i++;
2.3.2 算术表达式 (1)算术表达式 运算对象包括常量、变量、函数等。
例如: a*b/c-1.5+’a’
是一个合法的表达式
(2)运算规则:一个运算符的两运算量类型要相同。
类型 float Double long double 位数 4字节 8字节 16字节 绝对值范围 10-38 ~1038 10-308 ~10308 10-4932 ~104932 有效数字 7 16 19
单个字符的存储方式: 存储字符的编码; 目前大多数计算机采用ASCII代码; 占用的空间:一个字节的存储空间。 例如: 字符’A’ 为char类型,在内存中占1字 节,存储的是其ASCII码值65。
第二章
本章要点
数据的存储及数据类型
数据的表示——常量和变量
数据的运算及其规则
2.1 数据的存储及数据类型
• 以二进制形式存储 • 计算机存储器的存储单元按字节编址 • C语言针对不同类型的数据采用不同的 存储方式——具体体现在不同的“数据 类型”上
C语言提供了以下一些数据类型:
整型 int char
if(‘A’<=c && c<=‘Z’)
if(x%3==0 || x%5==0) …… if(!(a>b)) …… if(!a)…… (2)优先级与结合性:左结合 数值转换为逻辑量: 非0——真 0——假
例如:if(!a||b) ……
另外还要注意 “短路”问题
if(y%4==0 && y%100!=0 || y%400==0)…
ASCII码 92 39 34 10 9 13 12 8
\xhh
1到2位十六进制数所代表的字符
printf("a=%d\tb=\'%c\'\tTCP\\IP\n",26,'\101');
#include <stdio.h> void main() { • 变量: int i,x,s,avg; 指在程序的执行过程中其值 可以发生变化的量。 变量命名规则 i=0; : s=0; 字母打头,后跟字母、数字、下划线; 变量的四要素 do{ 尽量“见名知义”; scanf("%d",&x); 不能与C语言保留字相同; 变量名 注意区分大小写。 s=s+x; 变量类型 i=i+1; 变量值 }while(i<10); int sum=0,count=0,i,k; avg=s/10; 存储单元 float area, avg,y; printf("avg=%d\n",avg); 变量必须先声明,后使用; }double pi=3.14159;
103
说明: 这种类型转换是由 系统自动进行的。
强制类型转换:
强制类型转换运算符的作用是:将一个表达式转换成 所需类型 一般形式:(类型名)(表达式) 例如: • • (float)a (int)(x+y) 将a转换成float类型 将x+y的值转换成整型
•
(float)1/5
将1转换成float型,结果为float型
可在声明同时初始化。
char answer=‘Y’,c1,c2;
例如: 变量a声明为以下不同类型时,执行 a=13; 后内存中实际存放的情况:
Байду номын сангаас.3
数据的运算及其规则
2.3.1 算术运算符
(1)基本的算术运算符:
+(加法运算符,或正值运算符。如:3+5、+3) -(减法运算符,或负值运算符。如:5-2、-3) 5/3 结果? * (乘法运算符。如:3*5) 是1还是1.666667? /(除法运算符。如:5/3) % 模运算符,或称求余运算符,%两侧均应为整型数据,
逻辑非 取负、自增、自减 强制类型转换 指针、地址、求字节数 乘、除、整数求余
*/
a:-32768
long a; a=32767L+1;
-32768
小心结果“溢出”!
a:32768
01111111 11111111 32767 00000000 00000000 01111111 11111111 32767L 00000000 00000001 1 00000000 00000000 00000000 00000001 1 --------------------------------------------------------------------------------------10000000 00000000 00000000 00000000-32768 10000000 00000000 32768
printf(“a=%d\nb=%d\n”, a , b );
转义字符 \\ \’ \” \n \t \r \f \b \ddd
表示含义 反斜杠字符“\” 单引号字符 双引号字符 换行,将当前位置移到下一行开头 水平制表,横向跳到下一个输出区 回车,将当前位置移到本行开头 打印换页,将当前位置移到下页开头 退格,将当前位置移到前一列 1到3位八进制数所代表的字符
基本类型
字符型 数组类型
实型(浮点型)
结构体类型 联合体类型 枚举类型
单精度实型 float
数据类型 构造类型 指针类型
双精度实型 double struct union
enum
空类型(无值类型) void
整数的存储方式: 以十进制补码形式存储。 一般整数占用的空间: Turbo C 2.0 :2个字节的存储单元 Turbo C++3.0 :2个字节的存储单元 VC++ 6.0:4个字节 根据占用空间和数值范围的不同细分为几种类型:
2.3.3 C运算符
C的运算符有以下几类: (1)算术运算符 (+ - * / % ++ --) (2)关系运算符 ( > < >= <= != (3)逻辑运算符 ( ! && || ) (4)位运算符 (<< >> ~ | ∧ & ) (5)赋值运算符 (=及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,)
例如:if(a+b>=10) …… if(x%2==0) …… if(a!=b) …… if(c>=‘A’) (2)优先级与结合性:左结合 例如:if(a>b==0) ……
if(a>b>c) ……
if(‘A’<=c<=‘Z’)
优先级与结合性
逻辑运算符: ( !
&&
|| )
(1)各个逻辑运算符的运算规则 (1)逻辑表达式的值:真——1,假——0 例如:if(a>b && b>c ) ……
-2147483648~2147483647 即 -231~(231-1)
2
2 4
0~65535
0~65535
即 0 ~(216-1)
即 0 ~(216-1)
0~4294967295 即 0 ~(232-1)
实数的存储形式: 实数采用指数形式 存储,即浮点数。 将实数转化为标准 化指数形式,分别 存储尾数部分和指 数部分。
d=a>b?a:b>c?b:c; /*右结合性*/
优先级与结合性
逗号运算符: ( , ) 例如:a=10,b=a+20,c=90 ; 左结合性; 整个表达式的值取最后一个表达式的值。
优先级
运算符
功能
结合性 从右到左
高
高
! -、++、-(类型名) *、&、sizeof *、/、%
+、>、>=、<、<= ==、!= && || ?: =、+=、-=、 *=、/=、%=
基本整型int 无符号的基本整型 unsigned int 短整型 short int 无符号的短整型 unsigned short int 长整型 long int 无符号的长整型 unsigned long int