首页 理论教育最新计算机专业考试指南-第二单元程序流程控制

最新计算机专业考试指南-第二单元程序流程控制

【摘要】:此考点主要出现在程序类题目中。if和switch与它们控制的语句组成相应的控制语句,从语法上看,控制语句视为一条语句。因此本程序段的输出是x=2。模块三循环结构程序设计一、考点分析1.了解循环条件、循环体、循环控制变量、循环嵌套的基本概念循环程序结构的目的是实现重复操作。

模块一 顺序程序设计

一、考点分析

1.了解顺序结构程序的执行特点

顺序结构程序是最简单的程序结构,语句按实现功能的先后顺序排列,程序的执行顺序与语句出现的先后顺序一致。

2.掌握字母大小写转换,度量衡不同单位换算类程序设计

字母大小写转换可以通过改变其ASCII码实现,大写字母=小写字母-32。摄氏温度与华氏温度的转换关系为交换两个变量的值可借助中间变量实现,如交换变量x和y的值,核心代码为t=x;x=y;y=t;。

二、典型题解

【例】 写出输出一个3位整数各位数字之和的核心代码。

解析:实现的关键是把一个3位整数各数位上的数字分离出来,需要综合运用“/”和“%”运算的特性来实现,任何十进制整数除以10的余数一定是其个位数,而除以10的结果则是除去个位数后剩下部分组成的新数。实现代码可以写成:

d0=x%10;

d1=x/10%10;

d2=x/100;

模块二 分支结构程序设计

一、考点分析

1.掌握if语句、if else语句、if else if语句、if语句的嵌套(else和if的配对原则)

当需要根据条件选择执行某种操作时,需要用if命令来选择程序执行的路线。一个if命令可以实现2个分支,两个if命令嵌套后可以实现3个分支,依次类推。else子命令必须与if配对使用,不能单独使用且else后不能带条件,它代表的条件是对配对if条件的否定。else总是与其前面最近的、未配对的if配对。此考点主要出现在程序类题目中。

2.掌握多分支语句switch的应用

switch是实现多分支的控制命令,具有结构清晰、直观的特点。但其限制较多,switch命令后的表达式的值必须是整型兼容表达式,而指示分支的配套case命令后必须是整型兼容常量表达式,用于列出程序员关心的switch表达式可能的取值。switch只能执行case表达式的值是否与switch表达式相匹配(相等)的条件判断,不能直接判断一个量取值在一个范围的条件。default标号代表与所有case标号不匹配的那些switch表达式的值。switch从匹配的标号开始执行直至遇到break为止。

3.了解分支结构程序的执行特点

if实现的分支结构,每次执行时只能执行其中的一条路径;switch实现的分支结构,视分支后是否带break语句,可能连续执行多个分支。用switch实现的分支一定可以用if的嵌套来实现,反之则不行。if和switch与它们控制的语句组成相应的控制语句,从语法上看,控制语句视为一条语句。

4.掌握条件判断(闰平年)类、最大最小值类程序设计

一个年份是否是闰年,需满足两个条件之一:年份能被4整除,但不能被100整除;或者可以被400整除。在3个数中找到最大值或最小值需要通过两次比较来完成,即以两个if语句来实现。

二、典型题解

【例1】 写出以下程序段的执行结果。

解析:本题考查是否理解else与if的配套规则,弄清else与哪一个if配对是正确分析答案的关键。按规则,else与if(x<10)是一对,而if(x>5)没有配对的else,从代码的对齐(故意设置的障碍点)来看极易搞错配对对象。因此本程序段的输出是x=2。

【例2】 写出以下程序段的执行结果。

解析:本题考查switch执行路径的选择,特别是break所起的控制作用。switch表达式的值是2,有匹配的case标号,执行printf("%d\n",x);语句,由于其后没有break语句,所以还要继续执行后续的分支直到遇到break或switch语句结束。因此本程序段的输出是:

1

Nomatching!

【例3】 在if(x);语句中与条件x等价的表达式是(  )。

