单选题 第31到第(35)题基于学生表S和学生选课表SC两个数据库表,它们的结构如下:
S(学号,姓名,性别,年龄)其中学号、姓名和性别为C型字段,年龄为N型字段。
SC(学号,课程号,成绩),其中学号和课程号为C型字段,成绩为N型字段(初始为空值)。
单选题 查询学生选修课程成绩小于60分的学号,正确的SQL语句是 ______。
  • A. SELECT DISTINCT 学号 FROM SC WHERE"成绩"<60
  • B. SELECT DISTINCT 学号 FROM SC WHERE成绩<"60"
  • C. SELECT DISTINCT 学号 FROM SC WHERE成绩<60
  • D. SELECT DISTINCT"学号"FROM SC WHERE"成绩"<60
【正确答案】 C
【答案解析】[解析] SQL中查询语句的用法 [评析] 题意要求查询学生选修课程成绩小于60分的学号,要查询的字段是学号字段,条件是成绩字段的值小于60分,学号和成绩字段在SC表中,所以查询应基于SC表进行,字段即字段变量是变量名,不需要加双引号,所以排除A、D选项。成绩字段为N型字段,即为数值型数据,不需要加任何的定界符。所以选项B也是不正确的,正确的SQL语句是SELECT DISTINCT 学号 FROM SC WHERE 成绩<60,即选项C。
单选题 查询学生表,S的全部记录并存储于临时表文件one中的SQL命令是 ______。
  • A. SELECT*FROM S INTO CURSOR one
  • B. SELECT*FROM S TO CURSOR one
  • C. SELECT*FROM S INTO CURSOR DBF one
  • D. SELECT*FROM S TO CURSOR DBF one
【正确答案】 A
【答案解析】[解析] 指定查询去向
[评析] Into cursor短语将查询结果存放到临时表中,格式为:select*fromInto cursor cursorname。题目要求查询学生表S的全部记录并存储于临时表文件one中,SQL命令为:SELECT*FROM S INTO CURSOR one,所以选项A是正确的,其它选项语法均不正确。
单选题 查询成绩在70分至85分之间学生的学号、课程号和成绩,正确的SQL语句是 ______。
  • A. SELECT 学号,课程号,成绩FROM sc WHERE 成绩 BETWEEN 70 AND 85
  • B. SELECT 学号,课程号,成绩FROM sc WHERE 成绩>=70 OR 成绩<=85
  • C. SELECT 学号,课程号,成绩FROM sc WHERE 成绩>=70 OR<=85
  • D. SELECT 学号,课程号,成绩FROM sc WHERE 成绩>=70 AND<=85
【正确答案】 A
【答案解析】[解析] Between…And的含义 [评析] 查询成绩在70分至85分之间学生的学号、课程号和成绩,这三个字段都在SC表中,因此查询结果应该是从SC表,成绩在70到85分之间是指包括边界70分和85分,A选项“WHERE 成绩 BETWEEN 70 AND 85”等价于“成绩>=70 and成绩<=85”,是符合题意的,所以选项A是正确的。成绩在70到85之间指成绩既要大于等于70又要小于等于85,两个条件之间的关系应该为“且”的关系,所以选项B、C均不正确。成绩小于等于85应该指明字段的字段名,所以选项D的表达式也是不正确的。
单选题 查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是 ______。
  • A. SELECT 学号,课程号 FROM sc WHERE 成绩=""
  • B. SELECT 学号,课程号 FROM sc WHERE 成绩=NULL
  • C. SELECT 学号,课程号 FROM sc WHERE 成绩 IS NULL
  • D. SELEC T学号,课程号 FROM sc WHERE 成绩
