《基本程序设计》课件.ppt_第1页
《基本程序设计》课件.ppt_第2页
《基本程序设计》课件.ppt_第3页
《基本程序设计》课件.ppt_第4页
《基本程序设计》课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第二章基本程序设计,主要内容,数据及其表示方法;数据的基本运算;基本输入输出。,程序是对数据按照算法处理,并输出结果的过程,因此,以上三个问题是程序设计的基本问题。,2.1数据类型,1/2?,数据是对客观事物特征抽象的符号化表示,客观事物不同,表示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态用开关表示,信件要用文字表示),计算机的处理方法也不同,因此根据程序处理的数据对象,应规定数据的类型。,计算机由于工程的限制,只能在有限精度和有限范围内在工程上近似地描述操作的对象数据。,数据类型决定了数据的如下特征:,数据的外部表示方式和内部存储方式不同;表示的范围和精度不同;对数据的处理方式不同。,C语言的数据类型,C语言的数据类型,基本类型,字符型char,浮点型floatdouble,构造类型,数组、结构、联合、枚举型enum,指针类型,空类型void,整型int,2.2常量(Constant)及其类型,常量的概念,在程序中不能改变的量称为常量。常量的类型由数据的外部表现形式确定。,常量的外部形式及其确定的类型,整型常量的表示,整型常量根据表示的范围可以有一般整型和长整型,还可以表示为十进制、八进制、十六进制形式。,浮点型常量的表示(只有十进制表示),浮点型常量有两种表示方式:小数表示方法,指数表示方法。不区分单、双精度。,小数表示方式规则:一个小数点、符号和至少一位数字。,-2.01.0.11113-15.,指数表示方式规则:,规则:nem表示n10m,n小数部分,整型常量或小数形式表示的实型常量。,指数部分,两位整数。,n决定精度,一般精度为7位;m决定范围,范围10-38到10+38,当超过范围时称为“溢出”,小于10-38称为下溢,当0处理,大于10+38,称为上溢,系统出错!,123.456表示为0.123456E+3-10000000表示为-1e70.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!”在内存中的存储结构:,符号常量,格式:#define符号常量名常量,好处:(1)以简代繁;(2)一改全改。,注意:常量符号名习惯用大写字母。,例如:#definePI3.14159,说明:必须先说明,后使用。,2.3变量(Variable)及其类型,变量的概念,变量是在程序中可以改变的量,变量具有三个特征:变量有名,用标识符命名;变量有类型;在程序中可以改变。,变量对应于内存中某一地址下的几个单元,变量名作为程序引用变量的标志。变量的类型确定了变量在内存中所占单元的数量及其表示的方式。变量的地址可以通过,a变量的引用标志,type是类型说明词,对于整型和字符型可加修饰说明。,基本类型说明符:int、char、float、double,修饰说明和基本说明的对应关系,longinta,b,c;,整型变量说明,说明词及性质如下:,shorta,b,c;inte,f,g;long_qs,num;,unsignedd,e,f;,字符型变量的说明,说明符所占字节数范围char1-128+127unsignedchar10255,浮点型变量的说明,说明符所占字节数范围精度float410-3810+387位double810-30810+30816位,浮点型变量包含精度和范围两个概念。,超过精度位数后的位数值不确定。,floata;a=1.1111111111;,超过范围溢出(Overflow)。,超出精度部分,不准确。,floata,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*/,inta=2;/*说明赋值,编译时赋值。*/intb;b=3+2;/*说明后赋值,执行时赋值。*/,说明:=是赋值号(动词);赋值运算的左值只能是变量。,a=a+2;iCount=iCount+10;,a+2=12;/*Error!*/,赋值号两边类型应该一致,如不一致,以变量类型转换。,inta=2.5;/*2a*/,算术运算(Arithmeticoperators),功能:完成各种类型数据的加、减、乘、除及求余数运算。,双目算术运算(两个运算对象参加的运算),只能对整型或字符型数据运算。余数符号与被除数相同。,注意:乘号不能省略!,-12%5-2,-12%(-5),1%2,自加、自减运算(单目运算),说明:运算对象只能是一个变量。,前置是先运算,后引用,而后置则是先引用,后运算。,2+;/*Error!*/,inti,x;i=5;x=i+;/*x=i;i=i+1;*/i=5;x=+i;/*i=i+1;x=i;*/,#includevoidmain(void)inta=2,b=3,c;c=a+b;printf(“%d”,c);,CHAP2EX1,C语言尽可能多的从左向右结合符号形成运算符。,想一想:,inti=3;printf(“%d,%d”,-i+,i);printf(“%dn”,i);输出:printf(“%d,%d”,4-i+,i);printf(“%dn”,i);输出:printf(“%d,%d”,-+i,i);printf(“%dn”,i);输出:printf(“%d,%d”,4-+i,i);printf(“%dn”,i);输出:,-3,34,0,45,-6,56,-3,67,算术运算赋值,说明:运算对象的左值只能是一个变量。,(a+2)+=5;/*Error!*/,%=运算的对象,必须是整型或字符型。,例:a=12;a+=a-=a*a;,/等价于a=a+(a=a-(a*a),A=-264,例:intm=5,y=2;y+=y-=m*=y;,/等价于y=y+(y=y-(m=m*y),y=-16,赋值表达式的值与变量值相等,且可嵌套。,算术运算的说明,运算中的类型问题,运算对象的类型相同,运算结果取运算对象相同的类型。,inta;floatb;b=2/3;/*0b0.0*/a=5.0/2.0;/*2.5a2*/,运算对象的类型不同,先将低等类型转换为高等类型后再进行运算,运算结果取高等类型。等级原则如下:,char,int,long,double,float,2*16.0+15.0,double,double,double,运算时可以实行类型的强制转换,格式如下:,(type)expression只对当前表达式起作用。,(float)a/(int)c+(float)(a+10)2int(fSum),类型转换举例,inta;floatb;intc;c=a*1.0+b*5+(float)A;,i,d,f,i,c,d,d,f,f,d,d,cint,注意:赋值运算右值表达式的类型转换以左值变量的类型为准。,运算的优先级,表达式的运算是分步骤进行的。因此当一个表达式中出现多种运算时,存在优先级的问题。,算术运算的优先级如下:,+、-、(type)单目运算,*、/、%,+、-,=、op=,相同优先级,结合顺序从左到右!,3*4+6/a-6%3;,相同优先级,结合顺序从右到左!,可以用()调整优先级。,条件运算运算,格式:e1?e2:e3,e1、e2、e3为表达式,当e1非0时,运算结果取e2的值;当e1为0时,取e3的值。,inta=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(类型说明符);,inta,b,c;b=sizeofa;/*b的值为2*/c=sizeof(float);/*c的值为4*/,x=(a=5,a+6)*10;,例:a=3*5,a*4;a=3*5,a*4,a+5;例:x=(a=3,6*3);x=a=3,6*a;例:a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,例:#includemain()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);,C语言常用数学函数,为方便用户使用,C语言系统定义了大量函数。数学函数主要目的是求解常用数学函数,如sinX等。数学函数的原型定义在系统的math.h头文件中。在使用此类函数时,应在程序的开始出加如下语句:#include,使用方法:,作为一个运算项参加表达式运算。,函数的参数(自变量)、函数的值都是double类型。,y=sqrt(sin(x)*sin(x)+cos(x)*cos(x),2.5数据的输入输出Inputc为一字符型或整型变量。,例:#includemain()inta1,a2;charc1,c2;a1=97;a2=65;c1=a;c2=A;putchar(a1);putchar(a2);putchar(c1);putchar(c2);putchar(n);a1=getchar();c1=getchar();putchar(a1);putchar(t);putchar(c1);,(2)输出:putchar()向标准输出设备(显示器)输出一个字符。调用格式:putchar(c);c为一字符型或整型变量和常量。如:putchar(A);putchar(65);均输出字母A。,程序运行结果:aAaA输入:9797,格式输入输出函数,输出函数printf(),格式:printf(“输出格式字符串”,输出项列表);,格式描述。,用,分隔的常量、变量、表达式表。,输出格式字符串可包含以下内容:,普通字符,如:a=,转义字符,如:n,对于普通字符和转义字符在相应位置原样输出,其中%用%。printf(“nabcd%”);输出结果:abcd%,格式说明符组,说明输出项列表中的各项的输出格式。格式说名符组用%为开始标志。内容包含对一项输出对象的格式说明。,%-7.5f,格式说明类型表,格式说明符应和输出的列表项对应,产生相应的输出。其中输出的表项应与格式说明符类型一致。,printf(“a=%5dnb=%f”,2+3,5.34);,输出结果:a=5b=5.340000,格式说明串的一般形式和意义,%-m.nl格式类型字符(一个字母),格式说明标志,对齐方式:缺省为右对齐,-为左对齐。,宽度.精度(位数),宽度:输出总列数,精度:小数位数(或字符位数)。,整型长度,缺省短整型,l长整型。,#includevoidmain(void)floata;a=1.232326;printf(“a=%10.4f”,a);,a=1.2323,各种类型数据输出举例,字符型输出,charch=b;printf(“%5c,%-5c,%c”,ch,ch-32,s+1);,输出结果:b,B,t,字符串输出,#includevoidmain(void)charchString=China;printf(%s,%6s,%-6sn,chString,chString,chString);printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei);,China,China,China,HefeiHeHe,宽度不够,原样输出。,m.n,m为总输出列数,n截取输出字符数。,整型输出,#includevoidmain(void)unsignedshorta=65535;shortb=-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,65535b=-2177776FFFE65534,浮点数输出,includevoidmain(void)floatf=123.456;printf(%f,%10f,%10.2f,%-10.2fn,f,-f,f,-f);,123.456001,-123.45600,123.46,-123.46,小数保留两位,四舍五入截断。,符号占一位!,输入函数scanf(),格式:scanf(“格式说明字符串”,输入变量地址列表);,说明:m域宽可自动截取,空格作为各数据项的分隔符。,voidmain(void)inti,j;scanf(%3d%3d,123456,实型变量输入时不能规定精度;,scanf(“%7.2f”,ERROR!,数据输入用SPACE分隔,当格式字符用其他字符隔离,输入时也应在对应位置上输入相同的字符;,voidmain(void)inti,j;scanf(i=%d,j=%d,输入项只能是变量,且必须用地址形式。,程序设计举例,已知:有一圆柱体,底半径为r,圆柱高为h。求:底面积、表面积,底周长、体积。,定义变量fAread、fAreas,fLen,fV输出;r、h输入。,r,h,建立模型fLen=2rfAread=r2,fAreas=2r2+2rh=2fAread+fLenhfV=fAre

温馨提示

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

评论

0/150

提交评论