C程序设计电子教案.ppt

上传人:本田雅阁 文档编号:2102346 上传时间:2019-02-14 格式:PPT 页数:146 大小:482.51KB
返回 下载 相关 举报
C程序设计电子教案.ppt_第1页
第1页 / 共146页
C程序设计电子教案.ppt_第2页
第2页 / 共146页
C程序设计电子教案.ppt_第3页
第3页 / 共146页
亲,该文档总共146页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C程序设计电子教案.ppt》由会员分享,可在线阅读,更多相关《C程序设计电子教案.ppt(146页珍藏版)》请在三一文库上搜索。

1、C语言程序设计,授课班级:重修(培训) 主讲:耿子林,第一次课 课程说明 一、上课时间第7-14周二的11、12节,地点20308 二、上机时间第7-14周三的11、12节,地点基础1 三、考试时间第14周,星期六的1、2节,地点待定 四、答疑时间: 周四的11、12节,地点信息楼主任室 五、耿子林老师电话:13700342704;010-61591482 六、重修103人,培训25人,年级多,专业多。 七、要有信心,学重点,多练习。,六、内容安排 第一章:C语言概述(0.2) 第二章:算法及算法表示(0.3学时) 第三章:数据类型、运算符和表达式(2.5学时) 第四五六章:顺序、选择、循环结

2、构程序设计(8学时) 第七章:数组(2学时) 第八章:函数(2学时) 第九章:预处理命令(1学时) 第十章:指针(1学时) 第十一章:结构体与共用体(1学时) 总学时:32学时 其中:理论课16学时、上机16学时,第一章 C语言概述 一、C语言出现的历史背景 二、C语言的特点 三、简单C语言介绍* 1、C程序的构成 2、函数的构成 3、C源程序的书写格式和特点 四、C语言的上机步骤,1、C程序的构成,例1.1:输出串“This is a c program.” 1、#include “stdio.h” 2、void main() 3、 4、 printf(“This is a c progra

3、m.”); 5、 例1.2:输入两个整数,求出最大数,并输出 1、#include “stdio.h” 2、void main() 3、 4、 int a,b,c; 5、 scanf(“%d%d”, 8、,9、int max(int x,int y) 10、 11、 int z; 12、 if(xy) z=x; 13、 else z=y; 14、 return(z); 15、,1、C程序的构成,(1)任何一个C程序都是由一个或若干个函数构成的,用函数来实现特定的功能,函数是C程序的基本单位,C语言是函数式的语言。 (2)每个程序中必须有且只能有一个main主函数。并且一个程序总是从main函数

4、开始执行,而不论main函数在程序中的位置如何。 (3)C程序中的函数分 主函数: 系统(库)函数:如printf、scanf,需要include 包含头文件 自定义函数 三种,2、函数的构成,例1.1:输出串“This is a c program.” 1、#include “stdio.h” 2、void main() 3、 4、 printf(“This is a c program.”); 5、 例1.2:输入两个整数,求出最大数,并输出 1、#include “stdio.h” 2、void main() 3、 4、 int a,b,c; 5、 scanf(“%d%d”, 8、,9、

5、int max(int x,int y) 10、 11、 int z; 12、 if(xy) z=x; 13、 else z=y; 14、 return(z); 15、,2、函数的构成,一个函数由函数首部、函数体两部分组成 函数首部:包括函数类型 函数名(参数类型 参数,参数类型 参数) 注:参数可以有可以没有,也可以有多个, 小括号必须有 必须没有分号 函数体:由开始、结束, 函数体内包括数据声明(定义变量、数组类型) 和执行语句(由若干语句组成,每个语句最后必须有一个分号,分号是语句的一部分)两部分,3、源程序的书写格式和程序风格,例1.1:输出串“This is a c program.

