第2章 分支结构 P if语句 2.2 switch语句 2.3 用条件运算符转换大小写字母 2.4 程序举例

Slides:



Advertisements
Similar presentations
While 迴圈 - 不知重複執行次數
Advertisements

CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
C语言程序设计 主讲教师 :张群燕 电话:
第四章 決策敘述 4-1 if 4-2 if..else 4-3 case 4-4 綜合範例.
绪论 一、教学对象 计算机科学与技术系新生(第二学期) 二、教学目标 程序设计的重要性 程序设计的基本概念与基本方法
第一单元 算法与流程图.
致亲爱的同学们 天空的幸福是穿一身蓝 森林的幸福是披一身绿 阳光的幸福是如钻石般耀眼 老师的幸福是因为认识了你们 愿你们努力进取,永不言败.
1.1.2 四 种 命 题.
算法和程序设计 第4课 分支结构的算法设计 •.
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
C语言程序设计 第五章 选择结构程序设计.
高级语言程序设计 主讲人:陈玉华.
由C程序结构所知,一个完整的C语言程序是由一个且只能有一个main()函数(又称主函数)和若干个其他函数组合而成的。而前面各章仅学习main()函数的编程,本章将介绍其他函数的编程,包括其他函数的定义、调用、参数传递及变量的作用域等。
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
Class 2 流程控制-選擇敘述與迴圈.
C++Primer 3rd edition 中文版 Chap 5
第3章 顺序结构程序设计 本章要点: 格式化输出函数──printf() 格式输入函数——scanf() 字符输出函数——putchar()
C++程序设计 第二讲 清华大学软件学院.
適用於多選一 可減少if 與 else配對混淆的錯誤.
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
Chap 10 函数与程序结构 10.1 函数的组织 10.2 递归函数 10.3 宏定义 10.4 编译预处理.
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
项目六 用指针优化学生成绩排名 项目要求 项目分析
C程序设计.
第五章 选择结构程序设计 一、关系运算符和表达式 1、关系运算符 在程序中经常需要比较两个量的大小关系, 以决定程序下一步
第七章 函数 目录 有参的加法函数的开发 函数定义的一般形式 函数参数和函数的值 函数的调用
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
Introduction to the C Programming Language
Chap 3 分支结构 3.1 简单的猜数游戏 3.2 四则运算 3.3 查询自动售货机中商品的价格.
C语言 程序设计基础与试验 刘新国、2012年秋.
函 数 实验八 第24讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
第三章 顺序结构程序设计 主讲教师 贾月乐 电话:
第3章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 3.1 格式化输出——printf()函数 3.2 格式化输入——scanf()函数.
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
第 二 章 数据类型、运算符与表达式.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
C语言程序设计 教案 崔武子制作
第8章 位运算 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
目录 4.1选择结构程序设计的概述 4.2关系运算符和表达式 4.3逻辑运算符和表达式 4.4用if语句实现选择结构程序设计
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
輸出與輸入(I/O).
第十四章 若干深入问题和C独有的特性 作业: 函数指针 函数作参数 函数副作用 运算 语句 位段 存储类别 编译预处理
课前注意 课前注意 大家好!欢迎加入0118班! 请注意以下几点: 1.服务:卡顿、听不清声音、看不见ppt—管家( ) 2.课堂秩序:公共课堂,勿谈与课堂无关或消极的话题。 3.答疑:上课听讲,课后答疑,微信留言。 4.联系方式:提示老师手机/微信: QQ:
C程序设计.
第一章 C语言概述 教师:周芸.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
第三章 程序的控制结构 第一节 概述 第二节 if选择结构 第三节 switch语句.
第2章 数据类型、运算符与表达式 本章要点: 基本数据类型 常量和变量 算术运算符和算术表达式 关系运算符和关系表达式
第2章 数据类型与表达式 学习目的与要求: 掌握C 语言的基本数据类型及使用方法 掌握C程序中常用的运算符和表达式 了解数据类型的转换.
习 题 课(作业).
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
第4章 顺序结构程序设计 为了让计算机处理各种数据,首先就应该把源数据输入到计算机中;计算机处理结束后,再将目标数据信息以人能够识别的方式输出。C语言中的输入输出操作,是由C语言编译系统提供的库函数来实现。 4.1 格式化输出——printf()函数 4.2 格式化输入——scanf()函数.
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
本节内容 指针类型.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第十二章 位运算.
C/C++基礎程式設計班 字元與字串 講師:林業峻 CSIE, NTU 3/14, 2015.
目录 12.1 位运算符 12.2 位域(位段) 1.
第18讲 从C到C++ 计算机与通信工程学院.
多重條件選擇敘述
Chap 10 函数与程序结构 10.1 圆形体积计算器 10.2 汉诺塔问题 10.3 长度单位转换 10.4 大程序构成.
C语言基本语句 判断循环.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C语言基础学习 从外行到入门.
Presentation transcript:

