当前位置:首页 >> 其它课程 >>

计算机等级考试PPT复习资料 第3章


第3章 算法与程序设计基础
主要内容: 算法的概念、表示方法及选择结构语句 重点:两种选择结构语句的应用 1。if语句 2。switch语句 难点: if语句的嵌套

3.1算法
3.1.1算法的概述
1.何为算法?

解决一个实际问题而采取的方法和步骤,称之为“算法”

2 .算法的五个

特征
(1)有零个或多个输入 (2)有一个或多个输出 (3)可行性 (4)确定性 (5)有穷性

3.1.2描述算法的方法
常用的 1.自然语言表示法 2.图形表示法 (1)传统的流程图 (2)N-S流程图 3.伪代码表示法 4.计算机语言表示

传统的流程图符号:

例3.2:用传统流程图描述求1+2+3+……+(n-1)+n的过程。
开始 输入n sum=0 i=1 i≤n Y sum=sum+i i=i+1

N

输出sum

结束

3.2 结构化程序设计方法
结构化程序设计中采用三种基本结构, 即顺序结构、选择结构和循环结构。

三种结构共同特点: (1)只有一个入口。 (2)只有一个出口。 (3)结构内的每一部分都有机会被执行到。 (4)结构内不存在“死循环” (无终止的循环)。

传统流程图
(1)顺序结构

N-S流程图

A B

传统流程图
(2)选择结构

N-S流程图

传统流程图
(3)循环结构 当型循环

N-S流程图

传统流程图
(3)循环结构 直到型循环

N-S流程图

3.3 C语句的分类
例:求n! #include <stdio.h> main( ) { int n,i=1; long f=1; scanf("%d",&n); 控制语句 while(i<=n) { f=f*i; 表达式语句 i=i+1; } printf("%ld\n",f); }

函数调用 语句

复 合 语 句

归纳起来,C语言有如下一些语句:
1.函数调用语句

2.控制语句
3.表达式语句

4.复合语句
5.空语句:仅由一个分号构成的语句

3.4 逻辑判断运算
在C语言中,选择结构用if语句(两个分支)实现。 if语句最常用的形式: if(表达式) 语句1 else 语句2 表达式部分通常是关系表达式或逻辑表达式 ∴引出关系运算和逻辑运算

无论关系运算和逻辑运算有多简单或多复杂, 结果只有两种:

条件成立,结果为1;

否则为0

3.4.2关系运算

运算符 表达式 一般形式 表达式值 举 例

系(比 较)
== !=

< <= > >=

关系运算符将算术、关系、逻辑、 赋值、字符表达式连接起来的式子

0(假)1(真) a=3,b=2,c=1 f=a>b>c f= 0

优先级

< <= > >= 高于 == !=

结合性

左→右

3.4.3 逻辑运算
逻 辑

运算符
表达式 一般形式 表达式值

&& 与

|| 或

!非

逻辑运算符将关系表达式或逻辑量 连接起来的式子 0 或 1
① 4||2&&0 =1 ③?a?&&?b? =1 ② 5>3&&8<4-!0 =0 ④ a=4,b=5 则 !a =0





优先级 结合性

!高于 关系 高于 && 高于 || 左→右

注:逻辑表达式的求解中,不是所有的逻辑运算 符都被执行,只是在必须执行下一个逻辑运算符 才能求出表达式的解时,才执行该运算符。 ①a&&b&&c 只有前为真(即a≠0),才判后。 ② a || b || c 只有前为假(即a=0 ),才判后。 例:a=1; b=2; c=3; d=4; m=5;n=6; (m=a>b)&&(n=c>d) 问:表达式值=? m=?n =? 表达式值=0 , m=0,n=6。

3.5 if语句
两种格式: 格式1: if (表达式) 语句; 例:if(x>y) {x=x-y; printf(“%d”,x);} 格式2: if (表达式) 语句1; else 语句2; 例:if(x>y) printf(“%d”,x); else printf(“%d”,y); if(x>y) x=x-y; printf(“%d”,x);

if(x>y) x=x-y; printf(“%d”,x);

说明: (1) 表达式一般为逻辑表达式或关系表达式, 但也可为任何类型的表达式(包括整型、实型、 字符型、指针型); 非零,则条件成立, 否则条件不成立。 例1:if(3) printf(“OK”); 例2:if(?a?) printf(“%d”,?a?);
(2) if、 else后的单条语句要有分号; else子句必须与if配对使用。 (3) if、 else后的多条语句,要用{ }括起来,成为 一个复合语句