6、” 1、#include “stdio.h” 2、void main() 3、 4、 printf(“This is a c program.”); 5、 例1.2:输入两个整数,求出最大数,并输出 1、#include “stdio.h” 2、void main() 3、 4、 int a,b,c; 5、 scanf(“%d%d”, 8、,9、int max(int x,int y) 10、 11、 int z; 12、 if(xy) z=x; 13、 else z=y; 14、 return(z); 15、,3、原程序的书写格式和程序风格,(1)C程序书写格式自由,一行可以写几个语句,一个

7、语句也可以写在多行上。为清晰起见,一般一行写一个语句。 (2)为清晰地表现出程序的结构,建议采用锯齿形程序格式 (3)程序中可以用/*/给程序加注释,以增加程序的可读性 (4)C语言区分大小写,语句、变量大部分都小写,第二章 算法 一、程序设计步骤 二、算法 三、算法表示 四、结构化程序设计,一、程序设计步骤(了解) 程序设计一般包括以下几个步骤: 1、确定数据结构 2、确定算法 3、编写代码(程序) 4、在机器上调试程序 5、整理并写出文档资料 二、算法 算法:是指为解决某一问题而采取的确定、有限的方法和步骤 算法选用原则:尽量简单易懂、且步骤少。 算法特性:有穷性、确定性、有效性、有零个或

8、多个输入、有一个或多个输出。,三、算法表示 1、自然语言:通俗易懂,但文字冗长,容易出现“歧义性”。 2、传统流程图:缺点占篇幅较多,跳转太多,不便于阅读。 3、NS流程图:(26页图2.24-2.27) 完全去掉了流程线,算法的每一步都用一个矩形框来描述,把一个个矩形框按执行顺序连接起来就是一个完整的算法描述。 四、结构化程序设计 三种基本结构:顺序结构、选择结构、循环结构 经证明任何复杂问题,都可分解用以上三种结构组合实现,小结: 第一章 C语言概述 一、C语言出现的历史背景 二、C语言的特点 三、简单C语言介绍* 1、C程序的构成 2、函数的构成 3、C源程序的书写格式和特点 四、C语言

9、的上机步骤 第二章 算法 一、程序设计步骤 二、算法(特点) 三、算法表示 四、结构化程序设计(三种基本结构),习 题 一、选择题 1.1 以下不正确的概念是 A、一个C程序由一个或多个函数组成 B、一个C程序必须包含一个main函数 C、在C程序中,可以只包括一条语句 D、 main函数体中最后一条语句可以不写分号 1.2 下述源程序的书写格式不正确的是 A、一条语句可以写在几行上 B、一行上可以写几条语句 C、分号是语句的一部分 D、函数的首部,其后必须加分号 1.3 在C语言程序中 A、main函数必须放在程序的开始位置 B、 main函数可以放在程序的任何位置 C、 main函数必须放

10、置在程序的最后 D、 main函数只能出现在库函数之后,1.4 以下能正确构成C语言程序的是 A、一个或若干个函数,其中main函数是可选的 B、一个或若干个函数,其中必须有一个main函数 C、一个或若干个子程序,其中包括一个主程序 D、由若干个过程组成 二、填空题 1.5 一个C程序是由若干个函数构成的,其中必须有一个( )。 1.6 一个函数由两部分组成:( )和( )。 1.7 一个函数体的范围是以( )开始,以( )结束。 1.8 一个C语句最少应包含( )。 1.9 注释部分以( )开始,以( )结束。 1.10 C语言的主要特点是( )。 1.11 C语言与其他高级语言的主要不同

11、是( )。 1.12 任何C语言程序都是从( )开始执行的。,第三章 数据类型、运算符与表达式 一、 C语言数据类型概述 二、常量与变量 1、常量与变量的基本概念 2、整型常量与变量 3、实型常量与变量 4、字符常量与变量、字符串常量 5、变量定义与赋值 三、数值间的混合运算 四、运算符与表达式,一、 C语言数据类型概述,二、常量与变量 1、常量与变量的基本概念 常量:在程序运行中其值不能改变的量(常数) 分类:普通常量: 整型常量:12、0、-5 实型常量:4.5、-1.23、3.16 字符常量:a、A、0 字串常量:“wangping”、“beijing” 符号常量:用一符号代表一个常量(

12、带名字的常量) 例:#define PI 3.1415926,#include “stdio.h” #define PI 3.1415926 /*注意位置*/ void main() int r; float s,l,v; scanf(“%d”, ,好处:简化书写、含义清楚、一改全改 注:符号常量命名一般大写,以便和变量区别,位置,分号,变量:在程序运行过程中其值可以改变的量,不同时刻可能有不同的值。(变量的两个元素:名、值) 变量命名:由用户自由取名,但要遵循以下规则 标识符命名规则: 1、只能由英文字母、数字和下划线组成,且第一个字符必须为字母或下划线; 2、不能使用关键字 3、区分大小写

13、 4、尽量直观,见名知意,便于记忆和阅读 注:a关键字又称为保留字,C语言中预先规定的具有固定含义的一些单词 b标识符指用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。,以下四组用户标识符全部合法的一组是: A For sub Case B 4d DO Size C f2_g3 IF abc D WORD void define,2、整型常量与变量 整数常量的表示形式:4种 十进制表示:12,-24,36 八进制表示:012,036,-027 十六进制表示:0x12,0xaf 长整型:2L 整型变量:6种,5个关键字 P43页表3.1 整型变量的定义与使用,(1)区分

14、: 12 012 0x12 12L (2)下列整型常量正确的是 0x68,068,0xAE,0xEG,67L,2、整型常量与变量 整型变量的定义与使用,#include “stdio.h” void main() int a,b,c,d; long l,k; short s; unsigned u; unsigned short su; unsigned long lu; a=12;b=-024;u=0x10; c=a+u;d=b+u;/*p54图3-10*/ printf(“a+u=%d,b+u=%dn”,c,d); ,3、实型常量与变量 实型常量的表示形式: 实型变量:P46页表3.2 实

15、型变量的定义与使用,#include “stdio.h” void main() float x; double y; x=12.7777; y=1.2e-6; x=x+1; y=y+2; printf(“x=%f,y=%fn”,x,y); ,4、字符常量与变量、字符串常量 字符常量:单引号括起来的单个字符 普通字符: 转义字符: (1)n,b,r,t,f (2), , ” (3)141,x61 字符变量 char c1,c2 字符数据在内存中的存储 字串常量,(1)区分 a,141,x61 (2)区分2和2 (3)以下字符常量正确的是 , AB, *, ”b”, 148 6e, x1e, t

16、, a,字符变量的定义与使用 #include “stdio.h” void main() char c1,c2,c3,c4,c5; c1=a; c2=n; c3=141; c4=x61; c5=; printf(“%c%c%c%c%c”,c1,c2,c3,c4,c5); ,3.6、变量定义与赋值 C语言变量必须先定义后使用,既可以在定义的时候直接赋初值,也可以先定义之后再进行赋值 int a,b; a=3; Float f=3.56; Char c=a; 练习 Int x,y,z=6; Int x=6,y=6,z=6; Int x=6;y=6;z=6; Int x=y=z=6;,3.7、数值

17、间的混合运算 自动从低到高自动进行转换为同一类型 ;54页图3-10 3.8、运算符与表达式 、运算符简介(+,-,*,/,% ,=,!= !,在变量的前、后,练习: 1、设:x=2.5,a=7,y=4.7 求:x+a%3*(int)(x+y)%2/4 2、设:a=2,b=3,x=3.5,y=2.5 求: (float)(a+b)/2+(int)(x)%(int)y,3.9、赋值运算符和赋值表达式 赋值运算符(=) 类型转换(以变量类型为准) 复合的赋值运算符(+=,-=,*=,/= ,%=) a+=3;x*=y+8;x%=3 赋值表达式的值 a=b=c=5; a=5+(c=6); a=(b=

18、10)/(c=6) 上机题目:实验指导书(朱冬梅)实验一,实验二 作业教材67页的3.9, 3.10, 3.12下次上课交来,用单张纸,VC+6.0上机步骤 上机准备:在D盘创建自己的子目录 D:jhj 启动:开始-程序-Microsoft Visual Studio-Visual C+6.0 新建编辑: 在编辑环境中选择,File-New-Files-C+ source File 并在Location中选择 自己新建的 D:jhj 在File中输入,创建的程序文件名,如 c1.c 编译连接: 在编辑环境中选择,Build-Build All,根据底部窗口信息提示进行调试,直到错误和警告全部为

19、0 运行:在编辑环境中选择,Build-Execute 打开、保存、另存为:和Word类似 注意:位置,名字,一个文件调完必须关闭之后新建另一个文件,第四章 顺序程序设计 一、C语句概述 二、赋值语句 三、输入输出的概念及实现 四、字符数据的输入输出 五、格式输入输出 六、顺序结构程序设计,4.1 C语句概述(5类) 例 1、main() 2、 3、 int a,b,c; 4、 scanf(“%d%d”, 7、,11、int max(int x,int y) 12、 13、 int z; 14、 if(xy) z=x; 15、 else z=y; 16、 return(z); 17、,4.2

20、赋值语句 4.3 输入输出的概念及实现 没有专门的输入输出语句,输入输出功能由函数来实现: putchar() getchar() printf() scanf() puts() gets() 使用以上函数时必须使用include包含stdio.h头文件,4.4 单个字符的输入输出getchar()函数putchar() getchar():从键盘输入一个字符,无参数。 putchar();输出一个字符到屏幕上,一个参数; 如:#include “stdio.h“ /*文件包含*/ void main() char ch; ch=getchar(); /*输入1个字符并赋给ch */ putc

21、har(ch);putchar(n); ,例:从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值。 #include “stdio.h“ void main() char c1,c2; printf(“Input a lowercase letter: “); c1=getchar(); putchar(c1);putchar(n); c2=c1-32; /*将大写字母转换成对应的小写字母*/ putchar(c2); ,4.5 格式化输出printf()函数 printf() :按指定的格式显示一个或多个任意类型的数据。 一般格式为:printf(格式控制、输出列表

22、); 如:printf(“%d%dn”,a,b); 格式控制:可包括格式说明、普通字符、转义字符组成。 1、格式说明:由%和格式字符组成,如%d,%f等,控制数据按指定格式输出。 2、普通字符:即需按原样输出的字符。 3、转义字符:如n表示回车换行。 如:printf(“a=%dnb=%dna+b=%d”,a,b,a+b); 格式字符:d以带符号的十进制形式输出输出列表对应的数值(正数不带符号)。 s输出字符串。 c以字符的形式输出,只输出一个字符。 f以小数形式输出单、双精度数,隐含输出6位小数。 e以指数形式输出单、双精度数,数字部分小数位数为6位,(e02)。 g选用%f或%e格式输出宽

23、度较短的格式输出,不输出无意义的0,o以八进制无符号的形式输出整数(不输出前导符0)。 x以十六进制无符号的形式输出整数(不输出前导符0x)。 u以无符号十进制形式输出整数。 l可加在格式符d、o、x、u前面,用于输出长整型数据。 m数据最小宽度。 .n对实数,表示输出n位小数(四舍五入); 对字符串,表示截取的字符个数; 输出的数字在域内向左对齐。 如:a=1234;b=c;d=123.456; printf(“%8d” ,a); printf(“%-8d” ,a); printf(“%c”,b); printf(“%d” ,a); printf(“%o” ,a); printf(“%d”,

24、b); printf(“%x”,a); printf(“%8d”,-a); printf(“%f” ,d); printf(“%e” ,d); printf(“%8.2f” ,d); printf(“%g” ,d); 说明:对长整形变量应在doxu前加字母l,即%ld,否则可能出错;一个负整数以%o%x格式输出,不会输出带符号的八进制或十六进制,而将内存单元中的符号位一起按数字输出;输出字串时也可以省略格式符,直接输出字串。,格式化输入scanf()函数 scanf() 输入数据。 一般格式:scanf(格式控制,地址表列) 如scanf(“%d”, 要输入:12,23,36,4.6 顺序结构

25、程序设计 例10/11/12,第四章 小结 一、C语句概述(5个) 二、赋值语句(功能,区别) 三、输入输出的概念及实现(3) 四、字符数据的输入输出(getchar,puchar) 五、格式输入输出(printf,scanf) 六、顺序结构程序设计(简单问题会自己编程序解决),第五章 选择结构程序设计 一、关系运算符及其表达式 二、逻辑运算符和逻辑表达式 三、if语句 四、条件运算符 五、switch语句 六、选择结构程序举例,5.1 关系运算符及其表达式 1、关系运算符及其优先次序 A关系运算符 C语言提供6种关系运算符: (大于) =(大于或等于) =(等于) !=(不等于) 注意: 双

26、等号 “= =”与单等号“= ”的区别;不等于写法 B优先级 算术运算符、=、!=赋值运算符 (92页例题),2、关系表达式 A关系表达式的概念 所谓关系表达式是指,用关系运算符将两个表达式连接起来,进行关系运算的式子。 例如,下面的关系表达式都是合法的: ab,a+bc-d,(a=3)=b,(ab)=(bc),B关系表达式的值逻辑值(成立/不成立)(非“真”即“假”) 由于语言没有逻辑型数据,所以用整数“”表示“逻辑真”,用整数“”表示“逻辑假” 例如,假设num1=3,num2=4,num3=5,则: (1)num1num2的值=0。 (2)(num1num2)!=num3的值=1。 (3

27、)num121 从左至右。 (4)(num1num2)+num3的值=6,因为num1num2的值=1,1+5=6。 注:C语言用整数“1”表示“逻辑真”,用整数“0”表示“逻辑假”。所以,关系表达式的值,还可以参与其它种类的运算,例如算术运算、逻辑运算等。,5.2 逻辑运算及其表达式 关系表达式只能描述单一条件,例如“x=0”。如果需要描述“x=0”、同时“x=0&x=0) & (x5) ,!(ab),2、逻辑运算符运算规则 1)&:当且仅当两个运算量的值都为“真”时,结果为“真”,否则为“假”。 2)| :只要有一个为真,则结果为真。(当且仅当两个运算量的值都为“假”时,结果为“假”,否则

28、为“真”) 3)!:当运算量的值为“真”时,结果为“假”;当运算量的值为“假”时,结果为“真”。 例如,假定x=5,则(x=0) & (x5)的值为“假”。 3、逻辑运算符的运算优先级 (1)逻辑非的优先级最高,逻辑与次之,逻辑或最低,即:!(非) &(与) |(或) (2)与其它种类运算符的优先关系 ! 算术运算 关系运算 & | 赋值运算,4、逻辑表达式 (1)逻辑表达式的概念 所谓逻辑表达式是指,用逻辑运算符将1个或多个表达式连接起来,进行逻辑运算的式子。在C语言中,用逻辑表达式表示多个条件的组合。 例如,(year%4=0)&(year%100!=0)|(year%400=0) 就是一

