2017年河北省对口升学计算机专业理论试题(附答案) 下载本文

有如下Visual FoxPro程序: ACCEPT \请输入准考证号:\OPEN DATABASE ZKSCORE ALTER TABLE CJB ADD X2 N(2,0)

SELECT 准考证号,姓名,学校名称,班级名称,总分,X2 FROM CJB ORDER BY; 学校名称,班级名称,总分 DESC INTO TABLE CJTMP GO TOP X=1 Y=X

NX1=CJTMP.总分 BJ=CJTMP.班级名称 XX=学校名称 DO WHILE NOT EOF()

IF BJ=CJTMP.班级名称 AND XX=CJTMP.学校名称 REPLACE X2 WITH IIF(NX1=CJTMP.总分,Y,X) Y=CJTMP.X2 X=X+1

BJ=CJTMP.班级名称 XX=学校名称 NX1=CJTMP.总分 ELSE X=1 Y=X

NX1=CJTMP.总分 REPLACE X2 WITH X X=X+1

BJ=CJTMP.班级名称 XX=CJTMP.学校名称 ENDIF SKIP ENDDO

SELECT 准考证号,姓名,X2 WHERE 准考证号=ZKZ FROM CJTMP INTO TABLE TMPJG ?准考证号,姓名,X2

运行上面的程序,输入“801510114”,显示的结果是: 。

17

七、Visual Basic程序改错(本大题共2小题,每题5分,共10分,每个小题的程序有两个错误行,请在

答题纸上写出错误行代码和对应的改正后代码,错误行代码和改正后代码完全正确方可得分) 1.下面的程序是利用InputBox函数依次输入两个长度小于20的、均由数字字符组成的字符串,依次存

入到两个字符串变量中,然后从两个字符串的起始位置开始依次取出一个字符进行操作,操作的规则是:

(1)把取出的字符转换成数字分别存入到数组a和数组b中,将两个数组中下标相同的元素值相加,如

果它们的和大于9,则存入数组c中,否则不存入。然后再分别取下一个字符,进行同样的操作。 (2)如果某个字符串中的字符已经取完,则把另一个未取完的字符串中的字符单个取出,转换成数字后

加上10直接存入到数组c中。

例如输入的字符串是:“123456789”和“96666666666”,则最后数组c中存入的应该是:10,10,11,12,13,14,15,16,16。

Option Base 1

Private Sub Command1_Click() Dim a(20) As Integer Dim b(20) As Integer Dim c(20) As Integer Dim i As Integer Dim j As Integer Dim len1 As Integer Dim len2 As Integer Dim str1 As String Dim str2 As String

str1 = InputBox(\请输入第一个数字字符串:\str2 = InputBox(\请输入第二个数字字符串:\len1 = Len(str1) len2 = Len(str2) i = 1: j = 1

Do While i <= len1 And i <= len2 a(i) = Val(Mid(str1, i, 1)) b(i) = Val(Mid(str2, i, 1))

If a(i) + b(i) > 9 Then c(j) = a(i) + b(i): j = j + 1 i = i + 1 Loop

If len1 > len2 Then str1 = Mid(str1, i) Else

18

Str2 = Mid(str2, i) End If

len1 = Len(str1) i = 1

Do While i <= len1

c(j) = Val(Mid(str1, i, 1)) + 10 i = i + 1: j = j + 1 Loop

For i = 1 To j Print c(i); Next i

End Sub

2.下面程序的功能是:定义一个4行4列的数组并赋值, 要求第1行至第4行产生的数分别在10至19、20至29、30至39、40至49之间,再用Inputbox函数输入一个1到4之间的数字,然后求该数字所对应行与列元素的和。如产生的数组是: 10 17 18 19

21 24 25 23 35 32 30 38 41 44 47 42

若输入一个数字2,则求第2行与第2列元素的和,结果为210。

Option Base 1

Private Sub Command1_Click() Dim a(4, 4) As Integer Dim num As Integer Dim s As Integer

Dim i As Integer, j As Integer For i = 1 To 4 For j = 1 To 4

a(i, j) = 10 + Int(Rnd * 10) Print a(i, j); Next j Print Next i

num = InputBox(\请输入一个1至4的数字:\s = a(num, num) For i = 1 To 4 For j = 1 To 4

If i = num Or j = num Then

19

s = s + a(num, num)

End If

Next j Next i Print s End Sub

八、程序填空(本大题共7个空,每空5分,共35分,按程序要求在答题纸上填入相应的内容,使程序

完整正确)

1.(Visual Basic试题)下面程序的功能是输入一个大于等于10小于500的数字,然后把10到该数字之

间的所有素数找出并存入到数组a中,并输出此数组。请在划线位置填写正确的内容。

Option Base 1

Private Sub Command1_Click() Dim num As Integer Dim a(100) As Integer Dim n As Integer Dim k As Integer Dim i As Integer Dim j As Integer n = 1

num = InputBox(\请输入一个数字:\For i = 10 To num k = Sqr(i) For j = 2 To k

If i Mod j = 0 Then ______________ Next j If j > k Then

____________: n = n + 1 End If Next i If n = 1 Then

Print \一个也没有\Else

For i = 1 To n - 1 Print a(i); Next i

20