2014山东省信息技术学业水平考试程序题

更新时间:2024-07-12 03:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

程序题

1、阅读下列程序,写出正确运行结果 Dim n As Long Dim s As Long Dim x As Long n = Val(InputBox(\s = 0

Do While n > 0 x = n Mod 10 s = s + x n = n \\ 10 Loop Print s

程序运行时,输入518,运行输出结果是:____14____(6分) 提示: \\ 整除运算 如:237\\10=23 Mod 取余运算 如:237 mod 10=7 分析: 初始值 第一步 第而步 第三步 X X=n mod 10 0 8 1 5 S S=s+s 0 0+8 0+8+1 0+8+1+5 N N=n \\ 10 518 51 5 0

2、阅读下列程序,写出正确运行结果 Dim sum As Long Dim i As Long sum = 0 i = 0

Do While sum < 10 i = i + 1

sum = sum + i * i Loop Print sum

运行结果是: 14 分析: 初始值 第一步 第而步 第三步 i i =i+1 0 0+1 0+1+1 0+1+1+1 Sum sum=sum+i * i 0 0+1^2 0+1^2+2^2 0+1^2+2^2+3^2 循环Sum<10 满足条1 5 14 条件 件 满足条件 满足条件 不满足条件,循环终止 3、阅读下列程序,写出正确运行结果 Dim sum As Integer Dim k As Integer sum = 0

For k = 1 To 10

If k Mod 2 = 0 Then sum = sum + k Next k Print sum

程序运行后输出结果: 30 分析:2 4 6 8 10 的和

If k Mod 2 = 0 Then sum = sum + k 可写为

If k Mod 2 = 0 Then sum = sum + k End If

1

4、分析完善程序 考拉兹猜想:

考拉兹猜想又称为3n+1猜想,指的是对于给定的每一个正整数,经过下列有限次变换后,最终都能变为1: 如果它是偶数,则对它除以2; 如果它是奇数,则对它乘3再加1; ????

如此循环,直到得到1为止。

例如 n=6 ,根据上述规则需要8次变换后得到1,变换过程:6—3—10—5—16—8—4—2—1.

以下是验证考拉兹猜想的主要VB程序片段,请你补全代码:(8分)

Dim n As Long

Dim cnt As Long '变换次数cnt n = Val(InputBox(\ '输入正整数n cnt = 0

Do While n > 1

cnt = cnt + 1 '变换次数cnt累加 If n Mod 2 = 0 Then n =_______n/2__________ Else

n = ____n*3+1__________ End If Loop

2

分析验证:

Private Sub Command1_Click() Dim n As Long

Dim cnt As Long '变换次数cnt n = Val(InputBox(\ '输入正整数n cnt = 0

Do While n > 1

cnt = cnt + 1 '变换次数cnt累加 If n Mod 2 = 0 Then n = n / 2 Else

n = n * 3 + 1 End If Print n Loop

End Sub

5、选择算法,解决问题

在使用计算机解决问题时,选择合适的算法,是有效解决问题的关键。

分析下面的问题,请选择最合适的算法:_________(填:解析法/穷举法/递归法/排序法,6分) 分析:

i x 初始 0 0 第1次 1 10 0+10 第2次 2 20 0+10+20 第3次 3 30 0+10+20+30 第4次 4 40 0+10+20+30+40 第5次 5 50 0+10+20+30+40+50 第6次 6 不满足条件,循环终止 y 0 搬砖问题:

100块砖,100人搬,一个男人搬4块,一个女人搬3块,两个小孩抬1块, 要求一次全搬完,问需男、女、小儿各多少人?

8、阅读下列程序,选出运行结果

6、选择算法,解决问题

For i = 1 To 10 'i控制*的行数

在使用计算机解决问题时,选择合适的算法,是有效解决问题的关键。

For j = 1 To i 'j控制每行*的个数 分析下面的问题,请选择最合适的算法:_________(填:解析法/穷举法/递归 Print \ '输出 * 法/排序法,6分) Next j

猴子吃桃问题:

Print '输出换行 小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个,第二Next i

天接着吃剩下的桃子一半多一个,以后每天都 是如此,至了第七天要吃桃子运行结果是:___D___(填:A/B/C/D,6分) 时,却发现只剩下一个。

问小猴那天一共摘了多少个桃子?

7、阅读下列程序,写出运行结果 Dim x As Integer Dim y As Integer y = 0

For i = 1 To 5

x = Val(InputBox(\请输入:\

y = y + x A B C Next i print y

程序运行后,依次输入:10 20 30 40 50 运行输出结果是: 150

3

D

9、分析完善程序

“完数”是指一个自然数恰好等于它的因子(不包含本身)之和。 如6的因子为1、2、3,而6=1+2+3,因而6就是完数。

再如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因而28也是完数。 问题:输入一个正整数n,判断该正整数是否为完数。 要判断一个整数n是否为完数,最简单的方法是:

求出1到n-1之间的所有因子和为sum,如果sum的值和n的值相同,则n就是完数。

以下代码是判断n是否为完数的程序片段,请你补全代码:(8分)

Dim n As Long

Dim sum As Long 'sum用来记录n的因子和 n = InputBox(\

For i = 1 To n - 1 '求n的因子和sum If n Mod i = 0 Then sum = sum+i Next i

If sum=n Then Print n & \是完数\Else

Print n & \不是完数\End If

10、分析解决问题

VB语言中绘制圆的方法是:Circle(x,y),r

格式说明:其中(x,y)为圆心坐标,r为圆的半径。 下表中算法1是在窗体中绘制以(2000,2000)为圆心,半径依次为100、200??800的8个同心圆。

请补充完成算法2,使其实现与算法1相同的功能。(6分)

4

算法1 Circle(2000,2000),100 Circle(2000,2000),200 Circle(2000,2000),300 Circle(2000,2000),400 Circle(2000,2000),500 Circle(2000,2000),600 Circle(2000,2000),700 Circle(2000,2000),800 算法2 Dim k As Integer For k = 1 To 8 Circle (2000, 2000), k * 100 Next k 11、分析完善程序

以下是求解一元二次方程ax2+bx+c=0(a≠0)的主要VB程序片段。 请你补全代码:(8分) a = Val(InputBox(\b = Val(InputBox(\c = Val(InputBox(\

d = b ^ 2 - 4 * a * c '求判别式d If d > 0 Then

X1 = (-b + Sqr(d)) / (2 * a) X2 = (-b - Sqr(d)) / (2 * a) Print \ Print \End If

If d=0 Then Print \End If

If d < 0 Then

Print \无实数解\End If

12、分析完善程序

问题:输入一个正整数n,判断该正整数是否为素数(质数)。 要判断一个数n是否为素数,最简单的方法是:

统计2到n-1之间的所有能整除n的整数个数s,若s大于0,则n不是素数,否则就是素数。

根据以上方法,完善以下程序代码:(8分) n = Val(InputBox(\s = 0

For i = 2 To n - 1

If n Mod i = 0 Then

s = s + 1 '统计因数个数 End If Next i

If s <= 0 Then '-----------此处若写s=0也是正确的 Print n & \是素数\Else

Print n & \不是素数\End If

13、分析完善程序

2005年10月9日,国家测绘局正式宣布珠穆朗玛峰的高度是8844.43米,并停用之前的数据。

现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变为0.16毫米,再对折一次,厚度变为0.32毫米,??,每对折一次,其百度均变为对折前的两倍。

假设这张纸有足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度。

以下是求解该问题的程序片段,请你补全代码:(8分) Dim height As Double Dim h As Double

5

Dim cnt As Long height = 8844430 h = 0.08

cnt = 0 Do While h < height cnt = cnt + 1 h = h + h Loop

Print cnt

14、分析解决问题

在VB语言中常用的字符串截取函数有:(6分) 函数名 Mid(s,m,n) Left(s,n) Right(s,n) 功能 从字符串s的第m位开始截取长度为n的子串 截取字符串s左边n个字符 截取字符串s右边n个字符 示例 Mid(\Left(\Right(\结果 \\\假如某人身份证号码s=\,如果需要根据此身份证号码求出该人的“出生年月日”。

下列四个表达式中不能实现的一个 D (填A/B/C/D)。 A. Mid(s, 7, 8)

B. Right(Left(s, 14), 8)

C. Mid(s, 7, 4) + Mid(s, 11, 2) + Mid(s, 13, 2) D. Left(s, 14) - Left(s, 6)

15、分析解答问题 (6分) 下图所示的算法流程图:

开始

输入a、b的值 输出c的值

结束

执行情况如下:

当输入a、b的值分别为3、8时,输出结果为5 当输入a、b的值分别为11、7时,输出结果为4

问题一:下列流程图填入虚线框中,符合条件的是( C )(填:A/B/C)

问题二:依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果 为__________3________。

6

本文来源:https://www.bwwdw.com/article/p0w.html

Top