第2章 分支结构 P26 2.1 if语句 2.2 switch语句 2.3 用条件运算符转换大小写字母 2.4 程序举例 *贯穿教学全过程的实例

2.1 if语句 P27 2.1.1 学习使用关系运算符和if语句 2.1.2 认识省略else的if语句 2.1.3 学会使用逻辑运算符 2.1.5 学会使用if-else if形式的嵌套if语句 返回

2.1.1 学习使用关系运算符和if语句 P27 【实例2.1】编写程序,判断输入的整数是否为6,若是,显示“Right!”和“Great!”,否则显示“Wrong!”和“Sorry!”。

if(a==6) 开始 输入a值 a==6 显示“Right!” 显示“Great!” 显示“Wrong!” 显示“Sorry!” 结束 假 真 if(a==6)

#include <stdio.h> main() { int a=0; printf("Input a:"); scanf("%d",&a); if(a==6) { printf("Right!\n"); printf("Great!\n"); } else { printf("Wrong!\n"); printf("Sorry!\n"); 关系运算符 “>” “>=” “<” “<=” “==” “!=” 第1次运行结果: Input a:6<回车> Right! Great!

#include <stdio.h> main() { int a=0; printf("Input a:"); scanf("%d",&a); if(a==6) { printf("Right!\n"); printf("Great!\n"); } else { printf("Wrong!\n"); printf("Sorry!\n"); 第2次运行结果: Input a:5<回车> Wrong! Sorry!

2.1.2 认识省略else的if语句 P29 【实例2.2】编写程序,随意输入两个整数存放在变量a和b中,最后保证变量a中存放两个数中较大者,b中存放较小者。

a<b 假 真 交换a和b 开始 输入a和b值 结束 输出a和b值

#include <stdio.h> main() { int a=0,b=0,t=0; printf("Input a and b:"); scanf("%d%d",&a,&b); if(a<b) { t=a; a=b; b=t; } printf("a=%d,b=%d\n",a,b); 第1次运行结果: Input a and b:6 8<回车> a=8,b=6

#include <stdio.h> main() { int a=0,b=0,t=0; printf("Input a and b:"); scanf("%d%d",&a,&b); if(a<b) { t=a; a=b; b=t; } printf("a=%d,b=%d\n",a,b); 第2次运行结果: Input a and b:8 6<回车> a=8,b=6

2.1.3 学会使用逻辑运算符 P31 【实例2.3】编写程序,判断某人的体重是否在50公斤至55公斤之间,若在此范围之内,显示“Ok”,否则显示“No”。 编程思路 “w>=50 && w<=55”表示w的值是否同时满足“w>=50”和“w<=55”。

第1次运行结果: Input w:53.5<回车> w=53.5 Yes #include <stdio.h> main() { float w=0.0; printf("Input w:"); scanf("%f",&w); printf("w=%.1f\n",w); if(w>=50 && w<=55) printf("Yes\n"); else printf("No\n"); } 逻辑运算符 && || !

第2次运行结果: Input w:60.7<回车> w=60.7 No #include <stdio.h> main() { float w=0.0; printf("Input w:"); scanf("%f",&w); printf("w=%.1f\n",w); if(w>=50 && w<=55) printf("Yes\n"); else printf("No\n"); }