29、个判断一个年份是否是闰年的逻辑表达式。 逻辑表达式的值也是一个逻辑值(非“真”即“假”/1或0)。,(2)逻辑量的真假判定和非 语言关系表达式和逻辑表达式的返回值,用整数“”表示“逻辑真”、用“”表示“逻辑假”。但在判断一个量“真”或“假”时,却以和非为根据:如果为,则判定为“逻辑假”;如果为非,则判定为“逻辑真”。 例如,假设num=12, 则:!num的值= num=1 num31的值=1,5、关于逻辑表达式的说明 (1)逻辑运算符两侧的操作数,除可以是和非的整数外,也可以是其它任何类型的数据,如实型、字符型等。 (2)在计算逻辑表达式时。 对于逻辑与运算,如果第一个操作数被判定为“假”,

30、系统不再判定或求解第二操作数。 对于逻辑或运算,如果第一个操作数被判定为“真”,系统不再判定或求解第二操作数。 例如,假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,则求解表达式“(x=n1n2)&(y=n3n4)”后,x的值变为,而y的值不变,仍等于1!,练习: int a=5,b=6,c=7,d=8,m=2,n=2; 则执行(m=ab)&(n=cd)运算后,m,n的值为: 执行(m=ab)|(n=cd)运算后,m,n的值为:,5.3 if语句和条件运算符 if语句用来判断给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。 if(ab) printf

