问题 填空题

下题对自由表“评分.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。

解答题
多项选择题