表,完成以下操作:
1.将“学生”表中所有“班级号”是“201001”的学生的“入学成绩”加10分。(用Visual FoxPro命令)
2.使用“学生”表,建立以“出生日期”为关键字,索引名为“生日”的升序的唯一索引,复合索引文件名为DA.cdx。(用Visual FoxPro命令)
3.查询“学生”表中“籍贯”是“上海”的学生的班级号、学号、姓名和籍贯字段,按“班级号”升序输出。(用SQL语句)
4.在“班级”表中增加“入学日期”字段,字段类型为日期型。(用SQL语句)
5.逻辑删除“学生”表中所有出生日期在1990年前(不包括1990)的记录。(用SQL语句)
五、程序分析(本大题共2小题,每小题5分,共10分,读程序并分析结果) 1.阅读下面的Visual Basic程序,分析程序中k=k+a的执行次数是
Dim a As Integer Dim i As Integer Dim j As Integer Dim k As Integer a = 0 k = 0
For i = 1 To 10 For j = 1 To i a = a + i + j k = k + a k=k-1 Next j Next i
2.已知有数据库文件职工工资.dbc,数据库中包含表“工资.dbf”,工资.dbf的表结构为: 职工号(C,4),姓名(C,8),性别(C,2),职称(C,8),基本工资(N,8,1)。 有Visual FoxPro程序5_2.prg如下: CLEAR
OPEN DATABASE 职工工资 USE 工资
计算机专业理论试题 第9页 共 18页 STORE 0 TO m,n GOTO TOP m=基本工资 n=基本工资
SCAN FOR 职称=\副教授\ IF m<=基本工资 m=基本工资 ELSE
IF n>=基本工资 n=基本工资 ENDIF ENDIF ENDSCAN ?m ?n
该程序的功能是:
六、写出下列程序的运行结果(本大题共5小题,每小题5分,共25分) 1.分析下面Visual Basic程序段
Dim i As Integer Dim j As Integer Dim s As Integer
Dim a(2 To 4, 3 To 7) As Integer s = 0
For i = 1 To 2
For j = 1 To 2
If (i + j) Mod 2 = 0 Then s = s + LBound(a, j) Else
计算机专业理论试题 第10页 共18页
s = s + UBound(a, j) End If Next j Next i Print s
上面程序运行后,s的值是 。 2.分析下面Visual Basic程序段。
如图所示,图中有两个列表框,左边的是List1,右边的是List2,一个命令按钮Command1,窗体和命令按钮的单击事件中均有代码,程序段如下:
Private Sub Form_Click()
List1.AddItem \List1.AddItem \List1.AddItem \End Sub
Private Sub Command1_Click()
Dim k As Integer
k = List1.ListCount - 1
List2.AddItem List1.List(List1.ListIndex) List1.RemoveItem List1.ListIndex List1.RemoveItem k - 1 End Sub
窗体启动后先单击窗体,然后选中如图所示的列表框中的项目,再单击命令按钮,左边列表框中显示内容是 。 3.有如下Visual FoxPro程序:
SET TALK OFF
计算机专业理论试题 第11页 共 18页 STORE 0 TO I,J X=3 Y=0
DO P1 WITH X,Y ?X,Y SET TALK ON RETURN
PROCEDURE P1 PARAMETERS X,Y I=1
DO WHILE I<=3
X=X+I I=I+1
ENDDO Y=X+Y DO P2 WITH X RETURN
PROCEDURE P2 PARAMETERS X X=1 RETURN
运行上面的程序,显示的结果为: 4. 在Visual FoxPro的表单上添加一个标签,其Name属性为:Label1,添加一个命令按钮,其Name属性为:Command1,Caption属性为:显示。 Command1的Click事件代码如下: ThisForm.Label1.Caption=\For k=1 TO 2
ThisForm.Label1.Caption= ThisForm.Label1.Caption+Str(k,3) EndFor For n=1 TO 3
计算机专业理论试题 第12页 共18页
FOR i=1 TO n
ThisForm.Label1.Caption= ThisForm.Label1.Caption+Str(i*n,3) EndFor EndFor
运行上面的表单,单击命令按钮,则标签上显示的结果为(要求按格式写输出结果,空格用└┛表示):
5.有学生信息.dbf自由表,字段为:学号(C,8),姓名(C,8),性别(C,2),年龄(N,3,0),籍贯(C,20),入学成绩(N,5,1),表中数据如下:
Record# 学号 姓名 性别 年龄 籍贯 入学成绩 1 20100101 肖天海 男 19 河北保定 560 2 20100102 王岩盐 男 20 北京 623 3 20100103 刘星魂 男 18 上海 559 4 20100104 张月新 女 19 南京 610 5 20100201 李明玉 男 20 江苏常州 623 6 20100202 季欣欣 女 19 辽宁沈阳 580 7 20100203 王吉吉 女 22 吉林长春 612 有如下Visual FoxPro程序
SET TALK OFF STORE 0 TO M,N USE 学生信息
INDEX ON 性别 TAG 性别 OF ABSEX SEEK \男\
DO WHILE 性别=\男\
N=N+1
M=M+年龄 SKIP ENDDO ?M/N SET TALK ON
运行上面的程序,显示的结果为:
计算机专业理论试题 第13页 共 18页 七、程序改错(本大题共2小题,每题5分,共10分。每个程序有两处错误,请在答题纸上写
出错误行代码和改正后的代码。改错不扣分)
1.下面的程序是将一个十进制整数转换成二进制数,转换后按位放到一维数组a中,然后输出。如输入一个数据8,将输出1 0 0 0。程序中有两处错误,请改正。 Dim a(10) As Integer
Dim k As Integer Dim yu As Integer Dim i As Integer i = 1
k = InputBox(\Do While k <> 0
yu = k/2 a(i) = yu k = k \\ 2 i = i + 1 Loop
For yu = i To 1 Step -1 Print a(yu); Next yu
____________________________________________________________
_____________________________________________________________
2.窗体中有一定时器控件Timer1,有一命令按钮command1,一文本框Text1。命令按钮的作用是启动定时器工作,每2秒钟触发一次定时器的Timer事件;定时器的Timer事件是使文本框的字号从6开始增加,当字号大于40后又重新从6开始。运行效果图如下。程序中有两处错误(每个事件中各有一处),请改正。
计算机专业理论试题 第14页 共18页
Private Sub Command1_Click() Timer1.Interval = 1000 Timer1.Enabled = True End Sub
Private Sub Timer1_Timer() Dim a As Integer a = a + 1
Text1.FontSize = 6 * a
If Text1.FontSize > 40 Then a = 0 End Sub
________________________________________________________________
________________________________________________________________
八、程序填空(本大题共7个空,每空5分,共35分。按程序要求在答题纸上填入相应的内容,
使程序完整正确)
1.有10个元素的一维数组a,已经按由小到大的顺序排列好,现输入一个数据,然后在数组中查找此数,若找到则求小于等于它的元素之和。请填空。(Visual Basic题)
Option Base 1 Dim a
Dim k As Integer Dim s As Integer Dim i As Integer
Dim b As Integer ‘要比较的数据
a = Array(-2, 4, 7, 8, 12, 25, 26, 31, 89, 95) b = InputBox(\请输入数据\s = 0
For i = 1 To 10
If b = a(i) Then
计算机专业理论试题 第15页 共 18页 Next i
If i <= 10 Then
For k = 1 To
s = s+a(k) Next k End If Print s
2.窗体中有三个标签,三个文本框从上到下依次是Text1、Text2、 Text3,一个命令按钮Command1。三个标签用来标示右边文本框的用途,Text1用来输入数据,数据之间用空格分开,Text2用来存放奇数和,Text3用来存放偶数和。在Text1中输入一组数据后,单击求和命令按钮,Text2将显示Text1中的奇数和,Text3中将显示Text1中的偶数和。代码如下。请填空。(Visual Basic题)
Private Sub Command1_Click()
Dim s As String '存放Text1中的字符串 Dim c As String
Dim c1 As String '每次取的一个字符 Dim k As Integer
Dim w As Integer ' Text1中字符串的长度 Dim i As Integer
Dim t1 As Integer '奇数和 Dim t2 As Integer '偶数和 i = 0 t1 = 0 t2 = 0
s = Trim(Text1.Text) w = Len(s)
计算机专业理论试题 第16页 共18页