31、(“The Max is:%d”,a); else printf(“The Max is:%d”,b);,一、if语句的三种形式 1、if(表达式) 语句; 2、if(表达式) 语句1; else 语句2; 3、 if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式n) 语句n; else 语句n+1;,说明: 1、if后表达式可以是关系表达式、逻辑表达式或其他表达式,表达式非时为真,时为假。 2、else语句不能单独使用,必须和if配对使用。 3、if else后的语句既可以是一个语句,也可以是用括起来的复合语句。 4

32、、if else后的每一个语句后有一个分号;且只能有一个语句(单语句或复合语句); 5、if语句中可以嵌套一个或多个if语句。 如:if() if() 语句; else 语句; else if() 语句; else 语句;,二、条件运算符(条件表达式) C语言中唯一的一个三目运算符。 一般形式为:表达式?表达式:表达式 说明: 1、条件运算符的执行顺序:先求解表达式,若为非(真)则求解表达式,此时表达式的值作为整个条件表达式的值。若表达式的值为(假),则求解表达式,表达式的值作为整个条件表达式的值。 2、条件运算符优先于赋值运算符:如 max=(ab)?a:b 先求解(ab)?a:b的值再赋给

33、max。 3、运算结合方向“自右至左” 如ab?a:cd?c:d相当于ab?a:(cd?c:d),练习: 假定w、x、y、z、m均为int型变量,有如下程序段 w=1; x=2; y=3; z=4; m=(wx)?w:x; m=(my)?m:y; m=(mz)?m:z; 求m的值,五、switch多分支语句 一般形式:switch(表达式) case 常量表达式:语句; case 常量表达式:语句; case 常量表达式n :语句n; default:语句n+1; 如:switch(temp) case 1:printf(“1”);break; case 2:printf(“2”);break

