第2章_C语言程序设计基础梁_第1页
第2章_C语言程序设计基础梁_第2页
第2章_C语言程序设计基础梁_第3页
第2章_C语言程序设计基础梁_第4页
第2章_C语言程序设计基础梁_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、1 第第2章章 C语言程序设计基础语言程序设计基础 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家2 教学目标教学目标 理解变量和常量的含义理解变量和常量的含义 熟悉基本数据类型熟悉基本数据类型 - int、char、float 和和 double 了解了解sizeof运算符运算符 了解标准函数(库函数)的使用了解标准函数(库函数)的使用 理解表达式理解表达式 使用算术运算符使用算术运算符 掌握赋值运算符的用法掌握赋值运算符的用法 理解类型转换理解类型转换 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家3 C语言中的基本元素语言中的基本元素 程序程序 指令指令 标识

2、符标识符 关键字关键字 常量常量 运算符运算符 分隔符分隔符 常量是在程序中保持不变的量 常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家4 计算机中常量的表示形式计算机中常量的表示形式 计算机中常量的表示形式计算机中常量的表示形式 1、字面常量或直接常量,亦、字面常量或直接常量,亦 称常数称常数从字面即可判别的从字面即可判别的 量量 例如:例如:100,12.5,s等等 2、符号常量、符号常量用一个标识用一个标识 符代表一个常量。但要事前定符代表一个常量。但要事前定 义义 例如

3、例如 #define PI 3.14159 #include #define PI 3.14159 int main(void) double s,r; r=5; s = PI * r * r; printf(area s=%f,s); return 0; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家5 整型常量整型常量 整型常量有三种不同的表示形式:整型常量有三种不同的表示形式: 十进制:无前缀,无后缀十进制:无前缀,无后缀 八进制:八进制:在八进制数值前面加在八进制数值前面加前缀前缀“0”,其数码取值为,其数码取值为07。 例如:例如:023,0457,01324等等 十六

4、进制:十六进制:前缀为前缀为“0X”或或“0 x”,其数码取值为,其数码取值为09、AF或或af。 例如:例如:0X2A,0XA0,0XFFFF等等 当任意整型常量后跟一个字母当任意整型常量后跟一个字母u或或U时,表示是无符号整型。时,表示是无符号整型。 例如,例如,123u 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家6 浮点型常量浮点型常量 浮点型常量有浮点型常量有2种不同的表现形式种不同的表现形式: 十进制小数形式:由数字和小数点组成,必须要有小数点。十进制小数形式:由数字和小数点组成,必须要有小数点。 例如:例如:0.123,123.,123.0,0.0等。等。 指数形

5、式:如指数形式:如123e3或或123E3都代表都代表123103。注意字母。注意字母e或或E 之前必须有数字,且之前必须有数字,且e或或E后面的指数必须为整数。后面的指数必须为整数。 规范化的指数形式:在字母规范化的指数形式:在字母e或或E之前的小数部分中,小数之前的小数部分中,小数 点左边应有一位且只能有一位非零的数字,如点左边应有一位且只能有一位非零的数字,如1.23e5。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家7 字符型常量字符型常量 C语言的字符常量是用单撇号括起来的一个字符,如语言的字符常量是用单撇号括起来的一个字符,如A,$等等 转义字符:以一个字符转义字符

6、:以一个字符“”开头的字符序列,代表特殊的含义。开头的字符序列,代表特殊的含义。 1到 到2位十六进制所代表的字符位十六进制所代表的字符xhh 1到 到3位八进制数所代表的字符位八进制数所代表的字符ddd 代表一个双引号字符代表一个双引号字符 代表一个单撇号字符代表一个单撇号字符 代表一个反斜杠字符代表一个反斜杠字符 ”“ 退格,将当前位置移到前一列退格,将当前位置移到前一列 b 水平制表,跳到下一个水平制表,跳到下一个 Tab位置位置t 换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头 n 含义含义字符形式字符形式 1到 到2位十六进制所代表的字符位十六进制所代表的字符xhh 1

7、到 到3位八进制数所代表的字符位八进制数所代表的字符ddd 代表一个双引号字符代表一个双引号字符 代表一个单撇号字符代表一个单撇号字符 代表一个反斜杠字符代表一个反斜杠字符 ”“ 退格,将当前位置移到前一列退格,将当前位置移到前一列 b 水平制表,跳到下一个水平制表,跳到下一个 Tab 位置位置t 换行,将当前位置移到下一行开头换行,将当前位置移到下一行开头 n 含义含义字符形式字符形式 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家8 例:转义字符使用例:转义字符使用 运行结果运行结果 #include void main() printf(123456789n); print

