重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第三讲 选择结构程序设计

3选择结构程序设计 ■学习方法: 课前按照授课计划上指明的进度预习 >上课认真听讲,课件可下载作为笔记 课下参照教材理解课件上所讲的内容和 相关知识点 >完成作业&上机调试
3 选择结构程序设计 ▪学习方法: ➢课前按照授课计划上指明的进度预习 ➢上课认真听讲,课件可下载作为笔记 ➢课下参照教材理解课件上所讲的内容和 相关知识点 ➢完成作业&上机调试

例1:比较两个数 从键盘输入两个数,输出其中最大的一个 数。 开始 问题分析 输入两整数a,b 如果a>b, a是最大值, 否则, a>b b是最大值。 输出a 「输出b」 结束
例1:比较两个数 ▪ 从键盘输入两个数,输出其中最大的一个 数。 ▪ 问题分析 开 始 输入两整数a,b a>b 输出a 输出b 结 束 如果a>b, a是最大值, 否则, b是最大值

程序1 比较两个数* Include int maino int a, b printf("Please input two integers: In) scanf( %d %d", &a, &b); ifa>b)/比较后直接输出比较结果* printf(max=%d", a) else printf(" max=%d ", b); return(0)
程序1 /*比较两个数 */ #include int main() { int a, b; printf("Please input two integers:\n"); scanf("%d %d",&a,&b); if(a>b) /*比较后直接输出比较结果*/ printf(" max=%d ", a); else printf(" max=%d ", b); return (0); }

涉及的语法 选择结构语句格式 条件表达式) else分支可以省 略,此时为单分 支结构
涉及的语法 ▪ 选择结构语句格式 if(条件表达式) { … … } else { … … } else分支可以省 略,此时为单分 支结构

涉及的语法 关系运算符 ><><=|= 大于,小于,大于等于,小于等于,等于, 不等于 运算结果只有两个值:0和非0,0表示假, 即该关系不成立;非0,表示真,即该关 系成立 例如:2006%4=0的结果是? 0,表示关系不成立) 优先级:在算术运算符和赋值运算符之间。 结合性:自左向右
涉及的语法 -关系运算符 ▪ > = <= == != ▪ 大于,小于,大于等于,小于等于,等于, 不等于 ▪ 运算结果只有两个值:0和非0,0表示假, 即该关系不成立;非0,表示真,即该关 系成立 ▪ 例如:2006%4==0的结果是? 0,表示假(关系不成立) 优先级:在算术运算符和赋值运算符之间。 结合性:自左向右