34、; case 3:printf(“3”);break; default:printf(“error”); ,说明: 1、switch后表达式可以是任何表达式,case后必须是常量; 2、当表达式与某一个case后面的常量表达式相等时,就执行此case后面的语句,若所有case中的常量表达式的值都没有与表达式值匹配的,就执行default后面的语句; 3、每一个case的常量表达式的值必须不相同,否则会出现矛盾; 4、各个case的出现次序不影响执行结果; 5、case后面的常量表达式仅起标号作用。系统一旦找到入口标号,就从此标号开始执行,不在进行标号判断,所以跳出需要加break语句,否则执行

35、后面所有语句; 6、多个case语句可以共用一组执行语句;,第六章 循环控制 控制程序中的一条或一组语句反复执行多次。 一、while和do while循环 二、for循环 三、几种循环的比较 四、循环的嵌套 五、break语句和Continue语句 六、程序举例,一、while和do while循环语句 While循环一般形式: while(表达式) 循环体 执行过程:先判断表达式,当表达式为真(非零)时执行循环体,执行完循环体后再判断表达式,直到表达式为假时结束。 说明: 1、循环体如果包含一个以上的语句,应该用括号括起来,构成一个复合语句,否则只循环第一个分号语句。 2、在循环体内应有语

36、句使循环趋于结束,否则循环永远执行 3、while循环的基本元素:循环变量初始化、条件表达式、循环体、使循环趋于结束的语句,do while一般形式: do 循环体 while(表达式); 执行过程:先执行一遍循环体,再判断表达式是否成立,如成立则继续循环,否则结束循环。 说明: 1、循环体如果包含一个以上的语句,应该用括号括起来,构成一个复合语句,否则语法错误(只循环第一个分号语句)。 2、在循环体内应有语句使循环趋于结束,否则循环永远执行,二、for循环 一般形式: for(表达式1;表达式2;表达式3) 循环体; 执行过程 1、先求解表达式的值。 2、求解表达式的值:若为真执行循环体、执

