一、选择题 下列各题A、B、C、D四个选项中,只有一个选项是正确的。 19~25题所用到的数据如表1和表2所示。 表1 课程表(KC.dbf)
课程号
课程名
学分
0001
C程序设计
5
0002
数据结构
6
0003
计算机基础
4
0004
数据库应用基础
4
表2 选课表(SKB.dbf)
学号
课程号
成绩
980001
0001
98
980002
0002
76
980001
0002
50
980002
0003
69
980003
0001
75
980003
0003
68
980004
0001
55
980005
0001
76
980004
0002
65
980003
0002J
30
980003
0004
86
980002
0004
77
24. 创建一个名为LH的视图,用来找出所有选课成绩为良好的学生号、课程号、课程名和成绩,下述语句中正确的是______。
A.CREATE VIEW LH AS; SELECT KC.课程号,KC.课程名,SKB.学号,SKB.成绩; FROM KC,SKB; WHERE 成绩>=80 B.CREATE VIEW LH AS: SELECT KC.课程号,KC.课程名,SKB.学号,SKB.成绩; FROM KC INNER JOIN SKB; ON 成绩>=80 C.CREATE VIEW LH AS; SELECT KC.课程号,KC.课程名,SKB.学号,SKB.成绩; FROM KC INNER JOIN SKB; ON KC.课程号=JKB.课程号; WHERE 成绩>=80 D.CREATE VIEW LH AS; SELECT KC.课程号,KC.课程名,SKB.学号,SKB.成绩; FROM KC INNER JOIN SKB; ON KC.课程号=JKB.课程号; GROUP BY 课程号; HAVING 成绩>=80 A B C D
C
[解析] 本题创建的视图中应包括成绩大于80分选课记录的课程号、课程名、学号和成绩,涉及两个表,显然在这两个表之间需按照学号相等建立连接,本题采用了“INNER JOIN…ON…”建立内部连接来实现。要选择成绩大于等于80分的记录信息,可使用WHERE子句,需注意的是本题并无统计信息,因此不需要分组,也无须使用筛选分组的子句。
28. 有下列程序段:
x=0
n=0
Do While x<50
x=(x+2)*(x+3)
n=n+1
Enddo
? n,x
该程序段的执行结果为______。
A B C D
B
[解析] 本题考查的是Do…While循环。X赋值0,首先判断Do…While后面的条件“x<50”为.T.,执行一次循环体得到x的值为6,n的值为1;再次判断条件“x<50”为.T.,再执行一次循环体得到x的值为72,n的值为2;再次判断条件“x<50”为.F.,退出循环。
29. 在Visual FoxPro中,假设有一个表RSDA,它的结构如表3所示。
表3 RSDA表的结构
字段名
字段类型
字段宽度与小数位
备注
XM
C
8
姓名
NL
N
3
年龄
CSRQ
D
8
出生日期
JBGZ
N
7.2
基本工资
JJ
N
7.2
奖金
现在要建立一个名为NC的单一索引文件,该索引先按年龄排列,如果年龄相同再按出生日期升序排列,以下正确的命令是______。
A.INDEX ON NL+CSRQ TO NC B.INDEX ON NL+DTOC(CSRQ,1) TAG NC C.INDEX ON STR(NL,3)+DTOC(CSRQ,1) TO NC D.INDEX ON STR(NL,3)+DTOC(CSRQ,1) TAG NC
A B C D
C
[解析] 建立单一索引文件的命令格式如下: INDEX ON索引表达式TO IDX文件名 故选项A和D是不正确的。由于NL是数值型,CSRQ是字符型,它们不能直接参加运算,必须将它们转换成同一种类型才能参加运算,本题均转换成字符型。答案C是正确的。
二、填空题 1. 对于长度为n的序列,在最坏情况下,简单选择排序需要______次比较。
n(n-1)/2
[解析] 选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。对于长度为n的序列,选择排序需要扫描n-1遍,每一遍扫描均从剩下的子表中选出最小的元素,然后将该最小的元素与子表中的第1个元素进行交换。在最坏情况下,简单选择排序需要,n(n-1)/2次比较。
2. 在结构化程序设计的具体实施中,对于语言中所没有的控制结构,应该采用______的方法模拟。
前后一致
[解析] 在结构化程序设计的具体实施中,对于语言中所没有的控制结构,应该采用前后一致的方法模拟。否则容易引起混乱。
3. 投影运算是一个______元运算。
一
[解析] 一个关系R通过投影运算后仍为一个关系R'。R'是R中投影运算所指出的那些域的列所组成的关系。
4. 实体之间的联系可以归结为一对一的联系、一对多的联系与多对多的联系。如果一个学校有很多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于______的联系。
一对多
[解析] 一个学校有许多教师,而一个教师只归属于一个学校,则实体集学校与实体集教师之间的联系属于一对多的联系。
5. 数据库的逻辑设计主要工作是将______转换成指定RDBMS中的关系模式。
E-R图
[解析] 逻辑结构设计的目的是把概念设计阶段的基本E-R图转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构,主要工作是将E-R图转换成指定DBMS中的关系模式。
6. 在Visual FoxPro中,一个______文件(填文件的扩展名)就是一个实际的关系模型,它是一个或多个表(.dbf文件)或视图信息的容器。
dbc或.dbc
[解析] 在Visual FoxPro中,数据库文件包含若干张表及与之相应的联系,可看成一个实际的关系模式。数据库文件的扩展名为DBC。
7. 下列程序段的执行结果是______。
X=50
Y=300
? IIF(X>150,X-20,X+30),IIF(Y>150,Y-100,Y+100)
80 200
[解析] IIF函数格式如下: IIF(逻辑表达式1,表达式2,表达式3) 该函数的功能是先计算逻辑表达式1的值,若它的值为.T.,则返回表达式2的值;若逻辑表达式1的值为.F.,则返回表达式3的值。
8. 若顺序执行以下命令序列:
SEIJECT 1
USE rsda
SELECT 2
USE grgz
SELECT 0
USE stu
SELECT 0
USE teacher ELIAS TEA
则表文件Teacher所在工作区的用户别名是______。
TEA
[解析] 工作区的识别有3种方法:工作区编号、系统别名和用户别名。用户别名又称表别名,通常情况下就是打开的表的名称,若在打开表时使用了ALIAS子句,则ALIAS子句取的别名就是工作区的用户别名或表别名。
下列程序的功能是对一个字符串进行加密,其基本算法是对字符串中的每一个字符进行转换,转换后的字符的ASCII码等于原字符的ASCII码值加该字符在字符串中的位置值。例如,字符串“ABC”加密后为“BDF”,其中A-B(第1个字符)、B-D(第2个字符)、C-F(第3个字符)。请填空。 cString='12345cz'&&赋初值 cResult=SPACE(0) IF LEN(cString)#0 FOR n=1 TO 9 c=SUBSTR(cString,n,1) cResult=cResult+ 10 ENDFOR ENDIF WAIT WINDOWS'加密后为'+ 11 11.
cResult
[解析] 为给字符串中的每个字符加密,应依次取出每个字符,加密后再连接到结果字符串中。循环次数应为字符串的长度,故本题第一空应填“Len(cString)”;循环变量也代表字符在字符串的位置,在循环中通过SUBSTR()函数取出该位置的字符,然后应把该字符加上位置信息连接到结果字符串cResult中,故本题第二空应填“CHR(ASC(C) +n)”;最后应该显示出结果信息,故本题第三空应填“cResult”。
12. 如果希望从内存中清除以A开头的所有的内存变量,所用的命令为
RELEASE ALL ______。
EXCEPT A *
[解析] 清除变量名符合某种格式的命令格式如下: [格式1] RELEASE ALL LIKE<框架> [格式2] RELEASE ALL EXCEPT<框架> <框架>可以带有“*”和“?”,表示一类变量。[格式1]表示清除符合“<框架>”格式的所有内存变量,[格式2]表示清除不符合“<框架>”格式的所有内存变量。
13. TIME()和DATETIME()返回值的数据类型分别为______。
字符型 日期时间型
[解析] TIME()以字符串的形式返回当前时间,DATETIME()函数以日期时间类型返回当前的日期和时间。
14. 在Visual FoxPro的某程序中,定义了一个模块如下:
PROCEDURE ABCD
PARAMETERS A,B
* 略
ENDPROC
现在使用实参变量为C和D,调用该模块的命令可以是DO ABCD WITH A,B,也可以是______。
ABCD(C,D)
[解析] 调用模块的形式有两种,分别如下: [格式1]:DO<模块名>WITH<实参1>[,<实参2>,…] [格式2]:<模块名>(<实参1>[,<实参2>,…])
15. 在表单的数据环境中可以编辑关系,其中关系的______属性用于指定基于主表的关联表达式。
RelationalExpr
[解析] 数据环境中关系的常用属性及其含义如下: ?RelationalExpr:用于指定基于主表的关联表达式。 ?ParentAlias:用于指明主表的别名。 ?ChildAlias:用于指明子表的别名。 ?ChildOrder:用于指定与关联表达式相匹配的索引。 ?OneToMany:用于指明关系是否为一对多关系。