c语言复习重点2_第1页
c语言复习重点2_第2页
c语言复习重点2_第3页
c语言复习重点2_第4页
c语言复习重点2_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、O 第一章第一章 C C语言概述语言概述O 第二章第二章 基本数据类型基本数据类型O 第三章第三章 选择结构选择结构O 第四章第四章 循环结构循环结构O 第五章第五章 数组数组O 第六章第六章 函数函数O 第七章第七章 编译预处理编译预处理O 第八章第八章 指针指针 程序设计基础程序设计基础n 结构化程序设计的基本结构结构化程序设计的基本结构 顺序结构顺序结构 选择结构选择结构 循环结构循环结构:给定条件成立时,反复执行:给定条件成立时,反复执行 某一个程序段。某一个程序段。n 三种基本循环结构语句三种基本循环结构语句 while语句语句 do-while语句语句 for语句语句n while

2、while语句的一般形式和流程图:语句的一般形式和流程图: while(循环条件)(循环条件) 语句;语句;p whilewhile语句的执行过程:语句的执行过程: 当条件成立时执行循环体中的语句当条件成立时执行循环体中的语句 然后再次判断条件,重复上述过程然后再次判断条件,重复上述过程 直到条件不成立时结束循环直到条件不成立时结束循环p whilewhile语句的特点语句的特点: 当一开始条件就不成立时,一次也不执行当一开始条件就不成立时,一次也不执行 循环语句循环语句4.1 while语句语句n程序实现:求程序实现:求1到到100的和。的和。课堂小练习课堂小练习4-1(p48)n 结构化程

3、序设计的基本结构结构化程序设计的基本结构 顺序结构顺序结构 选择结构选择结构 循环结构循环结构:给定条件成立时,反复执行:给定条件成立时,反复执行 某一个程序段。某一个程序段。n 三种基本循环结构语句三种基本循环结构语句 while语句语句 do-while语句语句 for语句语句n do-whiledo-while语句的一般形式和流程图:语句的一般形式和流程图: do 循环体语句循环体语句; while(循环条件循环条件);p do-while语句的语句的执行过程执行过程: 执行循环体中的语句执行循环体中的语句 然后判断条件然后判断条件 条件成立再执行循环体条件成立再执行循环体 重复上述过程

4、,直到条件不成立时结束循环重复上述过程,直到条件不成立时结束循环p do-while语句的语句的特点特点:当一开始条件就不成立时,已经执行了一次循环语句当一开始条件就不成立时,已经执行了一次循环语句注意注意:while(条件)后面的分号不要省!(条件)后面的分号不要省!4.2 do-while语句语句4.2 do-while语句语句n程序实现:求程序实现:求1到到100的和。的和。4.2 do-while语句语句n练习:求练习:求2+4+.+100的结果并输出的结果并输出#include void main()int s,n;for(s=0,n=1;n=100;n=n+2) s=s+n; pr

5、intf(2+3+6+100= %dn,s);n程序实现:打印出所有的程序实现:打印出所有的“水仙花数水仙花数”。所谓所谓“水仙花数水仙花数”是指一个是指一个3位数,其各位位数,其各位数字的立方和等于该数本身。例如,数字的立方和等于该数本身。例如,153是是一个一个“水仙花数水仙花数”,因为,因为153135333。课堂小练习课堂小练习4-5(p53)#include void main()int n=100,i,j,k;doi=n/100; j=(n/10)%10;k=n%10;if (n=i*i*i+j*j*j+k*k*k)printf(%d是水仙花数是水仙花数n,n);n=n+1;whi

6、le(n=999);n 比较比较whilewhile语句和语句和do-whiledo-while语句:语句: 基本等价基本等价:while语句、语句、do-while语句语句可可以相互转换以相互转换; 区别区别:当一开始条件就:当一开始条件就不成立不成立时:时: while语句不执行循环体;语句不执行循环体; do-while语句执行一次循环体;语句执行一次循环体;4.2 do-while语句语句n 例如:例如:结论结论:当第一次循环条件不成立时,两种循环的结:当第一次循环条件不成立时,两种循环的结 果是不同的。除此之外,二者可以互换。果是不同的。除此之外,二者可以互换。n 结构化程序设计的基

