VFP题目求答案详细解释

来源:百度知道 编辑:UC知道 时间:2024/06/05 19:34:17
有下程序,请选择最后在屏幕显示的结果:
SET EXACT ON
s="ni"+SPACE(2)
IF s=="ni"
IF s="ni"
?"one"
ELSE
?"two"
ENDIF
ELSE
IF s="ni"
?"three"
ELSE
?"four"
ENDIF
ENDIF
RETURN
A.one
B.two
C.three
D.four
答案为什么是C
要为当前表所有性别为"女"的职工增加100元工资,应使用命令
A.REPLACE ALL 工资 WITH 工资+100
B.REPLACE 工资 WITH 工资+100 FOR 性别="女"
C.REPLACE ALL 工资 WITH 工资+100
D.REPLACE ALL 工资 WITH 工资+100 FOR 性别="女"
答案为什么是B 不是D
各位大虾 要告诉我详细的答案的解释 是怎么做出来的 谢谢

1
SET EXACT ON &&在两个表达式的较短的一个的右边加上空格或零(0)字节,以使它与较长表达式的长度相匹配。但是,在比较中的任何表达式尾部的空格或零字节都被忽略。但对"=="比较不影响.
看第一次对S的赋值:s="ni"+SPACE(2)
所以,IF s=="ni"此条件不成立,所以成立ELSE后的条件.
继续看IF s="ni" ,此处适合SET EXACT ON的条件,由于两个的值去掉空格后是相等的,所以,此处成立,显示结果为"three"
2
FOR 语句已经限定了,只要性别为"女"的都进行替换,所以,不用加ALL
而不是楼上说的"REPLACE的默认后缀就是ALL",所以,直接选B就OK了

第二个问题可以回答你,REPLACE的默认后缀就是ALL,所以不用多此一举再加个ALL参数