- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表达式
值 不 为 0( 成 立 ) 值 为 0( 不 成 立 )
语句
分支结构(选择结构) 4.4 分支结构(选择结构)
【例4.5】输入一个整数,若是3的倍数,则显示"ok". 4.5】输入一个整数,若是3的倍数,则显示"ok . #include <stdio.h> main() 不成立) 0(不成立) a%3==0 { 成立) 1(成立) int a; scanf("%d",&a); printf("ok ok") printf( ok ) if (a%3==0) printf("ok"); }
而公式里的p:
调用求平方根函数,结果赋给一个变量, 调用求平方根函数,结果赋给一个变量, 实参使用表达式
4.3 顺序结构的程序设计
<stdio. #include <stdio.h> <math. #include <math.h> main() a,b,c,p,s; {float a,b,c,p,s; a=3.0; a=3 b=4.0; b=4 c=5.0; c=5 p=a+b+c; p/=2 p=a+b+c; p/=2; s=sqrt(p*(p-a)*(p-b)*(p-c)); s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("s= s=% f",s); printf( s=%7.2f",s); } 运行结果如下: s=□□□ □□□6 运行结果如下: s=□□□6.00
零(不成立) 不成立)
显示b 显示b
建议: 为使结构清楚不易错,语句使用花括号扩起 (即使是一条语句).
分支结构(选择结构) 4.4 分支结构(选择结构)
【例4.8】判断某一年是否是闰年, 4.8】判断某一年是否是闰年, 是则输出year 是则输出year xxxx is a leap year. 否则输出year 否则输出year xxxx is not a leap year. if((y%4==0&&y%100!=0)||(y%400==0)) year.\n",y); printf("year %d is a leap year.\n",y); else year.\n",y); printf("year %d is not a leap year.\n",y);
分支结构(选择结构) 4.4 分支结构(选择结构)
三,条件分支的嵌套 在分支的语句部分还可以出现分支语句, 在分支的语句部分还可以出现分支语句,这样就形成了分支的嵌 多分支结构),构成复杂的逻辑结构. ),构成复杂的逻辑结构 套(多分支结构),构成复杂的逻辑结构.
if(表达式1){ if(表达式1){ 表达式 if(表达式 表达式2){ if(表达式2){ 非零(成立) 不成立) 非零(成立) 零(不成立) 语句1 语句1; 表达式1 表达式1 } else { 语句2; 非零(成立) 语句2 零(不成立) 非零(成立) 不成立) 非零(成立) 零(不成立) 非零(成立) } 表达式3 表达式3 表达式2 表达式2 } else{ if(表达式 表达式3){ if(表达式3){ 语句3 语句4 语句3 语句4 语句1 语句2 语句1 语句2 语句3; 语句3 } else{ 语句4 语句4; } }
printf("Enter the value of c:"); scanf("%c",&c); printf("%c:%d\n",c,c); } 运行情况如下: Enter the value of c:a↙ a:97
4.3 顺序结构的程序设计
4.4】交换两个变量的值. 【例4.4】交换两个变量的值. 设变量a 设变量a,b均为整 型变量, 型变量,编写一个 程序,输入a 程序,输入a,b的 并显示, 值,并显示,然后 交换a 的值, 交换a,b的值,再 次显示. 次显示.
非零(成立) 非零(成立)
语句1 语句1
语句2 语句2
else
语句2 语句2
分支结构(选择结构) 4.4 分支结构(选择结构)
【例4.7】输入两个整数,输出较大者. 4.7】输入两个整数, 算法分析: main() 非零(成立) 非零(成立) a>b {int a,b; scanf("a=%d,b=%d",&a,&b); 显示a 显示a if (a>b) printf("max=%d",a); else printf("max=%d",b); }
第四章 C语言程序的 基本控制结构
第四章 C语言程序的基本控制结构
C程序构成:文件→函数→语句序列. 程序构成: 语句: 语句:C语言中描述计算过程的最基本单位.由分号;结束. 结构化程序设计方法: 结构化程序设计方法:程序语句序列由三种基本结构(顺序,
分支,循环)构成,结构清晰,可读性强.
4.1 程序的三种基本结构
4.3 顺序结构的程序设计
【例4.1】赋值语句使用举例(输入三角形三边的长度,求面积并 4.1】赋值语句使用举例(输入三角形三边的长度, 将面积值输出). 将面积值输出). 海伦公式:假设有一个三角形,边长分别为a,b,c,三角形的面 积S 可由以下公式求得. 需要5个实型变量 需要5 算法分析: 求出边长和的一半
算法分析: 算法分析:
输 入 两 个 变 量 a和 b,并 输 出 显 示
a
2
b
t
交 换 a和 b,并 输 出 显 示
3
1 1 1 1
4.3 顺序结构的程序设计
main() {int a,b,t; printf("\nEnter the value of a and b\n"); printf("a,b="); scanf("%d,%d",&a,&b); 运行情况如下: printf("a=%d,b=%d\n",a,b); Enter the value of a and b t=a; a,b=2,7↙ a=b; b=t; 输出: a=2,b=7 printf("changed......\n"); changed…… printf("a=%d,b=%d",a,b); a=7,b=2 }
4.3 顺序结构的程序设计
4.3】编写程序求出任一输入字符的ascii ascii码 【例4.3】编写程序求出任一输入字符的ascii码. #include <stdio.h> 字符在内存存放的是它的ascii码(字符型和整型可以 main() 混合运算或者字符型可按整型输出),所以将它按整数 {char c; 输出即可.
百位=X/100 百位=X/100 十位=X/10 百位* =X/10十位=X/10-百位*10 个位=X 十位*10-百位* =X个位=X-十位*10-百位*100 需三个变量) (需三个变量)
顺序输出个位,十位, 顺序输出个位,十位,百位
4.3 顺序结构的程序设计
<stdio. #include <stdio.h> main() a,i,j,k; {int a,i,j,k; n"); printf("Enter a:\n"); scanf("%3d",&a); scanf("% d",&a); i=a/100 100; i=a/100; j=a/10 10*i 10- *i; j=a/10-10*i; k=a-10*j 100*i *j*i; k=a-10*j-100*i; printf("% n",k,j,i); printf("%d%d%d\n",k,j,i); } 运行情况如下: 运行情况如下: Enter a: 127↙ 127↙ 721 /*i为百位数*/ /*i为百位数* /*j为十位数 为十位数* /*j为十位数*/ /*k为个位数 为个位数* /*k为个位数*/
分支结构(选择结构) 4.4 分支结构(选择结构)
一,if语句 if语句 三种条件转移语句: 三种条件转移语句: if语句的一般形式 语句的一般形式: if语句的一般形式: if语句 1,if语句 if(表达式 表达式) if(表达式) else语句 2,if ~语句; 语句 else 语句; switch语句 3,switch语句 表达式通常 通常为条件表达式 表达式通常为条件表达式 或逻辑表达式. 或逻辑表达式. if语句中的语句只能是一 语句中的语句 if语句中的语句只能是一 条语句, 条语句,如果需要多条语 句则使用复合语句. 句则使用复合语句. 编写程序时使用缩进使结 构清晰. 构清晰.
二 ,分支结构 按照当时的某个条件决定是否执行某些语句. 一 顺序结构 按书写的先后顺序执行语句. 三,循环结构 在一定条件下反复执行某些语句,直到这个条 件不成立为止.
语句1 条件
n
y
y
语句
语句2
条件
n
语句2 语句2
初始化语句 语句3 工作语句 修改语句 条件
初始化语句 语句1 条件
n
y
工作语句 修改语句
if(表达式) if(表达式) 表达式 if(表达式 表达式) 或if(表达式) 语句1 { 语句1; else 语句1; 语句1 语句2 语句 … 2; 语句n 语句n; } else { 语句1; 语句1 … 语句n 语句n; }
非零(成立) 非零(成立)
表达式 表达式 语句1 语句1
零(不成立) 不成立) else
y
n
4.2 复合语句
复合语句:多个语句用花括号扩起来组成的语句.
目的是将这多个语句看成是一条语句. 复合语句的一般形式: 例: { { int i,j; [说明部分] i=s; <语句部分> j=i++; } } 注意:内部各条语句还是以分号结尾,结尾的右花括号后不加分号. 注意:内部各条语句还是以分号结尾,结尾的右花括号后不加分号.
分支结构(选择结构) 4.4 分支结构(选择结构)
if (表达式1) 语句1; 表达式1 语句1 表达式2 语句2 else if (表达式2) 语句2; 表达式3 语句3 else if (表达式3) 语句3; … 表达式n) 语句n else if (表达式n) 语句n; 语句n+ n+1 else 语句n+1; 例如: 例如: (score>=90 90) grade='A'; if (score>=90) grade='A'; (score>=80 80) grade='B'; else if (score>=80) grade='B'; (score>=70 70) grade='C'; else if (score>=70) grade='C'; (score>=60 60) grade='D'; else if (score>=60) grade='D'; grade='E'; else grade='E';
Fra Baidu bibliotek
4.3 顺序结构的程序设计
二,顺序结构程序设计举例
【例4.2】编写一个程序,从键 4.2】编写一个程序, 盘输入三位整数, 盘输入三位整数,将 它们逆序输出, 它们逆序输出,例如 输入127 则输出721 127, 721. 输入127,则输出721.
算法分析: 算法分析:
输入一个三位的整数 一个变量存放) (一个变量存放)
分支结构(选择结构) 4.4 分支结构(选择结构)
4.6】输入一个字符,若是大写字母,则输出其ascii ascii码 【例4.6】输入一个字符,若是大写字母,则输出其ascii码. #include <stdio.h> main() {char ch; ch=getchar(); if(ch>='A'&&ch<='Z') printf("ch=%d\ printf("ch=%d\n",ch); }
printf("%d,%d ,i,j); printf( %d,%d",i,j); %d,%d
4.3 顺序结构的程序设计
一,赋值语句
赋值表达式后加一个分号. 形式: 形式:<变量>=<表达式>;
1,简单赋值语句
例如: 例如: a=2; 2,多重赋值语句 形式:<变量1>=<变量2>=….<变量n>=<表达式>; 形式: 例如: i=j=k=n+1; 例如: b=3*5+7; 形式: 3,复合赋值语句 形式:<变量><复合运算符><表达式>; a=b=c=5; 例如: 例如:i*=y+2; :将变量和表达式进行指定的运算后,将获得的值 赋值语句的功能: 赋值语句的功能 a%=10; 赋予左边的变量,目的是得到一个计算结果.
ch>='A && ch<='Z ch>= A'&& ch<= Z'
1(成立) 成立) 0(不成立) 不成立)
printf("ch=%d\ ,ch) printf( ch=%d\n",ch) ch=%d
分支结构(选择结构) 4.4 分支结构(选择结构)
二,if~else语句 if~else语句
if~else语句的一般形式: if~else语句的一般形式: 语句的一般形式