《计算机程序设计基础》课程授课教案(C语言)第2章 基本数据类型和运算符

《计算机程序设计基础C语言》教案总学时36第5、6学时一第7、8学时授课内容第2章基本数据类型和运算符了解C语言丰富的数据类型;常量、变量的概念掌握变量定义原则和符号常量定义方法教学目的掌握常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变和要求量分类以及掌握正确选择数据类型了解数值型数据混合运算及类型转换规律。重点:常量的表示方法转义字符的含义和表示方法。重点变量(包括指针变量)的定义方式和运算规则难点主要运算符的使用方法。运算表达式的书写方式。著名的++、--运算符等。教讲授学一、基本数据类型安从数据的存储形式上来看,归纳起来实质上只有两大类型的数据一整型数据排和实型数据,即定点整数和浮点数。VC++6.0下基本数据类型名和长度以及取值范围见P38二、常量(Constant)C语言中的常量有整型常量、实型常量、字符型常量、字符串常量、符号常量、枚举常量等。基本类型常量是通过书写形式隐式说明的,即由其书写格式确定数据的类型是实数、十进制整数、八进制整数、十六进制整数、字符还是字符串。!整型常量有三种形式:十进制、八进制和十六进制整数。1.十进制整数由0-9这10个数字和正负号组成,正负号只能出现在最左边。表示一个正数时,正号可以省略:当一个整数是两位或大于两位数时,其最左边的数字不能为02.八进制整数:八进制整数必须以0(零)开头并由0-7这8个数字和正负号组成,正负号只能出现在最左边。正数正号可以省。3.十六进制整数。十六进制整数必须以0x(0X)开头,由0-9,a,b,c,d,e,f(或A,B,C,D,E,F)这16个符号和正负号组成,正负号只能出现在最左边。表示一个正数时,正号可以省略,U和L分别是unsigned和long的第一个字母,可以跟在整型常量的后面,以指明该整数为无符整型常量(unsigned型)、长整型常量(long型)以及无符长整型常量(unsignedlong型)。使用时U和L可以小写。1实型常量又称浮点型常量,有两种表示方法:十进制小数形式和指数形式。1.十进制小数形式:十进制小数由0-9十个数字、小数点、正号、负号组成,正负号只能出现在最左边。表示一个正数时,正号可以省略
《计算机程序设计基础C语言》教案 总学时36第 5、6 学时 — 第 7、8学时 授课内容 第2章 基本数据类型和运算符 教学目的 和要求 了解C语言丰富的数据类型;常量、变量的概念 掌握变量定义原则和符号常量定义方法 掌握常用基本数据类型(整型、实型、字符型)数据的常量表示、机内存储、变 量分类以及掌握正确选择数据类型 了解数值型数据混合运算及类型转换规律。 重点 难点 重点: 常量的表示方法。 转义字符的含义和表示方法。 变量(包括指针变量)的定义方式和运算规则。 主要运算符的使用方法。 运算表达式的书写方式。 著名的++、-运算符等。 教 学 安 排 讲授 一、基本数据类型 从数据的存储形式上来看,归纳起来实质上只有两大类型的数据 — 整型数据 和实型数据,即定点整数和浮点数。 VC++ 6.0下基本数据类型名和长度以及取值范围 见P38 二、常量(Constant) C语言中的常量有整型常量、实型常量、字符型常量、字符串常量、符号常 量、枚举常量等。 基本类型常量是通过书写形式隐式说明的,即由其书写格式确定数据的类型是 实数、十进制整数、八进制整数、十六进制整数、字符还是字符串。 l 整型常量有三种形式:十进制、八进制和十六进制整数。 1. 十进制整数由0-9这10个数字和正负号组成,正负号只能出现在最左边。 表示一个正数时,正号可以省略;当一个整数是两位或大于两位数时,其 最左边的数字不能为0。 2. 八进制整数: 八进制整数必须以0(零)开头并由0-7这8个数字和正负号组 成,正负号只能出现在最左边。正数正号可以省。 3. 十六进制整数。十六进制整数必须以0x(0X)开头,由0-9,a,b,c,d, e,f(或A,B,C,D,E,F)这16个符号和正负号组成,正负号只能出现 在最左边。表示一个正数时,正号可以省略。 U和L分别是unsigned和long的第一个字母,可以跟在整型常量的后面,以指明 该整数为无符整型常量(unsigned型)、长整型常量(long型)以及无符长整型常 量(unsigned long型)。使用时U和L可以小写。 l 实型常量又称浮点型常量,有两种表示方法: 十进制小数形式 和 指数形式。 1. 十进制小数形式:十进制小数由0-9十个数字、小数点、正号、负号组成, 正负号只能出现在最左边。表示一个正数时,正号可以省略

