计算机VFP考试题A
山东科技大学2008—2009学年第二学期 《程序设计基础》考试试卷(A卷) 班级 姓名 学号 题号 ― 二 二 四 总得分 评卷人 审核人 得分 一、填空题(每空1分,共io分) 1、关系的三种基本运算是选择、 投影和连接 。 2、结构化程序设计的三种基本逻辑结构是 顺序结构、分支结构一、循环结构一。 3、从键盘接收一个数值型数据存入变量X中使用的命令是: “请输入数据:” to X。 4、在同一行上输出变量X和Y使用的命令是:??x,y 。 5、建立程序文件的命令是:modify command 。 6、已知:a= a ;b= b ,则:? Len (a-b)的结果是: 2。 二、选择题(每题1分,共20分) 1、不允许记录中出现重复索引值的索引是A 。 A) 主索引B)主索引、候选索引、普遍索引 C)主索引和候选索引D)主索引、候选索引和唯一索引 2、字符串长度函数LEN (SPACE (5) -SPACE (5))的值是(D)。 A) 0 B) 2C) 5D) 10 3、可以链接或嵌入OLE对象的字段类型是C A)备注型字段B)通用型和备注型字段 C)通用型字段D)任何类型的字段 4、在 DO WHILE - ENDDO循环结构中,LOOP命令的作用是:B A) 退出过程,返回程序开始处 B) 转移到DO WHILE语句行,开始下一个判断和循环 C) 终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行 D) 终止程序执行 5、在以下四组函数运算中,结果相同的是 A 。 A) LEFTC Visual FoxPro“,6)与 SUBSTR(“Visual FoxPro”,1,6) B) YEAR(DATEO)与 SUBSTR(DTOC(DATE),7,2) C) VARTYPE(“36-5*4“)与 VARTYPE(36-5*4) D) 假定 A=“this “, B=“is a string“, A-B 与 A+B 6、Foxrpo中,数据表文件中的字段是一种C 。 A、常量 B、运算符 C、变量 D、函数 7、在Visual FoxPro中,关于自由表叙述正确的是B 。 A)自由表和数据库表是完全相同的B)自由表不能建立字段级规则和约束 C)自由表不能建立候选索引D)自由表不可以加入到数据库中 8、要从某数据库文件中真正删除一条记录,应使用命令 C 。 A)先用DELETE命令,再用ZAP命令 B)直接用ZAP命令 C)先用DELETE命令,再用PACK命令D)直接用DELETE命令 9、删除从第3条记录开始的8条记录的命令是 C 。 A) 3 DELETE NEXT 8 PACK C) GO TO 3 DELETE REST 8 PACK 10、一个数据库文件有10条记录, B) GO 3 DELETE RECORD 8 PACK D) GO TO 3 ZAP NEXT 8 用函数EOF()测试为.T.,此时当前记录号为:B A)10 B)ll C)0D)1 三、简述下列各题(前三小题每小题4分,第四小题8分,共20分) 1、简述数据库系统的特点。 (1)实现数据共享,减少数据冗余(重复); (2)采用特定的数据模型; (3)具有较高的数据独立性; (4)有统一的数据控制功能。 2、实体? 答:实体指客观存在并且可以相互区别的事物。实体可以是实际事物,也可以是抽象事 件,如一名职工、一场比赛等。 3、属性? 答:属性又称字段或数据项,用于描述实体的特性,如职工实体有职工号、姓名、性别、 出生日期、职称等属性。 4、一个关系(即二维表)具有的性质是什么? (1)每一列的数据来自同一个域,具有相同的数据类型,为元组的一个属性; (2)二维表的记录数随数据的改变而改变,但其字段数是相对固定的; (3)不同列的数据可以来自同一个域,但每一列均有唯一的字段名; (4)二维表中行的顺序、列的顺序均可以任意交换; (5)表中的任意两行不能完全相同(即一个关系中不能有完全相同的元组); (6)每个分量必须是不可分的数据项(即不能存在表中表); (7)二维表的主关键字是指能唯一确定记录的一列或几列的组合。 四 写出下列各SQL语句(每题3分,共30分) 假定我们已经建立如下的数据表。 学生信息表(学号,姓名,性别,出生日期,班级,照片,备注,年龄) 课程信息表(课程号,课程名,学分) 学生成绩表(学号,课程号,学期,成绩) 1、从学生信息表中查询年龄大于19岁的男生记录。 答:SELECT * FROM 学生信息表 WHERE年龄>=19 AND 性别=“男“ 2、从学生信息表中查询学号以“01”开始的学生的学号和姓名。 答:SELECT学号,姓名FROM 学生信息表 WHERE学号LIKE “01%“ 3、查询学生成绩表中的所有记录,并按课程号升序,成绩降序排列。 答:SELECT * FROM 学生成绩表ORDER BY课程号ASC,成绩DESC 4、查询学生成绩表中课程号为0201而且分数在70-80分之间的记录。 答:SELECT * FROM 学生成绩表 WHERE 课程号=“0201“ AND 成绩 BETWEEN 70 AND 80 5、查询学号为01004的同学的基本信息和各科成绩。 答:SELECT学生信息表.学号,姓名,性别,年龄,班级,学期,课程号,成绩FROM学生信息表,;学 生成绩表WHERE学生信息表.学号=学生成绩表.学号AND学生信息表.学号=“01004” 6、查询成绩为88分的学生姓名和班级。 答:SELECT姓名、班级FROM学生信息表 WHERE学号IN: (SELECT DISTINCT 学号 FROM 学生成绩表 WHERE 成绩 =88 ) 7、计算课程信息表中的记录总数。 答:SELECT COUNTS) AS课程数FROM课程信息表 8、查询课程号为0201的课程的最高分、最低分和平均分。 答:SELECTMAN成绩)AS最高分,MIN(成绩)AS最低分,AVG(成绩)AS平均分FROM学生 成绩表WHERE课程号=”0201” 9、统计学生成绩表中各科的总成绩和平均成绩。 答:SELECT课程号,SUM(成绩)AS总成绩、心G(成绩)AS平均成绩FROM学生成绩表 GROUP BY课程号 10、统计各门课程中超过80分同学的人数。 答:SELECT课程号,COUNT(成绩)AS人数FROM学生成绩表GROUP BY课程号WHERE 成绩>=80 五 编程题(每题10分,共30分) 1、用面向对象编程方法输出九九乘法表(上三角)。 答:command 1.click Clear Set talk off for i=l to 9 ??space((i-l