跪求VFP高手进来解答 20

1.有关SCAN循环结构,叙述正确的是()A.SCAN循环结构中的LOOP语句,可将程序流程直接指向循环开始语句SCAN,然后判断EOF()函数的真假。B.在使用SCAN... 1.有关SCAN循环结构,叙述正确的是( )
A.SCAN循环结构中的LOOP语句,可将程序流程直接指向循环开始语句SCAN,然后判断EOF()函数的真假。
B.在使用SCAN循环结构时,必须打开某一个数据库。
C.SCAN循环结构的循环体中必须写有SKIP语句。
D.SCAN循环结构,如果省略了子句、FOR和WHILE条件子句, 则直接退出循环。

答案是选择B,但是使用时一定要打开数据库吗?书上的例子又没有打开?

2.已知X=“134”,表达式&X+478的值为( )。
A. 34478 B. 612 C. “134478” D.“612”

答案选B,但是&不是宏替换函数吗?只能替换字符型啊?
展开
 我来答
BDCSWMS
2011-08-08 · 超过44用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:85.3万
展开全部
1.“SCAN ... ENDSCAN”命令是当前表中顺序移动记录指针,并对满足指定条件的每条记录执行“SCAN”与“ENDSCAN”之间的命令块。不打开表,自然就谈不上在 表中移动记录指针,并对记录执行命令了。 答案选择B是对的,但题目本身不严谨,因为:在VF,数据库与表是两个概念,表可以是属于某个数据库的“数据库表”,也可以是不属于任何数据库的“自由表”;执行“SCAN ... ENDSCAN”必须打开的是“表”,而不是“数据库”,例如,根本就不建立数据库,仅对一个当前打开的自由表也可以执行“SCAN ... ENDSCAN”。这个题目混淆了VF的“数据库”与“表”,应当改为“必须打开某一个表”。“书上的例子没有打开”可能是省略了USE 命令,但在解释命令时一定有“当前表”之类的限定。总之,只能对当前工作区打开的表执行“SCAN ... ENDSCAN”
2.“&”是执行宏替换的命令,它把内存变量和数组元素的内容作原字符串使用,它后面紧接的变量确实只能是字符型,但该变量在执行宏替换时,可以根据给该变量赋值时的书写格式,作为VF支持的各种数据类型使用。例如:执行已知X="134"后,&X 就是 134,&X+478 就是 134+478,两者结果完全一样(此时,虽然 X 本身是字符型变量,它的值是"134",但在执行 &X+478 时,用数值 134 取代 &X,即实际执行的是 134+478,结果是 612;如果写成 X="'134'" 或 X='"134"',则在执行 &X +478 时,用字符串 "134" 取代 &X,即实际执行的是 "134"+478,将发生“操作数类型不匹配”错误,得不到结果;要得到"134478"的结果,两条语句应该是先执行 X="'134'" ,再执行 &X +"478")
X 赋值格式 &X 的数据类型 &X 的等效表达
X="134" 数值型 134
X="'134'" 字符型 '134'
X="{^1999-11-25}" 日期型 {^1999-11-25}
X=".T." 逻辑型 .T.
……
chiconysun
2011-08-07 · TA获得超过2.2万个赞
知道大有可为答主
回答量:5410
采纳率:92%
帮助的人:2591万
展开全部
1 应该精确地说,一定打开某数据表,并且scan 作用在当前该表上
2 &X是用字符串双引号内容去替换该表达式,注意X双引号中的内容是数值134,于是&X + 478被替换成134+478,这样该表达式的值就是612了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流浪の海子2f9026b
2011-08-10 · TA获得超过107个赞
知道答主
回答量:81
采纳率:0%
帮助的人:36.7万
展开全部
第一题,估计答案有错,我认为答案应该选A,关于B答案,使用SCAN循环结构,必须打开表文件,而不是数据库
第二题。"134"是字符型而不是数值型,134才是数值型,使用字符型数据时必须用定界符(单引号,双引号或方括号)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式