7、本结构结构化程序设计的基本结构 顺序结构顺序结构 选择结构选择结构 循环结构循环结构:给定条件成立时,反复执行:给定条件成立时,反复执行 某一个程序段。某一个程序段。n 三种基本循环结构语句三种基本循环结构语句 while语句语句 do-while语句语句 for语句语句n forfor语句的一般形式和流程图:语句的一般形式和流程图: for(表达式表达式1;条件;表达式;条件;表达式2) 循环体语句循环体语句;p for语句的语句的执行过程执行过程:1) 执行执行表达式表达式12) 判断判断条件条件3) 当条件成立时执行循环体中的当条件成立时执行循环体中的 语句和表达式语句和表达式24) 重

8、复第二、三步直到条件不成立结束重复第二、三步直到条件不成立结束循环循环4.3 for语句语句n for语句语句改写成改写成while语句语句的形式:的形式:前提:不包前提:不包含含continuecontinue4.3 for语句语句4.3 for语句语句n程序实现:求程序实现:求1到到100的和。的和。n for语句中的语句中的表达式表达式1: 用途:用途:一般一般用于给循环前的某些变量用于给循环前的某些变量赋初赋初 值值,超过一个语句用逗号间隔。,超过一个语句用逗号间隔。 注意:注意:如果在循环语句前已经赋过初值,如果在循环语句前已经赋过初值,表达式表达式1可以省略,但是其后的可以省略,但

9、是其后的分号不能省分号不能省略略。例如:例如:上例上例for语句也可以改写为如下形式:语句也可以改写为如下形式:4.3 for语句语句n for语句中的语句中的表达式表达式2: 用途用途:用于在每次循环语句执行后修改循:用于在每次循环语句执行后修改循 环变量。环变量。 注意:注意:如果循环体语句中已经包含控制循如果循环体语句中已经包含控制循环次数的内容,环次数的内容,表达式表达式2可以省略,但表达可以省略,但表达式式2前面的前面的分号不能省略分号不能省略。例如:例如:for语句可以变换如下:语句可以变换如下:4.3 for语句语句n 比较下面程序的区别:比较下面程序的区别:4.3 for语句语

10、句总结:总结: C语言常用的循环语句:语言常用的循环语句: while语句;语句; do-while语句;语句; for语句;语句;一般情况下三种循环语句可以互相替换一般情况下三种循环语句可以互相替换 当一开始条件就不成立时:当一开始条件就不成立时: while语句和语句和for语句不执行循环体,语句不执行循环体, 而而do-while语句执行一次循环体语句执行一次循环体 for语句最灵活,也最常用:语句最灵活,也最常用: 循环变量的初始化可以放在表达式循环变量的初始化可以放在表达式1中;中; 循环变量的增值甚至整个循环体都可以放入表达式循环变量的增值甚至整个循环体都可以放入表达式2中。中。4

11、.3 for语句语句n 结束循环的方法:结束循环的方法: 一般情况:当循环条件不满足时,自动结束;一般情况:当循环条件不满足时,自动结束; 循环条件多于一个或需要中途退出循环时:循环条件多于一个或需要中途退出循环时: 使用使用break语句或语句或continue语句;语句;n break语句的应用语句的应用 用在用在switch语句中语句中 用在循环体中:用在循环体中: 在循环体中遇到在循环体中遇到break语句,立即语句,立即结束循环结束循环 跳到循环体(一层)外,执行循环结构后面的语句跳到循环体(一层)外,执行循环结构后面的语句n break语句的一般形式:语句的一般形式: break;

12、4.4 break语句和语句和continue语句语句n程序实现:判断某个数是否是素数。程序实现:判断某个数是否是素数。课堂小练习课堂小练习4-7(p60)n 举一反三举一反三:写出下列两段循环语句的输:写出下列两段循环语句的输 出结果出结果注意:注意: breakbreak语句一般语句一般与与ifif语句搭配语句搭配使用使用 breakbreak语句语句只能用于只能用于switchswitch和和循环体中循环体中 breakbreak语句语句只能跳出一层循环结构只能跳出一层循环结构(或一层(或一层 switch switch语句结构)语句结构)4.4 break语句和语句和continue语

