免费智能真题库 > 历年试卷 > 嵌入式系统设计师 > 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
 
 
 

 
  第54题    2018年下半年  
   43%
执行下面程序后,其输出结果是(54) 。
  第39题    2011年下半年  
   72%
编译并执行下面一段C语言后,其结果为(39)。
  第39题    2012年下半年  
   43%
分别运行下列两段程序后,y1和y2的值是(39)。
程序段1:
  相关试题:语句          更多>  
 
  第63题    2020年下半年  
   69%
执行C语言的语句“for(i=1; i++<4;); ”后,变量i的值是(63)。
  第60题    2017年下半年  
   60%
执行下面C语言程序段的结果是(60)。
main ( ) {
int x=l,a=l,b=l;
switch(x) {
case 0: b++;
case 1:..
 
   知识点讲解    
   · 宏定义    · 选择语句
 
       宏定义
        在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的值之后可以快速定位到相应的语句位置开始执行,而不是逐一与各常量表达式的值进行比较。
   题号导航      2019年下半年 嵌入式系统设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第53题    在手机中做本题