2.指数形式。指数的一般形式如下[][整数部分][.小数部分][en]“整数部分"和"小数部分"不可全无。[en]为指数部分,e可大写,n是一个1~3位的十进制整数(第一位可为0)。实型常量缺省的类型为double型。为满足实型常量的存储形式、数据精度上的特定需要,可用后缀F和L对实型常量进行类型转换。F和L可跟在实型常量的后面,以指明该实数为单精度实数(float型)或长双精度实数(longdouble型)。使用时F和L可以小写。1字符常量是用一对单引号括起来的一个字符,如:口a、口A口、口S口等。空字符也是字符,它包含0个字符,值为0,可以表示为,也可以表示为10,程序中总是用10'表示空字符。在C语言中还有另外一种字符常量,称为转义字符。转义字符是以反斜线()开头的字符串,也称为控制字符。因为它们中的大多数具有控制功能,如n代表换行符,在printfO函数中使用它可以实现换行的功能转义字符表P41转义字符的应用:例子I字符串常量(characterstringconstants)字符串常量是用双引号括起来的。C语言规定:在每一个字符串后,系统自动加一个空字符口IO口作为字符串的结束标志符,以判断字符串的长度。字符串的长度比实际长度大1。空串的长度为1,而不是0。在使用字符串时,应当注意以下情况:一个字符串如果要分两行书写,可在前一行的字符串尾部加反斜线1或者把不同行上的字符串分别用双引号括起来。!符号常量(Symbolicconstants)符号常量是代表一个字符序列的标识符(又称宏名)。一旦定义了一个符号常量,则它就与该字符序列是等价的。在C语言中,定义符号常量的方法有三种:使用编译预处理的宏替换功能#define;使用类型限定符const说明并初始化使用枚举类型(enumerationconstants)来定义1.#define标识符字符序列字符序列可以由任意字符组成,还可以是已经定义过的符号常量。符号常量应先定义后使用,可以出现在程序中的任何位置,习惯上尽量放在程序的前面。符号常量(宏名)通常用大写字母书写,以示与其他标识符的区别。在一个源程序中,当一个标识符被定义成符号常量,则在编译时,编译程序预先将源程序中所有已经定义的符号常量用相应的字符序列来替换,然后再进行后续的编译处理。2.在定义变量时,如果加上关键字const,则变量的值在程序运行期间不能改变,这种变量称为常变量(也称为定义符号常量)。定义常变量的一般格式为:const类型说明符常变量名=常量值常变量名应使用大写字母,以便与变量名区别
2. 指数形式。指数的一般形式如下: [][整数部分][ .小数部分][e±n] "整数部分"和"小数部分"不可全无。 [e±n]为指数部分,e可大写,n是一个1~3位的十进制整数(第一位可为0)。 实型常量缺省的类型为double型。为满足实型常量的存储形式、数据精度上的 特定需要,可用后缀F和L对实型常量进行类型转换。 F和L可跟在实型常量的 后面,以指明该实数为单精度实数(float型)或长双精度实数(long double型)。 使用时F和L可以小写。 l 字符常量是用一对单引号括起来的一个字符,如:a、A、$等。 空字符也是字符,它包含0个字符,值为0,可以表示为‘’,也可以表示 为‘\0’,程序中总是用’\0’表示空字符。 在C语言中还有另外一种字符常量,称为转义字符。转义字符是以反斜线(\)开 头的字符串,也称为控制字符。因为它们中的大多数具有控制功能,如\n代表 换行符,在printf()函数中使用它可以实现换行的功能。 转义字符表 P41 转义字符的应用:例子 l 字符串常量(character string constants) 字符串常量是用双引号括起来的。 C语言规定:在每一个字符串后,系统自动加一个空字符\0作为字符串的结 束标志符,以判断字符串的长度。 字符串的长度比实际长度大1。空串的长度 为1,而不是0。 在使用字符串时,应当注意以下情况: 一个字符串如果要分两行书写,可在前一行的字符串尾部加反斜线 \ 或者把不 同行上的字符串分别用双引号括起来。 l 符号常量(Symbolic constants) 符号常量是代表一个字符序列的标识符(又称宏名)。一旦定义了一个符号常 量,则它就与该字符序列是等价的。 在C语言中,定义符号常量的方法有三种: 使用编译预处理的宏替换功能#define; 使用类型限定符const说明并初始化; 使用枚举类型(enumeration constants)来定义 1. #define 标识符 字符序列 字符序列可以由任意字符组成,还可以是已经定义过的符号常量。符号常量应 先定义后使用,可以出现在程序中的任何位置,习惯上尽量放在程序的前面。 符号常量(宏名)通常用大写字母书写,以示与其他标识符的区别。 在一个源程序中,当一个标识符被定义成符号常量,则在编译时,编译程序预 先将源程序中所有已经定义的符号常量用相应的字符序列来替换,然后再进行 后续的编译处理。 2. 在定义变量时,如果加上关键字const, 则变量的值在程序运行期间不能改 变,这种变量称为常变量(也称为定义符号常量)。定义常变量的一般格式 为: const 类型说明符 常变量名 = 常量值; 常变量名应使用大写字母,以便与变量名区别