2.1.4 学会使用嵌套的if语句 P32 【实例2.4】编写程序完善实例2.3,若所输入的体重大于0且小于200,再判断该体重是否在50公斤至55公斤之间,若在此范围之内,显示“Ok”,否则显示“No”;若所输入的体重不大于0或不小于200,则显示“Data over!”。

开始 输入w w>0且w<200 Yes Data over! 结束 假 真 w≥50且w≤55 No

#include <stdio.h> main() { float w=0.0; printf("w:"); scanf("%f",&w); printf("w=%.1f\n",w); if(w>0 && w<200) if(w>=50 && w<=55) printf("Yes\n"); else printf("No\n"); printf("Data over!\n"); } 嵌套的if语句 第1次运行结果: w:53.5<回车> w=53.5 Yes

#include <stdio.h> main() { float w=0.0; printf("w:"); scanf("%f",&w); printf("w=%.1f\n",w); if(w>0 && w<200) if(w>=50 && w<=55) printf("Yes\n"); else printf("No\n"); printf("Data over!\n"); } 第2次运行结果: w:60.7<回车> w=60.7 No

#include <stdio.h> main() { float w=0.0; printf("w:"); scanf("%f",&w); printf("w=%.1f\n",w); if(w>0 && w<200) if(w>=50 && w<=55) printf("Yes\n"); else printf("No\n"); printf("Data over!\n"); } 第3次运行结果: w:201.7<回车> w=201.7 Data over!

2.1.5 学会使用if-else if形式的嵌套if语句 P34 【实例2.5】编写程序,求下面分段函数的值,要求x的值从键盘输入。 x+2 (0≤x<5) y= 0 (x<0) x2-3 (5≤x<10) 10 (x≥10)

x<0 假 真 x<5 x<10 y=x2-3 y=10 y=x+2 y=0 输入x 显示x和y的值

#include <stdio.h> main() { float x=0,y=0; printf("Input x:"); scanf("%f",&x); if(x<0) y=0; else if(x<5) y=x+2; if(x<10) y=x*x-3; else y=10; printf("x=%f,y=%f\n",x,y); } if(x<0) y=0; else if(x<5) y=x+2; else if(x<10) y=x*x-3; else y=10;

2.2 switch语句 P36 2.2.1 认识switch语句 2.2.2 多个case语句相同情况的处理 返回

P36 2.2.1 认识switch语句 【实例2.6】编写程序,从键盘输入一个字符,当输入的字符为“1”或“2”或“3”时,分别显示“Yes”、“No”、“Cancel”,输入其他字符时显示“Illegal!”。

a=? 2 其他 3 1 输入a值 开始 “Yes” “No” “Cancel” “Illegal!” 结束

#include <stdio.h> main() { char a='\0'; printf("1:Yes 2:No 3:Cancel\n"); a=getchar(); switch(a) { case '1': printf("Yes\n"); break; case '2': printf("No\n"); break; case '3': printf("Cancel\n"); break; default: printf("Illegal!\n"); break; } printf("Press any key to end......"); getch(); a的值决定执行哪个分支 4个分支

2.2.2 多个case语句相同情况的处理 P39 【实例2.7】假设要处理的年份是2006年,编写程序,输入该年的某月份,输出该月的天数。

编程思路 一、三、五、七、八、十、十二月份的天数是31。 二月份的天数是28。 四、六、九、十一月份的天数是30。 要输出某月的天数,需要处理13个分支。

#include <stdio.h> main() { int month=0,day=0; printf("Input month:"); scanf("%d",&month); switch(month) { …… } if(day!=-1) printf("%d,%d\n",month,day); else printf("Illegal!\n"); } 见后一页,如果非法月份,给day赋-1

switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 2: day=28; break; case 4: case 6: case 9: case 11: day=30; break; default: day=-1; }

