全部科目 > 嵌入式系统设计师 >
2016年下半年 上午试卷 综合知识
第 19 题
知识点 逻辑运算符   表达式求值  
关键词 表达式  
章/节 嵌入式系统程序设计  
 
 
逻辑表达式求值时常采用短路计算方式。“&&”“||”“!”分别表示逻辑与、或、非运算,“&&”“||”为左结合,“!”为右结合,优先级从高到低为“!”“&&”“||”。对逻辑表达式“x&&(y||!z)”进行短路计算方式求值时,(19)。
 
  A.  x为真,则整个表达式的值即为真,不需要计算y和z的值
 
  B.  x为假,则整个表达式的值即为假,不需要计算y和z的值
 
  C.  x为真,再根据2的值决定是否需要计算y的值
 
  D.  x为假,再根据y的值决定是否需要计算z的值
 
 




 
 
相关试题     运算符与表达式 

  第60题    2015年下半年  
变量W_data定义如下:

则变量W_data所占的内存存储空间可表示为(60)。

  第19题    2018年下半年  
对布尔表达式进行短路求值是指:无须对表达式中所有操作数或运算符进行计算就可确定表达式的值。对于表达式“a or((c<d)and b)”,(19)时可进行短路计算。

  第50题    2015年下半年  
假设以下代码运行环境为32位系统,其中,_attribute_((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。
代码段1:

sizeof(struct&nbs..

 
知识点讲解
· 逻辑运算符
· 表达式求值
 
        逻辑运算符
        逻辑与(&&)、逻辑或(||)、逻辑非(!)的运算结果为1(表示true)或为0(表示false)。“逻辑非”是单目运算符,它将操作数的逻辑值取反。“逻辑与”是双目运算符号,其含义是“当且仅当两个操作数的值都为true时,逻辑与运算的结果为true”。“逻辑或”的含义是“当且仅当两个操作数的值都为false时,逻辑或运算的结果为false”。
        例如,逻辑表达式!20的结果是0,10&&5的结果是1,10||5.5的结果是1,10&&0的结果是0。
        在C程序中,由逻辑运算符“&&”“||”构造的表达式采用短路计算方式求值,即对于“a&&b”,a为1(假)时不需要再计算b的值就可以确定该表达式的结果为0(假),对于“a||b”,a为1(真)时不需要再计算b的值就可以确定该表达式的结果为1(真)。
        例如,对于逻辑表达式((year%4==0)&&(year%100!=0)||(year%400==0)),若year%4的结果不是0(例如year的值为2001),就不需要再计算year%100的值了,因为此时“&&”运算的结果已经确定为0(即条件不成立)。
 
        表达式求值
        表达式求值是程序设计语言编译中的一个最基本问题。它的实现方法是栈的一个典型的应用实例。
        在计算机中,任何一个表达式都是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。其中操作数可以是常数,也可以是变量或常量的标识符;运算符可以是算术运算体符、关系运算符和逻辑符;界限符为左右括号和标识表达式结束的结束符。在本节中,仅讨论简单算术表达式的求值问题。在这种表达式中只含加、减、乘、除四则运算,所有的运算对象均为单变量。表达式的结束符为“#”。
        表达式一般分为中缀表达式和后缀表达式,具体如下:
               中缀表达式
               中缀表达式是通常使用的一种表达式,中缀表达式的计算规则如下。
               (1)括号内的操作先执行,括号外的操作后执行。如有多层括号,则先执行内层括号内的操作,再执行外括号内的操作。
               (2)先乘除,后加减。
               (3)在有多个乘除或加减运算可选择时,按从左到右的顺序执行,即优先级相同的操作符按先后次序进行。
               后缀表达式
               后缀表达式中只有操作数和操作符,它不再含有括号,操作符在两个操作数之后。它的计算规则非常简单,严格按照从左向右的次序依次执行每一个操作。每遇到一个操作符,就将前面的两个操作数执行相应的操作。



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

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