《c语言教案》PPT课件.ppt_第1页
《c语言教案》PPT课件.ppt_第2页
《c语言教案》PPT课件.ppt_第3页
《c语言教案》PPT课件.ppt_第4页
《c语言教案》PPT课件.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计,第一章C语言概述,C语言的特点:1、语言结构简单,使用方便、灵活,32个关键字2、运算符丰富,共有34种运算符3、数据结构丰富,具有现代语言的各种数据结构4、具有结构化的控制语句5、语法限制不严格,程序设计自由度大6、C语言允许直接访问物理地址7、生成目标代码质量高,程序执行效率高8、用C语言写的程序可移植性好,第二章上机步骤,菜单,编辑窗口,1、调用TurboC程序(1)进入DOS,进入TurboC子目录,调用TC例如:C盘根目录下存放TC子目录C:C:CDTCC:TCTC(2)我的电脑或资源管理器TC.EXE2、使用TC编辑窗口和菜单之间切换F10Alt+f,r,c,第三章数据类型、运算符与表达式,3.1C的数据类型3.2常量与变量3.3整型数据3.4实型数据3.5字符型数据3.6变量赋初值3.7各类数值型数据间的混合运算3.8算术运算符和算术表达式3.9赋值运算符和赋值表达式3.10逗号运算符和逗号表达式,3.1C的数据类型,整型实型基本类型字符型枚举型数组类型数据类型构造类型结构体共用体指针类型空类型,3.2常量与变量,1、常量:在程序运行过程中其值不能被改变的量符号常量:用一个标识符代表一个常量。#definePRICE30/*习惯大写*/main()intnum,total;num=10;total=num*PRICE;printf(total=%d,total);P39-3.1注意:不能重新赋值好处:1、含义清楚2、一改全改2、变量:其值可以改变的量条件:1、变量应有一个名字2、在内存中占据一定的存储空间,通过变量名找到相应的内存地址,从存储单元中读取数据标识符:字母、数字和下滑线三种字符组成,且第一个字符必须是字母或下滑线(除32各关键字)用来标识变量名、符号常量名、函数名、数组名等注意:1、区分大小写sum和SUM是两个不同的变量名一般变量名用小写字母表示,符号常量用大写2、标识符的长度,TurboC允许32个字符为了可读性最好不好超过8个,强制定义:在C中所有变量都要先定义后使用目的:1、保证程序中变量名使用正确2、每个变量定义的时候指定一个确定的类型,编译的时候为其分配相应的存储空间3、指定每一个变量的类型,编译的时候检查变量所进行的运算是否合法如a%b,3.3整型数据,1、整型常量:十进制八进制:以0开头的数-0123十六进制:以0 x开头的数-0 x122、整型变量:分类:基本型:int,2字节-3276832767短整型:short(int),2字节长整型:long(int),4字节无符号型:存储单元中全部存放数据本身,不包括符号,数据范围扩大一倍。无符号整型:unsignedint065535无符号短整型:unsignedshort无符号长整型:unsignedlong,整型变量的定义:inta,b;unsignedshortc,d,e;main()inta,b,c,d;unsignedintu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(a+u=%d,b+u=%dn,c,d);p44-3.2整形数据的溢出main()inta,b;a=32767;b=a+1;printf(“%d,%d”,a,b);P44-3.3,溢出操作是将该数减去整形数据类型的模65536,运行结果:32767-32768原因:整形数据存放形式:二进制,变反加1,(4)整型常量的类型1、一个整型常量其值在-215-215-1范围之内,认为int型,可赋值给intlongint2、一个整型常量其值在-231-231-1范围之内,认为long型,可赋值给longint3、如short和int型数据在内存中占用相同长度,则short和int表示的数据范围相同4、在一个整型常量后面加u,则认为unsigned型常量如:1234u5、在一个整型常量后面加L或l,则认为是longint型常量。如:123L,3.4实型数据,1、实型常量:又称浮点数两种表示形式:十进制数形式:由数字和小数点组成0.123、12.0指数形式:如:123E3、123e3等注意:E、e前面必须有数字,且E后面必须是整数。规范化形式:e、E前小数部分中小数点前有且只有一位非零数字2、实型变量:单精度float(4个字节)、双精度double(8个字节)存放形式:,floatx,y;doublee;指定x,y为单精度实数,e为双精度实数误差:main()floata,b;a=123456.789e5;b=a+20;printf(“%f”,b);单精度实数提供7为有效数字双精度实数提供15-16为有效数字注意:实数常量不分float型和double型,一个实数常量可以赋值给一个float型也可以赋值给double型,根据变量的类型来截取有效位数字floata;a=111111.111a=111111.1,3.5字符型数据,一、字符常量:1、字符常量:用单引号括起来的一个字符。a、A是不同的常量2、转义字符:特殊形式的符号常量,以“”开头的字符序列。n:代表一个“换行”符t:跳到下一个输入区,一个输入区占8列b:退格r:回车,不换行,返回本行最左端:反斜杠字符“”:单引号字符ddd:1到3位8进制所代表的字符101Axhh:1到2位16进制所代表的字符x41A,二、字符变量:用来存放字符常量,只能放一个字符,不能存放字符串(若干个字符),在内存中占一个字节。定义形式:charc1,c2;c1=a;c2=b;三、字符数据在内存中的存储形式及使用方法:存储形式:将字符常量存放到一个符号变量中,实际上将字符相应的ASCII码放到存储单元中。如:a的ASCII码为97,01100001使用方法:1、字符型数据与整型数据可以通用2、字符型数据可以以字符形式输出先将存储单元中的ASCII码转换成相应的字符,然后输出也可以以整数形式输出直接将ASCII码作为整数输出3、字符数据可以进行算术运算,相当于对其ASCII码进行算术运算,main()charc1,c2;c1=97;c2=98;printf(“%c,%cn”,c1,c2);printf(“%d,%dn”,c1,c2);P50-3.6运行结果:a,b97,98注意:字符型数据只占一个字节,存储范围0255之间,main()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c1-32;printf(“%c%c”,c1,c2);P51-3.7运行结果:AB,字符数据与整型数据可以互相赋值例如:inti;charc;i=a;c=97;printf(“%c%d”,c,c);printf(“%c%d”,i,i);输出结果:a97a97,四、字符串常量:一对双引号括起来的字符序列例如:“howareyou”,“a”charc;c=a;c=“a”;原因:a是字符常量,而“a”是字符串常量规定在每一个字符串结尾处加一个“字符串结束标志”0(ASCII码为0,空操作字符,不引起任何控制动作,也不是一个可显示的字符。a占一个字节,“a”占2个字节。CHINA0长度为6个字符,输出时,一个一个字符输出,直到遇到最后的0字符,停止输出。注意:在书写字符串时不要加0,系统自动加。,a,3.6变量赋初值,1、C规定,可以在定义变量的同时使变量初始化例如:inta=3;a为整型变量,初值为3floatf=3.56;f为实型变量,初值为3.56inta=b=c=5;应改为inta=5,b=5,c=5;或inta,b,c;a=b=c=5;inta,b,c=5;a,b,c为整型变量,c的值为52、初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值,相当于有一个赋值语句:inta=3;相当于:inta;a=3;inta,b,c=5;相当于:inta,b,c;c=5;,3.7各类数值型数据间的混合运算,整型、实型(单精度、双精度)、字符型数据可以进行混合运算,在进行运算时,不同类型数据要转化成同一类型,然后运算。Doublefloatlongunsignedintshort、char横行向右的箭头表示必定的转换。纵向箭头表示当运算对象为不同类型时转换的方向。,例:inti;floatf;doubled;longe;10+a+i*f-d/e10+aa转换成整数97,运算结果为107i*fi,f转换成double107+i*f107转换成doubled/ee转换成double10+a+i*f-d/e结果为double型注意:转换是由系统自动进行的。,3.8算术运算符和算术表达式,一、基本算术运算符+加法运算符减法运算符*乘法运算符/除法运算符说明:两个整数相除结果为整数,5/3=1,舍去余数部分,但除数和被除数中有一个为负值,舍去的方向是不固定的,-5/3=-1或-2,多数机器采取“向零取整”方法,即-5/3=-11/3=01.0/3=0.333333%模运算符或求余运算符要求两侧均为整型数据7%4=3,二、算术表达式和运算符的优先级与结合性算术表达式:用算术运算符和括号将操作数连接起来优先级:在表达式求值时,先按运算符的优先级高低次序执行*、/、%+、-算术运算符的结合方向为“自左至右”既先左后右,左结合性三、利用强制类型转换运算符将表达式转换成所需类型方法:(类型名)(表达式)(double)a将a转换成double型不要写成double(a)(int)(x+y)将x+y的值转换成整型强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。,main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);运行结果:x=3.6,i=3,四、自增、自减运算符i+,i在使用i之后,先使i的值加(减)1+i,i在使用i之前,先使i的值加(减)1i=3;j=+i;(j的值为4,i的值是4)j=i+;(j的值为3,然后i变为4)注意:1、自增运算符(+)、自减运算符(),只能用于变量,不能用于常量或表达式5+,(a+b)+都是不合法的2、+和的结合方向是“自右至左”i+相当于(i+)i=3;printf(“%d”,i+)输出结果是:-3,五、有关表达式使用中的问题说明1、在表达式中包含自增或自减运算时,很容易出错i=3;k=i+i+i+k=9i=6k=+i+i+ik=18i=62、运算符由两个字符组成时,结合性尽可能多地自左向右i+j相当于(i+)+j3、调用函数时,实参的求值顺序i=3;printf(“%d,%d”,i,i+);有的系统从左向右求值,输出3,3有的系统从右向左求值,输出4,3多数采用此方法,3.9赋值运算符和赋值表达式,一、赋值运算符“=”是赋值符号作用是将一个数据赋给一个变量。a=3是一个赋值表达式,将常量3赋值给变量aa=3+5是将一个表达式的值赋值给一个变量二、类型转换如果赋值运算符两侧类型不一致,且都是数值型或字符型,在赋值时要进行类型转换1、floatdoubleint实型数据赋值给整型变量时,舍弃实数的小数部分。inti;i=3.45;printf(“i=%d”,i);结果:i=3,2、intfloatdouble整型数据赋值给实型变量时,数值不变。floatf;f=23;先将23转换成23.00000,7位,再存放到变量中doubled;d=23;先将23转换成23.0000000000000,16位,再存放到变量中3、charint由于整型变量占2个字节,字符占1个字节,因此将字符数据放到整型变量低8位中,有两种情况:(1)、高8位补零。(2)、高8位进行符号扩展,4、doublefloatdoublefloat:截取前7位floatdouble:数值不变,有效位扩充到16位5、intlong:符号位扩充longint:截取低16位6、intshortlongchar:截取低8位7、unsignedintlongint:只需将高位补零8、signedunsigned:原样赋值,三、复合的赋值运算符在赋值符“=”之前加上其他运算符就可以构成复合运算符a+=3相当于:a=a+3x*=y+8相当于:x=x*(y+8)作用:简化程序,提高编译效率。四、赋值表达式形式:作用:将赋值运算符右侧的“表达式”的值赋值给左边的变量.a=b=c=3表达式值为3,a,b,c值均为3a=(b=10)/(c=2)表达式的值为5,a=5,b=10,c=2a=12;a+=a-=a*a最后a=-264,3.10逗号运算符和逗号表达式,逗号运算符:,例如:3+5,4+9形式:表达式1,表达式2,表达式n求解过程:先求表达式1,再求表达式2,整个逗号表达式的值是最后一个表达式的值。a=3*5,a*4表达式的值:60原因:=的优先级高于,运算符a=3;(a=a*5,a*4),a+5表达式的值:20赋值表达式:x=(a=3,6*3)x=18x=a=3,6*ax=3表达式的值为:18,作业,3.093.103.12,第四章顺序程序设计,4.1C语句概述4.2程序的三种基本结构4.3赋值语句4.4数据输出4.5数据输入4.6程序举例,4.1C语句概述,C语句可以分为五类:1、控制语句if()elsefor()while()2、函数调用语句printf(“C语言程序设计”);3、表达式语句由一个表达式加一个分号构成a=3;i=i+;i+;x+y;4、空语句只有一个分号的语句;什么都不做,5、可以用把一些语句括起来成为复合语句main()intt;t=2;intt=3;printf(“%d”,t);printf(“%d”,t);输出结果:32,4.2程序的三种结构,有三种基本结构:顺序结构、选择结构、循环结构1、顺序结构:2、选择结构:3、循环语句:当型循环直到型,4.2赋值语句,赋值语句是由表达式加上一个分号构成注意:1、“=”是赋值运算符2、赋值表达式和赋值语句不同。如:if(a=b)0)t=a;if(a=b;)0)t=a;,4.3数据输入输出的概念及在C中的实现,1、输入:从外部向输入设备(键盘、磁盘等)输入数据输出:从计算机向外部输出设备(显示器、打印机)输出数据2、C本身不提供输入输出语句,是由函数完成的#include(standardinput说明:将字符变量c输出其中c可以是int或char(包括转义字符)#includemain()chara,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);输出结果:BOY,#includemain()chara,b,c;a=B;b=O;c=Y;putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);输出结果:BOY,putchar(101);,2、字符输入函数getchar()作用:从终端输入一个字符格式:getchar();说明:没有参数,函数值是从终端得到的字符#includemain()charc;c=getchar();putchar(c);输入:c输出:c,注意:1、getchar()只能接收一个字符2、getchar()函数得到的字符可以赋给字符变量例如:charc;c=getchar();赋给整型变量例如:intc;c=getchar();作为表达式的一部分例如:putchar(getchar();,4.5格式输入与输出,1、格式输出函数printf()作用:向终端输出若干个任意类型数据区分:putchar函数:只能输出字符,且只能输出一个字符printf函数:可以输出多个数据,且为任意类型格式:printf(格式控制,输出表列)格式控制:用双引号括起来的字符串,包括两个信息:格式说明:由“%”和格式字符组成,%d,%f,%u等作用:将输出数据转换成指定的格式输出普通字符:需要原样输出的字符。,输出表列:需要输出的一些数据,可以是表达式例:printf(“a=%d,b=%d”,a,a+b);格式说明输出表列格式字符:对不同类型的数据用不同的格式字符(1)d格式符%d:按整形数据的实际长度输出%md:m为指定输出字段宽度,如数据的位数小于m,则左端补空格,若大于m,按实际位数输出a=123,d=12345printf(“%4d,%4d”,a,d);结果:%ld:输出长整型数据,如用%d输出长整型数据就会出错longa=123456;printf(“%ld”,a);结果:printf(“%8ld”,a);结果:注意:int型数据可以用%d或%ld格式输出,_123,12345,123456,_123456,(2)o格式符:以八进制数形式输出整数按八进制形式输出的数值不带符号inta=-1;printf(“%d,%o,%8o”,a,a,a);输出结果:(3)x格式符:以十六进制数输出整数,同样不会出现负数inta=-1;printf(“%d,%o,%x”,a,a,a);输出结果:,-1,177777,_177777,-1,177777,ffff,(4)u格式符:输出无符号型数据即以十进制形式输出无符号数unsignedinta=65535;printf(“a=%d,%o,%x,%un”,a,a,a,a);输出结果:intb=-2;printf(“b=%d,%o,%x,%u”,b,b,b,b);输出结果:,a=-1,177777,ffff,65535,b=-2,177776,fffe,65534,(5)c格式符:用来输出一个字符charc=a;printf(“%c”,c);输出结果:一个整数其值在0255也可以用字符形式输出,同样字符型数据也可以用整数形式输出charc=a;inti=97;printf(“%c,%d,%c,%d”,c,c,i,i);结果:printf(“%3c,%3d,%3c,%3d”,c,c,i,i);结果:,a,a,97,a,97,_a,_97,_a,_97,6)s格式符:用来输出一个字符串%s:printf(“%s”,”china”);结果:%ms:输出的字符串占m列,如字符串的本身长度大于m,则将字符串全部输出,若小于m则左补空格%-ms:如串长度小于m,则在m列范围内右补空格,字符串左靠%m.ns:输出占m列,但只取字符串中左端n个字符,字符串在m列的右侧,左侧补空格%-m.ns:如果nm,则m自动取n值,n个字符正常输出。printf(“%3s,%7.2s,%.4s,%-5.3sn”,”china”,”china”,”china”,”china”);输出结果:,china,china,_ch,chin,chi_,(7)f格式符:用来输出实数(单、双精度),以小数形式输出%f:不指定字符宽度,由系统自动指定,使整数部分全部输出,并输出6位小数注意:单精度前7位有效,双精度前16位有效。floatx=111111.111,y=222222.222;printf(“%f”,x+y);结果:%m.nf:输出数据占8列,其中有n位小数,如数值长度小于m,则左端补空格%-m.nf:输出的数值向左靠近,右端补空格floatf=123.456;printf(“%f_%10f_%10.2f_%.2f_%-10.2f”,f,f,f,f);结果:,333333.328125超过7位无意义,123.456001_123.4560

温馨提示

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

最新文档

评论

0/150

提交评论