第2章 C语言的数据运算
第2章 c语言基本数据类型、运算符和表达式
![第2章 c语言基本数据类型、运算符和表达式](https://img.taocdn.com/s3/m/c3b1e78125c52cc58ad6beb1.png)
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。
C语言教程课件第二章 数据类型、运算符和表达式
![C语言教程课件第二章 数据类型、运算符和表达式](https://img.taocdn.com/s3/m/19446337eefdc8d376ee3266.png)
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
C语言程序设计第2章数据类型与运算练习题及解答
![C语言程序设计第2章数据类型与运算练习题及解答](https://img.taocdn.com/s3/m/2a31802b366baf1ffc4ffe4733687e21ae45ff40.png)
C语⾔程序设计第2章数据类型与运算练习题及解答第2章数据类型和运算符习题及解答⼀.选择题。
1.下列是⽤户⾃定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语⾔规定⽤户标识符由英⽂字母、数字和下划线组成,且第⼀个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语⾔不允许⽤户将关键字作为标识符,⽽选项C)选项项中的int 是C语⾔的关键字。
语⾔中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析:本题考查C语⾔的数据类型。
在C语⾔中,没有专门的逻辑型数据类型,可以⽤0和1来表⽰逻辑值。
所以,在本题的选择答案中,不应该包括逻辑型。
3.假定int类型变量占⽤两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是A)3 B)6 C)10 D)20答案:D解析: x数组共有10个元素,在花括弧内只提供3个初值,这表⽰只给前⾯的3个成员赋值,后7个元素的值为0,所以,⼀共有20个字节。
4.以下选项中不正确的实型常量是A) B) C) D)234e-2答案:B解析:实型常量表⽰时字母E或e前必须有数字,其后数字必需为整数,故B错。
5.若变量已正确定义并赋值,以下符合C语⾔语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b答案:B解析:选项A)中包含⼀个不合法的运算符“:=”;选项C)应改为(int)%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第⼀个是错的,因为C语⾔规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项B),它实际上相当于a=(b=c+2),进⽽可分解为两个表达式:b=c+2和a=b。
6.下列可⽤于C语⾔⽤户标识符的⼀组是A)void, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语⾔规定标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符必须为字母或下划线,排除选项C)和D)。
C语言第02章 数据类型、运算符与表达式
![C语言第02章 数据类型、运算符与表达式](https://img.taocdn.com/s3/m/5e91a10f6c85ec3a87c2c5a7.png)
回到 首页
运算符和结合性 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。
C语言的数据和运算.
![C语言的数据和运算.](https://img.taocdn.com/s3/m/17f2f0faba1aa8114531d91b.png)
第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语言 第2章 类型、运算符与表达式(2.4~2.7)
![C语言 第2章 类型、运算符与表达式(2.4~2.7)](https://img.taocdn.com/s3/m/82a4c92fb4daa58da0114a82.png)
数据类型、运算符和表达式
主要内容
2.1 预备知识 2.2 常量和变量的概念 2.3 各种数据类型的常量及变量 2.4 变量赋初值 2.5 不同类型数据之间的混合运算 2.6 常用运算符和表达式 2.7 输入函数与输出函数
2
2.4.1 变量和内存的概念
变量: 程序运行过程中其值可以改变的量。 系统为程序中的每一个变量开辟存储单元。 变量名: 字母开头,后跟字母、数字和下划线组成。 C语言中的关键字不能作为变量名。
37
2.7.1
格式输出函数printf
printf函数一般格式: printf(格式控制,输出表列) 格式控制是由双引号括起来的字符串,包含三种信息: 1、格式说明:由“%”和格式字符组成,如%d,%f等。 它的作用是将输出的数据按照指定的格式输出。 2、普通字符:需要原样输出的字符。 3、转义字符:用于控制输出。 输出表列是一些要输出的数据。
27
2.5 数据的混合运算
1、自动转换
• 运算转换
• 赋值转换 2、强制类型转换
28
1、自动转换—运算转换
在进行运算时,不同类型的数据要先自动转换成 同一类型,然后进行运算。转换的规则按图所示。
double← float
long unsigned 转换由编译系统自动完成。 转换按数据长度增加的方向进行, 即按“向高看齐”的原则提升“ 较低”类型,以保证不降低精度。
33
2、强制类型转换
注意:对一个变量进行强制转换后,得到一个新的 类型的数据,但原来变量的类型不变。 例:x原为实型变量且值为2.6,在执行 i = (int)x 后得到一个整数 2,并把它赋给整型变量 i, 但 x 仍为实型,值为2.6。
第2章 C语言,数据类型、运算符和表达式
![第2章 C语言,数据类型、运算符和表达式](https://img.taocdn.com/s3/m/94a6c20116fc700abb68fca5.png)
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言第2章基本数据类型与表达式
![C语言第2章基本数据类型与表达式](https://img.taocdn.com/s3/m/9d40c8b269dc5022aaea00b9.png)
2.1.3 关键字
关键字(又称保留字)是一种语言中规定具有特定含义的标识符。 C语言可使用以下32个关键字:
auto
double int struct
break
else long switch
case
enum
char
extern
const
float short
continue default
for signed goto sizeof
例: main() { int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10; y=-20; k=30; z=x+k;w=y+k; /*不同类型的整型变量x、y、k可运算*/ printf(″x+k=%d,y+k=%d\n″,z,w); } 程序运行结果为: x+k=40,y+k=10
3. 字符常量
C语言的字符常量是用单撇号括起来的一个字符。如 ′x′,′+′,′\n′,′\101′都是合法的字符常量。 字符数据在内存中是以ASCII码存储,它的存储形式与整数的存储 形式类似。因此可以通用。例如: #include <stdio.h> main() { char c1,c2; c1=97; c2=98; printf(″%c ,%c\n″c1,c2); printf(″%d, %d\n″c1,c2); } 在程序中我们将整数97和98分别赋给c1和c2,它的作用相当于以 下两个赋值语句: c1=′a′; c2=′b′; 运行时输出结果如下: a,b
4. 字符串常量
• C语言没有专门的字符串类型变量,但有字符串 常量。字符串常量是由一对双撇号括起来的字符 序列。 如:″changsha″, ″central south university″,″+++ \\?ab″都是合法的字符串常量。 • 不要将字符常量与字符串常量混淆。如: ′a′是字符常量, ″a″是字符串常量
第二章 C语言的基本数据类型及运算
![第二章 C语言的基本数据类型及运算](https://img.taocdn.com/s3/m/f14608f4ee06eff9aff80746.png)
解决的方法是: 使用反码或补码的表示方法(按前述
表示的编码称为原码),即能将减法一律 转换为加法。
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语言 数据类型、运算符与表达式
![C语言 数据类型、运算符与表达式](https://img.taocdn.com/s3/m/1631697b02768e9951e73841.png)
C语言A
整型数据的溢出
#include <stdio.h> void main() { int a,b; a=32767; b=a+1; printf(“%d,%d\n”,a,b); } 运行结果:32767,-32768
说明:数值是以补码表 示的。一个整型变量 只能容纳-32768~ 32767范围内的数, 无法表示大于32767 或小于-32768的数。 遇此情况就发生‚溢 出‛。
运行结果:total=300
量赋值。 */
C语言A
a
变量名 变量值 存储单元
二、变量
3
变量代表内存中具有特定属性的一个存储单
元,它用来存放数据,这就是变量的值,在 程序运行期间,这些值是可以改变的。 变量名实际上是一个以一个名字对应代表一 个地址,在对程序编译连接时由编译系统给 每一个变量名分配对应的内存地址。从变量 中取值,实际上是通过变量名找到相应的内 存地址,从该存储单元中读取数据。
C语言A
标识符:用来标识变量名、符号常量名、函
数名、数组名、类型名、文件名的有效字符 序列。
符号常量:在C语言中,可以用一个标识符
来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义,其一
般形式为:
#define 标识符 常量
C语言A
习惯上符号常量的标识符用大写字母,
变量标识符用小写字母,以示区别。 符号常量与变量不同,它的值在其作用 域内不能改变,也不能再被赋值。 使用符号常量的好处是:
例如:求-10的补码。 15
10的原码: 取反:
0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
C语言第2章 数据类型及运算符
![C语言第2章 数据类型及运算符](https://img.taocdn.com/s3/m/a25fd9679b6648d7c1c74697.png)
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。
C语言程序设计第2章-1数据类型、运算符和表达式
![C语言程序设计第2章-1数据类型、运算符和表达式](https://img.taocdn.com/s3/m/825c343d66ec102de2bd960590c69ec3d5bbdb59.png)
2、 C 语言的运算符的优先级与结合性
3、表达式:由操作数和运算符组成的序列。
5
精品文档
⒉ 真值: 带符号位的机器数对应的数值称为机器数的真值。 (10100011)2= -35
⒊ 无符号数:当计算机字长的所有二进位都用来表示(biǎoshì)数值时,称 为无符号数。
2.2.2 原码、反码和补码
⒈ 原码
整数 X 的原码指:其数符位 0 表示正,1 表示负,其数值部分
就是 X 的绝对值的二进制表示。
2.1 常用 的进位制 (chánɡ yònɡ)
2.1.1 二进制、八进制和十六进制(shíliùjìn zhì)数
3
精品文档
2.1.2十、二进制、八进制和十六进制数之间的换算
⒈ 二、八、十六进制数 → 十进制数的换算采用按权展开法。
(2AB.F)16 = 2χ162+10χ161+11χ160+15χ16-1 = 683.93 ⒉ 十进制数 → 二进制数的换算整数部分(bù fen)采用除以二取余直到商
19
精品文档
2.5.1 算术运算符与算术表达式
⒈ 基本的算术运算符:
14
精品文档
3.字符常量
字符常量是用单撇号括起来的单个字符或转义字符,
如: ‘a’, ‘9’, ‘&’, ‘\n’, ‘\’’, ‘\101’。
字符常量的值为该字符的ASCII码值,如 ‘a’值为97, ‘\n’
C语言复习资料 第二章重点内容
![C语言复习资料 第二章重点内容](https://img.taocdn.com/s3/m/529c97360912a21615792904.png)
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型变量。
C语言教程第2章数据类型、运算符与表达式
![C语言教程第2章数据类型、运算符与表达式](https://img.taocdn.com/s3/m/c599048b6529647d27285291.png)
常量只能在定义时赋值,然后不能再改变 其值 常数、 const常量、宏常量和枚举常量, 都可以用来表示一个永远不会改变的数
前者不建议直接使用,而用后三者代替
C语言大学实用教程
2.5 变 量
变量是在程序执行过程中可以改变、可以赋 值的量。
在程序中每一个变量都有一个名子即变量名, 程序对该变量访问(存入、读取)都是通过变 量名进行的。
运行结果: 1234567936.000000
1234567890.000000
}
C语言大学实用教程
2.6 常用运算符及表达式
算术运算符
+,-,*,/,%
加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减, 按从左向右的顺序计算,左结合
#include <math.h>
常用的标准数学函数
C语言大学实用教程
#include <stdio.h> /*函数功能:计算两个整数相加之和 入口参数:整型数据a和b 返回值: 整型数a和b之和 */ int Add(int a, int b) { return (a + b); }
2.1 一个简单的C程序例子
/*主函数*/ ) { int x, y, sum = 0;
022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见
以“0x”或者“0X”开始的整型常数是十六进 制
A~F和a~f用来表示十进制的10~15
十六进制的形式比较常用,尤其在进行位一级的 控制的时候 0x12、-0x1F, -0x1f
C语言大学实用教程
2.4 常量
字符常量
C语言知识点:第2章 数据类型、运算符与表达式
![C语言知识点:第2章 数据类型、运算符与表达式](https://img.taocdn.com/s3/m/4e8d6d19c5da50e2524d7fe7.png)
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
C语言程序设计第二章
![C语言程序设计第二章](https://img.taocdn.com/s3/m/53f59ba2dd3383c4bb4cd2a1.png)
2.2 理论知识
运行结果:
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串常量是用一对双引号括起来的零个或多个字符
如"","Hello,world!","123"等
双引号仅起定界作用,本身并不是字符串中的内容
2.2 理论知识
常量和变量 直接常量
字符串常量 字符串的长度 指一个字符串中所包含的字符个数 C语言规定在存储字符串常量时,由系统在字符串的末 尾自动加一个'\0'作为结8.539815
2.2 理论知识
符号常量的两个好处
1. 修改程序方便 2. 见名知意,便于理解程序
符号常量的使用
1. 其值在它的作用域内不能改变,也不能再被赋值 2. 符号常量名用大写,变量名用小写,以示区别
2.2 理论知识
举例:
#define PI 3.1415
void main() { int PI; PI=3.1415; PI=3.14159; }
指针类型 构造类型 空类型
数组类型
结构体类型
共用体类型
2.2 理论知识
C语言的基本数据类型 整数类型
数据类型 有符号整型
短整型 长整型
int a,b,sum; a=32768;
数据类型符 int
short long [int] [int]
占用字节数 2
2 4
取
值
范
围
-215~(215-1) 即-32768~32767
2.2 理论知识
常量和变量 变量的赋值
在定义变量时赋值 float data1=1.5,data2=2.6;
“先定义后赋值
C语言程序设计实训教程第2章 数据类型、常量、变量、运算符与表达式
![C语言程序设计实训教程第2章 数据类型、常量、变量、运算符与表达式](https://img.taocdn.com/s3/m/454cdc2bee06eff9aef807a3.png)
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)。
double
long 方 向
int
转
换
是算术运算时运算量类型的转换规则
37
程序说明:
运算符的优先级
运算符的结合性
除单目运算符、赋值运算符和条件运算符是自 右至左地运算外,其他都是自左至右运算。
38
【实例2.8】编写程序,计算代数式 的值,x为整数,要求从键盘输入。
x 2 5x 3 x2
double dC=1000.6;
运行结果: 10141.900000
long lD=200;
char cE='A'; printf("%lf\n",iA*(fB+dC)+lD-cE);
}
36
程序说明:
运算量类型的转换规则—"垂直降落,向上位移" 垂直降落 向上位移
float
先转换
char
先转换
31
编程点拨:
程序代码:
#include <stdio.h>
main() { char cX='\36';
'\36'是转义字符
printf("%c\n",cX);
printf("%c %c\n",cX,cX);
printf("%c %c %c\n",cX,cX,cX);
printf("%c %c %c %c\n",cX,cX,cX,cX); }
长整型(long integer)
长整型的类型名为long,占4个字节, 其取值范围是
-2,147,483,648~2,147,483,647
16
【实例2.2】观察下面程序的运行结果。
#include <stdio.h>
main()
表示8进 { int iX=12; 制数 表示16进 0 int iY=012; 制数 按10进制形式输出iX、iY、iZ的值 0x int iZ=0x12;
29
程序说明:
%c表示以字符的形式输出字符型数据。
字符型数据也可以用格式说明符%d输出, 这时输出的是该字符对应的ASCII码值。
30
【实例2.6】编写程序输出如下图形。
▲ ▲ ▲ cX='A'; cX='▲'; × ▲ ▲ ▲ 字符数据按ASCII码值存放。 字符"▲"的十进制ASCII码值为30, ▲ ▲ ▲ ▲ (八进制值为36,十六进制值为1e) cX=30; cX='\36'; 均给变量cX赋”▲” cX='\x1e';
6
程序代码: 圆形半径
double perimeter(double radius) { 存放周长 len double len=0.0; 1个圆的周长 5个圆的周长 len=2*PI*radius; len=5*len; return len; }
7
运行结果:
Input the radius of circle:10<回车>
计算圆周长总和
5
程序代码:
main() 双精度浮点数 { double r=0.0,s=0.0; 输入格式 printf("Input the radius of circle:"); scanf("%lf",&r); %lf s=perimeter(r); 输出格式 printf("The total perimeter of 5 circles is %lf %lf\n",s); }
long lX=300,lY=200,lZ=0,lS=0;
iC=iA*iB;
lS=iA*iB;
lZ=lX*lY; printf("%d,%ld,%ld\n",iC,lS,lZ); } 运行结果:-5536,-5536,60000
21
预计结果:60000 %ld用于输出 长整型数据
程序说明:
(1)程序中3个变量iC、lS、lZ的预期结果 均是60000 但iC和lS的实际结果是-5536
按8进制形式输出iX、iY、iZ的值 printf("%d,%d,%d\n",iX,iY,iZ);
printf("%o,%o,%o\n",iX,iY,iZ); printf("%x,%x,%x\n",iX,iY,iZ);
}
按16进制形式输出iX、iY、iZ的值
17
运行结果:
12,10,18
14,12,22
单精度型(single-precision),类型名为 float,占4个字节,其取值范围是-3.4×10float 38~3.4×1038
双精度型(double- precision),类型名为 double,占8个字节,其取值范围是 double -1.7×10-308~1.7×10308
实型变量只能存放实型数据。
double len=0.0;
13
2.2 C语言数据类型
整型 实型
P14
字符型
数组
指针类型
结构体类型
14
2.2 C语言数据类型
2.2.1 整型数据类型 2.2.2 实型数据类型 2.2.3 字符型数据类型
P22
15
2.2.1 整型数据类型 基本整型(integer)
P22
基本整型的类型名为int,占2个字节, 其取值范围是 -32,768~32,767
iX变量是整型,(iX*iX-5*iX+3)/(iX-2)得到错误的 结果。
变量中所存放的内容就是变量的值。 int a; a=5; 定义部分a中的值是不确定的 赋值语句
使用变量时一定要考虑变量的当前值。
12
说明:
(4)变量的初始化(initialization)
可在定义变量的同时为变量赋初值。
int a=5,b=2;
为防止程序中使用没有确定值的变量, 定义变量时对于暂时不需要赋初值的变量 均赋 0 。
编程点拨: 代数表达式5x应写为5*x,不要漏掉"*" 分母应用"( )"括起来。 C语言没有提供乘方运算符,所以代数表 达式x2写为 x*x。 虽然x是整型,但表达式结果不是整型,应 使用实型。
39
程序代码:
#include <stdio.h>
main()
{ int iX=0;float fY=0.0; printf("Input an integer x(x<2 or x>2):");
整型或实型
3.5*2结果为7.0
7.5/3结果为2.5 5/2结果为2 7%3结果为1 3%7结果为3 -3.5
35
取余 整型
-(取负) 取负 整型或实型
【实例2.7】运行下面程序,观察不同数据类 型之间的混合运算。
#include <stdio.h>
main() { int iA=10;
float fB=0.09;
错误发生的原因是int型数据其取值范围小。
iC=iA*iB; lS=iA*iB;
计算300*200的值时已经出现数据溢出
22
程序说明:
(2)整型变量中只能存放整型数据
a 中实际存放的值为12 int a=12.7;
整型变量中只存放实型常量的整数部分
23
2.2.2 实型数据类型
实型数据分为:
P24
The total perimeter of 5 circles is
314.159260
8
变量的定义形式
类型 变量名1,变量名2,…,变量名n;
9
说明:
(1)类型(type)
变 量 的 数 据 类 型 , 可 以 是 int 、 float 、 double、char 等。 double char 定义变量时一定要确定变量的数据类型,不 同类型的变量存放不同类型的数据。
double r=0.0,s=0.0;
10
说明:
(2)建议命名的变量名具有一定的意义而 且第一个字符用类型名的首字母。 如:
iAge为int型变量,用于存放年龄
dRadius为double型变量,用于存放半径
fArea为float型变量,用于存放面积
11
说明:
(3)注意变量名和变量值的区别。
十进制 八进制——用数0开头 十六进制——用数0和小写字母x开头
19
程序说明:
(2)整型数据可用3种格式输出 说明符
%d 按十进制(decimal)形式输出 %o 按八进制(octet)形式输出 %x 按十六进制(hex)形式输出
20
【实例2.3】观察下面程序的运行结果。
#include <stdio.h> main() { int iA=300,iB=200,iC=0;
2.3.4 关系运算符和表达式
2.3.5 逻辑运算符和表达式 *2.3.6 其他运算符
34
2.3.1 算术运算符和表达式
运算符 名称 运算量类型
+ 加 减 整型或实型 整型或实型 a+b a-b a*b a/b a%b -a
P26
示例
3.5+2结果为5.5 3.5-2结果为1.5
*
/ %
乘
除
整型或实型
24
【实例2.4】观察下面程序的运行结果。
#include <stdio.h> main()
{ float fX=0.0;
printf("Input a float number:"); scanf("%f",&fX); printf("%f,%e,%d\n",fX,fX,fX); }