运筹学 第2章_第1页
运筹学 第2章_第2页
运筹学 第2章_第3页
运筹学 第2章_第4页
运筹学 第2章_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2 2章章 基本数据类型及运算基本数据类型及运算教学目标:教学目标: 1 1、掌握、掌握C C的几种数据类型、常量、变量、的几种数据类型、常量、变量、运算符、表达式的使用运算符、表达式的使用 2 2、掌握掌握、掌握掌握C C的赋值语句,输入输出语句的赋值语句,输入输出语句的使用的使用C的数据类型分为两类: 1.1.基本数据类型基本数据类型主要包含: 整型、浮点型、字符型、空值型。 整型和浮点型有长型(long)和短型(short) 整型、字符型有有符号型(signed)和无符号型(unsigned) 2. 2. 自定义数据类型自定义数据类型:数组类型、指针类型、结构体类型、枚举类型、共用体

2、类型等。2 21 1 基本数据类型基本数据类型 2.1.1 2.1.1 整型整型长整型(long int):占内存4字节,说明时可用long,分为有符号 (signed long int)和无符号(unsigned long int)整型(int):占内存4字节,分为有符号 (signed int)和无符号 (unsigned int)短整型(short int):占内存2字节,说明时可用short,分为有符号(signed short int)和无符号(unsigned short int)其中有符号整型数通常缺省修饰符,无符号整型数必须加修饰符(无符号整型数后加字母U或u)。 Int在书写

3、时可省略。2.1.2 2.1.2 浮点型浮点型 1)单精度浮点型(float):4字节 2)双精度浮点型(double):8字节 浮点型数比整型数表示的范围大,但处理速度就慢,而且可能会造成数据的不精确,故在编程时要选择合适的数据类型。2.1.3 2.1.3 字符型字符型字符型占1个字节的内存,可转换成整型,分为有符号和无符号两种2.1.4 2.1.4 空值型空值型常用于说明函数的类型。对函数来说,如果函数无返回值,则用void说明它的类型22 常量和变量常量和变量2 22 21 1常量常量常量:在整个程序运行过程中值不变的量。常量的种类有整型常量、浮点型常量、字符型常量和枚举常量。一、常量一

4、、常量1 1整型常量整型常量整型常量可以用十进制数、八进制数、十六进制数几种方法表示。1)十进制整型常量是由数字09组成,以非0开始的数,没有前缀2)八进制整型常量是由07组成,前缀为03)十六进制整型常量是由数字09及字母af (AF)组成,前缀为0X或0 x2 2浮点型常量浮点型常量又称实型常量,是由整数部分和小数部分组成。浮点型有两种表示形式,一种是小数表示形式,由数字和小数点组成。另一种是指数表示形式,有小数表示法后加上E的指数部分(指数部分可正可负,必须为整数)注:1)浮点型常量只能用十进制表示2)浮点常量都被默认为double型的,若在常量后加上F或f表示float型。3)用指数形

5、式表示时,E的前后都必须有数字,且E后的是整数。3 3字符常量字符常量 (1)字符常量:用一对单撇号括起的一个字符来表示的。如A(不能用双引号)(2)控制字符:C中一些无法直接用字符常量表示的控制字符,用反斜杠开头,后面跟一个字母代表一个控制字符。(转义字符)a响铃 b 退格符 n 换行符 t 水平制表符 v 垂直制表符 r 回车符 反斜线 ” 双撇号 单撇号 0空字符注:1)用后跟1到3个八进制数字(ddd)表示ASCII码值为该八进制数的字符,用 X 后跟1到2个十六数字(Xhh)表示ASCII码值为该十六进制的字符。2)数字和数字字符的区别:0表示整型常量,0表示字符常量4 4字符串常量

6、字符串常量是由双引号括起来的0个或多个字符序列,即字符串。注:1)字符串中想含有双引号就用转义字符”2)字符串中所含字符个数称为字符串的长度3)字符串在机器内部存储时,自动在字符串尾加一个0作结束标志。例:区分下列数据的类型 0 x23 4.5 1 F 1 “stu” “F” n 060二、符号常量二、符号常量 程序中常用到的一个常量用一个名称来代替,这种常量称为符号常量。在程序中需引用该常量时,即可用符号代替格式一:const 数据类型常量名常量表达式格式二:define 常量名称初始值注意,符号常量在声明时,一定要赋初值,而且它的值在其作用域内不能改变,也不能再被赋值。2 22 22 2变