37、行第步;若为假结束循环。 3、求解表达式的值。 4、跳回第步继续执行。 5、执行for语句后面的语句。,For语句也可理解为: for(循环变量赋初值;循环条件;循环变量改变) 循环体; 即:表达式1:循环变量初始化 表达式2:循环条件 表达式3:循环变量的改变(+/-) 表达式1、表达式2、表达式3共同来控制循环的次数,说明: 1、表达式1、表达式2、表达式3都可以省略,但分隔表达式的符号不可省略。 表达式1省略,则不进行初始化,此时应在for前给循环变量赋初值 表达式2省略,则不判断循环条件,循环无终止地进行下去,此时可以在循环体中加break结束循环 表达式3省略,则应另外设法使循环趋于

38、结束,可把循环变量变化放在循环体中 表达式1、表达式2、表达式3可以省略其中一个,也可以省略其中两个,或全部同时省略。,2、表达式1和表达式3也可以是和循环变量无关的其他表达式,或逗号表达式。 3、表达式2可以是任意数值和非数值的关系表达式、逻辑表达式或其他表达式。 4、循环体可以是一个语句也可以是几条语句构成的复合语句;循环体可以是和循环变量有关也可以和循环变量无关,三、 while/do while和for循环的区别 循环变量初始化:while和do-while循环,循环变量初始化应该在while和do-while语句之前完成;而for循环,循环变量的初始化可以在表达式1中完成。 循环条件