constintPASS_MARK=50mainOprint("%d",PASS_MARK+1);getch();1三、变量变量(variable)是指在程序运行过程中,其值可以被改变的量。变量用变量名来表示,当程序运行时,系统为每一个变量分配一个内存单元并在变量名和该内存单元地址间建立一一对应的关系,引用该变量名时,实际上就是引用该变量名所对应地址单元的内容。在C语言中,有各种类型的数据。为了准确有效地保存这些数据,并参加运算,变量也应有不同的类型。常量的类型是隐式说明的,即通过书写形式确定。变量的类型则是显式说明的,通过定义语句确定变量名及其类型变量名及其类型需要先定义,后使用。!变量定义的格式:类型定义符变量名表其中,类型定义符(表2-1)定义变量名表中所列变量的类型,变量名表由一个或多个变量名组成,其间用逗号","分隔,变量名的命名应符合C语言标识符的规定。!变量的初始化定义的同时对变量进行初始化(赋初值),其格式如下:类型定义符变量名=表达式,……;如:longdistance=700000,heightdouble area=9.6e7;float s=3*distance;其中,"变量名=表达式"中的"="称为赋值号,其含义是将"="右边表达式的值赋给其左边的变量。表达式中的变量名应是预先定义并且已经赋过初值的。注意要点:在使用变量时,应注意"先定义,后使用"的原则。一般在一个函数中,变量名不能重复定义。除非有特定的需要,通常把定义变量的语句集中放在函数的开始处。通常,在函数中定义变量时,若没有赋初值,则该变量的值不确定。四、指针变量指针就是地址。存放地址的变量叫做指针变量。与其他类型的变量一样,使用指针变量之前必须定义定义指针变量的一般形式是:类型标识符*指针变量名如: int*p;定义了一个指向整型变量的指针变量P。其中的*不是指针变量名的一部分,在指针的定义中,*的存在告诉C语言这个变量是一个指针而不是普通变量。也可以写作int*p;,其中的int*就是指针变量p的类型:指向整型变量。I指针变量的运算符
const int PASS_MARK=50; main(){ printf("%d",PASS_MARK+1); getch(); } 三、变量 变量(variable)是指在程序运行过程中,其值可以被改变的量。 变量用变量名来表示,当程序运行时,系统为每一个变量分配一个内存单元并 在变量名和该内存单元地址间建立一一对应的关系,引用该变量名时,实际上 就是引用该变量名所对应地址单元的内容。 在C语言中,有各种类型的数据。为了准确有效地保存这些数据,并参加运 算,变量也应有不同的类型。常量的类型是隐式说明的,即通过书写形式确 定。变量的类型则是显式说明的,通过定义语句确定变量名及其类型。 变量名及其类型需要先定义,后使用。 l 变量定义的格式: 类型定义符 变量名表; 其中,类型定义符(表2-1)定义变量名表中所列变量的类型,变量名表由一 个或多个变量名组成,其间用逗号","分隔,变量名的命名应符合C语言标识 符的规定。 l 变量的初始化 定义的同时对变量进行初始化(赋初值),其格式如下: 类型定义符 变量名=表达式,.; 如: long distance=700000, height; double area=9.6e7; float s=3*distance; 其中,"变量名=表达式"中的"="称为赋值号,其含义是将"="右边表达式的 值赋给其左边的变量。表达式中的变量名应是预先定义并且已经赋过初值 的。 注意要点: 在使用变量时,应注意"先定义,后使用"的原则。 一般在一个函数中,变量名不能重复定义。 除非有特定的需要,通常把定义变量的语句集中放在函数的开始处。 通常,在函数中定义变量时,若没有赋初值,则该变量的值不确定。 四、指针变量 指针就是地址。存放地址的变量叫做指针变量。与其他类型的变量一样,使用 指针变量之前必须定义. 定义指针变量的一般形式是: 类型标识符 *指针变量名 如:int *p; 定义了一个指向整型变量的指针变量 p。 其中的*不是指针变量名的一部 分,在指针的定义中,*的存在告诉C语言这个变量是一个指针而不是普通变 量。也可以写作 int* p;,其中的int*就是指针变量p的类型:指向整型变量。 l 指针变量的运算符