【正确答案】 C
【答案解析】[解析] 空值查询 [评析] 在SC表中成绩字段为数值型数据且初始为空值,本题要求查询出有选课记录,但没有考试成绩的学生的学号和课程号,只要成绩记录为空就说明没有考试成绩,即查询成绩字段为空值。查询空值时要使用IS NULL,而=NULL是无效的,因为空值不是一个确定的值,所以不能使用“=”这样的运算符进行比较,所以选项C的语法是正确的。
单选题 查询选修C2课程号的学生姓名,下列SQL语句中错误的是 ______。
  • A. SELECT 姓名 FROM S WHERE EXISTS (SELECT*FROM SC WHERE 学号=S.学号 AND 课程号='C2')
  • B. SELECT 姓名 FROM S WHERE 学号 IN (SELECT 学号 FROM SC WHERE 课程号='C2')
  • C. SELECT 姓名 FROM S JOIN SC ON S.学号=SC.学号 WHERE 课程号='C2'
  • D. SELECT 姓名 FROM S WHERE 学号= (SELECT 学号 FROM SC WHERE 课程号='C2')
【正确答案】 D
【答案解析】[解析] 嵌套查询,连接查询 [评析] 要求查询选修C2课程号的学生的姓名,姓名字段在S表中,而课程号在SC表中,可知查询的结果来自一张表,而条件来自另一张表,所以这里可以用简单的连接查询或者用嵌套查询。 选项A使用谓语EXISTS进行查询,EXISTS或NOT EXISTS是用来检查在子查洵中是否有结果返回(即存在元组或不存在元组)。选项A先查询出SC表中选修了C2课程的所有信息,并指定SC表和S表通过学号公共字段建立联系,接着查询出姓名字段所对应的值,这种查询是可以达到目的的。 选项B是一个嵌套查询,首先在SC表中查出选修了C2课程的学生的学号,接着找出这些学号在S表中所对应的学生的姓名,从而查询出选修了C2课程的学生的姓名。 选项C是一个连接查询,SC表和S表首先通过学号字段建立连接,再找出选修了C2课程的学生的姓名。 选项D中先找出选修了C2课程的学生的学号,因为选修C2课程的学生可能不止一个,因此不能直接用“=”号,而应该用“IN",IN相当于集合运算符∈,所以选项D是错误的。
单选题 下列关于类、对象、属性和方法的描述中错误的是{{U}} {{/U}}。
  • A. 类是对一类相似对象的描述,这些对象具有相同种类的属性和方法
  • B. 属性用于描述对象的状态,方法用于表示对象的行为
  • C. 基于同一类产生的两个对象可以分别设置自己的属性值
  • D. 通过执行不同对象的同名方法,其结果必然是相同的
【正确答案】 D
【答案解析】[解析] 类是具有相同属性和相同操作的对象的集合。对每个基类,系统都规定了应具有的属性,指定了可使用方法和驱动事件。同一类产生的不同对象的属性可以分别设置,属性用于描述类的性质、状态,而方法是用于表示对象的行为。
单选题 在窗体上有一个文本框控件,名称为TxtTime;一个计时器控件,名称为Timer1,要求每一秒在文本框中显示一次当前的时间。程序为
Procedure Timer1 ______()
  ThisForm.TxtTime.Value=Time
EndProc
  • A. Enabled
  • B. Visible
  • C. Interval
  • D. Timer
【正确答案】 D
【答案解析】[解析] 本题考查的是计时器控件的事件。计时器控件的事件Timer每隔一定的时间间隔发生一次,时间间隔由Interval决定,将定时器的Interval属性设置为1000即可,然后编写程序代码。
单选题 一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用
  • A.栈
  • B.堆
  • C.数组
  • D.链表
【正确答案】 A
【答案解析】[解析] 一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。
单选题 设有订单表order(订单号,客户号,职员号,签订日期,金额),查询2011年所签订单的信息,并按金额降序排序,正确的SQL命令是{{U}} {{/U}}。
  • A.SELECT*FROM order WHERE YEAR(签订日期)=2011 ORDER BY金额DESC
  • B.SELECT*FROM order WHILE YEAR(签订日期)=2011 ORDER BY金额ASC
  • C.SELECT*FROM order WHERE YEAR(签订日期)=2011 ORDER BY金额ASC
  • D.SELECT*FROM order WHILE YEAR(签订日期)=2011 ORDER BY金额DESC