39、:while和do-while循环只在while后面指定循环条件;而for循环可以在表达式2中指定。 循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于结束的操作;for循环可以在表达式3中完成。 while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判断表达式。 三种基本循环结构一般可以相互替代 for一般用于已知循环次数的循环,while dowhile一般用于不知道循环次数,用特定条件控制循环的循环, dowhile循环体至少要执行一次。,死循环 永远不会退出的循环为死循环 for (;) while (1) do wh

40、ile (1),四、循环的嵌套 一个循环内又包含一个完整的循环结构 注意: 1、在嵌套的各层循环体中,使用复合语句(即用一对大花括号将循环体语句括起来)保证逻辑上的正确性 2、内层和外层循环控制变量不应同名,以免造成混乱 3、嵌套的循环最好采用右缩进格式书写,以保证层次的清晰性 4、循环嵌套不能交叉,即在一个循环体内必须完整的包含着另一个循环,编程输出如下形式的乘法九九表,将上例输出格式改成如下的下三角格式打印,五、break语句和Continue语句 1、break语句 从循环体内跳出,提前结束循环,接着执行循环下面的语句 2、continue语句 结束本次循环,即跳过循环体中下面尚未执行的

41、语句,接着执行下一次循环是否执行的判定。 说明: A、二者区别:continue只结束本次循环,而不是结束整个循环的执行,break是结束循环,不再进行条件判断 B、如果是双层循环,break只能跳出当前层,提前结束本层的循环,不能结束所有循环,六、循环应用,结构化程序设计,顺序结构 选择结构 循环结构 任何程序均可只用这三种结构综合描述 只用这三种结构编制的程序,叫结构化程序,一、顺序结构,B,A,B,A,例:根据公式c=5/9(f-32)实现,输入一个华氏温度,输出摄氏温度。 main() float f,c; printf(“please input huashi wendu:“); s