8、f(t123n); printf(123n); printf(hello!n); 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家9 变量变量 程序 内存 编写程序时,常常需要将数据存储在内存 中,方便后面使用这个数据或者修改这个 数据的值。 通常使用变量来存储数据。使用变量可以 引用存储在内存中的数据,并随时根据需 要显示数据或执行数据操纵。 存储 Rate Rate * 5% 将值存储为DiscAmt Rate-DiscAmt 10 0.5 将值存储为Result 9.5 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家10 变量命名变量命名 在 C 语言中,变量命

9、名需要遵循一定的规则 有效名称有效名称 principal cost_price marks_3 lastname city 无效名称无效名称 123rate currency$ discount% zip code 变量的命名规则:变量的命名规则: 变量名可以由字母、数字和变量名可以由字母、数字和 _(下划线)组合而成(下划线)组合而成 变量名不能包含除变量名不能包含除 _ 以外的任何特殊字符,如:以外的任何特殊字符,如:%、# 、逗号、逗号、 空格等空格等 变量名必须以字母或变量名必须以字母或 _(下划线)开头(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符)变量名

10、不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如语言中的某些词(例如 int 和和 float 等)称为保留字,具有特等)称为保留字,具有特 殊意义,不能用作变量名殊意义,不能用作变量名 C 语言区分大小写,因此变量语言区分大小写,因此变量 price 与变量与变量 PRICE 是两个不同是两个不同 的变量的变量 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家11 声明和使用变量声明和使用变量 声明变量:声明变量: Datatype variablename; 例如: int age; 定义时初始化变量:定义时初始化变量: Datatype vari

11、ablename = value; 例如: int age=20; 定义后初始化变量:定义后初始化变量: variablename = value; 例如: int age; age=20; 给变量赋值,除了给一个直接的值以外,还可以通过计算获得给变量赋值,除了给一个直接的值以外,还可以通过计算获得 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家12 基本数据类型基本数据类型 数据属于不同类别 Africa The quick brown fox TRUE 数据 非数值数值 整型非整型 9002.12 999 9/12/2003 2.175 123 Jackie Chan cha

12、r 数据类型 非数值数值 整型 int short int long int double float 非整型 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家13 整型整型 名称名称全称类型说明符全称类型说明符缩写类型说明符缩写类型说明符位数位数范围范围 整型整型intint32-231231-1 无符号整型无符号整型unsigned intunsigned32 短整型短整型short intshort16 无符号短整型无符号短整型unsigned short intunsigned short16 长整型长整型long intlong32 无符号长整型无符号长整型unsigne

13、d long intunsigned long32 参加教材20页表2.1 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家14 使用整型变量使用整型变量 声明:声明: int page_number; long int population; unsigned int age; 可按如下方式初始化:可按如下方式初始化: int max_marks = 100; page_number0; 在同一语句中可以声明多个类型相同的变量:在同一语句中可以声明多个类型相同的变量: int page_number, paper_width; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百

14、家成行家15 单精度浮点型单精度浮点型 float 用于声明用于声明在 C 语言中用于存储单精度浮点数的变量 float 32 位-3.410-383.410+38 ,7位有效数字 声明:声明: float selling_price; 初始化:初始化: float selling_price = 11.3; selling_price = 65.90; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家16 双精度浮点型双精度浮点型 内存内存 float double 213.5671435568967 64位位 取值范围:取值范围:-1.710-308 1.7 10308 16

15、位有效数字 声明:声明: double pressure_level; 初始化:初始化: double dvalue = 35.4; pressure_level = 213.5671435568967; double 用于声明用于声明在C语言中用于存储双精度浮点数的变量 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家17 short intintlongfloatdouble Turbo C2Byte2Byte4Byte4Byte8Byte VC+6.02Byte4Byte4Byte4Byte8Byte 数据类型所占的位数与机器硬件(数据类型所占的位数与机器硬件(CPU)、操作

16、系统、开发环)、操作系统、开发环 境有关。境有关。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家18 字符型字符型 年龄:_ 保险总额:_ 性别:_ 23 98340.00 M int/float char 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家19 字符型字符型 5 p $ 2 2 2 + 2 = 4 值值符号符号值值符号符号值值符号符号 0空字符空字符44,91 32空格空格45-92 33!46.93 3447/94 35#48 570 9 95- 36$58:96 37%59;97 122a z 38 gender=m; char gender=m