2.2.3 用switch语句的技巧计算分段函数的值 P40 【实例2.8】改写实例2.5。编写程序,求下面分段函数的值,要求x的值从键盘输入。 x+2 (当0≤x<5时) y= 0 (当x<0时) x2-3 (当5≤x<10时) 10 (当x≥10时)

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当关系表达式为“真”时,表达式的值为1 当关系表达式为“假”时,表达式的值为0 如x的值为-1时,“x<0”为“真”,因此其值为1;“x>=10”为“假”,其值为0

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当逻辑表达式为“真”时,表达式的值为1 当逻辑表达式为“假”时,表达式的值为0 如x的值为3时,“x>=0 && x<5”为“真”,因此其值为1;“x>=5 && x<10”为“假”,其值为0

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当x的值为3时,“x>=0 && x<5”为“真”,其值为1;“x<0”、“x>=5 && x<10”、“x>=10”均为“假”,其值均为0 因此k的值为2(k=1*0+2*1+3*0+4*0)

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当x的值为6时,“x>=5 && x<10”为“真”,其值为1;“x<0”、“x>=0 && x<5” 、“x>=10”均为“假”,其值均为0 因此k的值为3(k=1*0+2*0+3*1+4*0)

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当x的值为11时,k的值多少? 4(k=1*0+2*0+3*0+4*1)

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 当x的值为-1时,k的值多少? 1(k=1*1+2*0+3*0+4*0)

“x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 编程思路 将范围转化为具体的值。 “x<0”1 “0≤x<5”2 “5≤x<10”3 “x≥10”4 k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10) 4个范围的特点:不重叠 当“x<0”时,k的值为1 当“x>=0 && x<5”时,k的值为2 当“x>=5 && x<10”时,k的值为3 当“x>=10”时,k的值为4

#include <stdio.h> main() { float x=0,y=0; int k=0; printf("Input x:"); scanf("%f",&x); k=1*(x<0)+2*(x>=0 && x<5) +3*(x>=5 && x<10)+4*(x>=10); switch(k) { …… } 见后一页

switch(k) { case 1: y=0; break; case 2: y=x+2; break; case 3: y=x*x-3; break; case 4: y=10; break; } printf("x=%f,y=%f\n",x,y);

2.3 用条件运算符转换大小写字母 P41 【实例2.9】编写程序,输入1个字符,判断该字符是否是大写字母,若是,将其转换为小写字母。 编程思路 根据ch中的字符是否满足“ch≥'A' 且 ch≤'Z'”来判断该字符是否为大写字母。 返回

#include <stdio.h> main() { char ch='\0'; printf("Input a character:"); ch=getchar(); ch=ch>='A' && ch<='Z' ? ch+32 : ch; putchar(ch); } 条件运算符 等价于: if(ch>='A' && ch<='Z') ch=ch+32;

P42 2.4 程序举例 2.4.1 掌握3个数中求最大数的方法 2.4.2 掌握3个数排序的方法 2.4.3 熟悉菜单设计操作 返回

2.4.1 掌握3个数中求最大数的方法 P42 【实例2.10】编写程序,输入3个整数,找出其中最大数。

#include <stdio.h> main() { int a=0,b=0,c=0,max=0; printf("Input a,b,c:"); scanf("%d%d%d",&a,&b,&c); max=a; if(max<b) max=b; if(max<c) max=c; printf("%d,%d,%d,%d\n",a,b,c,max); }

2.4.2 掌握3个数排序的方法 P43 【实例2.11】编写程序,输入3个整数,将它们按小到大的顺序排序。

#include <stdio.h> main() { int a=0,b=0,c=0,t=0; printf("Input a,b,c:"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); if(a>b) { t=a; a=b; b=t; } if(b>c) { t=b; b=c; c=t; } }

2.4.3 熟悉菜单设计操作 P43 【实例2.12】编写程序,在如下菜单中选择一个运算类型,并进行相应的运算。如选择了加法,则进行求和运算。 Please choose + : addition - : subtraction * : multiplication / : division

#include <stdio.h> main() { float a=5.0,b=2.0,c=0.0; char sym='\0'; printf("Please choose\n"); printf("+ : addition\n"); printf("- : subtraction\n"); printf("* : multiplication\n"); printf("/ : division\n");

sym=getchar(); printf("%f%c%f=",a,sym,b); switch(sym) { case '+': c=a+b; break; case '-': c=a-b; break; case '*': c=a*b; break; case '/': c=a/b; break; } printf("%f\n",c);

贯穿教学全过程的实例 P45 根据教材第45~46页上机操作 返回