一、单项选择题
1.下列选项中不符合良好程序设计风格的是( )。
A.源程序要文档化 B.数据说明的次序要规范化
C.避免滥用 goto 语句 D.模块设计要保证高耦合、高内聚
解析:良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此程序 设计风格对保证程序的质量很重要。主要应注意和考虑下述因素:
源程序要文档化。
数据说明的次序要规范化。
语句的结构应该简单直接,不应该为提高效率而把语句复杂化,避免滥用 goto 语句。
模块设计要保证低耦合、高内聚。
答案:D
2.从工程管理角度来看,软件设计一般分为两步完成,它们是( )。 A.概要设计与详细设计 B.过程控制
C.软件结构设计与数据设计 D.程序设计与数据设计
解析:从工程管理角度看,软件设计分为两步完成:概要设计与详细设计。概要设计(又 称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;
详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
答案:A
3.下列选项中不属于软件生命周期开发阶段任务的是( )。
余的数据库,否则是非冗余的数据库。
答案:B
10.对下列二叉树进行中序遍历的结果是( )。
A.ACBDFEG B.ACBDFGE C.ABDCGEF D.FCADBEG
解析:二叉树的中序遍历指在访问根节点、遍历左子树与遍历右子树这三者中,首先遍 历左子树,然后访问根节点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,
然后访问根节点,最后遍历右子树。
答案:A
11.下列程序段执行以后,内存变量 A 和 B 的值是( )。 CLEAR
A=10 B=20
SET UDFPARMS TO REFERENCE
DO SQ WITH(A),B &&参数 A 是值传送,B 是引用传送
? A,B
PROCEDURE SQ PARAMETERS X1,Y1 X1=X1*X1 Y1=2*X1 ENDPROC
A.10 200 B.100 200 C.100 20 D.10 20
解析:此题中参数 A 为值传送,即 A 值为 10;参数 B 为引用传送,根据 X1=X1*X1,
Y1=2*X1 得 Y1 值为 200,即 B 的值。
答案:A
12.从内存中清除内存变量的命令是( )。
A.Release B.Delete C.Erase D.Destroy 解析:清除内存变量的命令是:
RELEASE ALL [LIKE <通配符>|EXCEPT <通配符>]
选用 LIKE 清除与通配符相匹配的内存变量,选用 EXCEPT 短语清除与通配符不相匹配 的内存变量。其中通配符可能使用*和?,*表示任何数目的字符,?表示任何单个字符。
答案:A
13.操作对象只能是一个表的关系运算是( )。
A.连接和选择 B.连接和投影 C.选择和投影 D.自然连接和选择 解析:选择和投影运算的操作对象只能是一个表,相当于对一个二维表进行切割。连接 运算需要两个表作为操作对象。
F
C E
A D G
B
答案:C
14.在“项目管理器”下为项目建立一个新报表,应该使用的选项卡是( )。 A.数据 B.文档 C.类 D.代码
解析:略。
答案:B
15.如果有定义 LOCAL data,data 的初值是( )。
A.整数 0 B.不定值 C.逻辑真 D.逻辑假
解析:LOCAL<内存变量表>,LOCAL 命令只能在一个函数或过程中被访问,其他过程 或函数不能访问此变量的数据。
说明:该变量同样给建立的内存变量赋以初值逻辑假。
答案:D
16.退出 Visual FoxPro 的操作方法是( )。 A.从“文件”下拉菜单中选择“退出”选项 B.用鼠标左键单击关闭窗口按钮
C.在命令窗口中键入 QUIT 命令,然后按回车键 D.以上方法都可以
解析:略。
答案:D
17.下列程序段执行以后,内存变量 y 的值是( )。 x=34567
y=0
DO WHILE x>0 y=x%10+y*10 x=int(x/10) ENDDO
A.3456 B.34567 C.7654 D.76543
解析:此题意为当 x>0 时就执行循环,%为取余函数,int()为取整函数,经过循环运行的 结果是 76543。
答案:D
18.下列程序段中与上题的程序段对 y 的计算结果相同的程序是( )。
A.x=34567 B.x=34567
y=0 y=0
flag=.T. flag=.T.
DO WHIL flag DO WHIL flag y=x%10+y*10 y=x%10+y*10 x=int(x/10) x=int(x/10)
IF x>0 IF x=0
flag=.F. flag=.F.
ENDIF ENDIF
ENDDO ENDDO
C.x=34567 D.x=34567
y=0 y=0
flag=.T. flag=.T.
DO WHIL!flag DO WHIL!flag y=x%l0+y*10 y=x%l0+y*10
x=int(x/10) x=int(x/10)
IF x>0 IIF x=0
flag=.F. flag=.T.
ENDIF ENDIF
ENDDO ENDDO
解析:略。
答案:B
19.在 SQL SELECT 语句的 ORDER BY 短语中如果指定了多个字段,则( )。
A.无法进行排序 B.只按第一个字段排序
C.按从左至右优先依次排序 D.按字段排序优先级依次排序
解析:SELECT 中用来对最终的查询结果进行排序使用的是 ORDER BY 短语,通常置于 SELECT 语句的最后。也可以对两个或多个列进行排序,这会创建嵌套排序。默认值仍然是升 序,在 ORDER BY 子句中最先列示的列优先,即按从左至右优先依次排序。
答案:C
20.如果运行一个表单,以下事件首先被触发的是( )。
A.Load B.Error C.Init D.Click
解析:表单运行时的基本事件先后情况为先执行表单的 Load 事件,然后执行表单的 Init 事件,最后执行表单的 Active 事件。
答案:A
21.在 Visual FoxPro 中以下叙述正确的是( )。
A.关系也被称作表单 B.数据库文件不存储用户数据
C.表文件的扩展名是.DBC D.多个表存储在一个物理文件中
解析:在 Visual FoxPro 中,一个关系就是一张二维表,每个关系有一个关系名,一个关 系存储为一个文件,称为“表”;表文件的扩展名是.DBF;一个“表”就是一个关系,存储在 一个.dbf 文件中,多个表应该存储在多个.dbf 文件中;数据库文件不存放用户数据。
答案:B
22.设 X=6<5,命令?VARTYPE(X)的输出是( )。
A.N B.C C.L D.出错
解析:VARTYPE(<表达式>[,<逻辑表达式>]) 是测试 <表达式>的类型,返回一个大写字 母,函数值为字符型。若<表达式>的运算结果是 NULL 值,则根据<逻辑表达式>值决定是否 返回<表达式>的类型:如果值为.T.,就返回<表达式>的原数据类型;如果<逻辑表达式>的值 为.F.或默认,则返回 X 以表明<表达式>的运算结果是 NULL 值。
答案:C
23.假设表单上有一选项组:⊙男 ○女,如果选择第二个按钮“女”,则该选项组的 Value 属性值为( )。
A..F. B.女 C.2 D.女或 2
解析:选项按钮组(OptionGroup)的 Value 属性值可以是字符型的,也可以是数值型的。
如果它是字符型,那么它的值就是运行表单时用户所选中的选项(Option)的 Caption 属性的 值;如果它是数值型的,那么它的值就是运行表单时用户所选中的选项(Option)在选项按钮 组(OptionGroup)中的顺序号。
答案:D
24.假设表单 MyForm 隐藏着,让该表单在屏幕上显示的命令是( )。
A.MyForm.List B.MyForm.Display C.MyForm.Show D.MyForm.ShowForm 解析:一般情况下,运行表单时,在产生表单对象后,将调用表单对象的 Show 方法显 示表单。
答案:C
25.当前盘当前目录下有数据库:大奖赛.dbc,其中有数据库表“歌手.dbf”、“评分.dbf”。
“歌手”表 “评分”表
歌手号 姓名 歌手号 分数 评委号
1001 王蓉 1001 9.8 101
2001 许巍 1001 9.6 102
3001 周杰伦 1001 9.7 103
4001 林俊杰 1001 9.8 104
… …
为“歌手”表增加一个字段“最后得分”的 SQL 语句是( )。
A.ALTER TABLE 歌手 ADD 最后得分 F(6,2) B.ALTER DBF 歌手 ADD 最后得分 F6,2 C.CHANGE TABLE 歌手 ADD 最后得分 F(6,2) D.CHANGE TABLE 学院 INSERT 最后得分 F6,2
解析:修改表结构应使用 ALTER TABLE 命令,ALTER TABLE 命令有 3 种格式,分别 用于完成不同的修改功能。添加新属性,要采用该命令的格式 1。要添加的属性名及类型置于 ADD 短语之后。F 表示数值类型,圆括号内由逗号分开的 6 和 2 分别代表总宽度和小数位数。
答案:A
26.依据 25 题的表文件,插入一条记录到“评分”表中,歌手号、分数和评委号分别是
“1001”、9.9 和“105”,正确的 SQL 语句是( )。
A.INSERT VALUES ("1001",9.9,"105") INTO 评分(歌手号,分数,评委号) B.INSERT TO 评分(歌手号,分数,评委号) VALUES("1001",9.9,"105") C.INSERT INTO 评分(歌手号,分数,评委号) VALUES("1001",9.9,"105") D.INSERT VALUES ("1001",9.9,"105") TO 评分(歌手号,分数,评委号)
解析:INSERT INTO 表名[(字段名 1[,字段名 2,...])] VALUES (表达式 1[,表达式 2,...]) 。 答案:C
27.依据 25 题的表文件,假设每个歌手“最后得分”字段的计算方法是去掉一个最高分 和一个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表 TEMP 中,表 TEMP 中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序排列,
生成表 TEMP 的 SQL 语句是( )。
A.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2) 最后得分;
FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC B.SELECT 歌手号,(COUNT(分数)-MAX(分数)-MIN(分数)/(SUM(*)-2) 最后得分;
FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESC C.SELECT 歌手号,(SUM(分数)-MAX(分数)-MIN(分数)/(COUNT (*)-2) 最后得分;
FROM 评分 INTO DBF TEMP GROUP BY 评委号 ORDER BY 最后得分 DESC D.SELECT 歌手号,(SUM (分数)-MAX(分数)-MIN(分数)/(COUNT (*)-2) 最后得分;
FROM 评分 INTO DBF TEMP GROUP BY 歌手号 ORDER BY 最后得分 DESC
解析:此题根据题意应该根据歌手号进行分组,所以排除 B、C 选项;歌手的最后得分应
该是分数的总和去掉一个最高分和一个最低分,即 SUM (分数)-MAX(分数)-MIN(分数)。
答案:D
28.依据 25 题的表文件,与“SELECT * FROM 歌手 WHERE NOT(最后得分>9.00 OR 最后得分<8.00)”等价的语句是( )。
A.SELECT * FROM 歌手 WHERE 最后得分 BETWEEN 9.00 AND 8.00 B.SELECT * FROM 歌手 WHERE 最后得分>=8.00 AND 最后得分<=9.00 C.SELECT * FROM 歌手 WHERE 最后得分>9.00 OR 最后得分<8.00 D.SELECT * FROM 歌手 WHERE 最后得分<=8.00 AND 最后得分>=9.00
解析:此题表示查询最后得分小于等于 9.00 或者大于等于 8.00 的歌手信息。
答案:B
29.依据 25 题的表文件,为“评分”表的“分数”字段添加有效性规则:“分数必须大 于等于 0 并且小于等于 10”,正确的 SQL 语句是( )。
A.CHANGE TABLE 评分 ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 B.ALTER TABLE 评分 ALTER 分数 SET CHECK 分数>=0 AND 分数<=10 C.ALTER TABLE 评分 ALTER 分数 CHECK 分数>=0 AND 分数<=10 D.CHANGE TABLE 评分 ALTER 分数 SET CHECK 分数>=0 OR 分数<=10 解析:略。
答案:B
30.依据 25 题的表文件,根据“歌手”表建立视图 myview,视图中含有包括了“歌手号”
左边第一位是“l”的所有记录,正确的 SQL 语句是( )。
A.CREATE VIEW myview AS SELECT * FROM 歌手 WHERE LEFT(歌手号,l)="1"
B.CREATE VIEW myview AS SELECT * FROM 歌手 WHERE LIKE("1",歌手号) C.CREATE VIEW myview SELECT * FROM 歌手 WHERE LEFT(歌手号,l)="1"
D.CREATE VIEW myview SELECT * FROM 歌手 WHERE LIKE("1",歌手号) 解析:略。
答案:A
31.删除视图 myview 的命令是( )。
A.DELETE myview VIEW B.DELETE myview C.DROP myview VIEW D.DROP VIEW myview 解析:删除视图的命令格式是 DROP VIEW <视图名>。
答案:D
32.依据 25 题的表文件,假设 temp.dbf 数据表中有两个字段:“歌手号”和“最后得分”。
下面程序段的功能是:将 temp.dbf 中歌手的“最后得分”填入“歌手”表对应歌手的“最后 得分”字段中(假设已增加了该字段)。在下划线处应该填写的 SQL 语句是( )。
USE 歌手
DO WHILE .NOT. EOF()
REPLACE 歌手.最后得分 WITH a[2]
SKIP ENDDO
A.SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 TO ARRAY a B.SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 INTO ARRAY a C.SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 TO FILE a D.SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号 INTO FILE a
解析:将查询结果放在数组中应使用 INTO ARRAY ArrayName 短语,ArrayName 可以是 任意的数组变量名。将查询结果放在文本文件中应使用 TO FILE FileName [ADDITIVE] 短 语,其中 FileName 给出了文本文件名。
答案:B
33.依据 25 题的表文件,与“SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分
>=ALL (SELECT 最后得分 FROM 歌手 WHERE SUBSTR(歌手号,l,1)="2")”等价的 SQL 语句 是( )。
A.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=;
(SELECT MAX(最后得分) FROM 歌手 WHERE SUBSTR(歌手号,l,1)="2") B.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=;
(SELECT MIX(最后得分) FROM 歌手 WHERE SUBSTR(歌手号,l,1)="2") C.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=ANY;
(SELECT 最后得分 FROM 歌手 WHERE SUBSTR(歌手号,l,1)="2") D.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=SOME;
(SELECT 最后得分 FROM 歌手 WHERE SUBSTR(歌手号,l,1)="2") D.SELECT DISTINCT 歌手号 FROM 歌手 WHERE 最后得分>=SOME;