17、; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家21 char型与型与int型之间的关系型之间的关系 #include int main(void) char ch = b; printf(%c, %dn, ch, ch); ch = b - 32; printf(%c, %dn, ch, ch); return 0; #include int main(void) char ch = b; printf(%c, %dn, ch, ch); ch = b - (a - A) ; printf(%c, %dn, ch, ch); return 0; b, 98 B, 66 b,

18、98 B, 66 例:小写字母转换为大写字母例:小写字母转换为大写字母 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家22 标准函数标准函数 C语言提供了丰富的内部函数(又称库函数、语言提供了丰富的内部函数(又称库函数、 标准函数),其定义按函数类型存放在不同的标准函数),其定义按函数类型存放在不同的“头头 文件文件”中,使用时应该在源文件中的开始位置中,使用时应该在源文件中的开始位置包含包含 相应的头文件。相应的头文件。 用不同类型的库函数,要连不同的头文件用不同类型的库函数,要连不同的头文件 如,使用数学函数时,如,使用数学函数时, #include “math.h” 使用标

19、准使用标准I/O函数时,函数时, #include “stdio.h” 使用字符串函数时,使用字符串函数时, #include “string.h” 参见教材P24表2.3 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家23 标准函数标准函数 调用库函数形式:调用库函数形式: 例如,例如, sqrt(4.0) 得得2.0 fabs(-100.0) 得得100.0 使用库函数时,必须使用库函数时,必须注意注意以下几点:以下几点: 1)要包含相应)要包含相应“头文件头文件” 2)函数名要正确)函数名要正确 3)自变量要写在)自变量要写在括号括号里面,各自变量用逗号隔开;自变里面,各自

20、变量用逗号隔开;自变 量可以是常量、变量或表达式;要注意数据类型量可以是常量、变量或表达式;要注意数据类型。对于无对于无 参函数,其括号也不能少参函数,其括号也不能少 4)使用三角函数时,必须注意角度的单位是)使用三角函数时,必须注意角度的单位是“弧度弧度” 5)在调用函数处得到函数返回值)在调用函数处得到函数返回值 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家24 表达式表达式 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家25 表达式表达式 Z = ( X * 2 ) + ( 5 Y ) 操作数操作数操作数操作数 表达式表达式 表达式表达式表达式表达式 运算符

21、运算符 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家26 表达式表达式 表达式由操作数和运算符的组合而成表达式由操作数和运算符的组合而成 表达式中的操作数可以是变量、常量或者子表达式表达式中的操作数可以是变量、常量或者子表达式 运算符的主要类型有:运算符的主要类型有: 算术运算符算术运算符 赋值运算符赋值运算符 关系运算符关系运算符 逻辑运算符逻辑运算符 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家27 算术运算符算术运算符 算术 一元一元 二元二元 操作数操作数运算符 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家28 算术运算符和算术表达式算术

22、运算符和算术表达式 算术 一元一元 - + num+num=num+1 num-num=num-1 +num -num num+ num- 前缀前缀后缀后缀 二元二元 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家29 一元运算符举例一元运算符举例 表达式如何计算结果 (num1=5) num2 = +num1;num1 = num1 + 1; num2 = num1; num2 = 6; num1 = 6; num2 = num1+;num2 = num1; num1 = num1 + 1; num2 = 5; num1 = 6; num2 = -num1;num1 = num

23、1 - 1; num2 = num1; num2 = 4; num1 = 4; num2 = num1-;num2 = num1; num1 = num1 - 1; num2 = 5; num1 = 4; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家30 赋值运算符赋值运算符 变量变量 表达式表达式; ; Height = 177.5; Weight = 78; Gender = m; x = a+b; w = sin(a)+sin(b); y = i+ -j; 作用是将一个数据(或表达式的值)赋给一个变量。作用是将一个数据(或表达式的值)赋给一个变量。 注意:注意:赋值符号左

24、边只能是变量赋值符号左边只能是变量,不能是表达式,也不不能是表达式,也不 允许是常量。允许是常量。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家31 例:运算符应用例:运算符应用 /* 使用算术运算符使用算术运算符 */ #include int main(void) int a = 5, b = 3, c = 25, d = 12,q, r,i,e; q = a / b; / 除法 r = a % b; / 求模 i = +c; e = -d; printf (商为 %dn,q); printf (余数为 %dn,r); printf (%d加 1 后为 %dn,c,i);

