下题对自由表“评分.dbf”进行操作。“评分.dbf”的内容用命令LIST显示的结果如下:
记录号 歌手号 分数评委号
1 1001 9.80 101
2 1001 9.60 102
3 1001 9.70 103
4 1001 9.80 104
5 1001 9.90 105
6 1002 9.90 10l
7 1002 9.95 102
8 1002 9.70 103
9 1002 9.88 104
10 1002 9.80 105
11 1002 9.82 106
执行下列程序段的结果是 (11) 。
USE评分
i=10
a=0
LOCATE FOR歌手号="1001"
DO WHILE.NOT.EOF()
IF分数<i
i=分数
ENDIF
IF分数>a
a=分数
ENDIF
CONTINUE
ENDDO
a
执行下列SQL语句以后,scoregroup.dbf表中的记录个数是 (12) ,记录号为1的记录的最低分的内容是 (13) 。
SELECT评委号,min(分数)as最低分;
FROM评分;
GROUP BY评委号;
INTO TABLE scoregroup.dbf ORDER BY评委号,最低分DESC
向自由表“评分.dbf”中增加一条记录的SQL语句是:
INSERT INTO评分 (14) ("1001",9.45,"106")
将自由表“评分.dbf”的“评委号”字段的长度改为4的SQL语句是:
ALTER TABLE评分 (15) 评委号C(4)
文中(11)处应为()。
参考答案:9.90
解析:
该程序段中,当用USE命令打开评分表后,记录指针默认指向第一条记录,通过LOCATE FOR歌手号="1001"命令,将记录指针定位到了歌手号为“1001”的第一条记录上,也就是记录指针只能在歌手号为“1001”的记录上移动。共有5条这样的记录。DO WHILE…ENDDO循环语句中,含有两个IF语句,CONTINUE是将记录指针移到下一个满足条件的记录上,即移到下一个歌手号为“1001”的记录上。循环过程如下:
第1次循环结果:i=9.80,a=9.80
第2次循环结果:i=9.60,a=9.80
第3次循环结果:i=9.60,a=9.80
第4次循环结果:i=9.60,a=9.80
第5次循环结果:i=9.60,a=9.90
本题只要求显示a的值,所以结束循环后a的值是9.90。