程序2 比较两个数 include 请根据下列算法写程序。 int maino inta,b,max;/max用来存储最大值* printf( Please input two integers:in";开始门 scanf( %d %d", &a, &b); if(a>b) 输入两整数a,b maxed b else maxed. max-a max printf( max=%d", max) return(0) 匚输出mx 结束
程序2 /*比较两个数 */ #include int main() { int a, b,max;/*max用来存储最大值*/ printf("Please input two integers:\n"); scanf("%d %d",&a,&b); if(a>b) max=a; else max=b; printf(" max=%d ",max); return (0); } 开 始 输入两整数a,b a>b max=a max=b 输出max 结 束 请根据下列算法写程序

例2:判断闰年 ■从键盘上输入一个年份,然后判断这个年 份是否为闰年。 分析结果(算法) >输入year >判断year是否为国年 输出yes或mo如果y能被整除且不能被100 整除,或者year能被400整除 year是闰年, 否则 year不是闰年
例2:判断闰年 ▪ 从键盘上输入一个年份,然后判断这个年 份是否为闰年。 ▪ 分析结果(算法) ➢输入year ➢判断year是否为闰年 ➢输出yes或no 如果year能被4整除且不能被100 整除,或者year能被400整除, year是闰年, 否则 year不是闰年

分析 如果year能被4整除且不能被100整除,或者year能被400整除, year是闰年, 否则 if(year %4==0&&year%100=o)(year%400==0) year不是 (?&& printf(god is a leap year!". year) (y ea ese printf("yod is not a leap year!",year)
分析 ▪ year能被4整除且不能被100整除,或者year能被 400整除 ▪ (?)或者(?) ▪ (?且?)或者(?) ▪ (?&&?)||(?) ▪ (year%4==0&&year%100!=0)||(year%400==0) 如果year能被4整除且不能被100整除,或者year能被400整除, year是闰年, 否则 year不是闰年。 if(year%4==0&&year%100!=0)||(year%400==0) { printf(“%d is a leap year!”,year); } else { printf(“%d is not a leap year!”,year); }

结果 include 输入1998,输出结果是什么? 1998%4=0不成立,然后 void main(判断闰年 1998%400==0不成立,所以, int year: 整个条件不成立,不是闰年, print( please input year:"); 注意:1998%100==0并没有判 断,这里采用了懒情求值法, scanf(%d,&year); 因为无论它是何值,第一个条 if((year %4==0&&year% 件都不可能成立了。 输入2004,会怎样? 2000%4==0成立, prn"% d is a leap year!'2-200090010咸立,所以左边 的第一个条件成立, 2004%400==0不用再判断了 else 同样是使用懒惰求值法。 输入2100,又会怎样? 不是闰年 printf("/d is not a leap year!
结果 #include void main()/*判断闰年*/ { int year; printf(“please input year:”); scanf(“%d”,&year); if((year%4==0&&year%100!=0)||(year%400==0)) { printf(“%d is a leap year!”,year);/*一般要缩进*/ } else { printf(“%d is not a leap year!”,year); /*缩进与上边一致*/ } } •输入1998,输出结果是什么? •1998%4==0不成立,然后 1998%400==0不成立,所以, 整个条件不成立,不是闰年, 注意:1998%100==0并没有判 断,这里采用了懒惰求值法, 因为无论它是何值,第一个条 件都不可能成立了。 •输入2004,会怎样? •2000%4==0成立, 2000%100!=0成立,所以左边 的第一个条件成立, 2004%400==0不用再判断了, 同样是使用懒惰求值法。 •输入2100,又会怎样? •不是闰年

简单的程序测试 一次输入,得到正确的输出结果并不能说明问题, 要精心选择不同的输入,反复进行测试,才能逐 渐发现程序里的问题 程序测试分为结构测试和功能测试两类 结构测试又为分: 语句覆盖法 分支覆盖法 >条件覆盖法 >组合条件覆盖法 对于前一个例题,最好根据条件中的三个表达式 的组合,即选择2*2*2=8个输入进行程序的测试
简单的程序测试 ▪ 一次输入,得到正确的输出结果并不能说明问题, 要精心选择不同的输入,反复进行测试,才能逐 渐发现程序里的问题 ▪ 程序测试分为结构测试和功能测试两类 ▪ 结构测试又为分: ➢ 语句覆盖法 ➢ 分支覆盖法 ➢ 条件覆盖法 ➢ 组合条件覆盖法 ▪ 对于前一个例题,最好根据条件中的三个表达式 的组合,即选择2*2*2=8个输入进行程序的测试
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第二讲 顺序程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第1讲 C语言概述(主讲:谢竞博).ppt
- 湖南理工学院:《办公自动化实用技术》第8章 激光打印机(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第7章 喷墨打印机(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第7章 Word 2003其他实用操作(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第6章 针式打印机(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第6章 Word 2003的图文混编(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第5章 Word 2003的表格制作(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第4章 Word 2003的基本操作(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第3章 办公中的文字和表格处理(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第2章 办公设备使用与维护(3/3).ppt
- 湖南理工学院:《办公自动化实用技术》第2章 办公设备使用与维护(2/3).ppt
- 湖南理工学院:《办公自动化实用技术》第2章 办公设备使用与维护(1/3).ppt
- 湖南理工学院:《办公自动化实用技术》第1章 办公自动化的基础知识(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》课程内容介绍(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》打印机应用技术(刘怀金).ppt
- 湖南理工学院:《办公自动化实用技术》第8章 常用办公自动化设备(刘怀金).ppt
- 《管理系统中的计算机应用(本科)笔记》讲义.doc
- 《计算机操作系统原理》第四章 存储器管理(王凤广).ppt
- 《计算机操作系统原理》第六章 操作系统文件管理(王凤广).ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第四讲 循环结构程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第五讲 多函数程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第六讲 数组.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第七讲 指针与数组.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第八讲 结构体.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第十讲 结构体.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第九讲 文件.ppt
- 重庆邮电大学:《C语言程序设计》课程教学大纲 The C Language Programming Design.doc
- 重庆邮电大学:《C语言程序设计》课程作业2 根据订票的张数和月份决定优惠折扣.doc
- 重庆邮电大学:《C语言程序设计》课程作业4 循环结构程序设计.doc
- 重庆邮电大学:《C语言程序设计》课程作业讲评.doc
- 网络信息安全教育认证培训(PPT讲稿)网络安全技术.ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第三章 集合的概念及其表示法.ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第四章 函数的概念.ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第五章 代数系统.ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第一章 概述 Discrete Mathematics(主讲:郭永芳).ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第二章 谓词逻辑.ppt
- 河北工业大学:《离散数学》课程PPT教学课件(讲稿)第七章 图.ppt
- 《Matlab讲解》教学资料:Matlab初步(讲稿)之一.doc
- 《Matlab讲解》教学资料:普兰廷卡的模态形而上学.doc