回顾c所需要的知识 数据结构 教学课件

上传人:油条 文档编号:49113137 上传时间:2018-07-23 格式:PPT 页数:79 大小:586KB
返回 下载 相关 举报
回顾c所需要的知识 数据结构 教学课件_第1页
第1页 / 共79页
回顾c所需要的知识 数据结构 教学课件_第2页
第2页 / 共79页
回顾c所需要的知识 数据结构 教学课件_第3页
第3页 / 共79页
回顾c所需要的知识 数据结构 教学课件_第4页
第4页 / 共79页
回顾c所需要的知识 数据结构 教学课件_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《回顾c所需要的知识 数据结构 教学课件》由会员分享,可在线阅读,更多相关《回顾c所需要的知识 数据结构 教学课件(79页珍藏版)》请在金锄头文库上搜索。

1、 数据结构有关的C语言知识【专题】控制流if语句的三种形式“一选一” if语句的一般格式: if (表达式) 内嵌语语句A;任何表达式 常用的有关系表达 式和逻辑表达式单个语句 或复合语句若表达式值为真(即为非 0值),执行 图3.1中的内嵌 语句A(块语句或单个语句);否则,不执行任何操作。 然后结束if语句,执行下一 语句。图3.1 “一选一”逻辑 图 表达式A入口出口真假例如:if(xy) printf(“%d”,x);注意:如果是多条语句作为内嵌语句A则要花括号 括起来,否则就把离它最近的一条语句看作是它的 内嵌语句A例1:#include void main() int x=5,y=

2、4;if(xy) printf(“%d ”,x);printf(“%d”,y);例2:#include void main() int x=5,y=4;if(xy) printf(“%d”,x);printf(“%d”,y);(2)运行结果: 5 4 例3:#include void main() int x=4,y=5;if(xy) printf(“%d ”,x);printf(“%d”,y);(3)运行结果: 5(1)运行结果: 5 4“二选一” if语句的一般格式: if (表达式)内嵌语句 A;else内嵌语句 B;若表达式值为值为 真,即为为非0 值值,执执行图图3.2中的内嵌语语句

3、 A(块语块语 句或单单个语语句);否则则,执执行图图3.2中的内嵌 语语句B。然后结结束if语语句,执执 行下一语语句。表达式A入口出口图3.2 “二选一”逻辑图 真B假例如: if(xy)printf(“%d”,x);else printf(“%d”,y);if (表达式1)语语句1; elseif (表达式2) 语语句2; else语语句3; 真假假真表达式1语句1 语句2 语句3表达式2图3.4 if嵌套结构的流程图 “嵌套式” if语句的一般格式: 内嵌if语句注意: else与前面最近的且未配对的if 配对.1、请读程序:#includemain() float x,y;scanf

