《C语言基础》PPT课件.ppt

上传人:za****8 文档编号:15803527 上传时间:2020-09-07 格式:PPT 页数:35 大小:2.53MB
返回 下载 相关 举报
《C语言基础》PPT课件.ppt_第1页
第1页 / 共35页
《C语言基础》PPT课件.ppt_第2页
第2页 / 共35页
《C语言基础》PPT课件.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
第二章 C语言基础,程序处理的基本过程,开始,输入数据,x=2,y=3,外设,z=x+y,数据处理,输出数据,5,外设,结束,数据表示,主 要 内 容,数据及其表示方法; 数据的基本运算; 基本输入输出。,程序是对数据按照算法处理,并输出结果的过程,因 此,以上三个问题是程序设计的基本问题。,2.1 基本数据类型,1/2 ?,数据是对客观事物特征抽象的符号化表示,客观事物不同,表 示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态 用开关表示,信件要用文字表示),计算机的处理方法也不同,因 此根据程序处理的数据对象,应规定数据的类型。,计算机由于工程的限制,只能在有限精度和有限范围内在工程 上近似地描述操作的对象数据。,数据类型决定了数据的如下特征:,数据的外部表示方式和内部存储方式不同; 表示的范围和精度不同; 对数据的处理方式不同。,C语言的数据类型,C语言的数据类型,基本类型,字符型 char,浮点型 float double,构造类型,数组、结构、联合、枚举型 enum,指针类型,空类型 void,整 型 int,2.2 常量(Constant)及其类型,常量的概念,在程序中不能改变的量称为常量。常量的类型由数据的外部表 现形式确定。,常量的外部形式及其确定的类型,整型常量的表示,整型常量根据表示的范围可以有一般整型和长整型,还可以表 示为十进制、八进制、十六进制形式。,浮点型常量的表示(只有十进制表示),浮点型常量有两种表示方式:小数表示方法,指数表示方法。 不区分单、双精度。,小数表示方式规则:一个小数点、符号和至少一位数字。,-2.0 1. 0.11113 -15.,指数表示方式规则:,规则:nem 表示 n10m,n小数部分,整型常量或小数形式表示的实型常量。,指数部分,两位整数。,n决定精度,一般精度为7位;m决定范围,范围10-38到10+38,当超过范围时称为“溢出”,小于10-38称为下溢,当0处理,大于10+38,称为上溢,系统出错!,123.456 表示为 0.123456E+3 -10000000 表示为 -1e7 0.0000123 表示为 0.123e-4,字符常量的表示,表示ASCII字符集中的一个字符。字符有一个整型值,即该字符 的ASCII码值。表示方法:a 、 ! 。撇号定界的一个字符。,值为:97,字符串常量的表示,双引号“定界的字符序列。系统会在最后一个字符后加NULL( ASCII码值为0),标志字符串的结束。,如:”HEFEI ” ”Hello!”,a 和 ”a”的区别?,内部 a :97 ”a”: 97NULL,72,101,108,108,111,33,0,H,e,l,l,o,!,0,”Hello!” 在内存中的存储结构:,转义字符,转义字符是C语言表示字符的特殊方法,用来表示ASCII字符集 中的控制字符,以及系统占用字符如:”。,表示方法: 字符; 八进制(十六进制整数,小于256),a 表示BELL b 表示BACKSPACE 字母 n 表示换行 r 表示回车 t 表示TAB, 表示 ? 表示? 符号 表示 ” 表示” 0 表示NULL,八进制十六进制数 x41 101 代表A,printf(“007”); printf(“语文n数学n”);,表示八进制或十六进制数作为ASCII码值所对应的字符。,2.3 变量(Variable),变量的概念,变量是在程序中可以改变的量,变量具有三个特征: 变量有名,用标识符命名; 变量有类型; 在程序中可以改变。,变量对应于内存中某一地址下的几个单元,变量名作为程序引 用变量的标志。变量的类型确定了变量在内存中所占单元的数量及 其表示的方式。变量的地址可以通过,a变量的引用标志 ,type是类型说明词,对于整型和字符型可加修饰说明。,基本类型说明符:int、char、float、double,修饰说明和基本说明的对应关系,long int a,b,c;,整型变量说明,说明词及性质如下:,short a,b,c; int e,f,g; long _qs,num;,unsigned d,e,f;,字符型变量的说明,说明符 所占字节数 范围 char 1 -128 +127 unsigned char 1 0 255,浮点型变量的说明,说明符 所占字节数 范围 精度 float 4 10-38 10+38 7位 double 8 10-308 10+308 16位,浮点型变量包含精度和范围两个概念。,超过精度位数后的位数值不确定。,float a; a=1.1111111111;,超过范围溢出(Overflow)。,超出精度部分,不准确。,float a,b,c; a=1.234e+20 ; b=2.345e+21; c=a*b ;,超出1038,溢出。,当运算结果大于10+38称 为上溢,系统出错。 当运算结果小于10-38称 为下溢,当0处理。,2.4 基本运算与表达式,程序的核心是对数据按照算法进行处理(运算)。C 语言提供 了强大的数据运算功能。数据通过运算符连接的式子称为表达式, 表达式根据运算关系对数据运算,并得到一个值。,变量赋值(Assignment)运算,格式: V=expression;/* 将expression的值赋给变量V*/,int a=2; /*说明赋值,编译时赋值。*/ int b; b=3+2; /*说明后赋值,执行时赋值。*/,说明: =是赋值号(动词); 赋值运算的左值只能是变量。,a=a+2; iCount=iCount+10;,a+2=12; /*Error!*/, 赋值号两边类型应该一致,如不一致,以变量类型转换。,int a=2.5 ; /* 2a */,算术运算(Arithmetic operators),功能:完成各种类型数据的加、减、乘、除及求余数运算。,双目算术运算(两个运算对象参加的运算),只能对整型或字符型数据运算。余数符号与被除数相同。,注意:乘号不能省略!,-12%5-2,-12%(-5),1%2,自加、自减运算(单目运算),说明: 运算对象只能是一个变量。,前置是先运算,后引用,而后置则是先引用,后运算。,2+; /* Error !*/,int i, x; i=5; x=i+;/* x=i;i=i+1;*/ i=5; x=+i;/* i=i+1;x=i;*/,#include void main(void) int a=2,b=3,c; c=a+b; printf(“%d”,c); ,CHAP2EX1,C语言尽可能多的从左向右结合符号形成运算符。,算术运算赋值,说明: 运算对象的左值只能是一个变量。,(a+2)+=5; /*Error !*/,%=运算的对象,必须是整型或字符型。,算术运算的说明,运算中的类型问题,运算对象的类型相同,运算结果取运算对象相同的类型。,int a; float b; b=2/3; /* 0b 0.0*/ a=5.0/2.0; /*2.5a 2 */,运算对象的类型不同,先将低等类型转换为高等类型后再进行 运算,运算结果取高等类型。等级原则如下:,char,int,long,double,float,2*16.0+15.0,double,double,double,运算时可以实行类型的强制转换,格式如下:,(type)expression 只对当前表达式起作用。,(float)a/(int)c+(float)(a+10) 2(int)fSum,类型转换举例,int a; float b; int c; c=a * 1.0 + b * 5 + (float) A;,i,d,f,i,c,d,d,f,f,d,d,c int,注意:赋值运算右值表达式的类型转换以左值变量的类型为准。,运算的优先级,表达式的运算是分步骤进行的。因此当一个表达式中出现多种 运算时,存在优先级的问题。,算术运算的优先级如下:,+、- -、(type) 单目运算,*、/、%,+、-,=、op=,相同优先级,结合顺序从左到右!,3*4+6/a- 6%3;,相同优先级,结合顺序从右到左!,int a,b=2,c=2; a=b*=c+=2;,可以用( )调整优先级。,c=c+2; b=b*c; a=b;,条件运算运算,格式: e1 ? e2 : e3,e1、e2、e3为表达式,当e1非0时,运算结果取e2的值;当e1 为0时,取e3的值。,int a=2,b=3,c=-1,d; d=a?b:c; /*d为3*/ a=0; d=a?b:c; /*d为-1*/,逗号表达式,格式: e1, e2, e3,en,用,分隔的表达式,计算顺序从 左到右,表达式取值为en;,sizeof 运算,形式: sizeof 数据对象; sizeof (类型说明符);,int a,b,c; b=sizeof a; /*b的值为2(TC) */ c=sizeof(float); /* c的值为4*/,x=(a=5,a+6)*10;,C语言常用数学函数,为方便用户使用,C语言系统定义了大量函数。数学函数主要目 的是求解常用数学函数,如sinX等。数学函数的原型定义在系统的 math.h头文件中。在使用此类函数时,应在程序的开始处加如下语 句: #include ,使用方法:,作为一个运算项参加表达式运算。,函数的参数(自变量)、函数的值 都是double类型。,z=sqrt(sin(x)*sin(x)+cos(y)*cos(y),2.5 数据的输入输出Input 输出结果: abcd%,格式说明符组,说明输出项列表中的各项的输出格式。格式 说名符组用%为开始标志。内容包含对一项输出对象的格式说明。,%-7.5f,格式说明类型表,格式说明符应和输出的列表项对应,产生相应的输出。其中输 出的表项应与格式说明符类型一致。,printf(“a=%5dnb=%f”, 2+3, 5.34);,格式说明串的一般形式和意义,% - m.n l 格式类型字符(一个字母),格式说明标志,对齐方式:缺省为右对齐,-为左对齐。,宽度.精度(位数),宽度:输出总列数,精度:小数位数(或字符位数)。,类型长度,缺省短整型,l表示long或double。,#include void main(void) float a; a=1.232326 ; printf(“a=%10.4f”,a); ,CHAP2EX2,各种类型数据输出举例,字符型输出,char ch=b; printf(“%5c, %-5c, %c” ,ch ,ch-32,s+1);,输出结果: b,B,t,字符串输出,#include void main(void) char chString =China; printf(%s,%6s,%-6sn,chString,chString,chString); printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei); ,China, China, China,Hefei HeHe,宽度不够,原样输出。,m.n,m为总输出列数, n 截取输出字符数。,整型输出(TC环境描述),#include void main(void) unsigned int a=65535; int b=-2; printf(a=%d,%o,%x,%u, a, a, a, a); printf(nb=%6d%8o%5X%6u,b, b, b, b); ,a=-1,177777,ffff,65535 b=-2177776FFFE65534,浮点数输出,include void main(void) float f=123.456; printf(%f,%10f,%10.2f,%-10.2fn,f ,-f ,f ,-f); ,123.456001,-123.45600,123.46,-123.46,小数保留两位,四舍五入截断。,符号占一位!,输入函数scanf(),格式: scanf(“格式说明字符串”,输入变量地址列表);,说明: m域宽可自动截取,空格作为各数据项的分隔符。,void main(void) int i,j; scanf(%3d%3d, 123456,实型变量输入时不能规定精度;,scanf(“%7.2f”, ERROR!,数据输入用SPACE分隔,当格式字符用其他字符隔离,输入 时也应在对应位置上输入相同的字符;,void main(void) int i,j; scanf(i=%d,j=%d, ,输入项只能是变量,且必须用地址形式。,字符输入输出函数,输入:getchar ( ); 输出:putchar ( );,#include void main(void) char ch1,ch2=n; ch1=getchar( ); putchar(ch1); putchar(ch2); putchar(a); r r a,输入,程序设计举例,已知:有一圆柱体,底半径为r,圆柱高为h。 求: 底面积、表面积,底周长、体积。,定义变量 fAread、 fAreas, fLen, fV 输出; r 、h输入。,r,h,建立模型 fLen=2r fAread=r2, fAreas=2r2+2rh=2fAread+fLenh fV=fAreadh,程序如下:,#include void main(void) float fAread,fAreas,fLen,fV,r,h; /*说明变量*/ scanf(“%f,%f”, /*输出结果*/ ,CHAP2EX3,求一元二次方程ax2+bx+c=0的根,#include #include void main(void) float a,b,c,x1,x2; scanf(“%f,%f,%f”, ,CHAP2EX4,b*b-4.*a*c0,思考题,总结各类型常量、变量的特征和操作方法。 自己找一些代数式写出对应的C语言表达式。 编程求圆锥体的体积。(个人作业) 编程求扇形面积。(个人作业) 结合数学问题用C编程求解。(个人作业),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!