软件水平考试

逻辑表达式求值时常采用短路计算方式。“&&"、“||”、“!”分别表示逻辑与、或、非运算,“&&”、“||”为左结合,“!”为右结合,优先级从高到低为 “!”、“&&”、“||”。对逻辑表达式“x&&(y II!z)”进行短路计算方式求值时( )A.x为真,则整个表达式的值即为真,不需要计算y和z的值 B.x为假,则整个表达式的值即为假,不需要计算y和z的值 C.x为真,再根据z的值决定是否需要计算y的值 D.x为假,再根据y的值决定是否需要计算z的值

题目
逻辑表达式求值时常采用短路计算方式。“&&"、“||”、“!”分别表示逻辑与、或、非运算,“&&”、“||”为左结合,“!”为右结合,优先级从高到低为 “!”、“&&”、“||”。对逻辑表达式“x&&(y II!z)”进行短路计算方式求值时( )

A.x为真,则整个表达式的值即为真,不需要计算y和z的值
B.x为假,则整个表达式的值即为假,不需要计算y和z的值
C.x为真,再根据z的值决定是否需要计算y的值
D.x为假,再根据y的值决定是否需要计算z的值
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

在C程序中,判逻辑值时,用"非0"表示逻辑值"真", 又用"0"表示逻辑值"假"。 在求逻辑值时,用()表示逻辑表达式值为"真", 又用()表示逻辑表达式值为"假"。

A.1 0

B.0 1

C.非0 非0

D.1 1


正确答案:A

第2题:

请教:2008年下半年《程序员》上午试题(标准答案版)第1大题第26小题如何解答?请解释,谢谢

【题目描述】

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

  (31)

A. d 为 true    

B. a 为 true   

C. b 为 true    

D. c 为 true

 

 


正确答案:C
答案分析:

对于布尔运算符and: x and y的值为真,当且仅当x和y都为真。若x为假,则不管y是真是假,x and y都为假。

对于布尔运算符or: x or y的值为假,当且仅当x和y都为假。若x为真,则不管y是真是假,x or y都为真。

对于表达式“b or ((c>d) and a)”,若b为真,则不管((c>d) and a)是真是假,整个表达式的值都为真。

故,本题答案是 C

第3题:

●对于逻辑表达式“x and y or not z”,and、or、not分别是逻辑与、或、非运算,优先级从高到低为not、and、or,and、or为左结合,not为右结合,若进行短路计算,则(20)。

(20) A.x为真时,整个表达式的值即为真,不需要计算y和z的值

B.x为假时,整个表达式的值即为假,不需要计算y和z的值

C.x为真时,根据y的值决定是否需要计算z的值

D.x为假时,根据y的值决定是否需要计算z的值


正确答案:C

第4题:

逻辑表达式“a∧b∨c∧(b∨x>0)”的后缀式为______。(其中∧、∨分别表示逻辑与、逻辑或,>表示关系运算大于,对逻辑表达式进行短路求值)

A.abcbx0>∨∧∧∨

B.ab∧c∨b∧x0>V

C.ab∧cb∧x>0∨∨

D.ab∧cbx0>∨∧∨


正确答案:D
解析:本题考查逻辑表达式的计算及程序语言处理基础知识。
  “逻辑与运算”的优先级高于“逻辑或运算”。
  “逻辑与运算”表达式“x∧y”的短路求值逻辑是:若x为假,则可知“x∧y”的值为假,无需再对y求值,因此只有在x为真时继续对y求值。
  “逻辑或运算”表达式“x∨y”的短路求值逻辑是:若x为真,则可知“x∨y”的值为真,无需再对y求值,因此只有在x为假时继续对y求值。
  对于逻辑表达式“a∧b∨c∧(b∨x>0)”,从运算符的优先级方面考虑,需先“a∧b”求值,然后对“c∧(b∨x>0)”求值,最后进行“∨”运算,因此后缀式为“ab∧cbx0>∨∧∨”。

第5题:

对于逻辑表达式“x and y or not z”,and、or、not分别是逻辑与、或、非运算,优 先级从高到低为not、and、or,and、or为左结合,not为右结合,若进行短路计算,则(20)。

A.x为真时,整个表达式的值即为真,不需要计算y和z的值

B.x为假时,整个表达式的值即为假,不需要计算y和z的值

C.x为真时,根据y的值决定是否需要计算z的值

D.x为假时,根据y的值决定是否需要计算z的值


