全部科目 > 嵌入式系统设计师 >
2019年下半年 上午试卷 综合知识
第 53 题
知识点 宏定义   选择语句  
章/节 嵌入式系统程序设计  
 
 
下面的程序(a)和程序(b)运行后,y和c的值分别是(53)。

 
  A.  y=2, c=11
 
  B.  y=2, c=4
 
  C.  y=0.5, c=11
 
  D.  y=0.5, c=4
 
 




 
 
相关试题     预处理指令 

  第41题    2010年下半年  
执行下面的一段C程序后,变量x的值为(41)。

  第39题    2011年下半年  
编译并执行下面一段C语言后,其结果为(39)。

  第54题    2018年下半年  
执行下面程序后,其输出结果是(54) 。

相关试题     语句 

  第63题    2020年下半年  
执行C语言的语句“for(i=1; i++<4;); ”后,变量i的值是(63)。

  第60题    2017年下半年  
执行下面C语言程序段的结果是(60)。
main ( ) {
int x=l,a=l,b=l;
switch(x) {
case 0: b++;
case 1: a++;
case 2: a++; b++;
}
printf (”a=%d..

 
知识点讲解
· 宏定义
· 选择语句
 
        宏定义
        在C程序中用好宏定义可以提高程序的可移植性、可读性,减少出错。对于嵌入式系统而言,为了达到性能要求,也常用宏作为一种代替函数的方法。例如,用宏求解两个数据对象的较小者。
        
        再如,用#define声明一个常数,忽略闰年情况下表示一年有多少秒。
        
        通过使用预定义宏可以返回程序的某些状态,以方便交叉编译和调试,每个预定义宏的名称一两个下画线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。例如,用_FUNC_打印函数名、_LINE_打印行号,以定位程序中打印该信息的函数和位置。常用的几个预定义宏如下。
        _DATE_当前源文件的编译日期,格式为“Mmm dd yyyy”的字符串字面量
        _TIME_当前源文件的编译时间,格式为“hh:mm:ss”的字符串字面量
        _FILE_当前源文件名称,含路径信息
        _FUNC_当前函数名称
        _LINE_当前程序行的行号,表示为十进制整型常量
        _STDC_若当前编译器符合ISO标准,那么该宏的值为1,否则未定义
        _STDC_HOSTED_(C99)如果当前是宿主系统,则该宏的值为1,否则为0
 
        选择语句
        表示分支(选择)结构的语句有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语句的一般形式如下:
        
        switch语句的执行过程可以理解为:首先计算表达式p的值,然后自上而下地将其结果值依次与每一个常量表达式的值进行匹配(常量表达式的值的类型必须与“表达式”的类型相同)。如果匹配成功,则执行该常量表达式后的语句系列。当遇到break时,则立即结束switch语句,否则顺序执行到switch中的最后一条语句。default是可选的,如果没有常量表达式的值与“表达式”的值匹配,则执行default后的语句系列。需要注意的是,表达式p的值必须是字符型或整型。
        编译时通常根据switch语句中各case后面的常量表达式来构造一个跳转表,从而在确定表达式p的值之后可以快速定位到相应的语句位置开始执行,而不是逐一与各常量表达式的值进行比较。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有