《基本程序设计》课件.ppt

上传人:牧羊曲112 文档编号:5021149 上传时间:2023-05-30 格式:PPT 页数:40 大小:655.50KB
返回 下载 相关 举报
《基本程序设计》课件.ppt_第1页
第1页 / 共40页
《基本程序设计》课件.ppt_第2页
第2页 / 共40页
《基本程序设计》课件.ppt_第3页
第3页 / 共40页
《基本程序设计》课件.ppt_第4页
第4页 / 共40页
《基本程序设计》课件.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《基本程序设计》课件.ppt》由会员分享,可在线阅读,更多相关《《基本程序设计》课件.ppt(40页珍藏版)》请在三一办公上搜索。

1、第二章 基本程序设计,主 要 内 容,数据及其表示方法;数据的基本运算;基本输入输出。,程序是对数据按照算法处理,并输出结果的过程,因此,以上三个问题是程序设计的基本问题。,2.1 数据类型,1/2?,数据是对客观事物特征抽象的符号化表示,客观事物不同,表示的方法也不同(人数以整数表示,圆面积用小数表示,灯的状态用开关表示,信件要用文字表示),计算机的处理方法也不同,因此根据程序处理的数据对象,应规定数据的类型。,计算机由于工程的限制,只能在有限精度和有限范围内在工程上近似地描述操作的对象数据。,数据类型决定了数据的如下特征:,数据的外部表示方式和内部存储方式不同;表示的范围和精度不同;对数据

2、的处理方式不同。,C语言的数据类型,C语言的数据类型,基本类型,字符型 char,浮点型 float double,构造类型,数组、结构、联合、枚举型 enum,指针类型,空类型 void,整 型 int,2.2 常量(Constant)及其类型,常量的概念,在程序中不能改变的量称为常量。常量的类型由数据的外部表现形式确定。,常量的外部形式及其确定的类型,整型常量的表示,整型常量根据表示的范围可以有一般整型和长整型,还可以表示为十进制、八进制、十六进制形式。,浮点型常量的表示(只有十进制表示),浮点型常量有两种表示方式:小数表示方法,指数表示方法。不区分单、双精度。,小数表示方式规则:一个小数

3、点、符号和至少一位数字。,-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 表示为-1e70.0000123 表示为 0.123e-4,字符常量的表示,表示ASCII字符集中的一个字符。字符有一个整型值,即该字符的ASCII码值。表示方法:a、!。撇号定界的一

4、个字符。,值为: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)一改全改。,注意:常量符号名习惯用大写字母。,例如:#define PI 3.14159,说明:必须先说明,后使用。,2.3 变量(Variable)及其类型,变量的概念,变量

5、是在程序中可以改变的量,变量具有三个特征:变量有名,用标识符命名;变量有类型;在程序中可以改变。,变量对应于内存中某一地址下的几个单元,变量名作为程序引用变量的标志。变量的类型确定了变量在内存中所占单元的数量及其表示的方式。变量的地址可以通过&运算获得。,内存,int a;,a变量的引用标志&a对应a的地址。,整型变量占两个内存单元。,变量必须先说明后使用!说明的目的是确定变量的名字和类型。,变量的说明,形式:type 变量名表;/*以,分隔的标识符表*/,int a,b,c;,type是类型说明词,对于整型和字符型可加修饰说明。,基本类型说明符:int、char、float、double,修

6、饰说明和基本说明的对应关系,long int a,b,c;,整型变量说明,说明词及性质如下:,short a,b,c;int e,f,g;long _qs,num;,unsigned d,e,f;,字符型变量的说明,说明符 所占字节数 范围 char 1-128+127unsigned char 1 0 255,浮点型变量的说明,说明符 所占字节数 范围 精度float 4 10-38 10+38 7位double 8 10-308 10+308 16位,浮点型变量包含精度和范围两个概念。,超过精度位数后的位数值不确定。,float a;a=1.1111111111;,超过范围溢出(Overf

7、low)。,超出精度部分,不准确。,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+

8、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,自加、自减运算(单目运算),说明:运算对象只能是一个变量。,前置是先运算,

9、后引用,而后置则是先引用,后运算。,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语言尽可能多的从左向右结合符号形成运算符。,想一想:,int i=3;printf(“%d,%d”,-i+,i);printf(“%dn”,i);输出:printf(“%d,%d”,4-i+,i);printf(“%dn”,i);输出:printf(“%d,%d”,-+i,i);pri

