资源描述
第 1 页/共 5 页山东科技大学20082009 学年第二学期程序设计基础考试试卷(A 卷)班级姓名学号一、填空题(每空 1 分,共 10分)1、关系的三种基本运算是选择、投影和连接。2、结构化程序设计的三种基本逻辑结构是_顺序结构、分支结构 _、循环结构 _。3、从键盘接收一个数值型数据存入变量X 中使用的命令是:input“请输入数据:”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)2 C)5 D)10 3、可以链接或嵌入OLE 对象的字段类型是C A)备注型字段B)通用型和备注型字段C)通用型字段D)任何类型的字段4、在 DO WHILE,ENDDO 循环结构中,LOOP 命令的作用是:B A)退出过程,返回程序开始处B)转移到 DO WHILE 语句行,开始下一个判断和循环C)终止循环,将控制转移到本循环结构ENDDO 后面的第一条语句继续执行D)终止程序执行5、在以下四组函数运算中,结果相同的是A。A)LEFT(Visual FoxPro,6)与 SUBSTR(Visual FoxPro,1,6)B)YEAR(DA TE()与 SUBSTR(DTOC(DA TE),7,2)C)VARTYPE(36-5*4)与 VARTYPE(36-5*4)D)假定 A=this,B=is a string,A-B与 A+B 题号一二三四总得分评卷人审核人得分第 2 页/共 5 页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 B)GO 3 DELETE NEXT 8 DELETE RECORD 8 PACK PACK C)GO TO 3 D)GO TO 3 DELETE REST 8 ZAP NEXT 8 PACK 10、一个数据库文件有10 条记录,用函数EOF()测试为.T.,此时当前记录号为:B。A)10 B)11 C)0 D)1三、简述下列各题(前三小题每小题4 分,第四小题 8 分,共 20 分)1、简述数据库系统的特点。(1)实现数据共享,减少数据冗余(重复);(2)采用特定的数据模型;(3)具有较高的数据独立性;(4)有统一的数据控制功能。2、实体?答:实体指客观存在并且可以相互区别的事物。实体可以是实际事物,也可以是抽象事件,如一名职工、一场比赛等。3、属性?答:属性又称字段或数据项,用于描述实体的特性,如职工实体有职工号、姓名、性别、出生日期、职称等属性。4、一个关系(即二维表)具有的性质是什么?(1)每一列的数据来自同一个域,具有相同的数据类型,为元组的一个属性;(2)二维表的记录数随数据的改变而改变,但其字段数是相对固定的;(3)不同列的数据可以来自同一个域,但每一列均有唯一的字段名;(4)二维表中行的顺序、列的顺序均可以任意交换;(5)表中的任意两行不能完全相同(即一个关系中不能有完全相同的元组);(6)每个分量必须是不可分的数据项(即不能存在表中表);(7)二维表的主关键字是指能唯一确定记录的一列或几列的组合。第 3 页/共 5 页四、写出下列各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 而且分数在7080 分之间的记录。答: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 COUNT(*)AS 课程数FROM 课程信息表8、查询课程号为0201 的课程的最高分、最低分和平均分。答:SELECT MAX(成绩)AS 最高分,MIN(成绩)AS 最低分,AVG(成绩)AS 平均分FROM 学生成绩表WHERE 课程号=0201 9、统计学生成绩表中各科的总成绩和平均成绩。答:SELECT 课程号,SUM(成绩)AS 总成绩,AVG(成绩)AS 平均成绩FROM 学生成绩表GROUP BY 课程号10、统计各门课程中超过80 分同学的人数。答:SELECT 课程号,COUNT(成绩)AS 人数FROM 学生成绩表GROUP BY 课程号WHERE成绩=80 五、编程题(每题 10 分,共 30分)1、用面向对象编程方法输出九九乘法表(上三角)。答:command1.click Clear Set talk off for i=1 to 9 第 4 页/共 5 页?space(i-1)*8)for j=i to 9?str(j,1)+*+str(I,1)+=+str(I*j,2)+space(2)next j?next i Set talk on Return 2、某班 35 名学生计算机考试成绩已登记到Computer.dbf 自由表的成绩(N 型)字段中,该数据表另有评估(C 型)字段。试编制程序,将每个学生的计算机成绩进行评估,评估分为:“优秀”(90-100)、“良好”(80-89)、“中等”(70-79)、“及格”(60-69)、“不及格”(0-59),并将评估结果写到评估字段中。答:clear set talk off use computer dimension bb(35)copy to array aa fields 成绩for i=1 to 35 do case case aa(i)60 bb(i)=不及格 case aa(i)70 bb(i)=及格 case aa(i)80 bb(i)=中等 case aa(i)90 bb(i)=良好 otherwise bb(i)=优秀 endcase?bb(i)next go top for i=1 to 35 replace 评估with bb(i)skip next set talk on 第 5 页/共 5 页return 3、设计一表单,界面如下图所示,试完成该功能的命令按钮“计算”和“关闭”的程序设计答:第一步:设置各个控件的属性:THIS FORM.label1.CAPTION=“请输入矩形的长”THIS FORM.label2.CAPTION=“请输入矩形的宽”THIS FORM.label3.CAPTION=“矩形的周长为:”THIS FORM.label4.CAPTION=“矩形的面积为:”THIS FORM.COMMAND1.CAPTION=”计算”THIS FORM.COMMAND2.CAPTION=”退出”THIS FORM.TEXT1.VALUE=0 THIS FORM.TEXT2.VALUE=0 THIS FORM.TEXT3.VALUE=0 THIS FORM.TEXT4.VALUE=0 第二步:为”计算”的单击事件编写代码:X=THIS FORM.TEXT1.VALUE Y=THIS FORM.TEXT2.VALUE THIS FORM.TEXT3.VALUE=2*(X+Y)THIS FORM.TEXT4.VALUE=X*Y 第三步:为”退出”的单击事件编写代码:Thisform.release
展开阅读全文