|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 嵌入式C/C++程序设计要求 > C程序设计基础 > C程序基础 >
|
被考次数:3次
被考频率:中频率
总体答错率:63%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:掌握
相关知识点:27个
|
|
|
|
语句是构成程序的一种基本单位,用来描述数据定义或声明、运算和控制过程。下面主要介绍描述基本流程控制的分支(选择)、循环结构等语句,包括if、switch、for、while、do-while、break、continue、return等。
|
|
|
|
表示分支(选择)结构的语句有if语句和switch语句。
|
|
|
(1)if语句。if语句用于表达根据一定的条件在两条流程中选择一条执行的情况。if语句的一般形式为:
|
|
|
|
其含义是当给定的条件p满足(即表达式p的值不为0)时,执行语句1,否则执行语句2。语句1和语句2中必须且仅能执行其中的一条。在if语句的简单形式中,可以省略else及其子句“语句2”。良好的C编程风格提倡将语句1和语句2用“{”“}”括起来。
|
|
|
if语句能够嵌套使用,即一个if语句能够出现在另一个if语句里。使用if语句的嵌套形式需要注意else的配对情况,C规定:else子句总是与离它最近且没有else相匹配的if语句配对。
|
|
|
例如,下面语句(a)、(b)中,else与if的匹配不同。
|
|
|
|
在语句(a)中,else与if(x<5)匹配,该语句的含义是:当x大于0且小于5时,执行y=x+1;,若x大于或等于5,则执行y=x-1;。
|
|
|
在语句(b)中,else与if(x>0)匹配,该语句含义是:当x大于0且小于5时,执行y=x+1;,若x小于或等于0,则执行y=x-1;。
|
|
|
(2)switch语句。switch语句用于表示从多分支的执行流程中选择一个来执行的情况。
|
|
|
|
|
switch语句的执行过程可以理解为:首先计算表达式p的值,然后自上而下地将其结果值依次与每一个常量表达式的值进行匹配(常量表达式的值的类型必须与“表达式”的类型相同)。如果匹配成功,则执行该常量表达式后的语句系列。当遇到break时,则立即结束switch语句,否则顺序执行到switch中的最后一条语句。default是可选的,如果没有常量表达式的值与“表达式”的值匹配,则执行default后的语句系列。需要注意的是,表达式p的值必须是字符型或整型。
|
|
|
编译时通常根据switch语句中各case后面的常量表达式来构造一个跳转表,从而在确定表达式p的值之后可以快速定位到相应的语句位置开始执行,而不是逐一与各常量表达式的值进行比较。
|
|
|
|
C提供的循环语句有while、do-while和for,循环体部分应使用语句块符号(即大括号)括起来。
|
|
|
(1)while语句。while语句的一般形式为:
|
|
|
|
while语句的含义是首先计算表达式p(称之为循环条件)的值,如果其值不为0(即为真),则执行“循环体语句”(称为循环体)。这个过程重复进行,直至“表达式”的值为0(假)时结束循环。
|
|
|
(2)do-while语句。do-while语句的一般形式为:
|
|
|
|
do-while语句的含义是先执行循环体语句,再计算表达式p,如果表达式p的值不为0,则继续执行循环体语句,否则循环终止。
|
|
|
|
|
|
|
②计算表达式2(循环条件),如果其结果不为0,则执行循环体语句(循环体),否则循环终止。
|
|
|
|
|
for语句在形式上比实现相同控制逻辑的while语句更为简洁和紧凑。
|
|
|
|
break语句用在switch语句中时,用于跳出switch语句,结束switch语句的执行。
|
|
|
break语句在循环体中时,其作用是终止循环并结束循环语句的执行。在多重(层)循环控制中,break的作用只限于终止(并跳出)一重(层)循环控制结构,其作用不能到达更外层的循环控制。
|
|
|
|