软件评测师考点59——程序设计语言的三种控制结构

程序设计语言的三种控制结构是软件评测师考试的重要考点,经常出现在上午场的客观选择题当中,下午场白盒测试也会涉及。控制成分指明语言允许表述的控制结构,程序开发人员使用控制成分来构造程序中的控制逻辑。理论上已经证明,可计算问题的程序都可以用顺序、选择和循环这三种控制结构来描述。下面就该知识点并结合例题进行总结学习。

一、顺序结构

顺序结构用来表示一个计算操作序列,整个程序整体上都是符合从上到下的顺序操作的。计算过程从所描述的第一个操作开始,按顺序依次执行后续的操作,直到序列的最后一个操作,顺序结构内也可以包含其他控制结构,其中各语句可以用“{”和“}”括起来表示自己的控制范围,被括起来的所有语句组成一个可执行的单元。如下图所示:

二、选择结构

选择结构提供了在两种或多种分支中选择其中之一的逻辑。基本的选择结构是指定一个条件P,然后根据条件的成立与否决定控制流走A还是走B,只能从两个分支中选择一个来执行,如下图(a)所示。这种结构经常用if...else语句来表示,格式为:

if(表达式)

语句1;

else

语句2;

选择结构中的A或B还可以包含顺序、选择和循环结构。

程序设计语言中通常还提供简化了的选择结构,当上面语句2为空语句时,可以简化为:

如下图(b)所示,此时语句B是不存在的,但是不成立这条分支是存在的,此时经常用if语句表示。

使用if语句时,需要注意if和else的匹配关系,else总是与离它最近的尚没有else的if相匹配。

程序设计语言通常还提供描述多分支的选择结构,例如switch语句。switch语句描述了多分支的选择结构,其一般形式为:

switch(表达式){

case常量表达式1:语句1;

case常量表达式2:语句2;

...

case常量表达式n:语句n;

default:语句n+1;

}

执行switch语句时,首先计算表达式的值,然后用所得的值与列举的常量表达式的值依次比较,若常量表达式1至常量表达式n都不能与表达式的值相匹配,就执行在default部分的“语句序列n+1",然后结束switch语句。若所得的值与常量表达式i(i=1,…,n)的值相同,则执行“语句序列i”,当casei的语句序列i中没有break语句时,则执行随后的语句序列i+1,语句序列i+2...直到语句序列n+1执行完成后,才退出switch语句;或者遇到了break而跳出switch

语句。要使得程序在执行完“语句序列i”后结束整个switch语句,在语句序列i中应包含控制流能够到达的break语句。

三、循环结构

循环结构描述了重复计算的过程,通常由三个部分组成:初始化、需要重复计算的部分和重复的条件。其中,初始化部分有时在控制的逻辑结构中不进行显式的表示。重复结构主要有两种形式:while/for型重复结构和do-while型重复结构。while/for型结构的逻辑含义是先判断条件P,若成立,则进行需要重复的计算A,然后再去判断重复条件;否则,控制就退出重复结构,如下图所示。

(1)while语句

while语句描述了先判断条件再执行重复计算的控制结构,while语句的一般形式是:

while(条件表达式)

循环体语句;

其中,循环体语句是内嵌的语句,当循环体语句多于一条时,应使用“{”和“}”括起来。执行while语句时,先计算条件表达式的值,当值为非0时,就执行循环体语句,然后重新计算条件表达式的值后再进行判断,否则就结束while语句的执行过程。

(2)for语句

for语句的基本格式是:

for(表达式1;表达式2;表达式3)

一般表达式1用于赋初始值,表达式2用于判定循环条件是否成立,表达式3用于变量值的变化操作,例如自增1操作等。

用while语句等价地表示为:

表达式1;