42、canf(“%f“, ,二、选择结构,B,N,A,Y,条 件P,例:猜数游戏:先由计算机“想”一个数请人猜,如果人猜对了,则计算机给出提示:“Right!”, 否则提示:“Wrong!”,并告诉人所猜的数是大还是小。,#include “stdio.h” #include “stdlib.h“ #include “time.h” void main() int i,t; srand(time(NULL) i=rand ()%21; printf(“please input the number(0-20):“); scanf(“%d“, ,switch多分支 switch (表达式) case

43、 常数1:语句序列1; case 常数2:语句序列2; default:语句序列3; default可以没有,但最好不省略 不要忘记break,三、循环结构,for (表达式1; 表达式2; 表达式3) 语句; while (表达式) 语句; do 语句; while (表达式);,A,条 件P,条 件P,A,当型循环,直到循环,例:先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。计算机记录人猜的次数,以此来反映猜数者“猜”的水平。,算法的描述方法 流程图 与基本控制结构相应的结构化的控制语句 if-el

44、se switch (case break default) for while do-while break continue 常用算法,如累加、累乘、统计、穷举、递推、迭代等,常用算法 求累加、累乘: 数据类型的定义 初始值 计数器(统计): (课后题) 统计正数、平均分以上、n个成绩中10090、8980、7970、6960、60的人数;输入字符串中字母d的个数 设置一个计数变量k:初始化为0,每遇到一次将其加1:k+;,前后项之间无关 1m+3m +5m +7m +.11m /4=1-1/3+1/5-1/7+.直到最后一项的绝对值小于10-6为止 前后项之间有关 1!+2!+.+20!

45、 x0+x1 +x2+x3+.x10 1+1+2+3+5+8+13+21+. 2/1+3/2+5/3+8/5+13/8+21/13+. a+aa+aaa+aaaa+aaaaa+a是一个数字 实验指导书第10题,穷举法: 水仙花数 最大公约最小公倍数、例6.9 习题6.7 递推法:菲泊那数列 公约公倍数(辗转相除法)、素数判断循环嵌套:九九表、星塔,第七章 数组 引入:顺序输入10个整数,并分别按正序、逆序输出。 第一节 数组的定义和引用 一、数组概念:一组同一类型的带有序下标的变量的集合。数组中用一个统一的数组名和下标来唯一地确定数组中的元素。 如:int a10定义整型数组a,有10个元素。

46、 各元素可分别表示为:a0、a1a9。,二、数组定义: 一维数组:类型说明符 数组名常量表达式 如:int a10定义整型数组a,有10个元素。 各元素可分别表示为:a0、a1a9。 二维数组:类型说明符 数组名常量表达式常量表达式 如:float b43定义单精度型数组b,有4行,每行有3列 ,共12个元素。 各元素可分别表示为:b00、b01、b02 b10、b11、b12 b20、b21、b22 b30、b31、b32,说明: 1、数组名命名规则和变量名相同,遵循标识符定名规则。 2、数组名后必须使用方括号,不能使用圆括号。 3、定义数组的常量表达式可以是常量或符号常量,但不能是变量。

47、如:int n=5; int an;不正确 #define M 5 int aM;正确 4、常量表达式表示元素的个数,即数组长度。 如:int a10,b34;表示a数组有10个元素,b数组有3行4列共12个元素,各数组下标均从0开始。 5、二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。 6、三维数组中定义存放和二维类似。如:int a345;,三、数组的初始化 1、一维数组的初始化 int a10=0,1,2,3,4,5,6,7,8,9; int a=0,1,2,3,4,5,6,7,8,9; 全部赋初值时可省略长度。 int a10=0,1,2,3,4; 可对数组部分赋初值,其他默认赋0。 int a10=0; 数组全部元素值均为零。 若对不赋初值,则数组元素取随机值。如在定义时加static 则所有元素为0。 如:int a10;各元素值为随机数。 static int a10;各元素值为零。,三、数组的初始化 2、二维数组的初始化 int a34=0,1,2,3,4,5,6,7,8,9,10,11;分行给二维数组初始化 int a34= 0,1,2,3,4,5,6,7,8,9,10,11;把所有数据写在一个括号内,按数组排列的顺序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1