4、(“%f”,if (x void main() int sum=0,n=1; printf(“ * 运行结果 *n“); while (n void main() int sum=0,n=1; while (n void main() int sum=0,n=1; 331while (n void main() int sum=0,n=1; 64while (n void main() int sum=0,n=1; while (n7) n-;printf(“%dn”,n);A)10 B)9 C)10 D)99 8 9 88 7 8 77 6 do 循环体; while (表达式);任何表达式

5、 常用是关系 表达式和逻 辑表达式分号 结束【专题】控制流do while语句一般格式:例 编写下述功能程序:应用do while语句计算 1+2+3+ . +9+10 的和。 #include void main() int sum=0,n=1;printf(“ * 运行结结果 *n“); do sum+=n; n+; while (n void main() int sum=0,n=1; do sum+=n; n+; while(n void main() int sum=0,n=1; 1231s1n void main() int sum=0,n=1; 123printf(“1+2+3=

6、%dn“,sum);do sum+=n; n+; while(n void main() int sum,n; 【巩固for语句的使用】/* 计计算 1+2+3 的和 */ #include void main() int sum,n; for (sum=0,n=1; n void main() int sum,n; 31sumn 1 n void main() int sum,n; for (sum=0,n=1; n void main() int sum,n; for (sum=0,n=1; n main() int i,j;for(i=4;i=4;i-) for(j=1;j=i)n+=1

7、;n+;printf(“%dn”,n); A、4 B、2 C、1 D、0答案: (1)#(2)Acontinue语句是有条件地截断循环体中的部分 语句,使其不执行。格式continue;作用 终止本次循环,进入下一次循环。注意1)continue只能出现在循环语句的循环体中。2) Continue往往与if语句联用【专题】控制流continue语句#include void main()int i,sum=0; for (i=1;ivoid main() int i,sum=0;for (i=0;) i+; if (i%2=0) continue;if (i=10) break; /* 有条件

8、地跳出循环环 */ sum+=i; printf(“sum=%dn“,sum);【注释】遇到break则 结束整个循环。本 例子中当i=11时, 执行break语句, 跳出for语句。【巩固其他控制语句-break】:【本程序实现的功能是求 1+3+5+7+9 的和】1:先判断a与b是否相等,如果a等于b则继续判断b 与c是否相等,相等则打印 abc;如果a不等于b 则打印 a!bif (a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”); 错误的修改: if (a=b) if(b=c)printf(“a=b=c”);elseprintf(“a!=b”)

9、;【练习】1、请读程序并写出结果: #include void main() int a=2,b=-1,c=2;if(amain() int y=10;doy-;while(-y);printf(“%dn“,y-);A)-1 B)1 C)8 D)0 【练习】1、设j为int 型变量;则下面for循环语句的 执行结果是() for(j=10;j3;j-) if(j%3) j-;-j; -j;printf(“%d”,j); A、63 B、74 C、62 D、73 2、输出结果是( ) main() int i,j;for(j=10;j main() int i , sum; for(i=1;i m

10、ain( ) int x=10, y=10, i; for(i=0; x8; y=+i)printf(“%d %d “, x-, y); A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1答案: D【练习】答案: B1、下面程序的运行结果是:_ main() int a,b;for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b=-5;printf(“%dn”,a); A.7 B.8 C.9 D.10 【练习】:#includemain() int a,b;scanf(“%d,%d“,asb(a,b)

11、; int asb(int x, int y) int z;z=x+y;printf(“%d”,z); int asb(int x,int y) ;【专题】函数在函数调用时, 将实参的值复制给对 应的形参,而不能将 形参的值反传给实参 。参数传递结束,实 参与形参就无任何联 系了。因此,形参的 变化不会影响实参, 是很安全的。函数参数传递的原理:例: 输出两个数之和asb(int x, int y) int z;z=x+y;printf(“%d”,z); main() int a,b;a=1,b=2;asb(a,b); 形参asb(a,b);(在main 函数中调用)(asb 函数的定义)as

12、b(int x, int y) int z;z=x+y;printf(“%d”,z); main( )调用函数asb结束asb函数 实参1、#include int abc(int u,int v);main() int a=9,b=6,c;c=abc(a,b);printf(“%dn”,c);int abc(int u,int v) int w;while(v) w=u%v;u=v;v=w; return u; 有以上程序输出结果是 () A.6 B.3 C.2 D.9答案: (1)B【练习】:【练习】:以下程序的输出结果()#include func(int a,int b) int c;

13、c=a+b;return c; void main() int x=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf(“%dn”,r); 答案:211、以下程序运行结果是 。 fun(int x) static int a=3;a+=x;return a; main( ) int k=2,m=1,n;n=fun(k);n=fun(m);printf(“%dn“,n); 结果是: 6【练习】:1)【格式】 int *p; /* p是指针变量,指向不确定目标 */编译连接时要为整型变量x和指针变量p分配内存图5.2.2a p与x未建立联系10x 地址:ffda常规变

14、量,存放数据?指针变量,存放内存地址p 地址:ffdc指向不确定目标int x=10; int *p;p与x未建立联系,不能通过p间接访问x。!int x=10; int *p=NULL;/* p是指针变量,不指向任何目标 */编译连接时要为整型变量x和指针变量p分配内存图5.2.2b p与x未建立联系10x 地址:ffda常规变量,存放数据NULL指针变量,存放内存地址p 地址:ffdc不指向任何目标int x=10; int *p=NULL;p与x未建立联系,不能通过p间接访问x。!int x=10; int *p= /* p是指针变量,指向x目标 */编译连接时要为整型变量x和指针变量p

15、分配内存图5.2.2c p与x建立联系10x 内存地址: ffda常规变量,存放数据?指针变量,存放内存地址p 内存地址:ffdc p指向x可通过指针p 间接访问x。 指针法:*p*p可认为是x 的别名。int x=10; int *p=p与x建立了联系,能通过p间接访问x。*p可视为x的别名。通过*p可间接访问x。 *p是指针表示法。!ffda定义指针的目的是为了通过指针去访问内存单 元。通过该指针访问它所指向的存储单元的方式: 【格式】 *(地址表达式)若: int i; /* 定义整型变量i */ int *p; /* 定义指针变量p */p= /* p指向i */*p=3; /* 使i的内容为3 */int *p=指针的初始化和引用注意 :float *p, x2;p=printf(“%f”, *p);两个*p表示 的含义不同【总结】 一般情况下,在定义变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号