while(表达式2){

表达式3;

for语句的使用很灵活,其内部的三个表达式都可以省略,但用于分隔三个表达式的分号不能遗漏。

do-while型结构的逻辑含义是先执行循环体A,然后再判断条件P,若成立则继续执行循环体A的过程并判断条件;否则,控制就退出重复结构,如下图所示。

(3)do-while语句

do-while语句描述了先执行需要重复的计算再判断条件的控制结构,其一般格式是:

do

while(条件表达式);

执行do-while语句时,先执行内嵌的循环体语句,然后再计算条件表达式的值,若值为非0,则再次执行循环体语句和计算条件表达式并判断,直到条件表达式的值为0时,才结束do-while语句的执行过程。所以do-while循环体的执行次数刚好等于循环条件的判断次数。

下面是近几年对该知识点考察过的真题,以后仍是考试出题的重点,大家要重视起来。

【2017年第18题】在单入口单出口的do...while循环结构中,()

A、循环体的执行次数等于循环条件的判断次数

B、循环体的执行次数多于循环条件的判断次数

C、循环体的执行次数少于循环条件的判断次数

D、循环体的执行次数与循环条件的判断次数无关

解析:本题考查程序语言循环结构的基础知识。

do…while为先执行后判断,执行次数和判断次数相等。

故正确答案为:A

【2019年第22题】在C程序中,对于如下的两个for语句,其运行后a和b的值分别为()。

for(inta=0;a==0;a++);

for(intb=0;b=0;++b);

A、0,0

B、0,1

C、1,0

D、1,1

解析:本题考查程序设计语言的基础知识。

本题主要是学会区分赋值“=”与判等号“==”的不同意义。

for(inta=0;a==0;a++);语句中a==0成立1次,所以执行一次循环体,执行完a++后,a的值为1,最后不满足判定,跳出循环。

for(intb=0;b=0;++b);b的初值为0,然后把0赋给b,此时b的值为0,为假,所以条件第一次就不成立,一次也不执行,最终b=0。

THE END
1.选择与循环实践顺序结构程序设计,选择结构程序设计循环结构:循环结构又称重复结构。这种结构是当给定的条件成立时,重复执行某一循环体,直到条件不满足为止。 二、常见的输入函数和输出函数 三、顺序结构程序设计 顺序结构是结构化程序设计的三种基本结构之一,是最简单、最常见的程序结构,它的特点是:按照语句的先后顺序,自前向后逐条依次执行。数序结构是由一系列顺序https://blog.csdn.net/qq_41860950/article/details/79662349
2.顺序结构程序设计顺序结构程序设计 所谓顺序结构程序,是指程序中的语句完全按照它们的排列次序执行. 顺序结构程序一般由四个部分组成: 1. 定义变量部分; 2. 已知变量赋值或输入部分; 3. 未知变量求值部分; 4. 输出结果部分. 顺序结构程序的编写方法,与求解物理题很相似. 1. 变量相当于物理量,有几个物理量就定义几个变量.并https://etcnew.sdut.edu.cn/meol/analytics/resPdfShow.do?resId=574337
3.《顺序结构程序设计》教学设计《顺序结构程序设计》教学设计 一,教学目标 1. 理解顺序结构的执行流程,掌握顺序结构程序设计的一般过程. 2. 掌握程序中变量,表达式,常用函数,赋值语句的使用. 3. 在程序编写的过程中,锻炼学生发现问题,分析问题和解决问题的能力. 二,学习者分析 该班学生共 45 人,思维和能力方面都不错,对新媒体新技术的接受https://zcy.sxedu.org/file/download?id=ATTA2c587ca1f69f455bba2e85611d0658bb
4.顺序结构程序设计顺序结构程序设计 初级 刘光蓉 武汉轻工大学 任务 数据集 排行榜 C语言语句 数据的输入与输出 顺序结构 顺序结构是程序设计语言最基本的结构,其包含的语句是按照书写的顺序依次执行,且每条语句都将被执行,其N-S流程图如下图所示,图中A块和B块是顺序执行的结构关系。 https://rank.chinaz.compgedu.educoder.net/shixuns/9ejlzrkv/challenges
5.python程序设计顺序结构相关代码python顺序结构例题python程序设计顺序结构相关代码 python顺序结构例题 一.顺序结构: 1.按照从上到下的顺序结构执行代码,中间没有任何的判断和跳转,知道程序结束 2.对象的布尔值: Python的一切皆是对象,所有对象都有一个布尔值 获取对象布尔值的方法,使用内置函数bool() 以下对象的布尔值都是False:https://blog.51cto.com/u_16213628/10565397
6.顺序结构它将程序结构限制为三种基本结构:序列、选择和循环。在高级语言的编程中,顺序编程是编程的基础。Sequence structure的程序按照程序的顺序一个接一个地执行,直到程序完成,并且对程序的进程没有控制。 结构化程序设计的提出:序列结构是结构化程序设计的一部分,结构化程序设计的概念最早是由荷兰科学家E.W.Dijikstra提出的https://www.qwbaike.cn/doc-view-9800.html
7.c语言程序设计(上海电力大学)课程顺序结构程序设计举例 文欣秀 ● 3.7 顺序结构常见错误 文欣秀 第四章 分支结构程序设计 ● 4.1 问题的引入 叶文珺 ● 4.2 条件的表示 叶文珺 ● 4.3 简单分支程序设计 叶文珺 ● 4.4 多分支程序设计 叶文珺 ● 4.5 用switch语句实现多分支结构 叶文珺 ● 4.6 综合案例 叶文珺 https://higher.smartedu.cn/course/62354cef9906eace048e289e
8.《程序的顺序结构》教案(精选7篇)我是平和县大溪中学信息技术教师江文权,我说课的题目是活动八《体验顺序、分支结构程序设计》 一、说教材 1、本节课选自福建教育人民出版社出版《信息技术》教材。本教材贯彻“以学生为主体,教师为主导”的方针,把提高学生的积极性,培养学生的创新能力作为教育的根本目标。本节课所学的顺序、分支结构是Visual Basic程https://www.360wenmi.com/f/filexepzb1nq.html
9.跟着博主玩转计算机组成结构3.2.7 微指令和程序指令的关系 3.2.8 设计微指令应当追求的目标 五、指令流水 1.指令流水原理 1.1 五级流水: 1.2 六级流水: 2.影响流水线性能因素 2.1结构相关 资源相关 3.流水线性能 3.1吞吐率 3.2加速比 3.3效率 4.超级流水线技术 4.1超标量技术 https://cloud.tencent.com/developer/article/1732527
10.语言类实习报告5篇7 程序运行? 10 8 附录:(源程序清单)? 12 一、课程设计题目 《通讯录管理系统》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C语言源程序并具备https://www.unjs.com/fanwenku/89027.html
11.C语言入门到精通第一章第四节—基础篇顺序结构的NS流程图C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。 C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C+https://www.jianshu.com/p/dbee4e1109e7