【程序说明】 STD表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩及格的学生信息。【程序】SET TALK OFFCLEARUSE STDDO WHIIE (1)IF (2)?“姓名:”+姓名,“课程:”+课程名,“成绩:”+STR(成绩,3,0)ENDIF(3)(4)USESET TALK ONRETURN(1)A.EOF()B.NOT.EOF()C.BOF()D.NOT.BOF()

题目

【程序说明】 STD表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩及格的学生信息。

【程序】

SET TALK OFF

CLEAR

USE STD

DO WHIIE (1)

IF (2)

?“姓名:”+姓名,“课程:”+课程名,“成绩:”+STR(成绩,3,0)

ENDIF

(3)

(4)

USE

SET TALK ON

RETURN

(1)

A.EOF()

B.NOT.EOF()

C.BOF()

D.NOT.BOF()


相似考题
更多“【程序说明】 STD表中含有字段:姓名(C,8),课程名(C,16),成绩(N,3,0),下面一段程序用于显示所有成绩 ”相关问题
  • 第1题:

    用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。

    (2)编写my.prg程序,实现的功能:先为“学生成绩”表增加一个“学生平均成绩”字段,类型为 N(6,2),根据“学生选课”表统计每个学生的平均成绩,并写入“学生成绩”表新的字段中。


    正确答案:(1)在命令窗口中输入命令:MODIFY COMMAND query1在程序文件编辑器窗口输入如下程序段: *******文件query1.prg中的程序段****************** SELECT DISTINCT(姓名)AS姓名; FROM 课程学生选课学生成绩; WHERE 学生成绩.学号=学生选课.学号; AND 学生选课课程号=课程.课程号; AND 成绩>65; ORDER BY姓名DESC; INTO TABLE res *********************************************** 在命令窗口输入命令:DO query1运行程序通过BROWSE命令可查看结果如图3-41所示。 (2)在命令窗口中输入命令:MODIFY COMMAND my在程序文件编辑器窗口输入如下程序段: ******文件my.prg中的程序段******** ALTER TABLE学生成绩ADD平均成绩N(62) SELECT学号AVG(成绩)AS平均成绩; FROM学生选课; GROUP BY学号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE学生成绩SET平均成绩=atemp.平均成绩; WHERE学生成绩.学号=atemp.学号 SKIP ENDDO *********************************** 在命令窗口输入命令:DO my运行程序。执行程序后“学生成绩”中的记录如图3-42所示。
    (1)在命令窗口中输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口输入如下程序段: *******文件query1.prg中的程序段****************** SELECT DISTINCT(姓名)AS姓名; FROM 课程,学生选课,学生成绩; WHERE 学生成绩.学号=学生选课.学号; AND 学生选课,课程号=课程.课程号; AND 成绩>65; ORDER BY姓名DESC; INTO TABLE res *********************************************** 在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果,如图3-41所示。 (2)在命令窗口中输入命令:MODIFY COMMAND my,在程序文件编辑器窗口输入如下程序段: ******文件my.prg中的程序段******** ALTER TABLE学生成绩ADD平均成绩N(6,2) SELECT学号,AVG(成绩)AS平均成绩; FROM学生选课; GROUP BY学号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE学生成绩SET平均成绩=atemp.平均成绩; WHERE学生成绩.学号=atemp.学号 SKIP ENDDO *********************************** 在命令窗口输入命令:DO my,运行程序。执行程序后,“学生成绩”中的记录,如图3-42所示。 解析:本大题两个小题主要考查的是SQL语句的应用,设计过程中可利用临时表来存放查询结果,再利用DO循环语句对表中的记录逐条更新。

  • 第2题:

    使用如下三个数据库表: 学生(学号C(8),姓名C(8),性别C(2),班级C(8)) 课程(课程编号C(8),课程名称C(20)) 成绩(学号C(8),课程编号C(8),成绩N(5,1)) 查询所有选修了“高等数学”的学生的“相关”成绩,要求信息中包括学生姓名和成绩,并按成绩由低到高的顺序排列,下列语句正确的是( )。

    A. SELECT学生.姓名,成绩.成绩FROM学生,成绩; WHERE学生.学号=成绩.学号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

    B. SELECT学生.姓名,成绩.成绩FROM课程,成绩; WHERE AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC

    C. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; GROUP BY成绩.成绩ASC

    D. SELECT学生.姓名,成绩.成绩FROM学生,课程,成绩; WHERE学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称=’高等数学’; ORDER BY成绩.成绩ASC


    正确答案:D
    本小题为多表连接查询,注意每两个表之间进行关联的关键字,利用ORDER BY短语可以对查询结果进行排序,升序关键字为ASC。选项A和选项B中缺少数据表文件。选项C中,GROUP BY短语使用错误,将查询结果进行排序的短语是0RDER BY。

  • 第3题:

    在“成绩”表中,检索选修4门以上课程的男生的姓名和平均成绩。“成绩”表中包含学号、姓名、课程名称和成绩4个字段。请将下面的SQL语句补充完整。

    SELECT姓名,AVG(成绩)AS平均成绩FROM成绩;

    WHERE性别=”男”:

    GROUPBY学号:

    __________COUNT(﹡)>=4。


    正确答案:
    HAVING
    【解析】在实际的应用中,除了简单的计算查询外,还可以利用GROUP BY子旬进行分组计算查询。通常来说,一个计算函数的范围是满足WHERE子句指定条件的所有记录。当加上GROUP BY子句后,系统会将查询结果按指定列分成集合组。当一个计算函数和一个GROUP BY子句一起使用时,计算函数的范围变为每组所有的记录。另外,使用HAVING子句定义分组所必须满足的条件,以便将其包含在结果中。本题中,根据“学号”将学生记录分组,然后利用sQL的统计函数COUNT,统计选修4门课程以上的学生记录,并利用AVGO函数求平均分。

  • 第4题:

    在成绩表中,检索选修3门以上课程的学生的及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。

    请将下面的SQL语句补充完整。

    SELECT学号,SUM(成绩)FROM【 】;

    WHERE成绩>=60;

    GROUP BY学号;

    【 】COUNT(*)>=3


    正确答案:【 】成绩表【 】HAVING
    【 】成绩表【 】HAVING 解析:本题中,根据学号将学生记录分组,然后利用SQL的统计函数COUNT(),统计选修3门课程以上的学生记录,并利用SUM()函数将及格科目的分数求和。

  • 第5题:

    第下列各题中使用如下数据表。 “学生”表:学号C(8),姓名C(8),性别c(2),系名(6) “课程”表:课程编号C(4),课程名称c(12),开课系名C(10) “成绩”表:学号c(8),课程编号c(4),成绩N(6,2) 检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的SQL语句是( )。

    A.SELECT课程.课程名称,学生.姓名,MAX(成绩). As最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程编号

    B.SELECT课程.课程名称,学生.姓名,MAX(成绩) AS最高分 FROM成绩,课程,学生 wHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 GROUP BY课程.课程编号

    C.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS.最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号 ORDER BY课程.课程编号

    D.SELECT课程.课程名称,学生.姓名.MAX(成绩) AS最高分 FROM成绩,课程,学生 WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.!学号 ORDER BY课程.课程编号


    正确答案:B
    本题中首先通过GROUl’BY短语将“课程”表中的记录按“课程编号”分组,然后通过MAX函数求出每组中的最高成绩,即每门课程的最高成绩。由于查询输出结果涉及多个表的字段,因此要使用连接查询,表之间的连接条件放在WHERE短语中,AND用来连接两个连接条件,以保证在查询的三个表之间建立联系。