7、量变量变量是在程序运行过程中可能发生变化的量1 1变量的定义变量的定义变量在使用之前须说明其名称和数据类型,并由系统为它分配相应的存储空间。(1)变量名:一种标识符,由字母、下划线、数字组成。变量名是一个符号地址 注:C允许将数据定义或声明放在程序的中间,先声明再使用。(2)变量的数据类型:格式如下:数据类型变量名1=初值1,变量名2=初值2,变量名n=初值n ;2 2变量的初始化变量的初始化 变量在使用之前必须有一个初值,变量赋初值可以在声明的同时赋初值,另一种赋值方法是在使用前赋值,格式为: 变量名常量 例: int a,b; a=6;b=6; int a=6,b=6; int a=b=6

8、;(X)2 22 23 3数据类型的转换数据类型的转换当表达式中出现了多种类型数据的混合运算时,往往需要进行类型转换。1自动转换算术运算符、关系运算符、逻辑运算符、位运算符要求两边操作的类型一致,如果不一致,则系统会自动对数据进行转换, 转换时的基本原则是:长度短的向长度长的转换,类型低的向类型高的转换。2强制转换将表达式的结果类型转换为类型说明符所指定的类型。强制类型转换是通过说明符实现的,格式如下:(数据类型) 变量名 或(数据类型)表达式23 运算符和表达式运算符和表达式2 23 31 1运算符和表达式运算符和表达式 1 1运算符:运算符:各种运算的符号。 算术运算符+-*/%+- 关系

9、运算符! 逻辑运算符!| 位运算符 | & 赋值运算符= 及其扩展值运算符 条件运算符?: 逗号运算符, 求类型长度运算符sizeof 强制类型转换运算符类型号 指针运算符 成员运算符 下标运算符 类成员运算符:. 其他运算符如函数调用运算符等 注意:运算符的功能,运算符的运算对象个数,运算对象值的限制,运算符的优先级,运算符的结合性(运算时所按的顺序自左向右还是自右向左)问题 2 2表达式:表达式:由运算符和操作数所构成的式子。 主要有算术表达式、关系表达式、逻辑表达式、赋值表达式、条件表达式和逗号表达式 注意:要确定运算的功能,计算顺序(优先级、结合性等),2 23 32 2赋值运

10、算符、赋值表达式与赋值语句赋值运算符、赋值表达式与赋值语句1 1简单的赋值运算符简单的赋值运算符:结合性为自右向左将右边表达式的值计算出并赋给左边的变量说明:1.结合性为自右向左 2赋值表达式作一个表达式参与运算时要加括号括起 3区别与 4声明语句中使用的符号“”为初始化符,不是赋值运算符2 2赋值表达式赋值表达式 用赋值运算符将一个变量和一个表达式连接起来的式子,它将赋值运算符右边的数据赋给一个变量。 注:赋值运算符右边的表达式,也可以是一个赋值表达式(赋值表达式的值为右边表达式的值)。 例: int k,n; int x,y; k=10; x=y=5; n=9;3 3赋值语句赋值语句 赋值

11、表达式加上分号,为赋值语句。赋值语句与赋值表达式的区别:两者功能相同,但赋值表达式可作为一个更复杂表达式的一部分,参与运算,赋值语句不可。2 23 33 3算术运算符算术运算符1 1、基本的算术运算符、基本的算术运算符单目算术运算符:(取负) 结合性:自右向左 优先级较高双目算术运算符:+-*/%(取余) 结合性:自左向右 /:如果是两个整数相除,则取整数部分舍去小数部分,有一个数为浮点型数,则结果为浮点型数。%:两整数相除后取余,只能用于两整数相除,即只能用于int char型的值2 2、自增自减运算符、自增自减运算符单目运算符:(增1)(减1)结合性:自右向左 优先级较高作用:使变量的值增