在有指针变量的表达式中,可以使用以下两个运算符:&取地址运算符(取址运算符)如:m=&a将a的地址送入m*取指针指向对象运算符(取值运算符)如:*m就是指针变量m所指向的变量,也就是a。因此,有了m=&a后,就有了*m等价a。通常,将指针和被指变量一起定义int x,*p=&x;等价于intx,*p;p=&x;在把一个变量的地址赋给一个指针之前,指针未被初始化,而且不能用它们做任何事。在一个指针变量中只能存放同一类型变量的地址,否则造成数据提取的错误。建议:加强对不同类型数据的书写方式、编码方法以及存储形式的理解。如:inta:语句定义了一个什么类型的变量,变量名是什么?该变量所对应的内存单元有几个字节?是有符还是无符的?数据范围是多少?floata;或doublea;或longa;呢?五、运算符与表达式C语言的运算符(operator)多,涉及的运算范围广,可以根据运算符的功能进行分类(表2-3),也可以根据运算符所需操作对象一一操作数(operand)的个数分类。如:单目运算符、双目运算符、三目运算符等。用运算符将若干个操作数连接起来构成的式子称为表达式。单个的常量、变量、有返回值的函数调用也是表达式。表达式运算的结果是一个值,称为表达式的值。表达式结果值的类型称为表达式的类型运算符的优先级别和运算符的结合方向,它是决定表达式的运算规则的重要因素。!算术运算符是有两个运算对象的双目运算符。用算术运算符将操作数连接起来的式子称为算术表达式。优先级别:单目运算符+和-口双目运算符*、/、%口双目运算符+和-。单目运算符+和-的结合方向为从右至左,其他双目运算符的结合方向是从左至右。同级运算时,按结合方向先后次序进行运算。求余运算符%只能用于整型量之间,且以被余数的符号作为余数的符号。可以使用一对或多对()运算符,()的优先级别最高,其中的表达式优先运算。指针变量的值是地址。指针的算术运算只能地址值的加或减,其结果仍是地址值。新地址值是相对原地址值加上或减去n个存储单元的地址如:g和p都是指向float型数据的指针变量,其值分别为65500和65496,那么q-p的值为1,两指针相差1个存储单元。算术表达式的类型转换规则:对于单精度实型操作数,系统先将表达式中的所有float型操作数(常量或变量)转换成double型,再参与运算。对于字符型操作数,系统先将表达式中的所有字符型操作数(常量或变量)转成int型,并以其ASCl码值参加算术运算。如:口a+3的结果是整型数100当操作数的类型相同时,其结果类型不变
在有指针变量的表达式中,可以使用以下两个运算符: & 取地址运算符(取址运算符) 如:m=&a 将a的地址送入m * 取指针指向对象运算符(取值运算符) 如:*m就是指针变量m所指向的变 量,也就是a。 因此,有了m=&a 后,就有了*m等价a 。 通常,将指针和被指变量一起定义: int x,*p=&x; 等价于 int x,*p; p=&x; 在把一个变量的地址赋给一个指针之前,指针未被初始化,而且不能用它们做 任何事。在一个指针变量中只能存放同一类型变量的地址,否则造成数据提取 的错误。 建议:加强对不同类型数据的书写方式、编码方法以及存储形式的理解。 如:int a; 语句定义了一个什么类型的变量,变量名是什么?该变量所对应 的内存单元有几个字节?是有符还是无符的?数据范围是多少? float a; 或 double a; 或 long a; 呢? 五、运算符与表达式 C语言的运算符(operator)多,涉及的运算范围广,可以根据运算符的功能进行 分类(表2-3),也可以根据运算符所需操作对象——操作数(operand)的个数分 类。如:单目运算符、双目运算符、三目运算符等。 用运算符将若干个操作数连接起来构成的式子称为表达式。单个的常量、变 量、有返回值的函数调用也是表达式。 表达式运算的结果是一个值,称为表达式的值。 表达式结果值的类型称为表达式的类型。 运算符的优先级别和运算符的结合方向,它是决定表达式的运算规则的重要因 素。 l 算术运算符是有两个运算对象的双目运算符。用算术运算符将操作数连接 起来的式子称为算术表达式。 优先级别:单目运算符+和- 双目运算符*、/、% 双目运算符+和-。单目运 算符+和-的结合方向为从右至左,其他双目运算符的结合方向是从左至右。同 级运算时,按结合方向先后次序进行运算。 求余运算符%只能用于整型量之间,且以被余数的符号作为余数的符号。 可以使用一对或多对( )运算符,( )的优先级别最高,其中的表达式优先运算。 指针变量的值是地址。指针的算术运算只能地址值的加或减,其结果仍是地址 值。新地址值是相对原地址值加上或减去n个存储单元的地址。 如:q和p都是指向float型数据的指针变量,其值分别为65500和65496,那么 q-p的值为1,两指针相差1个存储单元。 算术表达式的类型转换规则 :对于单精度实型操作数,系统先将表达式中的 所有float型操作数(常量或变量)转换成double型,再参与运算。 对于字符型操作数,系统先将表达式中的所有字符型操作数(常量或变量)转成 int型,并以其ASCII码值参加算术运算。 如:a+3的结果是整型数100。 当操作数的类型相同时,其结果类型不变

