《C语言复习重点》PPT课件.ppt_第1页
《C语言复习重点》PPT课件.ppt_第2页
《C语言复习重点》PPT课件.ppt_第3页
《C语言复习重点》PPT课件.ppt_第4页
《C语言复习重点》PPT课件.ppt_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

C语言复习重点!,第一章,C语言概述,第1章C语言概述本章包含4项目重点内容:1简单的C语言程序#includevoidmain()printf(ThisisaCprogram.n);,2VC+6.0环境:编辑C语言源程序后缀是.c或.cpp经过编译产生目标文件,后缀是.obj再经过连接成为可执行文件,后缀是.exe3C语言是结构化程序,有三种结构(1)顺序结构;(2)选择结构;(3)循环结构;,4C语言是由函数组成的,其中必须有一个并且只有一个主函数main,程序的执行从main函数开始,到main函数结束.,第二章,数据类型、运算符与表达式,C的数据类型,C语言提供了以下一些数据类型。,数据类型,构造类型,指针类型,空类型(无值类型)void,常量与变量,常量和符号常量在程序运行过程中,其值不能被改变的量称为常量常量区分为不同的类型:,整型100,125,-100,0实型3.14,0.125,-3.1e3字符型a,057,x3c字符串“a”,“ab”,”1232”定义字符常量:#definePI3.1415926#defineN20,变量命名的规定:语言规定标识符:1只能由字母、数字和下划线三种字符组成;(注意不要混淆下划线_和杠号(减号)-)2第一个字符必须为字母或下划线;3不能使用关键字.例:sum,_123,m123,Student_name112a,Jo-hn,¥123,a#b,int,整型常量的表示方法整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。如:123,-456(2)八进制整数。以0开头的数是八进制数。如:0123表示八进制数123,等于十进制数830129非法(每位0-7合法)(3)十六进制整数。以0 x开头的数是16进制数。如:0 x123,代表16进制数123,等于十进制数291而0 x12g非法(每位0-f合法),字符型数据,字符常量(1)用单引号包含的单个字符(2)用单引号包含的由开始的转义字符,例,a,A,1,037,x2dabc,“a”,082,x5g,字符串常量字符串常量是一对双引号括起来的字符序列.合法的字符串常量:“Howdoyoudo.”,“CHINA”,“a”,“$123.45”可以输出一个字符串,如printf(“Howdoyoudo.”);,运算符简介的运算符有以下几类:(1)算术运算符(+-*/%)(2)关系运算符(!)(3)逻辑运算符(!|)(4)位运算符(|)(5)赋值运算符(及其扩展赋值运算符)(6)条件运算符(?:),算术运算符和算术表达式基本的算术运算符:(加法运算符或正值运算符如:、)(减法运算符或负值运算符,如:、)*(乘法运算符。如:*)(除法运算符,实数相除结果是双精度实数,整数相除结果是整数;两数同号结果是正数,两数异号结果是负数,且舍入得方向不固定,Vc+是“向0取整)(求余运算符,两侧必须为整型数据,结果与被除数一致。),自增、自减运算符作用是使变量的值增或减如:,(在使用之前,使+1或-1),(在使用之后,使+1或-1)就是使用i的原值执行本条语句,而在执行下条语句前将i+1或-1intm=5,n=10;printf(%d,%dn,m+,-n);显示5,9若再有:printf(“%dn”,m);显示6,赋值运算符赋值符号“”就是赋值运算符,它的作用是将一个数据赋给一个变量,如a=5;(单等号)而a=5是判断a是否等于5;(双等号)如inta=3;if(a=2)为假,而if(a=5)为真。,第三章,最简单的c程序设计-顺序程序设计,C语句概述,C语句概述,控制语句完成一定的控制功能1if()else条件语句6break间断语句2for()循环语句7switch()开关语句3while()循环语句8goto转向语句4dowhile();循环语句9return返回语句5continue继续语句,格式输入与输出,(一).格式输出函数函数作用:向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。一般格式:printf(格式控制,输出表列),%d:以带符号的十进制形式输出整数%o:以八进制无符号形式输出整数%x:以十六进制无符号形式输出整数,格式输入与输出,%u:以无符号十进制形式输出整数%c:以字符形式输出,只输出一个字符%s:输出字符串%f:以小数形式输出单,双精度数,隐含输出六位小数%e:以指数形式输出实数%g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0,格式输入与输出,用printf和scanf函数输出和输入数据。#includeintmain()inta,b,c;scanf(“%d,%d,%d”,表示a在内存中的地址其中,if(ab)a=b;b=c;c=a;第1个,因为ab)?a:b;min=(ab)?a:b;,if语句,例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#includevoidmain()charch;scanf(“%c”,/注意:不能用A=ch=Z,它永远为真,如果字符变量ch的值为大写字母,则条件表达式的值为(),即相应的小写字母。如果ch的值不是大写字母,则条件表达式的值为,即不进行转换。,几个典型的判断:判断大写字母:if(A=cbreak;case8:grade=B;break;case7:grade=C;break;case6:grade=D;break;default:grade=E;,第五章,循环结构程序设计,用while语句实现循环,while语句用来实现“当型”循环结构。一般形式:while(表达式)语句当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。,求正整数m和n的最大公约数和最小公倍数:#includevoidmain()intp,r,n,m;printf(请输入两个正整数n,m:);scanf(%d,%d,其中用下面的辗转相除法求出最大公约数nwhile(m!=0)r=n%m;n=m;m=r;把它独立出来就是一个函数inthcf(intm,intn)intr;while(m!=0)r=n%m;n=m;m=r;return(n);用p/n得到最小公倍数,用do-while语句实现循环,do-while语句的特点:先执行循环体,然后判断循环条件是否成立。一般形式:do循环体语句while(表达式);,执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。,例如:为了保证输入成绩的正确,可以使用语句:printf(请输入学生成绩a(0-100):);scanf(%d,我们更简洁地用do-while语句doprintf(“请输入成绩a(0-100):”);scanf(“%d”,号,用do-while语句计算10!i=1;s=1;dos=s*i;i+;while(i=10);不是:i=1;s=0;dos=s*i;i+;while(i=10);也不是:doi=1;s=1;s=s*i;i+;while(i=10);doi=1;s=0;s=s*i;i+;while(i0),6.strlen函数其一般形式为:strlen(字符数组)strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括0在内)。例如:charstr10=China;printf(%d,strlen(str);输出结果不是10,也不是6,而是5,即有效字符数.,strlwr(字符串)strlwr函数7.strlwr函数其一般形式为:的作用是将字符串中大写字母换成小写字母。,8.strupr函数其一般形式为:strupr(字符串)strupr函数的作用是将字符串中小写字母换成大写字母。,使用字符串函数时,必须包括字符串函数库:#include,我们可以不使用字符串函数编写程序:例如:不使用strcat连接两个字符串;不使用strcpy拷贝字符串;不使用strcmp比较字符串;,不使用strcpy拷贝字符串:1用数组:For(i=0;i=strlen(s2);i+)S1i=s2i;2用指针:p1=s1;p2=s2;while(*p1+=*p2+);寻找字符串尾:while(s1i)i+;i就是字符串尾的下标,再拷贝就是连接。,第七章,函数,简单的C语言函数,#include/*文件包含*/voidmain()/*主函数*/*函数体开始*/printf(“ThisisaCprogram.n”);/*函数体语句*/*函数体结束*/,说明:main是主函数名,void是函数类型每个C程序是由若干函数组成的,其中必有一个并且只能有一个主函数main()每个C程序从main函数开始执行,到main函数结束,即执行的是主函数的函数体,与主函数main在程序中的位置无关;,是函数开始和结束的标志,不可省略;每个C语句以分号结束;在主函数中直接或间接调用其他函数;使用标准输入出库函数时应写:#include使用数学库函数和字符串函数时应写:#include#include,一个函数由两部分组成:函数的首部:例1.3中的max函数首部intmax(intx,inty)函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。,函数定义的一般形式,类型标识符函数名(形式参数表列)声明部分语句部分其中类型标识符是函数返回值的数据类型,如:int,charfloat,double等,也可以是无返回值,写为void.也可以没有形式参数表列,称为无参函数.,例如:intmax(int,int)int;/*函数体中声明部分*?;/*函数体中语句部分*return();/*返回值*/,函数参数和函数的值形式参数和实际参数,形式参数:函数名后面括弧中的变量名称为“形式参数”(简称“形参”);实际参数:主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称“实参”);函数返回值:return后面的括弧中的值作为函数带回的值(称函数返回值)。,说明:1.函数的返回值是通过函数中的return语句获得的。一个函数中可以有一个以上的return语句,执行到哪一个return语句,哪一个语句起作用。,函数的调用对被调用函数的声明和函数原型,在一个函数中调用另一函数(即被调用函数)需要具备哪些条件呢?,1.首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。,3.如果使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函数作声明,即写上函数的原型。用函数首部加上;号表示函数声明.,2.如果使用库函数,还应该在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中来。如#include#include#include,函数调用的实例(求两整数的最大公约数):#includevoidmain()inthcf(intu,intv);/函数声明intu,v,h;scanf(%d,%d,局部变量和全局变量局部变量,在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量”。,全局变量,在函内定义的变量是局部变量,而在函数外定义的变量称为外部变量,也称全局变量.静态局部变量是函数中保持最近值不释放的变量在函数中用下面方式定义:staticintc=7;,考察静态局部变量的值#includevoidmain()int(inta);,;(;)(,();int(int)int;3;2;();3次调用函数f后,c的值是9,第八章,指针,地址和指针的概念,内存区的每一个字节有一个编号,这就是“地址”。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配内存单元。,一个变量的地址称为该变量的“指针”。例如,地址2000是变量的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。,指针和指针变量的定义:,指针变量的引用,注意:指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针变量。,例通过指针变量访问整型变量,#includevoidmain()int;int*p;p;/*把变量的地址赋给p*/printf(“%d,%dn”,a,*p);,对“”和“*”运算符说明:如果已执行了语句p那么:那么a和*p是相同的值所以,如果a=3;Printf(“%d,%d”,a,*p);显示是3,3所以,如果*p=6;Printf(“%d,%d”,a,*p);显示是6,6,指针变量作为函数参数,例10.3对输入的两个整数按大小顺序输出,#includevoidmain()voidswap(int*,int*);int,;int*p,*p;scanf(,);p;p2;if()swap(p,p2);printf(,);,voidswap(int*,int*)inttemp;temp*1;*;*temp;,下面的函数:voidswap(inta,intb)inttemp;tempa;a=b;b=temp;/*只在函数中交换了局部变量*/同样不可用函数:voidswap(int*p,intb)或voidswap(inta,int*p)只能用函数voidswap(int*p1,int*p2)处理主调用函数中的变量,定义一个指向数组元素的指针变量的方法例如:inta10,*p;p=a;(a是数组的首地址,注意a前没有地址符)或p=而p是指针变量,是可以改变的.所以a+是错误的,而p+是正确的.,指向数组元素的指针,10.通过指针引用数组元素,如果inta6,*p=a;引用一个数组元素,可以用:()下标法,如ai形式;()地址或指针法,如*(a+i)或*(p+i)注意:a0-a5合法,a6非法;*(a)-*(a+5)合法,*(a+6)非法;*(p)-*(p+5)合法,*(p+6)非法;,字符串与指针,字符串的表示形式,例定义一个字符数组,对它初始化,然后输出该字符串,#includevoidmain()char*sabcdefg;printf(%n,s);输出abcdefg,(1)用字符数组存放一个字符串,然后输出该字符串。,输出cdefg的语句是:printf(%n,s+2);s+2是指针输出efg的语句是:printf(%n,s+4);s+4是指针输出字符f的语句是:printf(%cn,*(s+5));*(s+5)是字符注意:输出字符串用%s和指针;输出字符用%c和*(指针)

温馨提示

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

评论

0/150

提交评论