已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 C语言程序设计基础,2,教学目标,理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 了解sizeof运算符 了解标准函数(库函数)的使用 理解表达式 使用算术运算符 掌握赋值运算符的用法 理解类型转换,3,C语言中的基本元素,程序,指令,标识符 关键字 常量 运算符 分隔符 ,常量是在程序中保持不变的量,常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值,4,计算机中常量的表示形式,计算机中常量的表示形式 1、字面常量或直接常量,亦称常数从字面即可判别的量 例如:100,12.5,s等 2、符号常量用一个标识符代表一个常量。但要事前定义 例如 #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等 十六进制:前缀为“0X”或“0x”,其数码取值为09、AF或af。例如:0X2A,0XA0,0XFFFF等 当任意整型常量后跟一个字母u或U时,表示是无符号整型。例如,123u,6,浮点型常量,浮点型常量有2种不同的表现形式: 十进制小数形式:由数字和小数点组成,必须要有小数点。 例如:0.123,123.,123.0,0.0等。 指数形式:如123e3或123E3都代表123103。注意字母e或E之前必须有数字,且e或E后面的指数必须为整数。 规范化的指数形式:在字母e或E之前的小数部分中,小数点左边应有一位且只能有一位非零的数字,如1.23e5。,7,字符型常量,C语言的字符常量是用单撇号括起来的一个字符,如A,$等 转义字符:以一个字符“”开头的字符序列,代表特殊的含义。,8,例:转义字符使用,运行结果,#include void main() printf(“123456789n“); printf(“t123n“); printf(“123n“); printf(“hello!“n“); ,9,变量,程序,编写程序时,常常需要将数据存储在内存中,方便后面使用这个数据或者修改这个数据的值。,通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。,存储 Rate,Rate * 5%,将值存储为DiscAmt,Rate-DiscAmt,10,0.5,将值存储为Result,9.5,10,变量命名,在 C 语言中,变量命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,currency$,discount%,zip code,变量的命名规则: 变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,11,声明和使用变量,声明变量: Datatype variablename; 例如: int age; 定义时初始化变量: Datatype variablename = 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,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,13,整型,参加教材20页表2.1,14,使用整型变量,声明: int page_number; long int population; unsigned int age; 可按如下方式初始化: int max_marks = 100; page_number0;,在同一语句中可以声明多个类型相同的变量: int page_number, paper_width;,15,单精度浮点型,float 用于声明在 C 语言中用于存储单精度浮点数的变量,float,32 位,-3.410-383.410+38 ,7位有效数字,声明: float selling_price; 初始化: float selling_price = 11.3; selling_price = 65.90;,16,双精度浮点型,213.5671435568967,64位,取值范围:-1.710-308 1.7 10308,16 位有效数字,声明: double pressure_level; 初始化: double dvalue = 35.4; pressure_level = 213.5671435568967;,double 用于声明在C语言中用于存储双精度浮点数的变量,17,数据类型所占的位数与机器硬件(CPU)、操作系统、开发环境有关。,18,字符型,在线保险单 年龄:_ 保险总额:_ 性别:_,23,98340.00, M ,数值型,字符型,int/float,char,19,字符型, 5 p $,有效的字符型值,“2“,2,正确,2 + 2 = 4,X,20,字符型,占 8 位内存,signed 或 unsigned,Signed -128 至 +127,unsigned 0 至 255,示例:,char gender; gender=m;,char gender=m;,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, 98 B, 66,例:小写字母转换为大写字母,22,标准函数,C语言提供了丰富的内部函数(又称库函数、标准函数),其定义按函数类型存放在不同的“头文件”中,使用时应该在源文件中的开始位置包含相应的头文件。,用不同类型的库函数,要连不同的头文件 如,使用数学函数时, #include “math.h” 使用标准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)自变量要写在括号里面,各自变量用逗号隔开;自变量可以是常量、变量或表达式;要注意数据类型。对于无参函数,其括号也不能少 4)使用三角函数时,必须注意角度的单位是“弧度” 5)在调用函数处得到函数返回值,24,表达式,Sum,=,num1,+,num2,表达式,25,表达式,Z = ( X * 2 ) + ( 5 Y ),26,表达式,表达式由操作数和运算符的组合而成 表达式中的操作数可以是变量、常量或者子表达式 运算符的主要类型有: 算术运算符 赋值运算符 关系运算符 逻辑运算符,27,算术运算符,算术,一元,二元,操作数,操作数,运算符,二元运算符,+,-,*,/,%,28,算术运算符和算术表达式,算术,一元,-,+,num+,num=num+1,num-,num=num-1,+num -num,num+ num-,前缀,后缀,二元,29,一元运算符举例,30,赋值运算符,变量 表达式;,Height = 177.5; Weight = 78; Gender = m; x = a+b; w = sin(a)+sin(b); y = i+ -j;,最简单的运算符:,=,作用是将一个数据(或表达式的值)赋给一个变量。 注意:赋值符号左边只能是变量,不能是表达式,也不允许是常量。,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); printf (“ %d减 1 后为 %dn“, d ,e); return 0; ,输出: 商为 1 余数为 2 25加 1 后为 26 12减 1 后为 11,32,复合赋值运算符,X *= 5+sin(3.4),X =X*( 5+sin(3.4),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);,使用 sizeof 运算符可以获得数据类型或变量占用内存空间的大小。其一般形式为: sizeof(type_name)或sizeof(variable_name) sizeof 运算符的结果以字节为单位显示,注意:在32位计算机中,int类型的变量占4字节的内存大小,和long类型的大小一样,所以现在基本上可以直接使用int类型,而不需要使用long类型。,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(double); return 0; ,36,为什么要用sizeof获得字长,因为 同种类型在不同的平台其占字节数不尽相同。比如int在16位、32位和64位系统分别占2、4和8个字节。 现象与危害: 在平台间移植时会出现问题,导致数据丢失或者溢出。 解决方案: 用,并且只用sizeof获得字长。,37,类型溢出,C语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数值,就会产生数值溢出,得到一个不正确的结果。 int的范围是-21474836482147483647 如果超出取值范围,给它一个小于-2147483648或者大于2147483647的数会如何呢? (定义一个整型变量,看看能否存储一个身份证号),小蛇能吞下大象吗?,38,类型溢出解决方案,解决方案: 预先估算运算结果的可能范围,采用取值范围更大的类型。 1+2+3+ 1!+2!+3!+ 13+23+33+ 如果不需要处理负数,则采用无符号类型。 在运算还没开始之前就判断运算数是否在合理的取值范围内。如果超出,则停止运算,转错误处理。,39,类型转换,自动类型转换 原则:把表示范围小的类型的值转换到表示范围大的类型的值 short int long float double 强制类型转换 语法:(类型名) 变量或数值 例如: int a = 5, b = 3; float qu = (float)a / b;,40,自动类型转换,在进行赋值操作时,会发生类型转换 将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的 如果大类型的值在小类型能容纳的范围之内,则平安无事;但是,浮点数转为整数,会丢失小数部分,非四舍五入。反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用,好的编译器会发出警告,41,强制类型转换,消除从大到小的警告 l = (long)i; 可以通过“(类型)表达式”的方式把表达式的值转为任意类型,屠 龙 刀,倚 天 剑,例如:float x=100.6; int y; y=x%3 ;,强转时,你必须知道你在做什么 强转与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业借款合同风险控制指南
- 标准劳动合同文本集锦
- 跨企业合作协议模板合同条款全面覆盖版
- 阳台地基加固施工方案
- 砖砌体拆除施工组织计划方案
- 复工复产工作方案
- 高烈度地震区隧道二次衬砌抗震加固方案
- 无人机应急救援场景响应速度评估分析方案
- 疏浚工程施工方案
- 2025年电商数据安全合同协议
- 电子制造行业品质控制标准
- 2025年公安联考申论真题与答案解析
- ERP系统运行使用管理办法
- 朗姆酒知识培训课件
- 9《屈原列传》公开课一等奖创新教学设计 统编版高中语文选择性必修中册
- 沟槽管件快装施工方案及流程
- 2025国考伊春市知识产权保护岗位申论题库含答案
- 2025年湖南海利高新技术产业集团有限公司三季度公开招聘(宁夏有岗)笔试历年参考题库附带答案详解
- 李健金融学课件
- 银行副行长竞聘面试问题及答案
- 小儿肠炎伴脱水护理
评论
0/150
提交评论