标题:有一道vfp程序题看不太懂,求高人指教,我是刚来这个论坛的,小女子谢谢啦~
只看楼主
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
结帖率:100%
已结贴  问题点数:10 回复次数:13 
有一道vfp程序题看不太懂,求高人指教,我是刚来这个论坛的,小女子谢谢啦~
clear
cstring="visualfoxpro"
nresult=0
m=len(cstring)
for n=1 to m
    c=substr(cstring,n,1)
    if!between(asc(c),asc("A"),asc("Z"))
          loop
    endif
    nresult=nresult+1
end for
?nresult                                      给的答案是3
                     可是为什么呢????????求高人快快回复我~
搜索更多相关主题的帖子: vfp between 小女子 
2012-02-17 19:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用快乐至上在2012-2-17 19:22:33的发言:

clear
cstring="visualfoxpro"
nresult=0
m=len(cstring)
for n=1 to m
    c=substr(cstring,n,1)
    if!between(asc(c),asc("A"),asc("Z")) &&变量 c 不在"A"与"Z"之间就返回
          loop
    endif
    nresult=nresult+1
end for
?nresult                                      给的答案是3
                     可是为什么呢????????求高人快快回复我~
最后答案是0
cstring="visualfoxpro"
字母全是小写。大写和小写得出的结果是不一样的,查一下,有没有大写字母写成小写了
如果最后结果是3,是正确的,上面12个字母中,有3个大写字母,被你写成小写字母了。

[ 本帖最后由 sdta 于 2012-2-17 19:49 编辑 ]

坚守VFP最后的阵地
2012-02-17 19:38
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
得分:0 
回复 2楼 sdta
我又检查了一遍,我没有写错啊,后面两个确实是大写。
这个是09年春二级vfp笔试试卷第22题。。。。。。。。。答案确实是3        
2012-02-17 19:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用快乐至上在2012-2-17 19:53:55的发言:

我又检查了一遍,我没有写错啊,后面两个确实是大写。
这个是09年春二级vfp笔试试卷第22题。。。。。。。。。答案确实是3        
正确答案应是2
nresult=nresult+1
找到一个大写字母,上面表达式+1,两个大写字母,应该+2


[ 本帖最后由 sdta 于 2012-2-17 19:57 编辑 ]

坚守VFP最后的阵地
2012-02-17 19:56
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
得分:0 
回复 4楼 sdta
啊····为什么啊·····
2012-02-17 19:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 5楼 快乐至上
首先你要读出代码的意思,才能正确分析出最后的结果。

坚守VFP最后的阵地
2012-02-17 19:59
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
得分:0 
回复 4楼 sdta
额··我有点笨,,,还是不太明白,,嘿嘿。能具体点吗?拜托。。
2012-02-17 20:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:10 
以下是引用快乐至上在2012-2-17 19:57:53的发言:

啊····为什么啊·····
clear
cstring="visualfoxpro" &&字符串赋给变量cstring
nresult=0              &&初始化变量nresult,赋初值为0
m=len(cstring)         &&将字符串的长度赋给变量m,长度应该为12
for n=1 to m
    c=substr(cstring,n,1)  &&每循环一次,取出一个字符
    if!between(asc(c),asc("A"),asc("Z"))
       loop  &&如果变量 c 不在"A"与"Z"之间就返回
    endif
    nresult=nresult+1 &&如果变量 c 在"A"与"Z"之间,计数器的值就+1
end for
?nresult  &&因为有两个大写字母,所以最后结果为2

[ 本帖最后由 sdta 于 2012-2-17 20:07 编辑 ]

坚守VFP最后的阵地
2012-02-17 20:04
快乐至上
Rank: 1
等 级:新手上路
帖 子:100
专家分:0
注 册:2012-2-17
得分:0 
回复 6楼 sdta
是不是答案给的是错的。应该是2
2012-02-17 20:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
回复 9楼 快乐至上
这里边有两种情况,一种情况是字符串写错了(大写写成小写了),另一种情况就是答案是错误的。
题目那来的,网上,还是书上。
如果还看不懂,我就下岗回家了。
关键是掌握方法,结果对错无所谓。

[ 本帖最后由 sdta 于 2012-2-17 20:13 编辑 ]

坚守VFP最后的阵地
2012-02-17 20:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-361088-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.117718 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved