试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高中信息技术 VB基本语句同步练习

编写VB程序,实现如下功能:输入年月日,求该日是这一年的第几天。程序运行时,在文本框“TextNian”中输入年,在文本框“TextYue”中输入月,在文本框“TextRi”中输入日。单击“点击计算”按钮“ButtonRun”进行计算,结果输出到文本框“TextAnswer”中。程序界面如图所示。

请回答下列问题:

(1)、应用程序界面设计时,设置文本框“TextNian”的显示内容为空,应设置该对象的属性为空白。
(2)、为实现上述功能,请在划线处填写合适的代码。

Private Sub()

Dim nian As Integer, yue As Integer, ri As Integer

Dim ans As Integer, i As Integer

Dim a(1 To 12) As Integer    ‘a(i)存储第i个月的天数

a(1) = 31: a(2) = 28: a(3) = 31: a(4) = 30

a(5) = 31: a(6) = 30: a(7) = 31: a(8) = 31

a(9) = 30: a(10) = 31: a(11) = 30: a(12) = 31

nian = Val(TextNian.Text)

yue = Val(TextYue.Text)

ri = Val(TextRi.Text)

For i = 1 To yue - 1   ‘依次加上之前每个月的天数

  ans =

Next i

ans = ans + ri    ‘加上当月的天数

If yue > 2 Then    ‘包含2月时,判断是否闰年,修正总天数

 If nian Mod 400 = 0 Then ans = ans + 1

 If nian Mod 4 = 0 And nian Mod 100 <> 0 Then ans = ans + 1

End If

=Str(ans)

End Sub

举一反三
如果一个自然数的每个质因数都至少是二重的(即每个质因数乘方次数都大于或等于2),如整数72=2^3*3^2(即72=2*2*2*3*3),判断2~72所有数中全部质因子的乘方次数,找出质因子“2”乘方次数为3;质因子“3”乘方次数为2,不是72的质因子,那么这个自然数称为“漂亮数”。小李编写了一个验证“漂亮数”的VB程序。在文本框输入小于1 000的正整数,单击“检查”按钮在列表框中显示该数的质因子及该因子乘方数,在标签Label1中显示判断结果,在标签Label4中显示所有质因数的分解过程。程序运行界面如下图所示。

实现上述功能的VB代码如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

Dim a(1 To 999) As Integer

Dim n As Integer

Dim s As String

For i=1 To 999

 a(i)=0

Next i

n=Val(Text1.Text)

s =“”

Do While n<>1     ‘分解质因子过程并统计质因子出现次数

For i = 2 To n

 Do While n Mod i = 0

  s = s&“  ”&i

  a(i)= a(i)+1

       ‘①

 Loop

Next i

Loop

Label4.Caption =“质因子分解过程:” +s

For j = 2 To 999     ‘判断是不是漂亮数

 If Then      ‘②

  Label1.Caption = “不是漂亮数”

  Exit For

 Else

  Label1.Caption =“漂亮数”

  End If

Next j

For j = 2 To 999     ‘在列表框输出质因数及对应的乘方数

 If a(j)>0 Then

  List1.Additem Str(j)+“ ”+Str(a(j))

 End If

Next j

End Sub

①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#} 

求最长升序子序列的长度。一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是升序的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些升序的子序列(ai1, ai2, ..., aiK),这里 1 <= i1 < i2 < ...<iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些升序子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8)。小王设计VB程序用于求最长升序子序列的长度,在文本框Text1中输入n个各不相同的数据(各数据之间以逗号隔开),单击“求解”按钮Command1后在标签Label1中输出最长升序子序列的长度,运行界面如图所示。

具体算法描述如下:

⑴将文本框Text1中的n个数据依次读取到数组a中;

⑵构造一个数组b(j),j表示升序子序列的长度,b(j)的值表示所有j长度升序序列中最小的末尾元素值。例:序列(2,6,4,5),长度为2的子序列有(2,6)、(2,4)、(2,5)、(4,5),则b(2)=4;

⑶从第1个元素开始,依次处理到第i(1≤i≤n)个元素为止,b数组所能达到的最大下标值maxlen,处理过程分两种情况:

A.a(i)>b(maxlen),则最长升序子序列的长度增加;

B.a(i)<b(maxlen),则在b数组中逆序查找到第一个b(j)>a(i)(maxlen-1≤j≤1),更新数组b中升序子序列长度为j+1时所存储的元素值。

以图中数据为例:

⑷数组b的最大下标值即为最长升序子序列的长度。实现上述过程的VB程序如下,请回答下列问题:

返回首页

试题篮