例3.9:输入两个整数,按数值由小到大的次序输出这两个数 #include <stdio.h> main() { int a,b,t; printf(“\nPlease input 2 integers:\n”); scanf(“%d,%d”,&a,&b);

b=a;
a=b;
a b
8 6

×
t
6

if (b<a)

{ t=a;
a=b; b=t;

6 8

}
printf(“%d,%d\n”,a,b); }

例3.10:从键盘随机输入一个整数,判断此数是否为3的倍数。

#include <stdio.h> main() { int x; printf("Please input an integer:"); scanf("%d",&x); if(x%3==0) printf("%d is times of three!\n",x); else printf("%d isn't times of three!\n",x); }

例3.11:从键盘随机输入任意年份,判断该年份是否为闰年。

分析: 闰年的条件是符合下面二者之一: 能被4整除,但不能被100整除; 或能被4整除,又能被400整除。 (year%4= =0&&year%100!=0) || year%400= =0

#include <stdio.h> main() { int year; printf("Please input a year:"); scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) printf("%d is leap year!\n",year); else printf("%d isn't leap year!\n",year); }

例3.12:求两个数中的最大值,两个数从键盘随机输入。

#include <stdio.h> main() { float a,b,max; printf("Please input two real numbers:\n"); scanf("%f%f",&a,&b); if(a>b) max=a; else max=b; printf("%f is maximum value!\n",max); }

3.5.3条件运算符
引入:

若if语句中,通过表达式的“真”或“假”, 来执行一个赋值语句,且给同一个变量赋值时 ,可用条件运算符来处理。

如:if(a>b) max=a;

else
可写成:

max=b;

max=(a>b)?a:b;

条件运算符

运算符 表达式 一般形式 表达式值 举 例



? :(唯一三目) 表达式1 ? 表达式2:表达式3 表达式2 或 表达式3的值
①(a>b)?a:(b+1) ②a>b?a:c>d?c:d a>b?a:b+1 a>b?a:(c>d?c:d)

优先级

! 高于关系高于&&高于||高于?:

结合性

右→左

例3.13:分析下面程序运行结果。

#include <stdio.h> main() { int a=1,b=4,c=3,d; d=a>b?(a>c?(a=0):(c=2)):(b=8); printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); }

3.5.4多分支if语句
一般形式: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; … else if (表达式n) 语句n; else 语句n+1;

例3.14:求一元二次方程ax2+bx+c=0的根。

#include <stdio.h> #include <math.h> main() { float a,b,c,d; printf("Please input three parameters:\n"); scanf("%f%f%f",&a,&b,&c); d=b*b-4*a*c; if(d>0) { printf("x1=%f\n",(-b+sqrt(d))/(2*a)); printf("x2=%f\n",(-b-sqrt(d))/(2*a)); } else if(d==0) printf("x1=x2=%f\n",(-b)/(2*a)); else printf("There is no real root!\n"); }

例3.15:根据输入的学生百分制成绩,给出五分制成绩。 #include <stdio.h> main() { float score; char grade; printf("Please input a score:\n"); scanf("%f",&score); if(score>=90&&score<=100) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D'; else grade='E'; printf("GRADE=%c\n",grade); }

3.5.5 if语句的嵌套
定义:在if语句中又完全包含了一个或多个if语句称为 if语句的嵌套。 一般形式: if(表达式1) if(表达式2) 语句1; else 语句2; else if(表达式3) 语句3; else 语句4;

说明:C语言规定: ※else总是与它上面最近的且尚未配对的if进行配对
试比较: ① if ( ) if ( ) 语句1; else 语句2; if ( ) if ( ) 语句1; else 语句2; if ( ) {if ( ) 语句1; } else 语句2;

② if ( ) {if ( ) 语句1; } else 语句2;

例3.16:分析下面程序的运行结果。

#include <stdio.h> main() { int a=3,b=6,c=8,d=5; if(a>b) if(b!=c) d=0; else d=1; printf("d=%d\n",d); }

例3.17:分析下面程序的运行结果。

