版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 数据类型、 运算符与表达式,学习目标,理解常量和变量的概念。 熟悉C语言的基本数据类型: 整型、实型和字符型数据的表示及范围。 掌握C语言的基本运算符及表达式。,2020年10月11日12时14分,1/49,2.1 引言,程序数据结构算法 程序 :编写程序的目的是利用计算机完成某一问题的求解任务 数据:数据是计算机程序在运行时的处理对象 算法:对数据的求解操作通过程序步骤,既算法反映出来,2020年10月11日12时14分,2/49,2.2 C语言的字符集和词法约定,#include #define PI 3.14 void main() int choice; float radiu
2、s,area, perimeter; scanf(%d,%f, ,【例2-1】一个C程序实例,根据用户的选择,计算以radius为半径的圆的面积或周长。,2020年10月11日12时14分,3/49,2.2.1 C语言的字符集,字符是组成语言的最基本元素。 C语言的字符集由字母,数字,空格,标点和特殊字符组成: 1.字母: 大小写字母共52个 2.数字: 09共10个 3.空白符:空格符、制表符、换行符等统称为空白符 4. 标点和特殊字符:包括表示一条语句结束的“;” 以及逗号表达式中的“,”等。,2020年10月11日12时14分,4/49,2.2.2 C语言词汇,C语言使用的词汇分为六类,
3、1. 标识符:就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。,在使用标识符时需要注意以下几点: 1)标识符命名应尽量作到见名知意。 2)C语言的标识符大小写字母敏感,即代表不同的变量。 例如PI和pi会被认为是两个不同的标识符。 3)标识符的长度受不同版本的C语言编译系统以及具体计算机系统的限制。,2020年10月11日12时14分,5/49,2.2.2 C语言词汇(3),C语言的关键字分为以下几类: 1)类型说明符。用于定义、说明变量、函数或其他数据结构的类型。 2)语句定义符。用于表示一个语句的功能。 3)预处理命令字。用于表示一个预处理命令。,2.关键字:关键字
4、是由C语言规定的具有特定意义的字符串,通常也称为保留字。,如例2-1中用到的float等。,如例2-1中用到的if。,如例2-1中用到的include。,2020年10月11日12时14分,6/49,C语言的关键字,3运算符 C语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。 4分隔符 在C语言中采用的分隔符有逗号和空格等。 逗号主要用在类型说明和函数参数表中,分隔各个变量。 空格多用于语句各单词之间,作间隔符。 5常量 C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。,2020年10月11日12时14分,7/49,C语言的关键
5、字(2),6. 注释符 1)以“/*”开头并以“*/”结尾的串,用来注释一段; 例2-1中,“/*选择1,计算面积*/” 2)用“/”注释一行。 例2-1中的:if(choice=2) 后的“/选择2,计算周长”,2020年10月11日12时14分,8/49,2.3 常量和变量,2.3.1 常量 概念:在程序运行过程中,其值不发生改变的量称为常量。 常量数据的类型一般为上述基本类型中的一种, 如: 整型常量:3,0,-1 实型常量:1.2,-2.345 字符常量:a,1,2020年10月11日12时14分,9/49,从使用形式上看,常量包括字面常量和符号常量,1)字面常量。直接以数据值表示的常
6、量,称字面常量或直接常量 例2-1中的2便是一个字面常量。 2)符号常量。以标识符号(以下简称标识符)表示的常量称为符号常量, 例2-1中的PI就是一个符号常量,并且在使用之前需通过#define命令定义。定义后,在程序中,PI将一直代表3.14。,为什么要引 入符号常量,2020年10月11日12时14分,10/49,2.3 常量和变量(3),2.3.2 变量 概念:在程序运行过程中值可以改变的量,称为变量。 例2-1中,choice,radius等为变量。 执行程序的输入语句后,这两个变量依次保存2和1.0,即变量值分别为2和1.0。 要区别开变量名和变量值以及变量的地址这三个概念。,20
7、20年10月11日12时14分,11/49,本次课程介绍的主要内容,1、数据类型; 2、数据的输入输出; 3、不同数据类型的转换; 4、表达式及其表示和应用。,2020年10月11日12时14分,12/49,2.4 数据类型(Data Type),数据类型,基本类型,构造类型,指针类型,空类型,整型,实型(浮点型),字符型,枚举类型,数组类型,结构体类型,共用体类型,单精度实型,双精度实型,短整型,基本整型,长整型,2020年10月11日12时14分,13/49,2.4.1 整型数据,1整型常量 即表示整数的常量,C语言中的整数有3种表示形式: 1)十进制形式。如99,-1。 2)八进制形式。
8、以数字0打头:如012,0。 3)十六进制形式。以0 x(0X)打头:如0 x12,0Xff。 常见错误: 1)把表示八进制和十六进制的0和0 x误写成o和ox。 2)八进制中出现超过“7”的数。,2020年10月11日12时14分,14/49,2.整型变量,有符号整型(signed int): 通常简写为int,在内存中占两个字节,int型变量的范围为 -3276832767。 无符号整型(unsigned int): 可简写为unsigned,在内存中占两个字节,unsigned变量的范围为065535。 有符号短整型(signed short int): 可简写为short,范围与int
9、相同。 无符号短整型(unsigned short int): 可简写为unsigned short,范围与unsigned int相同。 有符号长整型(signed long int): 可简写为long,在内存中占四个字节,范围为-231231-1。 无符号长整型(unsigned long int): 可简写为unsigned long,范围为0232-1。,2020年10月11日12时14分,15/49,【例2-2】请观察下面程序的运行结果,#include void main() short n=32768; printf(n=%d,n); 程序运行结果: n=-32768,2020
10、年10月11日12时14分,16/49,例2-2思考,请观察下面程序的运行结果,#include void main() unsigned short n=32768; printf(n=%d,n); 程序运行结果: n=32768,2020年10月11日12时14分,17/49,2.4.2 实型数据,1实型常量 1)十进制数形式:由数码09和小数点组成。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。 注意:小数点不能缺。 2)指数形式:123e3,.123e6,123.E3,1.23E5。 指数形式的规范化形式为:尾数中小数点左边有且只能有
11、一位非零数字。,2020年10月11日12时14分,18/49,注意:,e(E)前一定要有数字(尾数) e(E)后一定要有整数(指数) 尾数和e(E)之间不能有任何分隔符,常见的错误书写形式: E1 原因:阶码标志E之前无数字。 53.-E3 原因:负号位置不对。 2.7E 原因:无阶码。,2020年10月11日12时14分,19/49,2.实型变量,实型数据在内存中的存放形式:,所以实型数据-111.1101B在内存中的存放形式为:,2020年10月11日12时14分,20/49,单精度型float 单精度型占4个字节内存空间只能提供七位有效数字,其余的精度将丢失。 双精度型double 双
12、精度型占8 个字节内存空间可提供16位有效数字。,实型变量分为两类,2020年10月11日12时14分,21/49,【例2-3】分析观察以下程序的运行结果,#include void main() float f; double d; f=111111.111111; d=111111.111111; printf(f=%fnd=%fn,f,d ); ,程序运行结果: f=111111.109375 d=111111.111111,整数部分已经6位,再加上小数点,就已经7位,只有12位数值位,再加1位小数点,共13位,2020年10月11日12时14分,22/49,2.4.4 字符型数据,1字
13、符常量 字符常量有两种表示方法: 1)普通表示形式,用单引号括起的单个字符。如A, a,$, 等。 2)转义字符表示形式。 转义字符有以下三种用法: 表示控制字符,表示特殊字符,表示所有字符,,2020年10月11日12时14分,23/49,常用的转义字符及其含义,【例2-4】转义字符的使用举例,#include void main() printf (NumtNamen); printf (x31t101n); ,程序运行结果(其中代表一个空格): NumName 1A,2020年10月11日12时14分,25/49,2字符型变量,用以保存字符类型数据的变量为字符型变量。 例如: char
14、c1;,字符型变量的类型说明符,字符型变量,字符型变量保存的是字符数据的ASCII, 字符型变量只占一个字节。,2020年10月11日12时14分,26/49,【例2-5】字符变量的赋值举例,#include void main() char c1,c2,c3,c4; c1=A; c2=65; c3=x41; c4=101; printf(c1=%c;c2=%c;c3=%c;c4=%cn,c1,c2,c3,c4); printf(c1=%d;c2=%d;c3=%d;c4=%dn, c1,c2,c3,c4); ,程序运行结果: c1=A;c2=A;c3=A;c4=A c1=65;c2=65;c3
15、=65;c4=65,2020年10月11日12时14分,27/49,【例2-6】 大小写字母的转换,#include void main() char c1, c2; c1=a; c2=A; printf(%c %cn , c1, c2 ); c1=c1-32; /小写字母转大写字母 c2=c2+32; /大写字母转小写字母 printf(%c %cn , c1, c2 ); ,程序运行结果: a A A a,2020年10月11日12时14分,28/49,3字符串常量,用一对双引号括起来的零个或多个字符序列称为字符串。 字符串的长度是指该字符串的有效字符个数,不包括双引号以及字符串结束标志。
16、 示例: 字符串: Teacher 实际串长为7 ,占了8字节空间(字符串结束标志也占一个字节)。,2020年10月11日12时14分,29/49,常见错误:,1)混淆单个字符和只包含一个字符的字符串的区别。 例:char ch=c; 语句错误,字符串c 在内存中占两个字节空间,char类型变量ch占一个字节内存空间。正确的书写形式为: char ch=c; 2)以为存在包含零个字符的字符数据。 例:char ch=; 只有包含零个字符的空串,但没有包含零个字符的空字符常量,正确的书写形式应该为: char ch=0。 如果想把一个空格字符保存到ch变量中,空格字符也要表示出来,例如: cha
17、r ch=; (其中代表一个空格),2020年10月11日12时14分,30/49,2.5 运算符及表达式,算术运算符 + - * / % + - 关系运算符 = | /定义字符型变量 int n; /定义整型变量 c=9; /给字符9赋值给c n=c-0; /将c中的字母变成数字9后赋给n printf(%c %dn,c,n ); ,程序运行结果: 9 9,字符,数字,2020年10月11日12时14分,34/49,2自增、自减运算符及其表达式,在使用自增、自减运算符时,需要注意以下几点:,1)+和-只能用于变量,不能用于常量和表达式。 例如以下是错误用法: a+;+(a+b); #defi
18、ne ONE 1 ONE+; 2)出现多个运算符时,编译器在处理时尽可能多的从左到右将若干个字符组合成一个运算符。 i+j应解释为(i+)+j,而不是i+(+j)。 3)在C语言中调用函数时,实际参数的处理顺序是从右到左。,2020年10月11日12时14分,36/49,【例2-8】 分析观察下面程序的运行结果,#include void main() int i=1; printf(%d, %d,i,i+); ,程序运行结果: 1, 1,2020年10月11日12时14分,37/49,2.5.3 赋值运算符和赋值表达式,1赋值运算符 在c语言中,用=表示赋值运算符,它的作用是将右侧表达式的值
19、赋给左侧变量。 例如: a = 3 /常数3赋给变量a a = b + c + 1 /算术表达式的结果赋给变量a,左边只能取变量,不能为常量或表达式;,右边可取变量、常量或任意表达式。,2020年10月11日12时14分,38/49,2变量初始化,定义变量时给变量赋予初值称为变量初始化。 例如: int i = 0; 定义i为整型变量,同时初始化为0 float f = 2.25; 定义f为单精度实型变量,同时初始化为为2.25 char c = 0; 定义c为字符型变量,同时初始化为为字符 0,2020年10月11日12时14分,39/49,分清初始化和赋值语句赋值的概念,int i=0;
20、是初始化 int i; i=0; 是赋值 i=j=k=0; 正确 int i=j=k=0;错误,用同一值初始化几个变量的正确的写法应该为: int i=0,j=0,k=0;,2020年10月11日12时14分,40/49,3复合的赋值运算符,复合赋值运算的一般格式为: 变量 双目运算符=表达式,例如: c+=32 等同与 c=c+32 z*=a-b 等同与 z=z*(a-b),2020年10月11日12时14分,41/49,2.5.4 逗号运算符和逗号表达式,逗号表达式一般的形式: 表达式1, 表达式2, 表达式3, ., 表达式n 表达式n的值就是逗号表达式的最终取值。,2020年10月11
21、日12时14分,42/49,2.6 运算符的优先级和结合性,对于多个运算符组成的表达式进行求值运算时,需要根据运算符的优先级别高低次序和结合性执行。 一般规则是: 1)按运算符的优先级高低次序执行。 C语言中,运算符的运算优先级共分为15级。在表达式中 优先级较高的先于优先级较低的进行运算。 例如,先乘除后加减,如果有括号,则先计算括号。 2)如果一个运算对象(或称操作数)两侧运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。 C语言中各运算符的结合性分为左结合性(自左至右)和右结合性(自右至左)两种。,2020年10月11日12时14分,43/49,2.7 C语言中的数据类型转换,以下情况需要进行数据类型转换: 不同数据类型的运算对象进行混合运算 需要将一个表达式的结果转换成期望的类型时,就需要依据数据类型转换规则进行转换。,2020年10月11日12时14分,44/49,2.7.1 混合运算时的类型转换规则,1)综向箭头表示必定会进行的转换 如float型数据必先转换为double型数据,然后同另外操 作数进行运算;依此类似,如有char型或short型数据, 必先转换得到int型,然后运算。 2)横向箭头表示当运算对象为不同类型数据时的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理文件书写的常见错误
- 支气管哮喘患者的自我监测与管理
- 船舶轮机员诚信竞赛考核试卷含答案
- 钽铌分离工操作安全竞赛考核试卷含答案
- 塑料模具工岗前技术综合考核试卷含答案
- 紫胶蒸发工安全生产知识测试考核试卷含答案
- 石英玻璃制品加工工岗前核心管理考核试卷含答案
- 基础护理学(新编第三版)课件
- 表面活性剂制造工安全宣教考核试卷含答案
- 熟料烧结工安全技能竞赛考核试卷含答案
- 2026年重庆烟草招聘考试试题及答案
- 安徽省A10联盟2026届高三5月最后一卷历史试卷(含答案及解析)
- 2026年城管协管员业务知识考试题库及答案
- 2026年哈三中高三下学期三模语文试卷及答案
- 肠造口患者的心理支持与调适
- 河南省2026年普通高等学校对口招收中等职业学校毕业生考试机电与制造类基础课试卷
- 2026年普通动物学通关试题库及参考答案详解【达标题】
- 2025年广东省深圳市初二学业水平地生会考试题题库(答案+解析)
- 2026年度春季江西金德铅业股份有限公司校园招聘17人建设考试备考试题及答案解析
- 20kV及以下配电网工程预算定额(2022版)全5册excel版
- 2025福建龙岩国信物业有限公司招聘5人笔试历年难易错考点试卷带答案解析
评论
0/150
提交评论