【正确答案】 A
【答案解析】[解析] 本题考查SQL排序查询。根据SQL查询语句的基本结构,可以很容易发现选项B和选项D中,用来指定查询条件的WHERE关键字错误,首先排除这两个选项。然后根据题目要求,需要按金额降序排序查询结果,在排序语句中,ASC短语表示升序排序,是默认的排序方式,可省略;而DESC短语表示降序排序,不可以缺少,选项A和C中,A采用的是降序排序,与题目要求相符,故正确答案为A。
单选题 命令DELETE FROM选课WHERE成绩<60的功能是{{U}} {{/U}}。
  • A. 为表“选课”中成绩小于60分的记录做删除标记
  • B. 从表“选课”中彻底删除成绩小于60分的记录
  • C. 删除“选课”表
  • D. 删除“选课”表的年龄属性
【正确答案】 A
【答案解析】[解析] 在Visual FoxPro中,DELETE-SQL的命令主要是给指定的删除记录做标记,具体语法格式如下: DELETE FROM [DatabaseName! ] TableName [ WHERE FilterCondition1[AND | OR FilterCondition2...]] DELETE FROM [DatabaseName!]TableName指定要给其中的记录加删除标记的表; WHERE FilterCondition1[AND | OR FilterCondition2...]指定只给某些记录做删除标记, FilterCondition1指定要做删除标记的记录必须满足的条件。 带有删除标记的记录在执行PACK之前并不从表中做物理删除,可以用RECALL命令恢复(清除标记)带有删除标记的记录。 本题是删除条件是成绩小于60分,为这些满足条件的记录做标记。
单选题 统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选修人数,并按选课人数排序。正确的命令是 A) SELECT课程名称,开课院系,COUNT(课程编号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY学生成绩.课程编号HAVING COUNT(*)<=2; ORDER BY COUNT(课程编号) B) SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY学生成绩.学号HAVING COUNT(*)<=2; ORDER BY COUNT(学号) C) SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY课程名称HAVING COUNT(学号)<=2; ORDER BY选修人数 D) SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程HAVING COUNT(课程编号)<=2; GROUP BY课程名称ORDER BY选修人数
【正确答案】 C
【答案解析】[解析] 统计人数可以使用COUNT()函数。在本题中由于学号是惟一的,因而统计人数就可以通过统计学生学号的个数来实现,四个选项中可以排除A、B两个选项,这两个语句都缺少按选修人数进行排序的子句,选项D的错误在于没有设定查询条件。
单选题 打开一个数据库的命令是______。
  • A. USE
  • B. USE DATABASE
  • C. OPEN
  • D. OPEN DATABASE
【正确答案】 D
【答案解析】[解析] 在Visual FoxPro中,打开数据库的命令是OPEN DATABASE,其具体的语法格式是OPEN DATABASE[FileName|?][EXCLUSIVE|SHARED][NOUPDATE][VALIDATE],其中各参数和选项的含义如下。 FileName:要打开的数据库名,可以缺省数据库文件扩展名.dbc,如果不指定数据库名或使用问号“?”,则显示“打开”对话框。 EXCLUSIVE:以独占方式打开数据库,即不允许其他用户在同一时刻打开或者使用该数据库。 SHARED:以共享方式打开数据库,即允许其他用户在同一时刻使用该数据库。 NOUPDATE:指定数据库按只读方式打开,即不允许对数据库进行修改,默认的打开方式是读/写方式,即可修改。 VALIDATE:指定Visual FoxPro检查在数据库中引用的对象是否合法,例如检查数据库中的表和索引是否可用。
单选题 设有关系R1和R2,经过关系运算得到结果S,则S是 ______。
  • A.一个关系
  • B.一个表单
  • C.一个数据库
  • D.一个数组 第(34)~(35)题使用如下图书管理数据库: 图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2)) 读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20)) 借阅(借书证号C(4),总编号C(6);借书日期D(8))
【正确答案】 A
【答案解析】[解析] 集合的并运算 [评析]关系运算有两种,一种是传统的集合运算(并;差、交、广义笛卡尔积等),它不仅涉及关系的水平方向(即二维表的行),而且涉及关系的垂直方向(即二维表的列);另一种是专门的关系运算(选择、投影、连接),关系运算的操作对象是关系,运算的结果仍为关系;