A.x==1  B.x!=1  C.x==0  D.x!=0

解析:本题考查C语言中对逻辑真、假值的规定。C语言规定任何表达式的值都可以当成逻辑值对待,非0为真,0为假。但关系表达式和逻辑表达式的真、假是分别用1和0表示的。本题容易选择A,而正确的是D。

模块三 循环结构程序设计

一、考点分析

1.了解循环条件、循环体、循环控制变量、循环嵌套的基本概念

循环程序结构的目的是实现重复操作。需要重复执行的语句称为循环体,决定是否重复执行的条件就是循环条件,在循环条件表达式中决定条件真假的变量即为循环控制变量。

循环嵌套实际上是指一个循环语句的循环体是另一个循环语句。

2.掌握while、do while和for语句实现的循环语句以及3种循环语句的区别

while、do while和for都可以实现循环结构的程序,如计算10!的值,其基本使用形式为:

3个控制命令在实现循环语句时没有功能上的差异,完全可以互换。需要注意的是写一个循环语句要做3件事,循环控制变量赋初值,构造正确有效的循环条件,每执行循环体后要更新循环控制变量。while和do while在实现循环时这3个操作是分散的,不便于管理,而for则把3个操作集中在一起管理,因此写出的语句紧凑且不易出现漏错。do while语句与其他两个不同的是,第一次执行循环体时不判定循环条件。

3.掌握循环次数的计算

循环次数是指循环语句的循环体重复执行的次数,循环次数由循环条件和循环控制变量的更新方式决定,特别注意在一次循环中,循环控制变量被多次更新的情形。

4.掌握双重循环嵌套的执行过程

双重循环由外循环和内循环组成,内循环语句仅是外循环体中的一个普通语句而已。外循环的循环体执行一次,内循环语句也完整地执行一次。内循环体执行的次数等于外循环次数与内循环次数之积。

5.掌握循环辅助语句:break语句和continue语句

break和continue都只对包含它的循环起作用。break是结束循环语句的执行(此时循环条件仍为真),然后执行该循环语句之后的语句。continue是提前结束本次循环的执行而直接开始执行下一次循环。注意执行break、continue语句后,break、continue至循环体末的语句都会被跳过,因此,break和continue必须与if语句配合使用。

6.掌握循环程序设计,掌握累加、累乘类,判断质数类程序设计

累加和累积的实现是保存累加和的变量一般置初值0,累积的变量置初值1,观察并发现加项或乘项的规律,可确定循环控制变量变更的方式。质数是只能被1和它本身整除的整数,很容易想到把除1和它本身之外的数作除数逐一测试,只要一遇到能整除的数时,就可以判定该数是否为质数,注意质数与合数是相对的。

二、典型题解

【例1】 分析下面循环语句的循环次数

解析:本题考查对循环语句执行过程的理解,要正确分析该循环语句的循环次数,关键在于分析清楚循环控制变量的情况,这里循环控制变量在循环条件和循环体中都进行了更新,如果能注意到这一点,就能获得正确的答案:6。

【例2】 输入一个整数,求该整数各数位上数字之和。

解析:本题是一个累加求和问题,但加项来自于一个整数数位上的数字,需要想办法分离数位上的数字为独立的整数,结合“%”和“/”运算可以实现数位分离,分离每个数字的方法是相同的,使用循环来执行重复操作。据此分析实现的程序代码如下:

【例3】 输入一个整数x,判定它是否为质数。

解析:把1和x以外的数作除数去逐一测试,也即2~x-1的数作除进行测试,根据数学分析用于测试的除数范围可以进一步缩小为一遇到整除时就可以结束测试,因此要使用break的控制功能来结束循环。这样循环的结束就有两种情形:一种是没有一个数能整除,循环条件为假,循环自然结束;另一种是有一个数可整除,则执行break结束循环语句,因此,需要测试循环条件来确认循环语句是哪种情况结束的,如果循环条件为真,说明x是合数,否则x为质数。代码实现如下: