语言程序设计电子与教案PPT课件_第1页
语言程序设计电子与教案PPT课件_第2页
语言程序设计电子与教案PPT课件_第3页
语言程序设计电子与教案PPT课件_第4页
语言程序设计电子与教案PPT课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

-,1,C程序设计第三章简单的c程序顺序结构,主讲教师:鲁萍西安建筑科技大学理学院,-,2,第三章简单的C程序设计顺序,3.1顺序程序设计举例3.2数据的表现形式及其运算常量、变量整形、字符型、浮点型运算符及表达式3.3C语句赋值语句3.4数据的输入和输出scanf和printfgetchar和putchar,小结,习题,-,3,顺序程序设计举例,#includeintmain()floatf,c;f=68.0;c=(5/9)*(f32);printf(f=%fnc=%fn,f,c);return0;,A0301华氏温度(如68)转为摄氏温度(如20),输入f的值,输出c的值,F=68.000000C=0.000000,5.0,C=20.000000,-,4,顺序程序设计举例,#definePI3.1416intmain()floatr,a,b;r=2;a=2*PI*r;b=PI*r*r;printf(“半径=%fn周长=%fn面积=%fn,r,a,b);return0;,A0302例:根据圆半径,求圆周长和圆面积。,输入半径r的值,输出a、b的值,半径=2.000000周长=18.849600面积=28.274400,周长a=2*pi*r,面积b=pi*r*r,scanf(%f,键盘输入,-,5,一、数据的概念在计算机科学中,数据是指能由程序处理的对象。日常生活中的数字、字符、图形图象及声音等,在计算机中均作为数据看待。,二、数据的类型在高级语言中,每一个数据都属于一个特定的类型。不同类型的数据的表示、存储及操作不相同。,3.2数据的表现形式及其运算,姓名Alice性别F年龄20英语80数学85平均82.5,字符串字符整型实型实型实型,-,6,3.2.1常量与变量,3.3.1常量和符号常量1、常量:在程序运行过程中,其值不能被改变的量。常量说明关键字:const。2、常量的分类:1)整型常量。如:1234,562)实型常量。如:123.233)字符常量。如:A,a,m4)字符串常量。如:A,China5)转义字符。如:n,t,123,xF96)符号常量。如:#definePI3.1415926#defineN30,-,7,转义字符,例:在屏幕上输出一个笑脸(ASCII码值为2)#includevoidmain()printf(%cn,2);/*输出笑脸字符*/,增加一个转义字符的图,-,8,符号常量,概念:用一个标识符表示常量#define标识符常量表达式例:#definePI3.1415926注意:1)标识符一般用大写2)不能给符号常量赋值例:PI=6;错误常用于:(1)把有意义的常数定义为符号常量(2)在程序中多次出现的常数,定义为符号常量优点:含义清晰;一改全改,#include#definePI3.1416main()floatr,area;printf(pleaseenterr:);scanf(%f,-,9,符号常量的应用,例2.3录入50个学生的成绩,统计10090,8980,7970,6960,590个分数段学生的人数,并显示统计结果(统计结果记为count),自顶向下:1:录入50个学生的成绩2:统计个分数段学生的人数3:显示统计结果,#defineN50,30,30,30,30,N,N,-,10,3.2.2标示符与变量,1、变量变量:在程序执行过程中其值可以改变的存储单元,该存储单元的名字称为变量名。变量有不同的类型,存放不同类型的数据。注意:变量要先定义再使用定义变量:类型变量名表;,inta,b,c;a=3;b=8;c=a+b;a=5;,3,8,11,5,-,11,变量的命名规则,标示符用于命名程序中的实体对象(如变量,符号常量函数,数组等)(1)标示符是以字母或下划线开头,由字母、数字及下划线等组成的字符序列,如:abc,_x1,AB67,NAME2;(2)序列长度最大值依编译系统而定;(3)区分大小写字母,如abc和Abc是不同的变量(4)不允许使用关键字作变量名。例:123dr+43auto5A*2#88(错误)_123dr_43Auto(正确),-,12,C语言的数据类型图,在C语言中,数据类型用相应的关键字表示,-,13,3.2.3整型,类型存储大小取值范围int2字节-215215-1-3276832768short2字节-215215-1-3276832768long4字节-231231-1longlong8字节-263263-1,身份证号,学号?-没有负数!,符号位,数值位,115,-,14,C语言的unsigned和signed数,对整型和字符型1、signed:有符号数可以存放正数和负数2、unsigned:无符号数只能存放正数(实数没有unsigned和signed的区分)如:身份证号,学号等。取消符号位,与右边的各位一起用来表示数值本身。,整型默认有符号型,-,15,3.2.3整型,unsignedinnsignedshortinnsignedlongint0232-1,类型存储大小取值范围int16bit-215215-1-3276832768shortint16bit-215215-1-3276832768longint32bit-231231-1,-,16,intmain()charc1,c2;c1=a;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);return0;,3.2.4字符型数据,a,98,97,(1)可以是转义字符n(2)存储:字符的ASCII码(3)输出:整数或字符(4)允许对字符进行算术运算(即对ASCII码值进行算术运算),A0303例:字符数据的算术运算。,-,17,3.2.4字符型数据,intmain()charc1,c2;c1=a;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);return0;,运行结果:ab9798,a,98,97,字符ASCII码a97b98c99,c1+1;,a+1;,以字符方式输出,以整数方式输出,A0303例:字符数据的算术运算。,-,18,课堂练习:给定一个小写字母,输出大写字母。#includeintmain()charc1,c2;c1=a;c2=c1-32;printf(%c,c2);return0;,运行结果:Pleaseinputachar:a(输入)A(输出),3.2.4字符型数据,-,19,3.2.5浮点型数据,实型变量分为三种:1、单精度:float(有效数字7位)2、双精度:double(有效数字16位)3、长双精度:longdouble(有效数字19位)。,-,20,3.4.2舍入误差,intmain()floata,b;a=12345678900.0;b=a+20;printf(%fn,b);return0;,实际:12345678868.000000,期望:12345678920.0000000,错误原因:float有效数字7位,后面的数字无意义。,如何得到正确计算结果?,double,A0304例:数据有效长度,-,21,数据在内存中的存储方式,1.内存单元的地址:内存单元的编号,与变量名对应。,2.内存单元的内容:变量的值。,例:对如下定义:inta,b;charc;floatx;变量a,b,c,x的内存分配情况:,-,22,基本数据类型练习,1.以下正确的字符常量是()A)AB)398C)AD)xgh2.以下正确的整数常量是()A)082B)0 xhfC)654D)9.03.以下是正确的实型常量是()A)9.0B)0.5eC)1.2e+2.6D)e-24.设有chara=a;inti=2;printf(%c,a+i)的结果为:A)cB)dC)rD)g5、以下转义字符用于换行的是()。A)rB)tC)nD),-,23,3.2.7运算符和表达式,1基本算数运算符+(加),-(减法/取负),*(乘),/(除),%(模运算,即求余数),-,24,关于除法运算/的说明,a/b:a,b都是整数,其商取整数,小数部分舍弃例:5/2=2结果取整商值a/2=4897/2的整商值a,b其一是实型,另一个自动转换为实型例如:5./2=2.5;5/2.=2.5例如:1/2=0;1/2.=0.5,-,25,关于求余数运算符的说明,a%b:求a除以b的余数。a,b均为整型,或者单字符数据运算结果为整数,结果为a除以b的余数。例:5%2=1a%2=197%25.0%2错,-,26,自增(+)、自减(-)运算实例,A0305例:自增自减运算符intmain()inta,b,c,d;a=5;b=5;c=+a;d=b+;printf(c=%dn,c);printf(d=%dn,d);printf(a=%d,b=%dn,a,b);return0;,先将a值自加1,再将增加后的a值赋值给c先将b的值赋给d,然后b再自加1,输出结果:c=6d=5a=6,b=6,+ii=i+1,使i的值增-ii=i-1,使i的值减,-,27,自增(+)、自减(-)运算,2、用法与运算规则(1)前置运算:i、i;即先增减、后运算先使i增(减)1,再以增、减后的值参与其它运算(2)后置运算:i、i。即先运算、后增减变量先参与其它运算,然后再使变量的值增、减,-,28,【自增、自减运算的几点说明】,1)+、-只能用于变量,不能用于常量和表达式。例1:5+、-(a+b)错误2)其结合方向是从右到左,注意前置、后置问题。例2:inta=5,b;b=-a+;运算结果:a=6b=-5(a+:后置运算,先引用变量的值,然后变量值加1)3)在表达式中,避免这种用法x+x+x+,-,29,算术表达式,例:设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式结果不同的是()A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b),例:a/*简单表达式*/2/*简单表达式*/(x+y)/21/*复杂算术表达式*/(1)概念:用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语法规则的式子,称为表达式。(2)表达式求值:按运算符的优先级高低次序执行,-,30,算术表达式,常用函数:1)幂次方用函数pow()3)平方根用函数sqrt()表示使用以上数学函数需要#include例1:代数式3x3+x-2算术表达式:3*pow(x,3)+x-2例2代数式算术表达式:a/2-(6*y)/(5*x),-,31,例:inti;floatf;doubled;longe如何计算:10+a+i*f-d/e?,3.7不同类型数据之间的转化,1.自动转化2.类型强制转化,-,32,混合运算的转化规则,转化规则:运算符两侧的操作数的数据类型不同,则系统先转换、后运算,首先将数据自动转换成同一类型,然后在同一类型数据间进行运算。,doublefloatlongunsignedintchar,short,1)表示必须的转换。char和short型必须转换成int型,float型必须转换成double型。2)表示不同类型的转换方向。,3.7不同类型数据之间的转化,-,33,类型强制转化和自动转化实例,inti;floatf;doubled;longe10+a+i*f-d/e计算机从左到右扫描1)10+a10+97=107i*fi,f转为double运算107转为double+i*fe转为double上述类型转换为系统自动进行。,doublefloatlongunsignedintchar,short,-,34,数据类型强制性转化,y=3x=3.5,A0306例:取整运算main()floatx=3.5;inty;y=(int)x;printf(y=%d,y);printf(x=%f,x);,强制转换:转化为为指定的数据类型。格式:(要转换成的数据类型)(被转换的表达式),强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。,将3.5转化为整型数赋值给y,但x本身的类型和其值未改变,-,35,(1)类型名称必须用()括号括起来(2)强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。(3)当被转换的表达式是一个简单表达式(如简单变量)时,外面的一对圆括号可以缺省。,数据类型强制性转化说明,(double)a(float)5/2(float)(5/2),(double)(a)(float)(5)/2将5转换成实型再除以2;(=2.5)(float)(5/2)将5整除2的结果转换成实型2.0,-,36,算数运算符练习(1),1.设intx,y=3;执行x=y+之后,x,y的值分别为:A)3,5B)4,5C)3,4D)4,42.设有intm,i=5;执行m=+i之后,m,i的值分别为:A)5,5B)5,6C)6,6D)6,53.表达式7%5的值为:()A)1B)2.5C)2D)04.设有a=2,b=5,x=3.5;表达式(float)a+b/2+(int)x%2的结果值为:()A)3B)5C)5.0D)7,-,37,5、floatx=3.5,y=3.6,则表达式(int)(x+y)的结果值为:()A)6B)4C)3D)76、floatx=3.5,y=3.6,则表达式(int)x+y的结果值为:()A)7B)4C)3.6D)6.67、设有chara=A;inti=a/2;printf(%d,i)的结果为:()A)65B)66C)32D)67,算数运算符练习(2),-,38,3.3C语言的语句,1.控制语句:(1)选择结构控制语句:if()else,switch()(2)循环结构控制语句:dowhile(),for(),while(),break,continue(3)其它控制语句:goto,return2.函数调用语句:由一次函数调用加一个分号构成。例如,printf(ThisisaCfunctionstatement.);3.表达式语句:表达式后加一个分号构成。例如:num=5;是一个赋值语句。4.空语句:仅由一个分号构成,不执行任何操作。例:;,-,39,5.复合语句:由大括号括起来的一组语句构成。例如:main()/*复合语句。*/,3.2C语言的语句,注意:没有分号,-,40,赋值语句及赋值运算符,赋值运算符:=变量=表达式将表达式的值赋给变量例1:t=x+5p=q=r=9x=(y=1)-(z=2),P=9,x=-1,注意:赋值运算符按自右而左的结合顺序,例:floatf;f=23;/*计算机中f=23.00000*/,注意:将右边表达式类型转化为左边变量的类型,-,41,例:a+=2a=a+2a*=3a=a*3x+=y+7x=x+(y+7)a*=5+6a=a*(5+6)a/=3*5a=a/(3*5),复合赋值运算,+=-=*=/=%=printf(输入abc:);scanf(“%lf%lf%lf”,A0307例:求ax2+bx+c=0方程的根。设b2-4ac0a,b,c由键盘输入,计算disc=b2-4ac,计算根x1和x2,输入abc,输出x1,x2,计算p和q,-,44,printf函数输出数据,功能:向屏幕输出一个或多个任意类型的数据。,语法:printf(格式控制字符串,输出项表列);,例:printf(max=%d,c);,printf(Theareais%f,a);,printf(%c%cn,c1,c2);,printf(Pleaseinputachar:);,整形实型字符型多用于提示信息,printf(sum=%d,a+b);,-,45,printf函数输出数据,(1)常用格式符之一%d,按整型数的实际长度输出十进制数%f,输出实数(单、双精度),以小数形式输出%c,输出一个字符%s,输出一个字符串,A0308例:输出不同类型的数据#includevoidmain()inti=2;charc=H;floatx=3.14;printf(i=%d,c=%c,x=%fn,i,c,x);,输出结果i=2,c=H,x=3.140000,-,46,printf格式字符说明,%f,不指定字段宽度,整数全部输出,并输出6位小数%m.nf,指定输出共m列,其中小数n位,例:输出实数#includevoidmain()floatx,y;x=111111.111;y=222222.222;printf(%fn,x+y);,运行结果333333.328125,%8.1f,运行结果333333.3,-,47,scanf函数输入数据,功能:从标准输入设备中读字符串,语法:scanf(控制字符串,参数1,参数2,),1)输入的数据存放在参数列表中,参数必须是地址(scanf(%d,%d,输入:100,200输出:a=100,b=200,1.输入变量前要加符号scanf(%d%d,输入:100200输出:a=100,b=200,用系统默认的分隔符:回车、tab键、空格,例如:scanf(a=%d,b=%d,输入a=2,b=3。,-,49,A0309例:从键盘输入一个小写字母,输出大写字母。#includeintmain()chara,b;printf(Pleaseinputachar:);scanf(%c,运行结果:Pleaseinputachar:a(输入)A(输出),a=getchar();,3.

温馨提示

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

评论

0/150

提交评论