13、句语句课堂小练习(课堂小练习(p60)1. 写出下列两段循环语句的输出结果:写出下列两段循环语句的输出结果:for(k=1;k5;k=k+1) printf(* * * * * * *n);for(k=1;k5;k=k+1) if (k=3) break; printf(* * * * * * *n);课堂小练习(课堂小练习(p61)2. 写出下列两段循环语句的输出结果:写出下列两段循环语句的输出结果:int i=4;int sum=2;for(i-3;i7;-i) if(i=-3) break; sum += i;printf(“%d”,sum);n continue语句的应用:语句的应用:

14、 用于结束用于结束本次本次循环循环 在循环体中遇见在循环体中遇见continue语句,则循环体中语句,则循环体中continue语句后面的语句不执行,接着进行语句后面的语句不执行,接着进行下一次循环的判定。下一次循环的判定。n continue语句的一般形式:语句的一般形式: continue;n continue语句只用于循环结构的内部,语句只用于循环结构的内部,一般与一般与if配合使用。配合使用。4.4 break语句和语句和continue语句语句n程序实现:判断程序实现:判断1到到20之间不能被之间不能被3整除的整除的数及个数。数及个数。课堂小练习课堂小练习4-10(p61)课堂小练习

15、(课堂小练习(p63)1.下面关于下面关于continue和和break语句的描述中,错语句的描述中,错误的是(误的是( )。)。Acontinue语句实际上实现了嵌套在循环结构语句实际上实现了嵌套在循环结构中的选择结构,所以所有中的选择结构,所以所有continue语句都可以用语句都可以用if语句来代替语句来代替B. break语句可以使用语句可以使用continue语句来替代语句来替代C. 一个一个break语句只能终止本层循环语句只能终止本层循环D. break语句和语句和continue语句都可以使用在语句都可以使用在for语句、语句、while语句和语句和do-while语句中语句中

16、n break语句和语句和continue语句的比较:语句的比较: 用在循环体中的作用是不同的用在循环体中的作用是不同的 continue语句:语句:只取消本次循环的只取消本次循环的continue语句后面的内容语句后面的内容 break 语句:语句:终止了整个循环过程终止了整个循环过程 比如:上例中如果比如:上例中如果continue换成换成break,则,则输出结果为:输出结果为:4.4 break语句和语句和continue语句语句n 循环的嵌套:循环的嵌套:一个循环语句的循环件内包一个循环语句的循环件内包 含另一个完整的循环语句含另一个完整的循环语句n while while语句,语句

17、,do-whiledo-while语句和语句和forfor语句都可语句都可 以互相嵌套,甚至可以多层嵌套。以互相嵌套,甚至可以多层嵌套。4.5 循环的嵌套循环的嵌套课堂小练习课堂小练习4-11(p64)n 程序实现:如下图型程序实现:如下图型课堂小练习课堂小练习4-12(p65)n程序实现:程序实现:输出从输出从3-1003-100中所有的素数中所有的素数课后练习题课后练习题1.计算计算1!+2!+10! 的结果。的结果。O 第一章第一章 C C语言概述语言概述O 第二章第二章 基本数据类型基本数据类型O 第三章第三章 选择结构选择结构O 第四章第四章 循环结构循环结构O 第五章第五章 数组数

18、组O 第六章第六章 函数函数O 第七章第七章 编译预处理编译预处理O 第八章第八章 指针指针 程序设计基础程序设计基础5.1 5.1 一维数组的定义和引用一维数组的定义和引用 一维数组的定义形式:一维数组的定义形式:例例: intint a5; a5; /数组数组a a可以存放可以存放5 5个整数数据;个整数数据;注意:注意:。可可以是整型常量、符号常量或整型表达式;以是整型常量、符号常量或整型表达式;来表示数组元素。也来表示数组元素。也不能不定义数组的大小不能不定义数组的大小。5.1 5.1 一维数组的定义和引用一维数组的定义和引用 数组必须数组必须先定义,后使用先定义,后使用。 数组元素引

19、用的一般形式:数组元素引用的一般形式:数组名数组名下标下标只能逐个引用数组元素,而不能一次引用整个数组只能逐个引用数组元素,而不能一次引用整个数组数组下标的范围:数组下标的范围:0 0元素个数元素个数-1-1 数组名后中括号里面的内容的含义不同:数组名后中括号里面的内容的含义不同: 在定义时:代表数组元素的在定义时:代表数组元素的个数个数; 其他情况下:表示数组下标,与数组名联合起来表示某其他情况下:表示数组下标,与数组名联合起来表示某一个特定的一个特定的数组元素数组元素; 数组名数组名:表示数组的:表示数组的起始地址起始地址( (首地址首地址) ),即第一个元素,即第一个元素的地址的地址&a

20、mp;a0&a0,是一个常量是一个常量。5.1.3 5.1.3 一维数组的初始化一维数组的初始化 数组初始化的一般形式:数组初始化的一般形式:在定义时在定义时char c = a, b, c;char c = a, b, c;5.1.3 5.1.3 一维数组的赋值与初始化一维数组的赋值与初始化c3; c3; c3 = a, b, c; c3 = a, b, c; 5.1.3 5.1.3 一维数组的赋值与初始化一维数组的赋值与初始化5.1.3 5.1.3 一维数组的赋值与初始化一维数组的赋值与初始化 例例3 3:请将下列一组数据读入到:请将下列一组数据读入到 a a 数组中,然后数组中,

21、然后从中找出最大的一个并与第一个数互换;再找出从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换;其余的数不动。最小的一个与最后一个数互换;其余的数不动。) 3() 2(12) 1(1121nFFFnFnFnnnf0f1f2f3f4f5f19.11f1901452319235 P89 习题习题5-1 P89 习题习题5-4 编写一个函数,统计出具有编写一个函数,统计出具有10个元素的一维数个元素的一维数组中大于等于所有元素平均值的元素个数并返组中大于等于所有元素平均值的元素个数并返回。回。 数组为:数组为:int a10=10,20,30,40,50,60,70,80,90,

22、100 将十进制数将十进制数68转换成二进制数并输出结果转换成二进制数并输出结果(选选做做)练习:5.2.1 5.2.1 二维数组的定义二维数组的定义 5.2.1.1 5.2.1.1 二维数组的定义二维数组的定义5.2.1 5.2.1 二维数组的定义二维数组的定义 数组元素的存放顺序数组元素的存放顺序5.2.1 5.2.1 二维数组的定义二维数组的定义5.2.2 5.2.2 二维数组的引用二维数组的引用1. 打印矩阵:打印矩阵:5.2.3 5.2.3 二维数组的初始化二维数组的初始化5.2.3 5.2.3 二维数组的定义与使用二维数组的定义与使用5.2.3 5.2.3 二维数组的定义与使用二维

23、数组的定义与使用5.2.3 5.2.3 二维数组的定义与使用二维数组的定义与使用5.2.3 5.2.3 二维数组的定义与使用二维数组的定义与使用编写程序,用二维数组存放以下矩阵,并输出。编写程序,用二维数组存放以下矩阵,并输出。 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1void main( ) int i,j,a55=0; for(i=0;i5;i+) aii = 1; ai4-i=1; for(i=0;i5;i+) for(j=0;j5;j+) printf(%5d,aij); printf(n); 统计2个学生成绩,其中长整型数组n

24、um2存放学生的学号,二维数组score23存放学生成绩,即第i个学生的英文成绩为scorei0,数学成绩为scorei1,语文成绩为scorei2,数组aver2存放学生的平均成绩。编写函数void input(long num,int score 3,float aver,int n)完成输入n个学生的学号、各科成绩,并计算平均分;编写函数void sort(long num, float aver, int n)完成将学生按照平均分从高到低的顺序重新排序(提示:对平均分排序,当aver元素互换时,学号num元素对应互换);编写函数void output(long num, float a

25、ver, int n)输出n个学生学号、各科成绩和平均分。最后用主函数验证。 5.4 5.4 字符串字符串5.4.1 5.4.1 字符串字符串的定义和赋值的定义和赋值 5.4.1 5.4.1 字符串字符串5.4.1 5.4.1 字符串字符串函数函数gets()gets()可以读入包含空格和可以读入包含空格和TABTAB的全的全部字符,直到遇到回车为止;部字符,直到遇到回车为止;使用格式符使用格式符“%s”%s”的函数的函数scanfscanf()()以空格,以空格,TABTAB或回车作为或回车作为一段字符串的间隔符或结束符。一段字符串的间隔符或结束符。函数函数puts()puts()输出字符串

26、后自动换行输出字符串后自动换行;使用使用格式符格式符“%s”%s”的的printfprintf()(),将从字符数组的起,将从字符数组的起始字符开始输出,直到遇见第一个始字符开始输出,直到遇见第一个00时停时停止(不换行)。止(不换行)。1. 1. 字符串输出函数字符串输出函数puts()puts() 结论:结论:printfprintf()()不但可以同时输出多个字符不但可以同时输出多个字符串,并且能灵活控制是否换行,所以串,并且能灵活控制是否换行,所以更常用更常用。2. 2. 字符串输入函数字符串输入函数gets()gets()5.4.3 5.4.3 字符串操作函数字符串操作函数 c c语

27、言提供了很多语言提供了很多字符串操作函数字符串操作函数,使用这些函数必须,使用这些函数必须在文件开始包含头文件在文件开始包含头文件“string.hstring.h”。 1. unsigned 1. unsigned intint strlenstrlen(char char * *strstr) 功能:功能:字符串长度(即字符串中第一个字符串长度(即字符串中第一个00前的字前的字符数)符数) 返回值:返回值:字符串中字符的个数字符串中字符的个数( (不包含不包含0)0) 2. char 2. char * * strcpystrcpy(char char * *str1, char str1

28、, char * *str2str2) 功能:功能:将字符串将字符串2 2复制到字符数组复制到字符数组1 1中中 返回值:返回值:字符串数组字符串数组1 1的地址的地址 3. char 3. char * *strcatstrcat( char char * *str1, char str1, char * *str2 str2 ) 功能:功能:将字符串将字符串2 2的内容复制连接在字符数组的内容复制连接在字符数组1 1的后面的后面 返回值:返回值:字符串数组字符串数组1 1的地址的地址5.4.3 5.4.3 字符串操作函数字符串操作函数 4. 4. intint strcmpstrcmp(c

29、har char * *str1, char str1, char * *str2str2) 功能:功能:比较字符串比较字符串1 1和字符串和字符串2 2。 返回值:返回值:str1str2str1str2str1str2,返回正数,返回正数 5. char 5. char * *strlwr(charstrlwr(char * *strstr) ) 功能功能:将字符串中大写字母转化为小写字母:将字符串中大写字母转化为小写字母 6. char 6. char * *strupr(charstrupr(char * *strstr) ) 功能功能:将字符串中小写字母转化为大写字母:将字符串中小写

30、字母转化为大写字母5.4.4 5.4.4 二维字符串数组二维字符串数组 1.1.存放一个字符串可以使用一维字符数组;存放一个字符串可以使用一维字符数组; 比如:存储某一个人的姓名比如:存储某一个人的姓名 char name20;char name20; 2.2.存放多个字符串需要使用多维字符数组;存放多个字符串需要使用多维字符数组; 比如:存储某个班比如:存储某个班3030个学生的姓名个学生的姓名(二维数组)(二维数组)char name3020;char name3020;/ /* *假设姓名不超过假设姓名不超过2020个字符个字符* */ / 比如:存储比如:存储2 2个班各个班各3030名学生的姓名名学生的姓名(三维数组)(三维数组)char name23020;char name23020;/ /* *假设姓名不超过假设姓名不超过2020个字符个字符* */ /5.4.4 5.4.4 二维字符串数组二维字符串数组 1. 1. 二维字符串数组的初始化二维字符串数组的初始

温馨提示

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

评论

0/150

提交评论