算法与程序设计会考真题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1,分析并完善程序:

考拉兹猜想:又称为3n+1猜想,指的是对于给定的每个正整数n,经过一系列的有限次变化后,最终都能变为了:

如果它是偶数,则对它除以2,如果它是奇数,则对它乘3再加1;……

如此循环,直到得到位为止。例如:n=6,根据上述需要8次变换后得1,变换过程:6---3---10---5---16---8---4---2---1。以下是验证考拉兹猜想的主要程序片段,请你补全代码,

Dim n As Long

Dim cnt AS Long ’变换次数cnt

n=V al(InputBox(“n=”))’输入正整数n

cnt=0

Do While n>1

cnt=cnt+1 ‘变换次数累加

If n Mod 2=0 Then

n=___n/2___

Else

n=__3*n+1____

endif

Loop

Print cnt ‘输出变换次数

2,输入一个正整数n,判断该正整数是否为素数(质数)。要判断一个数n是否为素数,最简单的方法是,统计2到n-1之间的所有能整除n的整数个数s,若s大于0,则n不是素数,否则是素数,根据以上方法,完善以下程序代码:

N= val(InputBox(“n=”)

S=0

For i=2 to n-1

If n mod i=0 Then

S=__s+1____’统计因数个数

Endif

Next i

If____s<=0________Then

Print n &”是素数“

Else

Print n &”不是素数“

End if

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

格式说明:其中(x,y)为圆心坐标,r为圆的半径。下表中算法1是在窗体中绘制以(2000,2000)为圆心,半径依次为100,200,……,800的8个同心圆。请补充完成算法2,使其实现与算法1相同的功能。(6分)

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

问题:输入一个正整数n,判断该数是否为“完数”

要判断一个整数N是否为“完数”,最简单的方法是:

求出现1到n-1之间n的所有因子和为sum,如果sum的值和n的值相同,则n就是完数。以下代码是判断n是否为完数的程序片段,请补全代码:

Dim n as long

Dim sum as long量级‘SUM用来记录N的因子和

N= inputBox(“n=”)

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 &”不是完数”

5,2005年10月9日,国家测绘局正式宣布珠穆朗玛峰的高度是8848.43米,并停用之前的数据,现有一长白纸的厚度大约是0.08毫米,对折一次,厚度变为0.16毫米,……,每对折一次,厚度变为折前的两倍。假设这长纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度。以下是求解该问题的程序片段,请补全代码:

Dim height as double ‘定义珠穆朗玛峰的高度

Dim h as double ‘定义一张纸的厚度

Dim cnt as long ‘定义对折次数

Height=8844430

H=0.08

Cnt=__0________

Do while h

Cnt=cnt+1

h=___2*h___或2^cnt*0.008____

Loop

Print cnt

6,以下是求解一元二次方程aX2+bx+c=0(a≠0)的主要VB程序片段,请补全代码:

a=val(inputbox(“a=”))

b= val(inputbox(“b=”))

c=val(inputbox(“c=”))

d=___b*b-4*a*c_________________________ ‘求判别式

If d>0 then

X1=(-b+sqrt(d))/(2*a)

X2=(-b-sqrt(d))/(2*a)

Print “x1=”;x1

Print”x2=”;x2

End if

If ___d=0_____then

Print “x=”;-b/(2*a)

Endif

If d<0 then

Print “无实数解!”

Endif

7,选择算法解决问题;在使用计算机解决问题时,选择合适的算法是有效解决问题的关键。分析下面的问题,请选择合适的算法:____穷举法_______(填:解析法/穷举法/递归法/排序法,6分)

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

8,分析下面的问题,选择合适的算法(填:解析法/递归法/穷举法/排序法)____递归法________

猴子吃桃问题:小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个,第二天接着剩下的一半多一个,以后每天都是如此,到了第七天要吃桃子时,却发现只剩下1个,问小猴子那天一共摘了多少个桃子。

9,分析程序,得出结果:

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______

10,分析程序,得出结果

Dim n as long

Dim s as long

Dim x as long

N=val(inputbox(“n=”))

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)

11,分析程序,得出结果

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____

相关文档
最新文档