12、1或减1说明: 1) 前缀运算:运算符在操作数的前面,变量值加1/减1,表达式的值为操作数加1/减1 后缀运算:运算符在操作数的后面,变量值加1,表达式的值为原操作数2)只能作用于变量,不能作用于常量或表达式3 3算术表达式算术表达式 由算术运算符和位操作运算符组成的表达式称算术表达式。结果值为数值。 表达式的类型与操作数的类型相同。2 23 34 4关系运算符关系运算符1关系运算符:双目运算符 !结合性为自左至右2关系表达式:关系运算符组成的表达式,结果值为逻辑值。2 23 35 5逻辑运算符逻辑运算符1逻辑运算符:复杂的比较运算用逻辑运算符表达单目运算符:!(非)真求反后为假,假求反后真

13、结合性:自右向左双目运算符:&(与)有一个操作数为假则结果为假,两个操作数都为真时为真 |(或)有一个操作数为真则结果为真,两个操作数都为假结果为假结合性:自左向右2逻辑表达式:由逻辑运算符组成的表达式,结果为逻辑值例: int a=1,b=0; !a 为0 a&b 为0 a|b 为12 23 36 6位运算符位运算符1 1逻辑位运算符逻辑位运算符单目运算符:(按位求反)将二进制操作数1求反后为0,0求反后为1双目运算符:&(按位与) (异或) |(按位或) 2 2移位运算符移位运算符对二进制数向左或向右移位的,双目运算符。 右移2 23 37 7条件运算符条件运算符1

14、条件运算符:?:三目运算符结合性是自右向左优先级:高于赋值运算符,低于逻辑运算符2条件表达式:可看作(if-then-else)的语句形式。格式:表达式1?表达式2:表达式3若表达式1的值为真,则条件表达式取表达式2的值,若为假,则取表达式3的值。2 23 39 9sizeofsizeof运算符运算符 用于计算机某种类型的对象在内存中所占的字节数, 格式:sizeof(类型名)运算结果值为“类型名”所指定的类型 或 sizeof(表达式)运算结果为“表达式”所占的字节数。2 23 31010关于表达式运算顺序的讨论关于表达式运算顺序的讨论1优先级规律 操作数多的运算符优先级低,从高到低顺序:单

15、目双目三目赋值逗号 双目运算符从高到低顺序:算术比较逻辑 逻辑运算符的优先级:!2结合性规律 单目运算符、三目运算符“?”和赋值类运算符从右向左结合,其余都是从从左向右结合。3括号原则和简单性原则利用括号强制改变表达式的运算顺序,便于阅读。表达式尽量简单明了,利于消除表达式的副作用。2 24 4 数据的输入与输出数据的输入与输出 2 24 41 1 scanf()scanf()函数函数 C语言的输入与输出功能由标准库函数提供,包含在头文件“stdio.h”中 1格式scanf(“输入格式”,输入地址表列);2说明:(1)“输入格式”,用双引号括起,%格式字符格式字符: d signed int

16、 u unsigned int o 八进制整数 x 十六进制整数 c char s 字符串 f float(小数形式) e float (指数形式)附加格式字符: m 正整数l 表示long 或doubleh表示short(2)输入数据时默认空格或回车或Tab 键做分隔符,如果输入格式指定用逗号等分隔,输入数据时必须用逗号分隔(3)m为正整数,可指定输入数据所占宽度,但不能规定浮点型数的精度(4)* 读入数据但不赋值给变量(5)输入地址表列是若干个变量的地址或字符串的首地址例:例:int a,b;int a,b;scanf(scanf(“%d%d%d%d”,&a,&b);,&a

17、mp;a,&b);int s;int s;float k;float k;scanf(scanf(“%5d,%f%5d,%f”,&s,&k);,&s,&k);char c;char c;scanf(scanf(“%c%c”,&c);,&c);2 24 42 2 printf()printf()函数函数1格式: printf(“输出格式”,输出项表);2说明:(1)“输出格式”,用双引号括起控制字符:%格式字符:指定输出项的输出格式普通字符:原样输出 两者可交错出现格式字符: d signed int u unsigned int o 八进制整数 x 十六进制整数 c char s 字符串 f float(小数) e float (指数) (2)控制字符 少于输出项个数,则按控制字符个数输出,多于也按控制字符个数输出,没有对应的输出项的则输出一个随机数 (3)输出项可以是表达式,但是按从右

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论