10、ntf(“%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,例:int m=5,y=2;y+=y-=m*=y;,/等价于y=y+(y=y-(m=m*y),y=-16,赋值表达式的值与变量值相等,且可嵌套。,算术运算的说明,运算中的类型问题,运算对象的类型相同,运算结果取运算对象

11、相同的类型。,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)2int(fSum),类型转换举例,int a;float b;int c;c=a*1.0+b*5+(floa

12、t)A;,i,d,f,i,c,d,d,f,f,d,d,c int,注意:赋值运算右值表达式的类型转换以左值变量的类型为准。,运算的优先级,表达式的运算是分步骤进行的。因此当一个表达式中出现多种运算时,存在优先级的问题。,算术运算的优先级如下:,+、-、(type)单目运算,*、/、%,+、-,=、op=,相同优先级,结合顺序从左到右!,3*4+6/a-6%3;,相同优先级,结合顺序从右到左!,可以用()调整优先级。,条件运算运算,格式:e1?e2:e3,e1、e2、e3为表达式,当e1非0时,运算结果取e2的值;当e1为0时,取e3的值。,int a=2,b=3,c=-1,d;d=a?b:c;

13、/*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*/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

14、,c),b,c);,例:#include main()int x,y=7;float z=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 数据的输入输出Input&Output

15、,C 语言没有输入输出语句,输入输出是通过系统定义的标准函数来实现的。,I/O函数的原型定义在stdio.h头文件中,在引用I/O函数时,应应在程序开始处加预处理语句包含头文件。#include,输入输出的概念,输入输出指的是内存变量或程序和外部设备间的数据交换。,内存,外设,输入,输出,输入输出函数要描述:输入输出的量;输入输出的格式;输入输出的设备。,2.字符输入输出函数,(1)输入:getchar()从标准输入设备(键盘)读入一个字符。调用格式:c=getchar();c 为一字符型或整型变量。,例:#include main()int a1,a2;char c1,c2;a1=97;a2

16、=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 输入:97 9 7,格式输入输出函数,输出函数printf(),格式:printf(“输出格式字符串”,输出

17、项列表);,格式描述。,用,分隔的常量、变量、表达式表。,输出格式字符串可包含以下内容:,普通字符,如:a=,转义字符,如:n,对于普通字符和转义字符在相应位置原样输出,其中%用%。printf(“nabcd%”);输出结果:abcd%,格式说明符组,说明输出项列表中的各项的输出格式。格式说名符组用%为开始标志。内容包含对一项输出对象的格式说明。,%-7.5f,格式说明类型表,格式说明符应和输出的列表项对应,产生相应的输出。其中输出的表项应与格式说明符类型一致。,printf(“a=%5dnb=%f”,2+3,5.34);,输出结果:a=5 b=5.340000,格式说明串的一般形式和意义,%

18、-m.n l 格式类型字符(一个字母),格式说明标志,对齐方式:缺省为右对齐,-为左对齐。,宽度.精度(位数),宽度:输出总列数,精度:小数位数(或字符位数)。,整型长度,缺省短整型,l长整型。,#include void main(void)float a;a=1.232326;printf(“a=%10.4f”,a);,a=1.2323,各种类型数据输出举例,字符型输出,char ch=b;printf(“%5c,%-5c,%c”,ch,ch-32,s+1);,输出结果:b,B,t,字符串输出,#include void main(void)char chString=China;prin

19、tf(%s,%6s,%-6sn,chString,chString,chString);printf(“%4s%6.2s%-6.2s,Hefei,Hefei,Hefei);,China,China,China,Hefei HeHe,宽度不够,原样输出。,m.n,m为总输出列数,n 截取输出字符数。,整型输出,#include void main(void)unsigned short a=65535;short 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,65535b=

20、-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

21、.2f”,ERROR!,数据输入用SPACE分隔,当格式字符用其他字符隔离,输入时也应在对应位置上输入相同的字符;,void main(void)int i,j;scanf(i=%d,j=%d,输入项只能是变量,且必须用地址形式。,程序设计举例,已知:有一圆柱体,底半径为r,圆柱高为h。求:底面积、表面积,底周长、体积。,定义变量 fAread、fAreas,fLen,fV 输出;r、h输入。,r,h,建立模型fLen=2rfAread=r2,fAreas=2r2+2rh=2fAread+fLenhfV=fAreadh,程序如下:,#include void main(void)float f

22、Aread,fAreas,fLen,fV,r,h;/*说明变量*/scanf(“%f,%f”,/*输出结果*/,CHAP2EX3,2.写出下列程序运行结果。#include void main(void)long l=2147483647;char c1=x;short i,c2=865;printf(“c1=%c,c2=%cn”,c1,c2);i=l;printf(“i=%d,i=%x,l=%ld,l=%lxn”,i,i,l,l);,3.求一元二次方程ax2+bx+c=0的根。,#include#include void main(void)float a,b,c,x1,x2;scanf(“

23、%f,%f,%f”,b*b-4.*a*c0,问题,习题二,从键盘依次输入三个数,计算并输出三个 数的最大值(用三项条件运算符完成)。2.求sin300+sin600+cos300+cos600之和。3.求一个任意半径的圆的面积及周长,且小数位保留两位小数。,选择题、填空题全做,上机题,4.从键盘输入一个华氏温度,转换成对应的摄氏温度。公式:C=5/9(F-32)5.输入一个三位数,依次输出该数的个位、十位、百位数字。6.从键盘任意输入一个小写字母,将其转换成对应的大写字母和10进制数。,思考题,总结各类型常量、变量的特征和操作方法。自己找一些代数式写出对应的C语言表达式。编程求圆锥体的体积。结合数学问题用C编程求解。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号