算法与程序设计会考真题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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____