C语言程序设计复习提纲.ppt
- 文档编号:18739853
- 上传时间:2023-10-24
- 格式:PPT
- 页数:59
- 大小:314.50KB
C语言程序设计复习提纲.ppt
《C语言程序设计复习提纲.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计复习提纲.ppt(59页珍藏版)》请在冰点文库上搜索。
C语言程序设计复习提纲,一、语言的特点
(1)语言简洁、紧凑,使用方便、灵活。
32个关键字、9种控制语句。
(2)运算符丰富,34种运算符。
(3)数据类型丰富,数据类型有:
整型、实型、字符型、数组、指针、结构体、共用体等。
(4)具有结构化的控制语句(如ifelse、while、dowhile、switch、for)(5)语法限制不太严格,程序设计自由度大。
(6)允许直接访问物理地址,能进行位操作,可直接对硬件进行操作。
(7)生成目标代码质量高,程序执行效率高。
(8)程序可移植性好(与汇编语言比)。
第1章程序设计概述,二、C语言程序结构:
(1)C程序是由函数构成的。
(2)一个函数由两部分组成:
函数的首部:
例:
intmax(intx,inty)函数体:
花括号内的部分。
若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。
函数体包括两部分:
声明部分:
inta,b,c;可缺省执行部分:
由若干个语句组成。
可缺省(3)每个C程序必须有一个主函数main。
(4)C程序总是从main函数开始执行的,与main函数的位置无关。
(5)C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上,C程序没有行号。
(6)每个语句和数据声明的最后必须有一个分号。
一、C语言的数据类型:
C语言提供了以下一些数据类型:
第2章数据类型、运算符与表达式,二、C语言的常量与变量:
1、常量常量是其值不可改变的量,程序中用#define命令定义一个符号常量。
符号常量名通常用大写。
2、变量变量是其值可以改变的量,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。
否则为不合法的变量名。
变量在编译时为其分配相应存储单元。
在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”。
三、整型数据1、整型常量的表示方法:
十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。
2、整型变量分为:
基本型(int)、短整型(shortint)、长整型(longint)和无符号型。
不同机器上各类数据所占内存字节数不同,一般int型为个字节,long型为4个字节。
四、实型数据:
1、实型常量表示形式:
十进制形式由数字和小数点组成(必须有小数点),如:
0.12、.123、123.、0.0等。
指数形式如123e3代表12310的三次方。
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-float七、运算符和表达式c运算符包括:
八、C语言的5种语句1、控制语句:
完成一定的控制功能
(1)if()else条件语句
(2)for()循环语句(3)while()循环语句(4)dowhile();循环语句(5)continue继续语句(6)break间断语句(7)switch()开关语句(8)goto转向语句(9)return返回语句2、函数调用语句一个函数调用加一个分号构成一个语句,例:
Printf(“ThisisaCstatement.”);,3、表达式语句一个表达式加一个分号构成表达式语句:
4、空语句:
只有一个分号的语句(什么也不做)。
可用来做流程的转向点、作为循环语句中的循环体。
5、复合语句:
用一对括起来的语句(语句块)例:
z=x+y;t=z/100;printf(“%f”,t);九、数据输出C语言不提供输入输出语句,输入输出操作是由C的库函数完成。
但要包含头文件stdio.h。
1、putchar()函数:
向终端输出一个字符。
一般形式:
putchar(c),2、printf()函数:
向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。
一般格式:
printf(格式控制,输出表列)printf()的格式控制符:
d格式符:
用来输出十进制整数。
%d按整型数据的实际长度输出;%md使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度;%ld输出长整型数据;c格式符:
用来输出一个字符。
s格式符:
输出一个字符串。
%s输出实际长度字符串;%ms输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出;,%-ms输出的串占m列,如果串长度小于m,右补空格;%m.ns输出占m列,但只取字符串中左端n个字符并靠右对齐;%-m.nsm、n含义同上,靠左对齐,如果nm,则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()函数:
从终端输入一个字符串。
一般形式:
gets(),复习题:
上机指导与习题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页)从键盘上输入园半径,输出园面积(结果保留小数点后两位)。
程序代码如下:
#includevoidmain()doubler,s;scanf(%lf,例3.3(教材P67页)输入整型变量a和b的值,交换它们的值并输出。
程序代码如下:
#includevoidmain()inta,b,t;scanf(%d,%d,四、选择结构1、if语句:
C语言提供了3种形式的if语句:
(1)单分支结构:
If(表达式)语句例3.4(教材P69页)从键盘输入两个整数a和b,按从小到大次序输出这两个数。
程序代码如下:
(2)双分支结构:
If(表达式)语句1else语句2例3.5(教材P70页)从键盘输入两个整数a和b,输出它们中较大的数。
程序代码如下:
(3)多分支结构:
if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式m)语句melse语句n,例3.6(教材P72页)输入学生的百分制成绩,然后换算成为A,B,C,D,E五级输出。
换算规则是:
90100分为A级、8089分为B级、7079分为C级、6069分为D级、60分以下为E级。
程序代码如下:
(4)If语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。
形式:
If()if()语句1else语句2Elseif()语句3else语句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五级输出。
换算规则是:
90100分为A级、8089分为B级、7079分为C级、6069分为D级、60分以下为E级。
用switch语句实现。
程序代码如下:
例3.10(教材P81页):
键盘输入年号和月份,输出该月的天数。
程序代码如下:
七、循环结构1、while语句:
用来实现“当型”循环结构。
一般形式:
while(表达式)语句其特点是:
先判断表达式,后执行语句。
例5.13(教材P86页)求1到100的和。
#includevoidmain()inti,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和dowhile实现求n+(n+1)+10的和,键盘输入不同的n,观察输出结果。
程序代码如下:
3、for语句一般形式:
for(表达式1;表达式2;表达式3)语句例3.17(教材P94页)求1到100的和(用for循环语句实现)。
#includevoidmain()inti,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(%dn,sum);,八、循环的嵌套一个循环体内又包含另一个完整的循环结构称为循环的嵌套。
内嵌的循环中还可以嵌套循环,这就是多层循环。
例3.18(教材P96页)输出5行,每行都输出1,2,3,4,5这五个数。
程序代码如下:
#includeVoidmain()inti,j;for(i=1;i=5;i+)for(j=1;j=5;j+)printf(“%2d”,j);printf(“n”);,例3.19(教材P97页)打印输出九九乖法表。
程序代码如下:
#includevoidmain()inti,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只鸡,编程列出所有可能的购鸡方案。
程序代码如下:
#includevoidmain()intx,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),九、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、一维数组的定义格式为:
类型说明符数组名常量表达式;例如:
inta10;2、一维数组的初始化
(1)在定义数组时对数组元素赋以初值。
例如:
inta10=0,1,2,3,4,5,6,7,8,9;
(2)可以只给一部分元素赋值。
例如:
inta10=0,1,2,3,4;(3)如果想使一个数组中全部元素值为0,可以写成:
inta10=0,0,0,0,0,0,0,0,0,0;或inta10=0;(4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。
例如:
inta5=1,2,3,4,5;也可以写成inta=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、二维数组定义的一般形式为类型说明符数组名常量表达式常量表达式;例如:
inta34;注意:
可以把二维数组看作是一种特殊的一维数组:
它的元素又是一个一维数组。
例如:
a是一个一维数组,它有3个元素:
a0、a1、a2,它的每个元素又是一个包含4个元素的一维数组。
2、二维数组的初始化
(1)分行给二维数组赋初值。
例如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;
(2)可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。
例如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;,(3)可以对部分元素赋初值。
例如:
inta34=1,5,9;它的作用是只对各行第1列(即序号为0的列)的元素赋初值,其余元素值自动为0。
(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
例如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;它等价于:
inta4=1,2,3,4,5,6,7,8,9,10,11,12;注意:
在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
例如:
inta4=0,0,3,0,10;,例5.33(教材P184页):
有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
先用N-S流程图表示算法,如下:
程序代码为:
例5.34(教材P185页):
一个小组有5位学生,每个人有三门课程的考试成绩,如下表所示。
编一个程序计算全组学生的各门课程的分科平均成绩和总平均成绩。
程序代码为:
例1(教材P205习题7):
编写一个矩阵转置的程序,实现对m行n列的矩阵进行转置。
将二维数组a转置后,存到数组b中,分别输出数组a、b。
转置:
即将二维数组a的行和列的元素互换,存到另一个二维数组b中,这个操作称为二维数组的转置。
运行结果如下:
arraya:
123456arrayb:
142536,例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、选择题111、1428。
2、填空题124。
3、程序分析题117。
4、程序设计题13,5。
课程结束,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习 提纲
![提示](https://static.bingdoc.com/images/bang_tan.gif)