正确答案:C
本题主要考查逻辑与、或运算。逻辑与运算需要考虑两个操作数的值、而逻辑或只要第一个操作数为真,那么整个计算结果即为真,这种情况下无需考虑其第二个操作数的值,因此本题的答案选C。

第6题:

在C程序中,在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。()

A、10

B、01

C、非0非0

D、11


参考答案:A

第7题:

● 逻辑表达式“a∧b∨c∧(b∨x>0)”的后缀式为(21)。(其中∧、∨分别表示逻辑与、逻辑或,>表示关系运算大于,对逻辑表达式进行短路求值)

(21)

A. abcbx0>∨∧∧∨

B. ab∧c∨b∧x0>∨

C. ab∧cb∧x>0∨∨

D. ab∧cbx0>∨∧∨


正确答案:D
试题(21)分析
    本题考查逻辑表达式的计算及程序语言处理基础知识。
    “逻辑与运算”的优先级高于“逻辑或运算”。
    “逻辑与运算”表达式“x∧Y”的短路求值逻辑是:若x为假,则可知“x∧y”的值为假,无需再对y求值,因此只有在x为真时继续对y求值。
    “逻辑或运算”表达式“x∨y”的短路求值逻辑是:若x为真,则可知“x∨y”的值为真,无需再对Y求值,因此只有在x为假时继续对Y求值。
    对于逻辑表达式“a∧b∨c∨(b∨X>0)”,从运算符的优先级方面考虑,需先“a∨b”求值,然后对“c∧(b∨x>0)”求值,最后进行“V”运算,因此后缀式为“ab∧cbx0>∨∧∨”。
参考答案
      〔21)D

第8题:

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

(31)

A. d 为 true

B. a 为 true

C. b 为 true

D. c 为 true


正确答案:C


第9题:

逻辑表达式“a∧b∨c∧(b∨x>0)”的后缀式为(21)。(其中∧、∨分别表示逻辑与、逻辑或,>表示关系运算大于,对逻辑表达式进行短路求值)

A.abcbx0>∨∧∧∨

B.ab∧C∨b∧x0>∨

C.ab∧cb∧x>0∨∨

D.ab∧cbx0>∨∧∨


正确答案:D
解析:后缀式也称为逆波兰式,是波兰逻辑学家卢卡维奇发明的一种表达表达式的方法。他把运算符号写在运算对象的后面。
  将一个普通的中序表达式转换为逆波兰表达式的一般算法是:
  (1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。
  (2)读入一个用中缀表示的简单算术表达式,为方便起见,设该简单算术表达式的右端多加上了优先级最低的特殊符号“#”。
  (3)从左至右扫描该算术表达式,从第一个字符开始判断,如果该字符是数字,则分析到该数字串的结束并将该数字串直接输出。
  (4)如果不是数字,该字符则是运算符,此时需比较优先关系。

第10题:

根据运算前后的符号位可判别溢出。设X、Y、Z分别表示两个参加运算的数的符号位及运算结果的符号位,那么若逻辑表达式X.Y.的值与..Z的值进行(38)运算的结果为1,则表示溢出。

A.与

B.或

C.与非

D.异或


正确答案:B
解析:当两个同符号数相加或者两异号数相减时,运算结果若超出固定码长的数据表示范围,就会发生溢出。例如,X=+65D=+1000001B(D、B分别表示十进制数、二进制数),Y=+67D=+1000011B,编码总长度为8位,那么:[X+Y]补=[X]补+[Y]补=01000001+01000011=10000100符号位为1,表示结果为负数,两正数相加得负数,这显然是荒谬的,因为发生了溢出。判断溢出有四种方式:①双符号位法,即用00表示正数,11表示负数,当运算结果的两个符号位上的数不一样时,则表明发生了溢出。承上例:[X+Y]补=[X]补+[Y]补=001000001+001000011=010000100②进位判断法,当数值最高位和符号位向上一位都有进位或者都没有进位的时候(即异或结果为0),表示没有溢出,否则表示有溢出。③根据运算结果的符号位SF和进位标志CF的异或结果来判断,即若SFCF结果为1,表示运算的结果产生溢出。④根据运算前后的符号位进行判别,设X、Y、Z分别表示两个参加运算的数的符号位及运算结果的符号位,那么若逻辑表达式的值为1,则表示溢出。或运算也称为逻辑加,常用符号OR、∪、V或+表示。从上面的分析可见,在做题时要注意将其作为引子举一反三,此次考的是用第④种方法判断溢出,以后考的就可能是其余三种,而将这四种都掌握了,“鱼网”就织得密集结实,做到了未雨绸缪,获胜的把握就更大。

更多相关问题