如:5/2的结果是2。当操作数的类型不同时,一般情况下,其结果类型与操作数中字节数多的类型一致。如:2*2.5的结果是5.0,double型要注意函数返回值的类型对表达式类型的影响,如:表达式6*fabs(-4)的结果类型是双精度。赋值运算符和赋值表达式赋值运算符"="将变量和表达式连接起来就组成赋值表达式。其格式如下:变量=表达式赋值运算符"="的右边是表达式,而左边只能是一个变量。一个变量可以先后被多次赋值,变量仅保存最后一次赋值赋值运算符不同于数学上的等号。赋值运算符是双目运算符,所有赋值运算符(包括复合赋值运算符)的优先级别相同,其结合方向为从右至左。算术运算符的优先级高于赋值运算符。赋值表达式的类型转换规则:赋值号左右两边类型不一致时,类型会发生变化,简单地说,是以左边变量的类型为准将整型数据赋给实型变量时,数据以浮点数形式存储到实型变量中去,值不变。将实型数据赋给整型变量时,舍去小数部分后,再赋给整型变量。将float型数据赋给double型变量时值不变,有效位数扩展至16位(小数点后补0);将double型数据赋给float型变量时,截取double型数据的前7位有效位,再赋给float型变量。将字节数多的整型数据赋给字节数少的整型变量时,采取截断的方法处理,按照短变量的字节数截取长数据相应的低字节并按位赋给短的变量,截断时不考虑符号类型。自增和自减运算符自增、自减运算符只能用于变量(最好不要用于实型变量)表达式++x表示使用x的值之前,x的值自增1,表达式x++表示使用x的值之后,x的值自增1。如:int i=3, x, y ;x=i++;I/等同于x=i;i=i+1;y=++i;I/ 等同于i=i+1;y=i;printf(2%d %d %d In2, x, y, i);指针变量p可以进行加减运算,p=p+1或p=p-1就可以看成指针变量的自增、自减运算。1逗号运算符和逗号表达式使用逗号运算符”,“将两个或多个表达式连接起来,就组成逗号表达式。逗号运算符的优先级别是所有运算符中最低的,其结合方向为从左至右。逗号运算符是顺序运算符,在执行时,依次计算各表达式的值。"表达式n"的值就是整个逗号表达式的值,其类型就是整个逗号表达式的类型
如:5/2的结果是2。 当操作数的类型不同时,一般情况下,其结果类型与操作数中字节数多的类 型一致。 如:2*2.5的结果是5.0,double型。 要注意函数返回值的类型对表达式类型的影响, 如:表达式6*fabs(-4)的结果类型是双精度。 l 赋值运算符和赋值表达式 赋值运算符"="将变量和表达式连接起来就组成赋值表达式。其格式如下: 变量=表达式 赋值运算符"="的右边是表达式,而左边只能是一个变量。 一个变量可以先后被多次赋值,变量仅保存最后一次赋值。 赋值运算符不同于数学上的"等号" 。赋值运算符是双目运算符,所有赋值运算 符(包括复合赋值运算符)的优先级别相同,其结合方向为从右至左。算术运算 符的优先级高于赋值运算符。 赋值表达式的类型转换规则:赋值号左右两边类型不一致时,类型会发生变 化,简单地说,是以左边变量的类型为准: 将整型数据赋给实型变量时,数据以浮点数形式存储到实型变量中去,值不 变。 将实型数据赋给整型变量时,舍去小数部分后,再赋给整型变量。 将float型数据赋给double型变量时值不变,有效位数扩展至16位(小数点后补 0); 将double型数据赋给float型变量时,截取double型数据的前7位有效位,再赋 给float型变量。 将字节数多的整型数据赋给字节数少的整型变量时,采取截断的方法处理,按 照短变量的字节数截取长数据相应的低字节并按位赋给短的变量,截断时不考 虑符号类型。 l 自增和自减运算符 自增、自减运算符只能用于变量(最好不要用于实型变量) 表达式++x表示使用x的值之前,x的值自增1, 表达式x++表示使用x的值之后,x的值自增1。 如: int i=3, x, y ; x=i++; // 等同于x=i;i=i+1; y=++i; // 等同于i=i+1;y=i; printf(²%d %d %d \n², x, y, i); 指针变量p可以进行加减运算,p=p+1或p=p-1就可以看成指针变量的自增、自 减运算。 l 逗号运算符和逗号表达式 使用逗号运算符","将两个或多个表达式连接起来,就组成逗号表达式。 逗号运算符的优先级别是所有运算符中最低的,其结合方向为从左至右。 逗号运算符是顺序运算符,在执行时,依次计算各表达式的值。"表达式n"的 值就是整个逗号表达式的值,其类型就是整个逗号表达式的类型

