第3章最简单的C程序设计1-改.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 程序设计
- 资源描述:
-
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第3章 最简单的C程序设计 -顺序程序设计,3.1,顺序程序设计举例,3.2 数据的表现形式及其运算,3.3 C语句,3.4 数据的输入输出,P2627,三种基本结构,(1)顺序结构,A,B,3.1,顺序程序设计举例,例3.1 有人用温度计测量出用华氏法表示的温度(如 F,今要求把它转换为以摄氏法表示的温度(如 C)。,解题思路:找到二者间的转换公式,f,代表华氏温度,c代表摄氏温度,P37,流程图,P37图3.1,例3.1 P38,#include,int main(),float,f,c;,f=64.0;,c=(5.0/9)*(f-32);,printf(f=,%f,nc=,%f,n,f,c);,return 0;,定义f和c为单精度浮点型变量,指定f的值,计算c的值,输出f和c的值,例3.2,解题思路:确定计算本息和的公式。,从数学知识可知:若存款额为p0,则:,活期存款一年后本息和为:,p1=p0(1+r1),一年期定期存款,一年后本息和为:,p2=p0(1+r2),两次半年定期存款,一年后本息和为:,例3.2,#include,int main(),float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;,p1=p0*(1+r1);,p2=p0*(1+r2);,p3=p0*(1+r3/2)*(1+r3/2);printf(”%f,n,%f,n,%f,n,”,p1,p2,p3);,return 0;,定义变量同时赋予初值,3.2,数据的表现形式及其运算,3.2.1,常量和变量,3.2.2 数据类型,3.2.3 整型数据,3.2.4 字符型数据,3.2.5 浮点型数据,3.2.6 怎样确定常量的类型,3.2.7 运算符和表达式,字符常量,定义,:,用,单引号,括起来的单个,普通字符,或,转义字符,.,字符常量的,值,:该字符的,ASCII,码值,转义字符及其含义:P40表3.1,转义字符,含义,n,v,r,a,ooo,t,b,f,“,xhh,转义字符,含义,换行,垂直制表,回车,响铃,单引号,3位8进制数代表的字符,水平制表,退格,换页,反斜线,双引号,2位16进制数代表的字符,如 101 -A 012 -n,例:,A-101-x41-65,符号常量举例,#define PRICE 30,void main(),int num,total;,num=10;,total=num*PRICE;,printf(total=%d,total);,运行结果:total=300,语言程序设计,第三章,C,优点:,含义清楚,一改全改,注意:,变量名,和,变量值,两个不同的概念,变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。程序从变量中取值,实际上是通过变量名找到相应的内存地址,从其存储单元中读取数据。,a 变量名,变量值,存储单元,3,图 3.3 P41,先定义,后使用,标识符,定义:用来标识变量、常量、函数等的字符序列,组成:,只能由,字母,、,数字,、,下划线,组成,且第一个字母必须,是字母或下划线,不能使用关键字和预定义标识符,长度:最长32个字符一般系统只识别前8个字符,命名原则:,见名知意,不宜混淆,例:判断下列标识符号合法性,sum Sum M.D.John day Date 3days,student_name#33 lotus_1_2_3,char ab _above$123,M.D.John,3days,#33,char,$123,ab,语言程序设计,第三章,C,P42,变量命名:遵循,标识符命名规则,3.2.2,数据类型 P42,所谓,类型,,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式,不同的类型分配不同的长度和存储形式,C,数,据,类,型,基本类型,派生类型,枚举类型enum,空类型void,字符类型char,指针类型,整 型,实型,单精度型float,双精度型double,数组,结构体struct,共用体union,短整型short,长整型long,整型int,数据类型决定:,1.数据占内存字节数,2.数据取值范围,3.算法,语言程序设计,第三章数据描述,C,在程序中对用到的,所有数据都必须指,定其数据类型。,P43,整型数据的分类 P44,最基本的整型类型,基本整型(int型):占,2,个或,4,个字节,短整型(short,int,):VC+6.0中占2,个字节,长整型(long,int,):VC+6.0中占4,个字节,双长整型(long long int):C99新增的,(,不讲,),基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(signed),int,16,-3276832767,(signed),short,16,-3276832767,(signed),long,32,-21474836482147483647,16,unsigned,int,065535,32,04294967295,unsigned,long,unsigned,short,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,说明,:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,语言程序设计,第三章数据描述,C,VC6.0为4个字节,P45表3.2,1.整型数据在内存中的存放形式,数据在内存中是以二进制形式存放的,以,补码,表示。,一个整型变量在内存中占2或4个字节。,5的补码如何表示?,P44,2.整型变量的分类 P46,有符号基本整型 signed int,无符号基本整型 unsigned int,基本整型(常用),int,short int,long int,见P45 表3.2,注意:,取值范围,举例P47,整型数据的溢出,一个int 型变量的最大值为32767,如果再加1,会出现什么情况?,例:,#include,void main(),int a,b;,a=32767;,b=a+1;,printf(“%d,%d”,a,b);,运行结果:,32767,-32768,遇此情况就发生“溢出”,,但运行时并不报错。将变量,b改成long 型可得32768。,3.2.4 字符型数据 P47,1.字符常量,C的字符常量是用,单引号(即撇号),括起来的一个字符,如,a,x,D,等都是字符常量,注意,,a,和,A,是不同的字符常量(见ASCII)。,除了以上形式的字符常量外,C还允许用一种特殊形式的字符常量,就是,以一个,”,”,开头的字符,序列,例如,在printf函数中的,n,,它代表一个“换行”符,在屏幕上是不能显示的。,常用的以“”开头的特殊字符见表3.1 P40。,例:,#include,void main (),printf(,“,abctderftgn,”,);,printf(htibbjk);,程序运行(打印机上)结果:,fab c gde,h ji k,显示屏上结果:,f gde,h jk,字符数据在内存中的存储形式及其使用方法,将一个字符常量放到一个字符变量中,而是将该字符的相应的ASCII代码放到存储单元中。例如字符a的ASCII代码为97,b为98,在内存中变量c1、c2的值如图(a)所示。实际上是以二进制形式存放的,如图(b)所示。,P48,C1 C2 C1 C2,(a)(b),97,98,例:向字符变量赋以整数,#include,void main(),char c1,c2;,c1=97;,c2=98;,printf(“,%c,%c,n”,c1,c2);,printf(“%d%dn”,c1,c2);,运行结果:,a b,97 98,字符型数据与整,型数据可以通用,但要,注意,见P48,char c=255;,printf(“%dn”,c);,unsigned,char c=255;,printf(“%dn”,c);,c1=a;,c2=b;,字符常量与字符串常量不同,字符串常量,P40,定义:用双引号,(“”),括起来的字符序列,存储:,每个字符串尾,自动,加一个 0 作为字符串结束标志,h e l l o,0,例,字符串“hello”,在内存中,a,a 0,例,a,“a”,例:,char ch;,ch=“A”;,例:,char ch;,ch=A;,语言程序设计,第三章,C,P157,请注意0是代表ASCII码为0的控制字符,即“空操作”字符。它将用在字符串中。,P157,3.2.5,浮点型数据 P49,实型常量的表示方法,实数在语言中又称,浮点数,,,实数有两种表示形式:,1.十进制小数形式,。它由数字和小数点组成(注意必须有小数点)。0.123、.123、123.0、123.、0.0都是十进制数形式。,2.指数形式,如123e3或123E3都代表12310,3,但注意字母e(或E)之前必须有数字。且e后面指数必须为整数,如e3、2.1e3.5、e等都不是合法的指数形式。,规则见P50,实型变量,P46,float,:,占4字节,,(,32,位),提供,6,位,有效数字,double,:,占8字节,,(,64,位),提供,15位,有效数字,例 float a;,a=11111.111;,/*a=11111.1*/,double b;,b=111111.111111111111;,/*b=111111.111111111*/,语言程序设计,第三章,C,注意:P51,P50表3.4,实型数据的舍入误差,例:3.4 P47,#include,void main(),float a,b;,a=123456.789e5;,b=a+20;,printf(“%f”,b);,900+20,运行结果:,b与a的值相等,应当避免将一个很大的数和一个很小的数直接相加或减,否则就会“丢失”小的数。,3.2.7,运算符和表达式 P52,1.,基本的算术运算符:,+:,正号运算符(单目运算符),-:负号运算符(单目运算符),*:乘法运算符,/:除法运算符,%:求余运算符,+:加法运算符,-:减法运算符,1.,基本的算术运算符,说明 P53,两个,整数相除,的结果为,整数,如5/3的结果值为,舍去小数部分,%,运算符,要求参加运算的运算对象(即操作数)为,整数,,结果也是整数。如8%3,结果为2,算术运算符和表达式,基本算术运算符:,+,-,*/%,结合方向:从左向右,优先级:,-,-,*/%,-,+-,(2)(3)(4),说明:,“-”可为,单目,运算符时,右结合性,两整数相除,结果为整数,%要求两侧均为整型数据,例 5/2 =,-5/3.0 =,例 5%2 =,-5%2 =,1%10 =,5%1 =,5.5%2,例 5/2 =,2,-5/3.0=,-1.6,例 5%2 =,1,-5%2 =,-1,1%10 =,1,5%1 =,0,5.5%2,(,),语言程序设计,第三章,C,2.,自增、自减运算符:P53,自增、自减运算符:,作用是使变量的值或减,+i,,-i:在使用i之前,先使i的值加(减)1,i+,i-:在使用i之后,使i的值加(减)1,自增、自减运算符 P53,作用是使变量的值增1或减1,如:,i,一一i(称为前置运算),i,i一一(称为后置运算),对于一个变量实行+或的前置运算、后置运算,其结果是相同的,即都是使该变量的值加1或减1。例如:,int i=5,y;int i=5,y;,i+;等价于 +i;,y=i;y=i;,其结果均为 i=6,y=6,但是如果将其用在表达式中与其他运算结合在一起时,其效果将有所不同。,例如:,int i=5,x,y;int i=5,x,y;,x=i+;x=+i;,y=i;y=i;,其结果:x=5,y=6 x=6,y=6,后置运算是“,先引用,,后增(或减)值,”。,前置运算是“,先增,(或减)值,后引用,”。,自增、自减运算符,+-,作用:使变量值加1或减1,种类:,前置 +i,-i (,先执行i,+1,或i-1,,,再使用i值),后置 i+,i-(先使用i值,再执行i,+1,或i-1,),例,j=3;k=+j;,j=3;k=j+;,j=3;printf(“%d”,+j);,j=3;printf(“%d”,j+);,a=3;b=5;c=(+a)*b;,a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,语言程序设计,第三章数据描述,C,说明:,+-不能用于常量和表达式,如,5+,(a+b)+,+-,结合方向:,自右向左,优先级:-+-,-,*/%,-,+-,(2)(3)(4),例-i+,-(i+),i=3;printf(“%d”,-i+);,/-3,例 j+k;(j+)+k;,P53,例-i+,i=3;printf(“%d”,-i+);,语言程序设计,第三章数据描述,C,3.,各类数值型数据间的混合运算,P54,整型、单精度型、双精度型数据可以混合运算,。,例如,10+a+1.5-8765.1234b,是合法的。在进行运算时,不同类型的数据要,先转换成同一类型,,然后进行运算。,不同类型数据间的转换,隐式转换(自动转换),什么情况下发生,运算转换,-不同类型数据混合运算时,赋值转换,-把一个值赋给与其类型不同的变量时,输出转换,-输出时转换成指定的输出格式,函数调用转换,-实参与形参类型不一致时转换,运算转换规则:,不同类型数据运算时先,自动,转换成同一类型,语言程序设计,第三章数据描述,C,double,float,long,unsigned,int,char,short,低,高,说明:,必定的转换,运算对象类型不同时转换,例,char ch;,int i;,float f;,double d;,ch/i,+,f*d,-,(f+i),int,int,double,double,double,double,double,double,int,int,double,double,double,double,double,double,10+a,+,i*f,-,d/l,例 int i;,float f;,double d;,long l;,显式转换(强制转换)P56,一般形式:,(,类型名,),(,表达式),例 (int)(x+y),(int)x+y,(double)(3/2),(int)3.6,说明:强制转换得到所需类型的,中间变量,原变量类型不变,例:#include,void main(),float x;,int i;,x=3.6;,i=(int)x;,printf(“x=%f,i=%d”,x,i);,结果:x=3.600000,i=3,精度损失问题,较高类型向较低类型转换时可能发生,语言程序设计,第三章数据描述,C,例#include,#define PRICE 13.5,void main(),int num=3;,float total;,char ch1,ch2=D;,total=num*PRICE;,ch1=ch2-A+a;,printf(“total=%f,ch1=%cn”,total,ch1);,宏定义,变量定义,输出结果,运行结果:,total=40.500000,ch1=d,语言程序设计,第三章数据描述,C,运算符和表达式,C,运,算,符,算术运算符:(+-*/%+-),关系运算符:(=!=),逻辑运算符:(!&|),位运算符 :(|&),赋值运算符:(=及其扩展),条件运算符:(?:),逗号运算符:(,),指针运算符:(*&),求字节数 :(sizeof),强制类型转换:(类型),分量运算符:(.-),下标运算符:(),其它 :(()-),语言程序设计,第三章数据描述,C,学习运算符应注意:,运算符功能,与运算量关系,要求运算量个数,要求运算量类型,运算符优先级别,结合方向,结果的类型,语言程序设计,第三章数据描述,C,3.3,C语句 P57,C程序,源程序文件1,源程序文件2,源程序文件n,预处理命令,函数n,函数1,数据声明,函数首部,函数体,数据声明,执行语句,C,语句概述,C语句:以“,;,”作分隔符,编译后产生机器指令.,C语句分类,表达式语句:表达式加分号构成,。,空语句:,;,P58,程序控制语句(9种):,if()else,switch,for(),while(),dowhile(),continue,break,return,分支,循环,辅助控制,如 total=total+limit;,a=3;,func();,printf(“Hello,world!n”);,声明部分不应称为语句如:int;,P57,复合语句:用,括起来的一组语句,一般形式:,数据说明部分;,执行语句部分;,说明:,“”后不加分号,语法上和单一语句相同,复合语句可嵌套,int z;,z=x+y;,t=z/100;,printf(“%f”,t);,例2.18 求5!,#include,void main(),int i,t;,t=1;,i=2;,while(i0)t=a;,按语法规定if后面的()内是一个条件,,如 if(x0),如果 if(a=b;)0)t=a;。,在if的条件中不能包含赋值语句。,赋值运算符和表达式 P60,简单赋值运算符,符号:=,格式:,变量标识符=表达式,作用:将一个数据(常量或表达式)赋给一个变量,复合赋值运算符,P379查表,种类,:,+=-=*=/=%=,a+=3,a=a+3,x*=y+8,x=x*(y+8),x%=3,x=x%3,例 a=3;,d=func();,c=d+2;,语言程序设计,第三章数据描述,C,下面是赋值表达式的例子:,a+=a-=a*a,如果a的初值为12,表达式的求解步骤如下:,先行“a-=a*a”的运算,,a=a-a*a=12-144=-132,再进行,a+=-132,,a=a+(-132)=-132-132-264,P62,说明:,结合方向:,自右向左,优先级:,14,左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换,规则:使赋值号右边表达式值,自动,转换成其左边变量的类型,例,3=x-2*y;,例,float f;,int i;,i=10;,f=i;,则,f=10.0,例,int i;,i=3.56;/,结果i=3,;,例:a=b=c=5,a=(b=5),a=5+(c=6),a=(b=4)+(c=6),a=(b=10)/(c=2),/,表达式值为5,a,b,c值为5,/,b=5;a=5,/,表达式值11,c=6,a=11,/,表达式值10,a=10,b=4,c=6,/,表达式值5,a=5,b=10,c=2,语言程序设计,第三章数据描述,C,逗号运算符和表达式,形式:,表达式1,表达式2,表达式n,结合性:从左向右,优先级:,15,逗号表达式,的值:等于表达式n的值,用途:,常用于循环for语句中,例 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);,/a=15,表达式值60,/a=15,表达式值20,/,赋值表达式,表达式值18,x=18,/,逗号表达式,表达式值18,x=3,/1,2,3,/3,2,3,语言程序设计,第三章,C,补充,内容,第三章第1部分结束!,例:,#include,void main(),int x,y=7;,float z=4;,x=(y=y+6,y/z);,printf(x=%dn,x);,运行结果:x=3,语言程序设计,第三章数据描述,C,例1 字符型变量与一个字节的整型数是相容的,#include,void main(),char ch1,ch2,ch3,ch4;,ch1=a;,ch2=A;,ch3=ch1-32;,ch4=ch2+1;,printf(“ch1=%d,ch2=%d,%c=%d,%c=%dn”,ch1,ch2,ch3,ch3,ch4,ch4);,运行结果:,ch1=97,ch2=65,A=65,B=66,例2:写出下面程序的运行结果。,#include,void main(),int i=2,j=3,k,n,m;,k=i+j;printf(“%d”,k);,k=k+1;printf(“%d”,k);,n=k*3;printf(“%d”,n);,m=n%j;printf(“%d”,m),m=m-i;printf(“%d”,m);,n=k/j;printf(“%d”,n);,运行结果如下:,5 6 18 0 -2 2,例3:写出下面程序运行结果。,#include,void main(),int i=1,j,k;,j=i+;printf(“j=%d,i=%dn”,j,i);,k=+i;printf(“k=%d,i=%dn”,k,i);,j=i-;printf(“j=%d,i=%dn”,j,i);,k=-i;printf(“k=%d,i=%dn”,k,i);,运行结果:,j=1,i=2,k=3,i=3,j=3,i=2,k=1,i=1,例4:写出程序运算结果。,#include,void main(),int a=2,b=1,c=1,d=6,e=9;,b+=a;printf(“%d”,b);,c*=a;printf(“%d”,c);,d/=a;printf(“%d”,d);,e%=a;printf(“%d”,e);,运行结果:,3 2 3 1,例5:写出程序运行结果。,#include,void main(),float m,n,k;,k=(3.1,m=2.0+2.1);printf(“%f”,k);,n=(m=3.8,k);printf(“%f”,n);,运行结果:,4.100000 4.100000,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


第3章最简单的C程序设计1-改.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14664954.html