当前位置:首页 > 浙江省信息技术期末考试试卷及其答案
高中部信息技术试卷
39、(本题4分,每空2分)设有n盏灯,放在一排。从1 到 n依次顺序编号。有 n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如果为打开的,则将它关闭,如关闭的将它打开),以后的人和3号一样,将凡是自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的。(亮灯为0,关闭为1) 为了实现这一目标,完善下列程序,使之能完成该功能。 Private Sub command1_click() Const n=20
Dim i as integer,j as integer Dim a(1 to n) as integer For j=1 to n a(j)=0 next j
for i=1 to n for j=1 to n
if j mod i=0 then ① End if Next j Next i
For j=1 to n
If ② then list1.additem str(j) Next j End Sub
其中填充① ② 40、(本题4分,每空2分)普源为晚上的班级联欢会设计了一个抽奖程序,将所有同学的编号和对应的姓名分别保存在数组a(全班共50个同学,编号为1到50)和数组b中,程序会随机产生一个1到50的正整数(同时包括1和50),作为中奖编号。
程序界面如图所示,左边列表框List1中显示同学的编号和姓名,单击\抽奖\按钮(Command1),在标签Label3中显示抽中的编号,同时在标签Label4中显示\恭喜***同学\,其中具体同学的姓名从数组b中获取。 解决此问题的程序段如下:
高一信息试卷 第9页(共13页)
高中部信息技术试卷
Dim a(1 To 50) As Integer Dim b(1 To 50) As String
Function search(m As Integer) As Integer search = 0
For i = 1 To 50
If m = a(i) Then search = a(i) End If Next i
End Function
Private Sub Command1_Click() Dim c As Integer,t as integer Randomize ①
Label3.Caption = Str(c) t = search(c) If t <> 0 Then
Label4.Caption = \恭喜\ ② + \同学\ End If End Sub
Private Sub Form_Load()
' 此过程用于对数组a和数组b进行初始赋值,代码略 End Sub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整: (1)程序中①划线处应填入___________________。 (2)程序中②划线处应填入___________________。 41、(本题4分,每空2分)数制转换。将一个K进制(k<=10)数x转换成十进制数可采用如下方法:主要方法是从右向左,依次取数x的各位数字,分别计算出该数从右边数起的第i位数字与
k(i-1)的积,再将其累加,直到所有的数字取完为止。例如,将五进制数
1231转
换成十进制数的方法如下:
下列Visual Basic程序的功能是将K进制(k<=10)数x转换成十进制数。界面如图所示,在文本框Text1中输入数制k,在文本框Text2中输入数x,单击\转换\按钮(Command1)后,在标签Label4中输出转换的结果。
高一信息试卷 第10页(共13页)
高中部信息技术试卷
解决此问题的算法流程图如图所示,相应的Visual Basic程序如下: Private Sub Command1_Click()
Dim b As Long, i As Integer, k As Integer, x As Long, t As Integer b = 0: i = 1
k = Val(Text1.Text) x = Val(Text2.Text) t = x Mod 10
Do While ① b = ② x = x \\ 10 t = x Mod 10 i = i + 1 Loop
Label4.Caption = Str(k) + \进制数\转换成十制数为\End Sub
在程序①和②划线处,填入适当的语句或表达式,把程序补充完整: (1)程序中①划线处应填入___________________。 (2)程序中②划线处应填入___________________。
高一信息试卷 第11页(共13页)
高中部信息技术试卷
三、附加题(共10分,第一题2分,第二题8分,第二小题代码行数不限)
42、把杂乱无章的数据变为有序的数据,这一过程称为排序。冒泡排序是其中一种最基础的排序方法,其中的升序是把数列中把较小的数据逐次向上推移的一种排序技术。它的方法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面一个元素起,自下而上的比较相邻两个元素中的数据,如果较小的数据在下面,那将较小的数据换到上面的元素中(否则不交换)。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工,当第1遍加工完成时,最小的数据已经上升到第1个元素的位置;第2遍加工对余下的n-1个元素重复上述处理过程,第2遍加工完成后剩下最小的数据上升到第2个位置;直到n-1遍加工完成后发现数据完成了从小到大的排序。
假设有4个数据:27 36 32 18,需要4-1=3遍加工 第1遍加工如下:
第2遍加工如下:
第3遍加工如下:
假设4个数据放在数组d(1), d(2),d(3), d(4)
第1遍:比较d(j)、d(j-1),j=4,3,2,比较3次; 第2遍:比较d(j)、d(j-1),j=4,3,比较2次; 第3遍:比较d(j)、d(j-1),j=4,比较1次; (1) 假设另有一组未经排序的数据如下:
45 67 23 87 13 30
按照上述规则进行从小到大冒泡排序,第一遍加工完成后这6个数的位次应该是 。
高一信息试卷 第12页(共13页)
共分享92篇相关文档