#include <stdio.h> main() { int x=1,y=2,z=4; if(z=x+y) if(z==4) x=y=z=10; else if(z==3) x=y=z=20; else x=y=z=30; printf("%d,%d,%d\n",x,y,z); }

习题:阅读程序,写结果: main() {int x,y; scanf(“%d”,&x); y=-1; if(x!=0) { if(x>0) y=1;} else y=0; printf(“y=%d\n”,y); }
三次运行该程序,每次输入:5 回车 -2回车 y=1 y=-1 y=0

0 回车

3.6 switch 语句
一般形式: switch (表达式) { case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1; }

说明: (1)表达式一般是整型、字符型或枚举型; (2)case后表达式是常量表达式; (3)每个常量表达式的值必须互不相同; (4)各个case和default出现次序任意;

(5)为在执行一个case分支后,使流程跳出switch结构,
应用一个break语句加在每个分支后(除最后一个分

支可不加)
否则将顺序执行下面每条语句,然后跳出switch结构; (6)多个case可共用一组执行语句。 (7) switch、case、default均是关键字, 用户不能当成自定义标识符。

例3.18:用switch语句解决例3-7百分制输入,五分制输出。 #include <stdio.h> main() { float score; char grade; printf("Please input a score:\n"); scanf("%f",&score); switch((int)score/10) { case 10: case 9:grade='A'; break; case 8:grade='B'; break; case 7:grade='C'; break; case 6:grade='D'; break; default:grade='E'; } printf("GRADE=%c\n",grade); }

例3.19:分析下面程序运行结果。 #include <stdio.h> main() { int a=2,b=7,c=5; switch(a>0) { case 1:switch(b<0) { case 1:printf("#");break; case 2:printf("$");break; } default:printf("!"); case 0:switch(c==5) { default:printf("*");break; case 0:printf("%");break; case 1:printf("&");break; } } printf("\n"); }

小结
两种选择结构语句:

单分支
1. if语句 双分支

多分支
if语句的嵌套 2. switch语句


相关文章:
计算机等级考试第3章备课笔记
搜试试 7 帮助 全部 DOC PPT TXT PDF XLS ...计算机等级考试第3章备课笔记_IT认证_资格考试/认证...的使用复习及预习 复习 Windows 7 系统的基本操作 ...
学业水平考试复习资料 必修一 第3章
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高中教育 政史地学业水平考试复习资料 必修一 第3章_政史地_高中教育_教育专区...
全国计算机等级考试——3级网络重点概括 第三章
搜 试试 帮助 全部 DOC PPT TXT PDF XLS ...关键词:试题复习资料教材学习技巧 1/2 同系列文档 ...全国计算机等级考试——3级网络重点概括 第三章全国...
全国计算机等级考试一级MS复习资料(有答案)
全国计算机等级考试一级 MS OFFICE 复习资料第一部分 同步例题第一章 计算机基础...【例5.3】打开指定文件夹下的演示文稿yswg43.ppt,内容如下: 按照下列要求完成...
全国计算机等级考试一级MSOFFICE复习资料总汇
1 全国计算机等级考试一级 MS OFFICE 复习资料第一部分 同步例题 计算机基础知识...【例 5.3】打开指定文件夹下的演示文稿 yswg43.ppt,内容如下: 按照下列要求...
全国计算机等级考试一级MSOFFICE复习资料(有答案)
全国计算机等级考试一级 MS OFFICE 复习资料第一部分 同步例题第一章 计算机基础...【例5.3】打开指定文件夹下的演示文稿yswg43.ppt,内容如下: 按照下列要求完成...
计算机等级考试三级网络技术复习提纲_更新版(2013.3)
搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS 百度文库 教育专区 高等教育 工...计算机等级考试三级网络技术复习提纲第一章 计算机基础知识 1、计算机的发展阶段:...
计算机应用基础(第3版)章节练习题答案
计算机等级(一级)考试 易平居士教研组(QQ:292688184) 答案编辑 第3章 因特...填空题 (1)普通视图 (2)幻灯片母版 (3)超链接 (4)Excel 数据表 (5)形状...
计算机等级考试一级MSOFFICE复习
全国计算机等级考试一级 MS OFFICE 复习资料第一部分 同步例题第一章 计算机基础...【例5.3】打开指定文件夹下的演示文稿yswg43.ppt,内容如下: 按照下列要求完成...
更多相关标签: