资源预览内容
第1页 / 共102页
第2页 / 共102页
第3页 / 共102页
第4页 / 共102页
第5页 / 共102页
第6页 / 共102页
第7页 / 共102页
第8页 / 共102页
第9页 / 共102页
第10页 / 共102页
亲,该文档总共102页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计基础(C语言)东北大学高级语言程序设计课程组 课程网站:www.neu.edu.cn/cxsj程序设计基础(C语言)流程控制-顺序结构 程序设计基础(C语言) www.neu.edu.cn/cxsj基本语句nC语言程序设计是由函数构成每个函数完成的功能则是通过由一条条语句实现的n语句是构成C程序设计的基本单位语句能完成特定操作语句最后必须有一个分号,分号是C语句的组成部 分nC语句分为三类 基本语句 复合语句 程序控制语句3程序设计基础(C语言) www.neu.edu.cn/cxsj基本语句n复合语句用一对大括号括起一条或多条语句n无论有多少语句,都只被看成一条语句例如 t=a;a=b;b=t; a=10;printf( “%d” ,a ); 执行复合语句实际是执行该复合语句一对 大括号中所有语句4程序设计基础(C语言) www.neu.edu.cn/cxsj基本语句n空语句由一个分号;组成n空语句是表达式语句的一种特例格式: ;n它表示什么操作也不做。从语法上讲,它的确 是一条语句。在程序设计中,若某处从语法上 需要一条语句,而实际上不需要执行任何操作 时就可以使用它。例如,在设计循环结构时, 有时用到空语句。 5程序设计基础(C语言) www.neu.edu.cn/cxsj基本语句n声明语句功能n定义变量的名称和数据类型,为C编译系统给该变量分配 存储空间提供依据格式: 变量表;n基本数据类型,例如:int、float、charn变量表:由一个或多个变量组成n例: int a,b,c; float i,j,k;n提示C程序中所有变量应先定义后使用应先定义后使用声明语句应放在函数的“”和任何可执行语句之前6程序设计基础(C语言) www.neu.edu.cn/cxsj基本语句n表达式语句在表达式后面加上一个分号“;”就构成了一个表达式语 句格式: ;n n例:例:a=b*2; /*赋值运算表达式语句*/ +j; /*前缀运算表达式语句*/ x+y; /*x+y;是算术表达式语句*/ 提示n表达式语句和表达式的区别在于表达式代表的是一个数值,表达式语句代表的是一 个动作特征7程序设计基础(C语言) www.neu.edu.cn/cxsj顺序结构n顺序结构是一组按书写顺序执行的语句是C语言中最简单、最基本的一种结构是进行复杂程序设计的基础C语言组成顺序结构的主要语句n赋值语句n声明语句n输入/输出函数8程序设计基础(C语言) www.neu.edu.cn/cxsj【例1】main() float a=123.456;double b=8765.4567;printf(“(1)%fn”,a); printf(“(2)%14.3fn”,a); printf(“(3)%6.4fn”,a); printf(“(4)%lfn”,b); printf(“(5)%14.3lfn”,b);printf(“(6)%8.4lfn”,b); printf(“(7)%.4fn”,b); (1)123.456000 (2)123.456 (3)123.4560 (4)8765.456700 (5)8765.457 (6)8765.4567 (7)8765.4567顺序结构9程序设计基础(C语言) www.neu.edu.cn/cxsj【例2】 编写程序:输入两个整数a和b(设a=100,b=17)求a除以b的商和余数。#include “stdio.h”main( )int a, b, x, y;scanf (“%d, %d”, x=a/b; /* 求a/b的商 */y=a%b; /* 求a/b的余数 */printf (“a=%3d, b=%3d,a/b=%4d, a%b=%4dn”, a, b,x,y);顺序结构10程序设计基础(C语言) www.neu.edu.cn/cxsj【例3】编写一个程序用于水果店售货员算帐:已知苹果每斤2.5元,梨每 斤1.8元,香蕉每斤每斤2.0元,橘子每斤1.6元,要求输入各类水果的重 量,打印出应付钱数,再输入顾客应付款数,打印出应找的钱数。 演示3f #include“stdio.h” main() float p,y,x,j,ys,g,fk;prinft(“苹果,鸭梨,香蕉,橘子=”);scanf(“%f,%f,%f,%f”,/*输入各数之间用逗号分隔*/ys=2.5*p+1.8*l+2.0*x+1.6*j;printf(“顾客付款(元)=”);scanf(“%f”,fk=g-ys;printf(“计算结果:n”);printf(“顾客付款=%6.2f元n应收货款=%6.2f元n应找回=%6.2f元 n”,g,ys,fk);顺序结构11程序设计基础(C语言)流程控制-选择结构 程序设计基础(C语言) www.neu.edu.cn/cxsj选择结构n选择结构的特征程序的流程由多路分支组成n在程序的一次执行过程中,根据不同情况只有 一条支路被选中执行n其他的分支上的语句被直接跳过n选择结构的要素语句nif语句nswitch语句条件13程序设计基础(C语言) www.neu.edu.cn/cxsj选择结构n选择结构的要素条件n由关系表达式或由关系表达式组合而成的逻辑表达式用数值1表示逻辑“真”,用0表示逻辑“假” 在判断条件时又以非0为“真“,以0为“假“ 少数情况下也可以是算术表达式n这个表达式的结果将决定程序下一步的执行顺序n例C1是否为小写字母的条件是:X在1,10和200,210之间为真, 否则为假的条件是:(c1=a)else y=0;printf(“%f%f”,x,y); 22程序设计基础(C语言) www.neu.edu.cn/cxsj输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的 数字,否则输出两数之和。 main() int a,b,x,y;scanf(“%d%d”,scanf(“%d%d”,m=n=1;if(a0) m=m+n;if(a,程序的运行结果为多少?2)当输入为1 0,程序的运行结果为多少?3)为了输出n=4,变量a和b应具备的条件是什么?m=1 n=2m=2 n=30= 90) printf(“A”);if (ave = 80else if (ave = 80) printf(“B”);else if (ave = 70) printf(“C”);else if (ave = 60) printf(“D”);else printf(“E”);35程序设计基础(C语言) www.neu.edu.cn/cxsjif语句n提示if 语句中花括号“ ”与分号“;”的使用n一般地,语句部分需要采用括起来n当仅有一条语句时,“”可以省略表达式的使用n常见的表达式是逻辑表达式或关系表达式n也可以是任意的数值类型,因为在 if 中只要表达式的值为非0 ,则认为是“真(逻辑1)”。否则,被认 为是“假(逻辑0)”多分支语句的选择n用 if语句嵌套实现的多分支结构,分支较 多;容易使程序冗长 不清晰;可读性差n应使用 C语言提供的switch开关语句专门处理多分支结构可以简化程序的结构, 程序简洁36程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句功能n可以根据某一表 达式的不同取值 ,直接进行多分 支选择处理语句格式语句格式:switch (表达式e)case 常量表达式a1: 语句序列S1;break;case 常量表达式a2: 语句序列S2;break;case 常量表达式an: 语句序列Sn;break;default: 语句S;37程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句执行示意图表达式e?语句序列S1;break;语句序列S2;break;语句序列S3;break;语句序列S;a1 default a3 a2 case38程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句执行过程n首先计算表达式的值n将e的值依次与每一个 case后的常量表达式ai(a1,a2,aian)进 行比较如果相等,执行常量表达式ai后的语句序列Si 若si结束处有break语句,则跳出switch语句,执行结束 若没有break语句,在执行完Si后将无条件的继续执行下一 条case语句的语句 此时并不再检查后面的case后的标号ai是否与e的值相等如果未找到与之匹配的常量表达式ai,则做如下处理 若有default语句,则执行default后的语句序列S后结束 若没有default语句, switch语句直接结束(什么也没有做)39程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句提示n特殊情况下,如果switch表达式的多个值都需 要执行相同的语句可以采用下面的格式 switch (i)case 1:case 2:case 3:语句1;break;case 4:语句2;break;case 5:case 6:语句3;break;default :语句4;/*执行过程: 当整型变量i的值为1、2或3时, 执行语句1; 当整型变量i的值为4时执行语句2; 当整型变量i的值为5、6时,执行 语句3, 否则执行语句4。*/40程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句例:输入月份打印2008年该月有多少天#include main( ) int month;int day;printf(“please input the month number:”);scanf(“%d”, break:case 4:case 6:case 9:case 11:day=30;break;case 2:day=29;break;default: day=-1:if (day= =-1) printf(“invalid month input!n”);else printf(“2008.%d has %d daysn”,month,day); 41程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句提示nswitch后面括号中可以是任何表达式,取其整数部分与各常量 表达式进行比较n常量表达式中不能出现变量语句si可以是一条或多条语句,多 条语句时不必用 将它们括起来语句si处也可以没有语句,程序执行到此会自动向下顺序 执行n采用一个break语句或return语句退出switch语句是必要的ndefault语句一般出现在所有case语句之后n使用switch语句的前提条件是条件表达式必须是基于同一个整 型(或字符型)变量42程序设计基础(C语言) www.neu.edu.cn/cxsjswitch语句nswitch语句什么时候用一条switch语句比用多条if语句更好?nswitch语句与if语句不同 switch语句只能对等式进行测试if 语句可以计算关系表达式或逻辑表达式等n如果有两条以上基于同一个整型变量的条件表达式,那 么最好使用switch语句例如if(x=1)printf(”x is equal to one.n”);elseif(x=2)pri
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号