下面程序的运行结果是( )。 SET EXACT ON s="ni"+SPACE(2) IF s=="ni" IF S="ni" ?"one" ELSE ?"two" ENDIF ELSE IF 8="ni" ?"three"

admin2015-08-13  22

问题 下面程序的运行结果是(     )。
SET EXACT ON
s="ni"+SPACE(2)
IF s=="ni"
IF S="ni"
?"one"
ELSE
?"two"
ENDIF
ELSE
IF 8="ni"
?"three"
ELSE
?"four"
ENDIF
ENDIF
RETURN

选项 A、one
B、two
C、three
D、four

答案C

解析 在用双等号运算符(==)比较两个字符串时,只有当两个字符串完全相同(包括空格以及各字符的位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.;在用单等号运算符(=)比较两个字符串时,运算结果与SETEXACTONIOFF的设置有关:当设置ON时。先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行精确比较;当设置OFF时,只要右边字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真.T.的结果,即字符串的比较因右面的字符串结束而终止。本题中,s="ni"+SPACE(2)="ni",第一层条件语句(IF8=="ni")为逻辑假.F.,则进入ELSE分支中。由于本题设置了SETEXACTON,第二层条件语句(IFs="ni")中,等号右侧的长度小,所以会在右侧的字符串增加两个空格,使之和左侧的字符串长度相等,这与s("ni")的值相等,所以第二层条件语句为逻辑真.T.,程序将执行:?"three"语句,所以运行结果为:three。
转载请注明原文地址:https://kaotiyun.com/show/ALEp777K
0

最新回复(0)