收藏 分销(赏)

C语言程序设计复习提纲-PPT课件.ppt

上传人:w****g 文档编号:10509313 上传时间:2025-05-31 格式:PPT 页数:59 大小:654.50KB
下载 相关 举报
C语言程序设计复习提纲-PPT课件.ppt_第1页
第1页 / 共59页
C语言程序设计复习提纲-PPT课件.ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,*,C,语言程序设计复习提纲,一、语言的特点,(,1,)语言简洁、紧凑,使用方便、灵活。,32,个关键字、,9,种控制语句。,(,2,)运算符丰富,,34,种运算符。,(,3,)数据类型丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。,(,4,)具有结构化的控制语句(如,if,else,、,while,、,do,while,、,switch,、,for,),(,5,)语法限制不太严格,程序设计自由度大。,(,6,)允许直接访问物理地址,能进行位操作,可直接对硬件进行操作。,(,7,)生成目标代码质量高,程序执行效率高。,(,8,)程序可移植性好,(,与汇编语言比,),。,第,1,章 程序设计概述,二、,C,语言程序结构:,(,1,),C,程序是由函数构成的。,(,2,)一个函数由两部分组成,:,函数的首部:,例:,int max(int x,int y),函数体:,花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。,函数体包括两部分:,声明部分:,int a,b,c;,可缺省,执行部分:由若干个语句组成。,可缺省,(,3,)每个,C,程序必须有一个主函数,main,。,(,4,),C,程序总是从,main,函数开始执行的,与,main,函数的位置无关。,(,5,),C,程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,,C,程序没有行号。,(,6,)每个语句和数据声明的最后必须有一个分号。,一,、C语言的数据类型:,C,语言提供了以下一些数据类型:,数据类型,构造类型,指针类型,空类型(,无值类型),void,枚举类型,enum,数组类型,结构类型,struct,联合类型,union,基本类型,整型,int,字符型,char,实型(浮点型),单精度实型,float,双精度实型,double,第,2,章 数据类型、运算符与表达式,二、,C,语言的常量与变量:,1,、常量,常量是其值不可改变的量,程序中用,#define,命令定义一个符号常量。符号常量名通常用大写。,2,、变量,变量是其值可以改变的量,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。,在,C,语言中,要求对所有用到的变量作强制定义,也就是,“,先定义,后使用,”,。,三、整型数据,1,、整型常量的表示方法:十进制不用说了,八进制以,0,开头,如,0123,,十六进制以,0 x,开头,如,0 x1e,。,2,、整型变量分为:基本型(,int,)、短整型(,short int,)、长整型(,long int,)和无符号型。不同机器上各类数据所占内存字节数不同,一般,int,型为个字节,,long,型为,4,个字节。,四、,实型数据,:,1,、实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:,0.12,、,.123,、,123.,、,0.0,等。指数形式如,123e3,代表,123,10,的三次方。,2,、实型变量分为单精度(,float,)和双精度(,double,)两类。在一般系统中,float,型占,4,字节,,7,位有效数字,,double,型占,8,字节,,1516,位有效数字。,五、字符型数据,1,、字符变量用单引号括起来,如,a,b,等。还有一些是特殊的字符常量,如,n,t,等。分别代表换行和横向跳格。,2,、字符变量以,char,来定义,一个变量只能存放一个字符常量。一个字符变量在内存中占一个字节。,3,、字符串常量是由双引号括起来的字符序列。这里一定要注意,a,和,a,的不同,前者为字符常量,后者为字符串常量,,c,规定:每个字符串的结尾加一个结束标志,0,,实际上,a,包含两个字符:,a,和,0,。,六、数值型数据间的混合运算:,整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则:,char,short-int-unsigned-long-double m,,则,m,自动取,n,值;,f,格式符:以小数形式输出实数。,%f,整数部分全部输出,小数部分输出,6,位;,%m.nf,输出数据共占,m,列,其中有,n,位小数。如果数值长度小于,m,,左补空格;,%-m.nf,同上,右补空格;,3,、,puts(),函数:向终端输出一个字数串。,一般形式:,puts,(,C,),十、数据输入,1,、,getchar(),函数:,从终端输入一个字符,。,一般形式:,getchar(),2,、,scanf,()函数,(,格式输入函数,),:按照变量在内存的地址将变量值存进去。,一般格式:,scanf,(格式控制,地址表列),注意:,(1)scanf,函数中的,“,格式控制,”,后面应当是变量地址,而不应是变量名。,(2),对,unsigned,型变量所需要的数据,可以用,%u,,,%d,或,%o,,,%x,格式输入。,(3),输入数据时不能规定精度,如,scanf(,“,%7.2f,”,是不合法的。,3,、,gets,()函数:从终端输入一个字符串。,一般形式:,get,s,(),复习题:,上机指导与习题,P9,页:,1,、典型例题分析,2,、程序调试,3,、实验题目,一、关系运算符和关系表达式,1,、关系运算符:,C,语言提供了种关系运算符:,(大于)、,(小于)、,=,(大于等于)、,=,(等于)、,!=,(不等于)。前四种优先级高于后两种。,2,、关系表达式:用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)连接起来的式子,称为关系表达式。,二、逻辑运算符和逻辑表达式,1,、逻辑运算符:,C,语言提供了,3,种逻辑运算符:,&(,逻辑与,),、,|(,逻辑或,),、,!(,逻辑非,),。,2,、逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。,第,3,章 程序控制结构,注意:,在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。,(1)a&b&c,只有,a,为真时,才需要判断,b,的值,只有,a,和,b,都为真时,才需要判断,c,的值。,(2)a|b|c,只要,a,为真,就不必判断,b,和,c,的值,只有,a,为假,才判断,b,。,a,和,b,都为假才判断,c,。,三、顺序结构,例,3.2(,教材,P66,页,),从键盘上输入园半径,输出园面积(结果保留小数点后两位)。,程序代码如下:,#include,void main(),double r,s;,scanf(%lf,s=3.14*r*r;,printf(s=%.2lfn,s);,例,3.3(,教材,P67,页,),输入整型变量,a,和,b,的值,交换它们的值并输出。,程序代码如下:,#include,void main(),int a,b,t;,scanf(%d,%d,t=a;,a=b;,b=t;,printf(a=%d,b=%dn,a,b);,四、选择结构,1,、,if,语句:,C,语言,提供了,3,种形式的if语句,:,(,1,)单分支结构:,If(表达式)语句,例,3.4,(,教材,P69,页,),从键盘输入两个整数,a,和,b,,按从小到大次序输出这两个数。,程序代码如下:,(,2,)双分支结构:,If(表达式),语句1,else,语句2,例,3.5(,教材,P70,页),从键盘输入两个整数,a,和,b,,输出,它们中较大的,数。,程序代码如下:,(,3,)多分支结构:,if,(表达式,1,)语句,1,else if(,表达式,2),语句,2,else if(,表达式,3),语句,3,else if(,表达式,m),语句,m,else,语句,n,例,3.6(,教材,P72,页,),输入学生的百分制成绩,然后换算成为,A,,,B,,,C,,,D,,,E,五级输出。换算规则是:,90,100,分为,A,级、,80,89,分为,B,级、,70,79,分为,C,级、,60,69,分为,D,级、,60,分以下为,E,级。,程序代码如下:,(,4,),If,语句的嵌套,在,if,语句中又包含一个或多个,if,语句称为,if,语句的嵌套。,形式:,If(),if(),语句,1,else,语句,2,Else,if(),语句,3,else,语句,4,内嵌,if,内嵌,if,例,3.7(,教材,P74,页,),从键盘输入三个数,输出最大的那个数。,程序代码如下:,例,3.8(,教材,P77,页,),任意输入一个年份,判断是否是闰年(闰年的条件是能被,4,整除但不能被,100,整除或者能被,400,整除)。,程序代码如下:,五、,条件运算符,格式:表达式?表达式表达式,功能:判断表达式,1,的值,如果成立就执行表达式,2,,此时表达式,2,的值就作为整个条件表达式的值。如表达式,1,的值不成立,则就执行表达式,3,,表达式,3,的值就是整个条件表达式的值。,六、,Switch语句,格式:,switch,语句的格式:,switch,(表达式),case,常量表达式:语句;,break;,case,常量表达式:语句;,break;,case,常量表达式:语句;,break;,default,:语句,例,3.9(,教材,P79,页,),:,输入学生的百分制成绩,然后换算成为,A,,,B,,,C,,,D,,,E,五级输出。换算规则是:,90,100,分为,A,级、,80,89,分为,B,级、,70,79,分为,C,级、,60,69,分为,D,级、,60,分以下为,E,级。用,switch,语句实现。,程序代码如下:,例,3.10(,教材,P81,页,),:,键盘输入年号和月份,输出该月的天数。,程序代码如下:,七、循环结构,1,、,while,语句:用来实现,“,当型,”,循环结构。,一般形式:,while(,表达式,),语句,其特点是,:,先判断表达式,后执行语句。,例,5.13(,教材,P86,页,),求,1,到,100,的和。,#include void main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);,2,、,do-while,语句:用来实现,“,直到型,”,循环结构。,一般形式,:do,循环体语句,while(,表达式,),;,其特点是,:,先执行循环体,然后判断循环条件是否成立。,例,3.15(,教材,P90,页,),求,1,到,100,的和。,例,3.16(,教材,P91,页,),分别用,while,和,do,while,实现求,n+(n+1)+,+10,的和,键盘输入不同的,n,,观察输出结果。,程序代码如下:,3,、,for,语句,一般形式,:,for(,表达式,1,;表达式,2,;表达式,3),语句,例,3.17(,教材,P94,页,),求,1,到,100,的和,(,用,for,循环语句实现,),。,#include void main()int i,sum=0;,for(i=1;i=100;i+),sum=sum+i;,printf(%dn,sum);,八、循环的嵌套,一个循环体内又包含另一个完整的循环结构 称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。,例,3.18(,教材,P96,页,),输出,5,行,每行都输出,1,,,2,,,3,,,4,,,5,这五个数。程序代码如下:,#include,Void main(),int i,j;,for(i=1;i=5;i+),for(j=1;j=5;j+),printf(,“,%2d,”,j);,printf(,“,n,”,);,例,3.19(,教材,P97,页,),打印输出九九乖法表。,程序代码如下:,#include,void main(),int i,j;,for(i=1;i10;i+),for(j=1;j10;j+),printf(%d*%d=%-4d,i,j,i*j);,printf(n);,例,3.21(,教材,P100,页,),百元买百鸡问题。假定小鸡每只,5,角,公鸡每只,2,元,母鸡每只,3,元。现在有,100,元钱要求买,100,只鸡,编程列出所有可能的购鸡方案。,程序代码如下:,#include,void main(),int x,y,z;,for(x=0;x=33;x+),for(y=0;y=50;y+),for(z=0;z=100;z+),if(3*x+2*y+0.5*z=100)&(x+y+z=100),printf(x=%d,y=%d,z=%dn,x,y,z);,九、,break语句和continue语句,1,、,break语句,:用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面,一般形式:,break;,注意,:,break,语句只能用于循环语句和,switch,语句。,例,3.22(,教材,P101,页,),输入一个大于,2,的正整数,n,,判断这个正整数是否为素数。程序代码如下:,2,、,continue,语句:结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。,一般形式:,continue;,例,3.23(,教材,P102,页,),分析下面程序的运行结果。,例,1(,教材,P108,页习题,7),:,输入,4,个整数,要求按由小到大的顺序输出。程序代码如下:,例,2(,上机指导与习题,P17,页实验题,4),:,计算器程序,用户输入两个运算数和四则运算符,输出计算结果。程序代码如下:,例,2(,上机指导与习题,P26,页实验题,2),:,编写程序,求,:1!+3!+5!+7!+9!,。程序代码如下:,复习题:,一、教材,P106,页习题:,1,、,2,、,3,、,4,、,5,、,6,、,7,、,9,、,10,。,二、上机指导与习题,P14,页实验三,1,、典型例题分析,2,、程序调试,3,、实验题目:,1,、,2,、,3,、,4,复习题:,三、上机指导与习题,P19,页实验四,1,、典型例题分析,2,、程序调试,3,、实验题目:,1,、,2,一、一维数组的定义,1,、一维数组的定义格式为:,类型说明符 数组名常量表达式;,例如:,int a,10,;,2,、一维数组的初始化,(1),在定义数组时对数组元素赋以初值。例如,:,int a,10,=0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9;,(2,)可以只给一部分元素赋值。例如,:,int a,10,=0,,,1,,,2,,,3,,,4;,(3),如果想使一个数组中全部元素值为,0,,可以写成,:,int a,10,=0,0,0,0,0,0,0,0,0,0;,或,int a,10,=0;,(4,)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。例如,:,int a,5,=1,,,2,,,3,,,4,,,5;,也可以写成,int a,=1,,,2,,,3,,,4,,,5;,第五章 数组,例,5.10(,教材,P163,页,),输入,10,学生的成绩,要求输出所有高于平均分的成绩(用数组处理)。,例,5.2(,教材,P171,页,),:,有,10,个数:,24,,,56,,,8,,,47,,,63,,,82,,,27,,,15,,,90,,,30,,编写一个程序,,用选择法对这,10,个数按从小到大的顺序输出。,二、二维数组的定义,1,、二维数组定义的一般形式为,类型说明符 数组名,常量表达式,常量表达式,;,例如:,int a,3,4;,注意:,可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。,例如:,a,是一个一维数组,它有,3,个元素:,a0,、,a1,、,a2,,它的每个元素又是一个包含,4,个元素的一维数组。,2,、二维数组的初始化,(1),分行给二维数组赋初值。例如:,int a34=1,2,3,4,5,6,7,8,9,10,11,12;,(2,),可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。例如:,int a34=1,2,3,4,5,6,7,8,9,10,11,12;,(3),可以对部分元素赋初值。例如:,int a34=1,5,9;,它的作用是只对各行第1列(即序号为0的列)的元素赋初值,其余元素值自动为0。,(4),如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。例如:,int a34=1,2,3,4,5,6,7,8,9,10,11,12;,它等价于:,int a4=1,2,3,4,5,6,7,8,9,10,11,12;,注意:,在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。例如:,int a4=0,0,3,0,10;,例,5.33(,教材,P184,页,):,有一个,3,4,的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。,先用,N-S,流程图表示算法,如下:,程序代码为:,例,5.34(,教材,P185,页,):,一个小组有,5,位学生,每个人有三门课程的考试成绩,如下表所示。编一个程序计算全组学生的各门课程的分科平均成绩和总平均成绩。,成绩 课程,姓名,语文,数学,英语,张三,80,75,92,王五,61,65,71,李四,53,63,70,赵一,85,87,90,周六,76,77,85,程序代码为:,例,1(,教材,P205,习题,7),:,编写一个矩阵转置的程序,实现对,m,行,n,列的矩阵进行转置。将二维数组,a,转置后,存到数组,b,中,分别输出数组,a,、,b,。,转置:,即将二维数组,a,的行和列的元素互换,存到另一个二维数组,b,中,这个操作称为二维数组的转置。,例如,:,a=1 2 3 1 4,4 5 6 b=2 5,3 6,运行结果如下:,array a:,1 2 3,4 5 6,array b:,1 4,2 5,3,6,例,2(,教材,P205,页习题,6),:,编写程序,将已知数组复制到一个新数组,使复制产生的新数组包含已知数组中全部出现过的值,而又不重复,。如:已知数组,a=1,1,2,3,3,复制产生的新数组,b=1,2,3,。,例,3(,上机指导与习题,P135,页程序设计题,1),:,从键盘输入,10,个数,求正数之和与负数之和,。,例,4(,上机指导与习题,P135,页程序设计题,2),:,求,100,以内的素数,。,例,5(,上机指导与习题,P135,页程序设计题,5),:,将一个一维数组逆序输出,。,复习题:,一、教材,P204,页习题:,1,、,2,、,6,、,7,。,二、上机指导与习题,P107,页习题:,1,、选择题,1,11,、,14,28,。,2,、填空题,1,24,。,3,、程序分析题,1,17,。,4,、程序设计题,1,3,,,5,。,课程结束,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服