C语言-5分支结构程序
5程序的基本结构和语句
#include main() { float
<stdio.h>
h, w, t;
例4.5 用不带else子句的 if语句编程(单分支语句)
当t < 18时,为低体重; 18时 为低体重; 25时 为正常体重; 当18 ≤ t < 25时,为正常体重; 27时 为超重体重; 当25 < t < 27时,为超重体重; 27时 为肥胖。 当t ≥ 27时,为肥胖。
A
A
单分支if语句 单分支 语句
简单形式即单分支。语法结构为: 1. 简单形式即单分支 语法结构为:
条件表达式) if (条件表达式) 语句系列; { 语句系列;} 条件表达式可以是任何类型,常见的是条件和逻辑表达式, 条件表达式可以是任何类型,常见的是条件和逻辑表达式,它必须写在括号 当它的结果为非零值 就意味着测试条件为真,这时语句系列; 被执行。 非零值时 里,当它的结果为非零值时,就意味着测试条件为真,这时语句系列; 被执行。 语句系列中可包含任何可执行语句,亦可以是另一个if语句,如果是另一个if if语句 语句系列中可包含任何可执行语句,亦可以是另一个if语句,如果是另一个if 语句,就成为if嵌套。 if嵌套 语句,就成为if嵌套。 例如: 例如: if (a>b) printf('% { printf('%d', x );} 语句。 就是一个简单 if 语句。
表达式1 表达式2 表达式3
语句1
语句2
语句3
语句4
图4-9 多分支选择结构
14
例4.5 :体型判断
按“体指数”对肥胖程度进行划分: 体指数”对肥胖程度进行划分: 体指数t 体指数t = w / h2 体重w单位为公斤,身高h单位为米) (体重w单位为公斤,身高h单位为米) – 当t < 18时,为低体重; 18时 为低体重; – 当18 ≤ t < 25时,为正常体重; 25时 为正常体重; – 当25 < t < 27时,为超重体重; 27时 为超重体重; – 当t ≥ 27时,为肥胖。 27时 为肥胖。 编程从键盘输入你的身高h和体重w 编程从键盘输入你的身高h和体重w,根据给定公式计算体指 然后判断你的体重属于何种类型。 数t,然后判断你的体重属于何种类型。 种方法编程: 用3种方法编程: – 算法1:用不带else子句的if语句编程 算法1 不带else子句的 语句 子句的if语句编程 – 算法2:用在if子句中嵌入if 语句的形式编程 算法2 if子句中嵌入 子句中嵌入if 语句的形式编程 – 算法3:用在else子句中嵌入if 语句的形式编程 算法3 else子句中嵌入 子句中嵌入if 语句的形式编程
C语言 第五章-循环结构程序设计
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
湖南省C语言(上)教案:第四章分支结构程序设计(高教版).doc
第四章分支结构程序设计分支程序设计章节练习题四、选择题1.若x=0,y=3,z=3,以下表达式值为0的是A. !xB.x<y? 1:0C. x%2&&y==zD. y=x||z/32.以下运算符中优先级最低的运算符为 ,优先级最高的为。
A. &&B. !C. !=D. ||E. ?:F. ==3.若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的结果为。
A. 4B. 3C. 2D. 14.若w,x,z均为int型变量,则执行以下语句后的输出为。
w=3;z=7;x=10;printf("%d\n",x>10?x+100:x-10);printf("%d\n",w++||z++);printf("%d\n",!w>z);printf("%d\n",w&&z);A. 0B. 1C. 0D. 01 1 1 11 1 0 01 1 1 05.分析以下程序, 下列说法正确的是。
main(){ int x=5,a=0,b=3;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #6.分析以下程序, 下列说法正确的是。
main(){ int x=0,a=0,b=0;if(x=a+b) printf("* * * *\n");else printf("# # # #\n");}A. 有语法错,不能通过编译B. 通过编译,但不能连接C. 输出* * * *D. 输出# # # #7.分析以下程序, 下列说法正确的是。
C语言程序设计框图
第3章 控制结构
说明:
switch后面的表达式的值类型可以是整型、字符型或枚 举型。 当表达式的值与某个case中的常量表达式的值相等时, 就执行相应的case后的语句序列,直到遇到break语句或到 达switch结构末尾。 多个连续的case语句可以共用一个语句序列。 case 后的不同常量表达式的值不能相等。 break的作用是改变程序在switch结构中的执行流程, 将程序流程跳出switch语句,转到switch语句后的下一条语 句去执行。 switch语句中允许嵌套switch语句。
C语言程序设计电子教案
3.1 程序结构框图
3.1.3 N-S图
3种基本结构的N-S图
第3章 控制结构
顺序结构: 分支结构:
它是按照语句 它是根据给定条件
出现的先后顺 进行判断,选择其
序依次执行的 中的一个分支执行
。如上图所示 ,先执行A模 块,再执行B
。如上图所示,P 表示条件,当P成 立时执行分支A模 块,否则执行分支
复合语句:由一对大括号括起来的一条或多条语句。
被括起来的语句可以是这4类的任何一类语句,常用于函数
体或循环体。
C语言程序设计电子教案
3.2 二分支结构
3.2.1 二分支if语句
第3章 控制结构
基本形式:
if (表达式) 语句1;
else 语句2;
真(非0)表达式
假 (0)
语句1
语句2
例如: if(x>y)
C语言程序设计电子教案
第3章 控制结构
第3章 控制结构
返回总目录
C语言程序设计电子教案
目录
3.1 程序结构框图 3.2 二分支结构 3.3 多分支结构 3.4 循环结构 3.5 break与continue语句 3.6
C语言程序的三种基本结构
C语⾔程序的三种基本结构1、程序结构:在C语⾔程序中,⼀共有三种程序结构:顺序结构、选择结构(分⽀结构)、循环结构; 顺序结构:从头到尾⼀句接着⼀句的执⾏下来,直到执⾏完最后⼀句; 选择结构:到某个节点后,会根据⼀次判断的结果来决定之后向哪⼀个分⽀⽅向执⾏; 循环结构:循环结构有⼀个循环体,循环体⾥是⼀段代码。
对于循环结构来说,关键在于根据判断的结果,来决定循环体执⾏多少次; 注:在逻辑上有⼀种bool类型(也叫boolean类型,布尔类型),只有两个值,即真和假。
C语⾔的判断表达式最终的值就是⼀个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;2、顺序结构:顺序结构很简单,⼀般我们遇到的除了选择结构和循环结构外,都是顺序结构;3、选择结构:C语⾔中常⽤的选择结构主要有以下两种: (1) if else:引⼊关键字:if else else if if (bool值) // 如果bool值为真,则执⾏代码段1,否则执⾏代码段2 { 代码段1 } else { 代码段2 } if (bool值1) // 如果bool值1为真,则执⾏代码段1,否则判断bool值2是否为真 { 代码段1 } else if (bool值2) // 若bool值2为真则执⾏代码段2,否则直接执⾏代码段3 { // 开头的if和结尾的else都只能有⼀个,但是中间的else if可以有好多个 代码段2 } else { 代码段3 }1 #include <stdio.h>23int main(void)4 {5int a, b, max;67 a = 456;8 b = 45;910if (a > b) // 判断表⽰式11 {12 max = a;13 printf("true.\n");14 }15else if (a == b)16 {17 max = a;18 printf("a == b.\n");19 }20else21 {22 max = b;23 printf("false.\n");24 }2526 printf("max = %d.\n", max);2728return0;29 } (2) switch case:引⼊关键字:switch case break default switch (变量) // 执⾏到这⼀句时,变量的值是已知的 { // switch case语句执⾏时,会⽤该变量的值依次与各个case后的常数去对⽐,试图找到第⼀个匹配项,找到匹配的项⽬后, case 常数1: // 就去执⾏该case对应的代码段,如果没找到则继续下⼀个case,直到default 代码段1; // 如果前⾯的case都未匹配,则default匹配。
实验二C语言中的分支语句程序设计实验
实验二 C语言中的分支语句程序设计一、实验目的:1.掌握C语言的基本语法;2.掌握C语言的表达式运算及标准库函数的调用方法;3.掌握C语言的基本输入输出语句;4.掌握字符类型、整型和浮点型数据的输入输出及表达式计算方法;5.掌握if语句和switch语句的用法;6.掌握分支程序结构的设计思想;二、实验内容(一)分析程序,用程序验证下面各个表达式的值1、当整型变量a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1) if(a>c) {a=b; b=c; c=a;}else {a=c; c=b; b=a;}执行后a,b,c的值为,,(2) if(a<c) a=c;else a=b; c=b; b=a;执行后a,b,c的值为,,(3) if(a!=c) ;else a=c; c=b; b=a;执行后a,b,c的值为,,2、若整数x分别等于95、87、100、43、66、79,57,则以下程序段运行后屏幕显示是什么?switch(x/10){ case 6:case 7: printf("Pass\n"); break;case 8: printf("Good\n"); break;case 9:case 10: printf("V eryGood\n"); break;case 5 : printf("Between Pass and Fail\n");default: printf("Fail\n");}x等于95时,程序段运行后屏幕上显示。
x等于87时,程序段运行后屏幕上显示。
x等于100时,程序段运行后屏幕上显示。
x等于43时,程序段运行后屏幕上显示。
x等于66时,程序段运行后屏幕上显示。
x等于79时,程序段运行后屏幕上显示。
x等于57时,程序段运行后屏幕上显示。
C语言分支结构.ppt
3.1.5 else – if 语句
if(( ch>= 'a' && ch <= 'z' )||( ch>= 'A' && ch<='Z')) letter ++;
else if (ch >= '0' && ch <= '9') digit ++;
else other ++;
实现多路选择
else – if 语句
|| ( ch >= 'A' && ch <= 'Z' )
数字字符
ch >= '0' && ch <= ' 9'
其他字符 除此外
3.1.1 程序解析
#include <stdio.h> int main(void) {
int i, digit, letter, other; char ch;
处理方法: 逐个输入与判断
ASCII字符集:每个可用字符:惟一的 次序值( ASCII 码)见附录2
1 == ‘1’ ?
3.1.3 字符型数据的输入和输出
1. 字符输入函数getchar——输入一个字符
char ch; ch = getchar( );
2. 字符输出函数putchar——输出一个字符
putchar ( 输出参数 );
条件的表示
例3-2 写出满足下列条件的C表达式 (1) ch 是空格或者回车
ch == ' ' || ch == '\n'
C语言第4章-分支结构.
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§
┆
§
case ‘A’:
§
case ‘a’: ++count ; break ;
§
C语言程序设计 第2章 顺序结构与分支结构程序设计
main() { char op;float x,y;
scanf("%f%c%f",&x,&op,&y); switch (op) { case '+' : printf("=%f\n",x+y); break;
case '-' : printf("=%f\n",x-y); break; case '*' : printf("=%f\n",x*y); break; case '/' : if (y!=0.0)
200,0,0
空语句
空语句是只有分号 ;的语句。示什么操作也不做。 从语法上讲,空语句也是一条语句。 在程序设计中,若某处在语法上需要一条语句,而实际上不需要 执行任何操作时就可以使用它。 例如,在设计循环结构时,有时用到空语句。
int i,s=0; for(i=1;i<=10;s=s+i++);
main() { int a;
scanf("%d",&a); switch(a) { case 3+8:printf("a==11");break; case 90: printf("a==90");break; case 'a': printf("a==97");break; case a>100:printf("a>100");break; default:printf("default"); } }
printf("%c\n",c); }
分支结构程序设计
举例
【例】输入一个数,判断它是奇数还是偶 数,如果是奇数则进一步判断它是 否为5的倍数。
定义变量x 输入x的值 x是奇数? T 输出“奇数” x是5的倍数 T F 是5的倍数 F
输出“偶数”
程序:
main( ) { int x; scanf ("%d",&x); if (x%2 != 0) 判断该数是否为奇数 { printf("%d is an 奇数 \n",x) ; if (x%5==0) 判断该奇数是否为5的倍数 printf("%d is the times of 5 \n",x) ; } else printf("%d is an 偶数 \n",x) ; }
程序:
#include "stdio.h" main( ) { char ch; ch=getchar( ); if (ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch ); } 可使用条件表达式代替
程序运行情况如下: putchar(ch>='A' && ch<='Z' ? ch+32:ch); G putchar (' \n') g
4 if语句的嵌套
不要求掌握
如果if的内嵌语句中又使用了一个if语句, 则构成if语句的嵌套。
【例】比较两个整数的关系。 应该正确判断: #include <stdio.h> • if的内嵌语句 main( ) • if和else的配对 { int x, y; printf ("Enter integer X and Y:"); scanf ("%d%d", &x, &y); if ( x != y ) if ( x > y ) printf ("X>Y\n"); 提倡缩格书写 else printf ("X<Y\n"); 有利于阅读程序 else printf ("X=Y\n"); }