25、printf ( %d减 1 后为 %dn, d ,e); return 0; 输出: 商为 1 余数为 2 25加 1 后为 26 12减 1 后为 11 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家32 复合赋值运算符复合赋值运算符 运算符表达式计算结果(假设 X=10) +=X += 5X = X + 515 -=X -= 5X = X - 55 *=X *= 5X = X * 550 /=X /= 5X = X / 52 %=X %= 5X = X % 50 X *= 5+sin(3.4) X =X*( 5+sin(3.4) 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花

26、,问遍百家成行家33 赋值运算符使用赋值运算符使用 #include int main (void) float book_price = 60.75; /存放书的价格 printf(n 书的价格 = %f,book_price); book_price += 12.50; printf(n 书的新价格 =%fn,book_price); return 0; book_price=book_price+12.50; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家34 sizeof运算符运算符 sizeof(int); float num; sizeof(num); 4 4 cha

27、r1 int4 short int2 long4 float4 double8 sizeof 运算符 返回的大小 使用使用 sizeof 运算符可以获得数据类型或变量占用内存空运算符可以获得数据类型或变量占用内存空 间的大小。其一般形式为:间的大小。其一般形式为: sizeof(type_name)或或sizeof(variable_name) sizeof 运算符的结果以字节为单位显示运算符的结果以字节为单位显示 注意:在32位计算机中,int类型的变量占4字节的内存大 小,和long类型的大小一样,所以现在基本上可以直接使 用int类型,而不需要使用long类型。 要学蜜蜂采百花,问遍百家

28、成行家要学蜜蜂采百花,问遍百家成行家35 sizeof使用举例使用举例 #include int main(void) printf(Data type Number of bytesn); printf(- -n); printf(char %dn, sizeof(char); printf(int %dn, sizeof(int); printf(short int %dn, sizeof(short); printf(long int %dn, sizeof(long); printf(float %dn, sizeof(float); printf(double %dn, sizeof

29、(double); return 0; 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家36 为什么要用为什么要用sizeof获得字长获得字长 因为因为 同种类型在不同的平台其占字节数不尽相同。比如同种类型在不同的平台其占字节数不尽相同。比如int在在16位、位、32 位和位和64位系统分别占位系统分别占2、4和和8个字节。个字节。 现象与危害:现象与危害: 在平台间移植时会出现问题,导致数据丢失或者溢出。在平台间移植时会出现问题,导致数据丢失或者溢出。 解决方案:解决方案: 用,并且只用用,并且只用sizeof获得字长。获得字长。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问

30、遍百家成行家37 类型溢出类型溢出 C语言直接提供的任何类型都有取值范围。当向其赋超语言直接提供的任何类型都有取值范围。当向其赋超 过此范围的数值,就会产生数值溢出,得到一个不正确过此范围的数值,就会产生数值溢出,得到一个不正确 的结果。的结果。 int的范围是的范围是-21474836482147483647 如果超出取值范围,给它一个小于如果超出取值范围,给它一个小于-2147483648或者大于或者大于 2147483647的数会如何呢?的数会如何呢? (定义一个整型变量,看看能否存储一个身份证号)(定义一个整型变量,看看能否存储一个身份证号) 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百

31、花,问遍百家成行家38 类型溢出解决方案类型溢出解决方案 解决方案:解决方案: 预先估算运算结果的可能范围,采用取值范围更大的类型。预先估算运算结果的可能范围,采用取值范围更大的类型。 1+2+3+ 1!+2!+3!+ 13+23+33+ 如果不需要处理负数,则采用无符号类型。如果不需要处理负数,则采用无符号类型。 在运算还没开始之前就判断运算数是否在合理的取值范围内。如在运算还没开始之前就判断运算数是否在合理的取值范围内。如 果超出,则停止运算,转错误处理。果超出,则停止运算,转错误处理。 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家39 类型转换类型转换 自动类型转换自动类

32、型转换 原则:把表示范围小的类型的值转换到表示范围大的类型的值原则:把表示范围小的类型的值转换到表示范围大的类型的值 short int long float double 强制类型转换强制类型转换 语法:语法:(类型名类型名) 变量或数值变量或数值 例如:例如: int a = 5, b = 3; float qu = (float)a / b; doublefloat long unsignedintchar,short 精度低精度低 精度高精度高 要学蜜蜂采百花,问遍百家成行家要学蜜蜂采百花,问遍百家成行家40 自动类型转换自动类型转换 在进行赋值操作时,会发生类型转换在进行赋值操作时,会发生类型转换 将取值范围小的类型转为取值范围大的类型是安全的将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的反之是不安全的 如果大类型的值在小类型能容纳的范围之内,则平安无事;但是,浮如果大类型的值在小类型能容纳的范围之内,则平安无事;但是,浮 点数转为整数,会丢失小数部分,非四舍五入。反之,转换后的结果点数转为整数,会丢失小数部分,非四舍五入。反之,转换后的结果 必

温馨提示

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

评论

0/150

提交评论