逗号表达式通常用于将多条语句连接在一起,形成一条语句,以简化程序的书写,提高程序的运行效率。其他运算符强制类型转换运算符一般格式:(类型名)(表达式)利用强制类型转换运算可以将一个表达式的类型转换成所需类型。如:(int)(x+7.4)将x+7.4的值转换成整型如:(int)(x+7.4)与(int)x+7.4是具有不同含义的强制类型转换表达式。强制类型转换只是对表达式的值进行类型转换,而不改变表达式中变量的类型。sizeof(运算符sizeofO运算符有以下两种格式:sizeof(类型定义符)或sizeof(表达式)sizeofO函数的功能:返回各种数据类型或表达式所占的字节数。如:若变量f是float型,则sizeof(f)的值是4;sizeof(char)的值是1;sizeofa'+2)的值是4。1混合运算不同类型的数据在运算时,首先进行类型转换,使之成为同类型数据,然后再运算。这种转换称为自动类型转换(AutomaticConversion),由编译系统自动完成图中横向箭头表示必定的转换;图中纵向箭头表示参加运算的数据类型不同时进行转换。处理不同运算符的混合运算时,特别要注意其功能、优先级别、结合方向的差异,这些差异决定了表达式中各种运算的先后次序。一般地,优先级不同时,先高后低;优先级相同时,看结合方向。初学者在学习过程中,应多练习各种不带()的表达式以及判断其结果值的题自,有助于学习、巩固以致熟练掌握运算符的优先级及结合方向的规则。而在编程时,应在表达式中多用()来明确运算次序,增加程序的可读性!表达式的书写和常用数学函数的使用在书写表达式的过程中应遵守C语言的语法规则在程序中使用数学库函数应注意两点:①应在程序前面加上编译预处理命令#include;②要正确理解函数的意义并遵守函数及其参数的有关规定如:参数个数、参数类型以及参数单位,并注意函数返回值的类型和单位在标准C中调用函数时,实际参数可以是常量、变量、表达式等,实际参数的处理顺序没有统一规定。多数系统采用从右至左的方式,也有的系统采用从左至右的方式,使用时应当注意。另外,即使都是采取从右至左处理参数的方法,不同的C编译系统仍可能得到不同的结果。在编程时应尽量避免使用表达式作为函数的实际参数。课堂提问讨论整型数据溢出例子,浮点数据舍入误差例子,给我们编程序的提示什么?
逗号表达式通常用于将多条语句连接在一起,形成一条语句,以简化程序的书 写,提高程序的运行效率。 l 其他运算符 强制类型转换运算符 一般格式:(类型名)(表达式) 利用强制类型转换运算可以将一个表达式的类型转换成所需类型。如:(int) (x+7.4)将x+7.4的值转换成整型. 如:(int)(x+7.4)与(int)x+7.4是具有不同含义的强制类型转换表达式。 强制类型转换只是对表达式的值进行类型转换,而不改变表达式中变量的类 型。 sizeof()运算符 sizeof()运算符有以下两种格式: sizeof(类型定义符) 或 sizeof(表达式) sizeof()函数的功能:返回各种数据类型或表达式所占的字节数。 如:若变量f是float型,则sizeof(f)的值是4;sizeof (char)的值是1;sizeof (‘a’+2)的值是4。 l 混合运算 不同类型的数据在运算时,首先进行类型转换,使之成为同类型数据,然后再 运算。这种转换称为自动类型转换(Automatic Conversion),由编译系统自动 完成 图中横向箭头表示必定的转换;图中纵向箭头表示参加运算的数据类型不同时 进行转换。 处理不同运算符的混合运算时,特别要注意其功能、优先级别、结合方向的差 异,这些差异决定了表达式中各种运算的先后次序。一般地,优先级不同时, 先高后低;优先级相同时,看结合方向。 初学者在学习过程中,应多练习各种不带( )的表达式以及判断其结果值的题 目,有助于学习、巩固以致熟练掌握运算符的优先级及结合方向的规则。而在 编程时,应在表达式中多用( )来明确运算次序,增加程序的可读性。 l 表达式的书写和常用数学函数的使用 在书写表达式的过程中应遵守C语言的语法规则。 在程序中使用数学库函数应注意两点: ① 应在程序前面加上编译预处理命令#include ; ② 要正确理解函数的意义并遵守函数及其参数的有关规定, 如:参数个数、参数类型以及参数单位,并注意函数返回值的类型和单位。 在标准C中调用函数时,实际参数可以是常量、变量、表达式等,实际参数的 处理顺序没有统一规定。多数系统采用从右至左的方式,也有的系统采用从左 至右的方式,使用时应当注意。另外,即使都是采取从右至左处理参数的方 法,不同的C编译系统仍可能得到不同的结果。在编程时应尽量避免使用表达 式作为函数的实际参数。 课堂提问讨论 整型数据溢出例子,浮点数据舍入误差例子,给我们编程序的提示什么?

本章小结、作业布置C语言中的数据类型通常分为基本类型、构造类型、指针类型和空类i型。C语言中有丰富的运算符,主要有算术运算符、赋值运算符、逗号运算符、自增自减运算符、逗号运算符等。每种运算符运算对象的个数、优先级和结合性各有不同。表达式是由运算符连接各种类型的数据组合而成的,表达式的求值应按照运算符的优先级和结合性所规定的顺序进行。思考题、教材P62课后作业习题一主要参考资料课后自我总结分析备注
本章小结、作业布置 ¡ C语言中的数据类型通常分为基本类型、构造类型、指针类型和空类 型。 ¡ C语言中有丰富的运算符,主要有算术运算符、赋值运算符、逗号运算 符、自增自减运算符、逗号运算符等。每种运算符运算对象的个数、优 先级和结合性各有不同。 ¡ 表达式是由运算符连接各种类型的数据组合而成的,表达式的求值应按 照运算符的优先级和结合性所规定的顺序进行。 思考题、 课后作业 教材 P62 习题一 主要 参考资料 课后自我 总结分析 备注
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机程序设计基础》课程授课教案(C语言)第1章 C语言概述.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 15 - Data Structures.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 14 - Files.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 13 - More functions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 12 - Basics of Functions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 11 - Strings.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 10 - Basics of Pointers.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 9 - Arrays.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 3 - Hardware and Software.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 8 - Looping.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 7 - Making Decisions.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 6 - Operators, Expressions and Statements.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 5 - Standard IO.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 4 - Simple Data Types.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 2 - Binary Representation.pdf
- 英格兰萨里大学:《C语言》课程教学资源(讲义)Lecture 1 - Introduction.pdf
- 《计算机程序设计基础》课程学习指南(C语言)给C语言初学者的学习建议.pdf
- 《计算机程序设计基础》课程学习指南(C语言)C语言初学者编程规范-2/2.pdf
- 《计算机程序设计基础》课程学习指南(C语言)C语言初学者编程规范-1/2.pdf
- 《计算机程序设计基础》课程学习指南(C语言)C语言常见问题详解.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第3章 控制结构.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第4章 数组和指针.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第5章 模块化编程.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第6章 指针进阶与内存空间管理.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第7章 结构体与共同体.pdf
- 《计算机程序设计基础》课程授课教案(C语言)第8章 数据文件编程方法.pdf
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-10 IO函数值和注释语句.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-8 标识符和关键字.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-11 编程风格与常见错误.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-9 输入输出函数.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-7 实例求圆柱体底面积和体积.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-5 第1个C程序解析.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-6 预处理指令#define#include.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-4 算法的表示.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-1 C语言的概述.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-2 结构化程序设计方法.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第1章 C语言概述 1-3 算法的概念和特点.ppt
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-7 自增和自减运算符.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-8 逗号运算符和逗号表达式.pptx
- 《计算机程序设计基础》课程PPT教学课件(C语言)第2章 基本数据类型和运算符 2-10 混合运算.pptx