C语言程序设计基础知识期末复习.docx
《C语言程序设计基础知识期末复习.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础知识期末复习.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计基础知识期末复习C语言程序设计基础知识期末复习一、C语言与算法1 .程序:一组计算机能识别和执行的指令。2 .C语言的特点:运算符丰富(共有34种运算符)、数据类型丰富、 具有结构化的控制语句。3 .C语言程序的结构特点:(1 ) .一个程序由一个或多个源程序文件组成:一个源程序文件 中可以包括三个部分:预处理指令、全局声明、函数定义(2 ).函数是C程序的主要组成部分:一个C程序是由一个或多 个函数组成的必须包含一个main函数(只能有一个);每个函数都用 来实现一个或几个特定功能;被调用的函数可以是库函数,也可以是 自己编制设计的函数。(3 ).一个函数包括两个部分函数首部和
2、函数体(声明部分:定 义在本函数中所用到的变量;对本函数所调用函数进行声明;执行部 分:由若干个语句组成,指定在函数中所进行的操作)(4 ).程序总 是从main函数开始执行(5).C程序对计算机的操作由C语句完成(6.)数据声明和语句最后必须有分号(7.)C语言本身不提供输入输出语句(8.)程序应当包含注释,增加可读性4、算法(1)算法+数据结构二程序(2)顺序结构、选择结构、循环结构是表示一个良好算法的基本 结构(3 )算法的特性:有穷性、确定性、有零个或多个输入、有一个 或多个输出、有效性(4)算法流程图:一个流程图包括以下几部分:表示相应操作的 框;带箭头的流程线;框内外必要的文字说明
3、。流程线不要忘记画箭头,否则难以判定各框的执行次序。算法流程图的结构特点:只有一个入口;只有一个出口(一个判在while的循环体中一定要有使循环趋于结束的语句;否则将形 成死循环;注意循环操作的范围、花括号、分号的使用;注意给循环变量赋初值的位置及初值的正确性2、用do.while语句实现循环do-while语句的特点:先无条件地执行循环体,然后判断循环 条件是否成立d。-while语句的一般形式为:do语句while (表达式);while和do.while语句的比较当while后面的表达式的第一次的值为真时,两种循环得到 的结果相同;否则不相同(1).循环体内必须有使循环趋于终止的条 件w
4、hile (i = 100) dosum=sum + i; sum=sum + i;i + +; i + +; while (i = 100);(2)注意循环初值与循环条件i=l; i=0;while (i = 100) while (i100)sum=sum + i; i+;i+; sum=sum + i;)(3 ) do_while循环的循环体至少执行一次,while循环的循环体 可能一次也不执行。(4 )在循环体至少执行一次的前提下, do_while与while循环等价。语句实现循环for、3for语句的一般形式为for(表达式1 ;表达式2 ;表达式3)语句表达式1 :设置初始条件,
5、只执行一次。可以为零个、一个或多个 变量设置初值执行表达式2 :循环条件表达式,用来判定是否继续循环。在每次执行 循环体前先执行此表达式,决定是否继续执行循环表达式3 :作为循环的调整器,例如使循环变量增值,它是在执行 完循环体后才进行的for语句说明:1)表达式1可省略,但分号不能省;如:int i=l/sum=0;for (;i = 100;i+)sum=sum + i;2)若表达式2省略,循环条件永远为真;如:for(i=l; ;i+)printf( %d,,i);死循环自己编程序时不建议采用,3)表达式3也可省略,但应设法保证循环正常结束旦要能看懂 别人的程序如:for (i=l;i
6、= 100;)sum=sum + i;i+;)4 )可只给循环条件;i=l;for (;i = 100;)sum=sum + i;i + +;)5)三个表达式都可省;for (;)相当于 while (1)6)表达式1和表达式3可以是逗号表达式;如:for (i=l/sum=0;i = 100;i+)sum=sum + i;7)表达式2一般为关系表达式或逻辑表达式,但也可以是数值表 达式或字符表达式,只要其值为非零就执行循环体。如:for (;(c=getchar( )! = n;)printf(%cc);注:尽量避免用实型变量控制循环次数。4、改变循环的执行状态(1)用break语句提前终止
7、循环break语句作用:1)从循环体内跳出,即提前结束循环,接着执行循环下面的语句;2 ) break语句只能用于循环语句和switch语句注意:在循环中使用了 break语句后,循环语句的结束可能有两种:由于循环条件表达式为假:正常结束(正常出口)1.3 .非正常结束(异常出口):由break语句引起(2 ) continue语句提前结束本次循环结束本次循环,即跳过循环体语句中下面尚未执行的语句,接着 执行下一次是否执行循环的判定:for (n = 100;n=200;n+)if (n%3= =0) continue;printf(H %d,n);这段程序等价于 if(n%3!=0)prin
8、tf( %d,n);)for语句中执行的是表达式3(3 ) break语句和continue语句的区另!continue语句只结束本次循环,而不是终止整个循环的执行break语句结束整个循环过程,不再判断执行循环的条件是否成 立四、利用数组处理批量数据1、一维数组(1)定义一维数组定义一维数组的一般形式为:类型符数组名常量表达式;说明:类型符:数组元素的类型。数组名:即数组的名称,其命名方法同变量名。在定义数组时,需要指定数组中元素的个数,方括弧中的常量表 达式用来表示元素的个数,即数组长度。注意:1)在定义数组时,只能使用整常量表达式表明数组的大小,即数组元 素的个数,不能是变量。也就是说,
9、c语言不允许对数组的大小作动态 定义.注意:int n = 10;int arrn;错误,n不是常量而是变量数组说明中其他常见的错误:float a0;/*数组大小为0没有意义*/int b(2)(3); /*不能使用圆括号/int k, ak;/*不能用变量说明数组大小*/一维数组的存储方式:每个元素都有一个编号(从0开始),称为 下标。(2 )引用一维数组一次只能引用一个数组元素不能引用整个数组所有元素!也不能 引用多个兀素引用数组元素的表示形式为:数组名下标一个数组元素就是一个普通变量,跟普通变量一样使用。a3=a2%4注意:引用数组元素时,下标可以是整型常量、变量或整型表达式对数组中所
10、有元素逐个引用时,通常可使用循环结构。(3)一维数组的初始化数组的初始化:在定义数组的同时,给各数组元素赋值格式:);初值表=类型符数组名表达式补齐int a8= 0,123,4 );后面的用0给部分元素赋初值。例= 0,123,4;注意:只有在初始化时给全部元素赋初值时可不 指定数组的长度。int矶中可以空着。其他情况不行,例如:是错误的2、二维 数组;常量表达式常量表达式二维数组定义的一般形式为类型符数组 名Q)定义二维数组行、列下标都是从0开始列下标(2 )引用二维数组数组名行下 标二维数组在内存中按行存放二维数组的存储方式二维数组初始化通常是按行进行的(3 )二维数组的初始化);表达式
11、1表达式2=初值表类型符数组名给全部元素赋初值。 9,10,11;例或写成:int a34=0,1,234,5,6,7,8,9,10,11给二维数组的全部元素赋初值,可以不指定第一维的长度,但第 二维的长度不能省略。#define N 10#define M 6若有定义:int aNM;二维数组按行输入标准模板:for(i=0; ifor(j=0;jscanf(%dz &aij);二维数组按行输出标准模板:for(i=0; ifor(j=0;jprintf(%d, aij);printf();)3、字符数组(1)字符数组的定义:定义字符数组的方法与定义数值型数组的 方法相同,使用关键字char
12、格式:char数组名常量表达式,;(2)字符数组的初始化一维字符数组初始化1)逐个字符赋给数 组中的各元素2)用字符串常量初始化数组中的各元素字符串在实际存储时,是用字符数组存储的,系统会自动的在其 尾部添加一个结束标志0二维字符组初始化二维字符数组的初始化, 可以采用逐个字符式或者字符串常量的方式(3 )引用字符数组引用字 符数组中的元素,与引用其他类型数组元素相同只能是一个一个字符地引用(4)字符数组的输入输出1、利用getchan putchar逐个处理(用循环结构)利用格式符c逐个输入、输出字符for( i=0; i y ? x:y) ; 在定义函数时指定的函数类型一般应该和retur
13、n语句中的表达式 类型一致。如果函数值的类型和return语句中表达式的值不一致,则以函数 类型为准。对数值型数据,可以自动进行类型转换。即函数类型决定返回值 的类型。5、对被调用函数的声明和函数原型(1)在一个函数中调用另一个函数需要具备如下条件:被调用函数必须是已经定义的函数(是库函数或用户自己定义的 函数)如果使用库函数,应该在本文件开头加相应的include指令如果使用自己定义的函数,而该函数的位置在调用它的函数后面, 应该进行函数声明(2 )函数声明作用:告诉编译系统函数类型、参数个数及类型,以便检查形式:函数类型函数名(类型1形参1 ,类型2形参2 .);函数类型函数名(类型1 ,
14、类型2;函数类型函数名()专统方法函数声明位置:主调函数内部开头或整个文件的开头(所有函数之前)6、函数的嵌套调用7、函数的递归调用(1)直接调用本函数(2 )间接调用本函数应使用if语句控制结 束调用8、数组作为函数的参数除了可以用数组元素作为函数参数外,还可以用数组名作函数参 数(包括实参和形参)用数组元素作实参时,向形参变量传递的是数组元素的值,单向值 传递用数组名作函数实参时,向形参传递的是数组首元素的地址说明:且类型应一致,在主调函数与被调函数分别定义数组.形参数组大小可不指定:C编译系统不检查形参数组的大小最好设计一个参数,来指定形参数组大小,也方便确定数组元素 个数数组名做参数,
15、参数传递的是地址:形参数组名只是获得了实参 数组的首地址注意:数组名做函数参数时,可以用来存储函数的返回值。当一个函数有多个同类型的结果时,可用数组做参数来保存结果。9、局部变量和全局变量(1)局部变量 在一个函数内部定义的变量只在本函数范围内有效 在复合语句内定义的变量只在本复合语句范围内有效 在函数内部或复合语句内部定义的变量称为局部变量说明: main中定义的变量,只在main中有效。 函数形参是函数的局部变量。 不同函数中可以定义同名的变量,它们互不干扰。(2 )全局变量在函数内定义的变量是局部变量,而在函数之外定义的变量称为 外部变量,外部变量是全局变量(也称全程变量)全局变量可以为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础知识 期末 复习
限制150内