山东省普通高中学业水平考试算法与程序设计复习资料

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

老题目

1、下列VB 程序运行时,在文本框Text1中输入20,在文本框

输入13,单击命令按钮command1后,文本框 Text3 Private Sub command1 click() a=val(text1.text) b=val(text2.text) Text3.text=a+b end sub

2、下列程序段中循环体执行次数是 (3) s=0 i=0

do while s<10

i=i+1 s=s+i*i loop print i print s

实际运行结果:i=3 S=14

时程序结束,此时循环体执行3次。

3

4、写出程序运行结果,运行结果是dim a as integer dim b as integer dim c as integer a=1 b=1

for i=1 to 4 c=a+b a=b b=c next i print c

5、分析下面问题,请选择最合适的算法—(C )

搬砖问题:100块砖,100人搬,一个男人搬4块,一个女人搬3块,两个小儿抬一块,要求一次全搬完,问需男、女、小儿各多少人。 A 、解析法 B 、递归法 C 、穷举法 D 、排序法

6、完善程序:考拉兹猜想又称3n+1猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,;如果它是偶数,则对它除以2;如此循环,最终都能够得到1。如n=6,根据上述规则得出6—3—10—5—16—8—4—2—1。(共有8个步骤)以下是验证考拉兹猜想的主要VB

程序片段,请你补全代码。

n=val(inputbox("n=")) cnt =0 '统计步骤数

do while n>1 cnt=cnt+1

loop

print cnt '输出步骤数

1、VB 事件过程如下

private sub command1_click() a=val(text1.text) b=a*a+1

text1.text=b end sub

程序运行时,在

2,连续两次单击命令按钮command1后,Text1输入2以后,第一次运行b=a*a+1,结果是5,5给a ,第二次运行b=a*a+1,结果是26。

2、已知海伦公式******

3、写出程序运行结果 dim x as integer dim y as integer

y=val(inputbox("y=")) for i=1 to 3

x=val(inputbox("x="))

if x

print y 45 96 11 37 程序输出结果是输入45后赋值给y,96赋值给x,运行if x

4、某人的身份证号码S="370102************",码求出该人的“出生年月日”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) 5、“完数”一个自然数恰好等于它的因子(不包含本身)之和,如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之间 n 的所有因子和为sum,如果sum 的值和n 的值相同,则

n 就为完数 代码

dim n as long dim sum as long n=inputbox("n=") for i=1 to n-1

" else

print n&"

不是完数" end if

1、如果给出三条线段的长度分别为a,b,c ,且已知a<=b<=c

2、二分查找又称折半查找,是一种应用于有序数列的高效查找算法。下列数列中适合二分查找算法的是(2,4) (1)11 99 15 17 12 39 (2)30 52 63 71 78 81 (3)27 62 68 16 15 14 (4)85 78 59 53 19 18

3、dim a as intger 的作用是 (定义一个变量)

4、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

程序运行时,输入51815/10=1.5是除,据定义类型对余数四舍五入;15\10=1是整除,去掉余数;当循环执行到x=n mod 10时如果此时的n值小于10,n直接赋值给x后参与s=s+x 运算,并输出结果。

5、输入一个正整数n ,判断该正整数是否为素数(质数),要判断一个数n 是否是素数,最简单的方法是,统计2到n-1之间的所有能整除n 的整数个数s

,若s 大于0,则n 不是素数,否则就是素数,完善代码:

n=val(inputbox("n=")) s=0

for i=2 to n-1

是素数"

else

print n"不是素数"

end if

1、程序运行题目

For i = 1 To 10

For j = 1 To i

Print "*";

Next j

Print

Next i

输入的图形是D

2、VB中绘制圆的方法是 circle(x,y),r 格式说明,其中(x,y)为圆心坐标,r为圆的半径,请补充算法2,使其实现与算法1的功能,表中算法1是在窗体中绘制以(2000,2000)为圆心,半径依次为100,200 (800)

的8个同心圆,

算法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

3、求一元二次方程ax2+bx+c=0 (a不等于0)的主要VB程序片段,补全代码

a=val(inputbox("a="))

b=val(inputbox("b="))

c=val(inputbox("c="))

d= b^2-4*a*c '求判别式d

if d>0 then

x1=(-b+sqr(d))/(2*a)

x2=(-b-sqr(d))/(2*a)

print "x1=";x1

print "x2=";x2

end if

if d=0 then

print "x=";-b/(2*a)

end if

if d<0 then

print "无实数解!"

end if

4、求1到20偶数的和

dim sum as integer

dim k as integer

sum =0

for k=1 to 20

if k mod 2=0 then sum=sum+k

next k

print sum

程序运行输出的结果是:110

5、小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个;第二天接着吃剩下的桃子的一半多一个;以后每天都是如此,到了第七天要吃桃子的小猴,却发现只剩下一个。问小猴那天一共摘了多少个桃子?上面问题选择最合适的算法是 (B)

A 解析法 B递归法 C穷举法 D排序法6、下图所示的算法流程图

问题一:下列流程图填入虚线框中,符合条件的是:

1、下列VB表达式中,值为字符串类型的是(2),(3),(4)

(1)sqr(x) (2)Text1.text (3)Commmand1.Caption (4)"45"+"34"

2、表达式Abs(int(2.88) + Int(-3.14))的值是( 2 )

int(x)函数的功能是返回不大于x的最大整数,abs(x)函数的功能是取绝对值。Abs((2) + (-4))= Abs(-2)=2

3、Dim x as integer

Dim y as integer

Y=0

For i=1 to 5

x=val(inputbox(“请输入”))

y=y+x

Next i

Print y

运行输出结果是:150

语句中for i=1 to 5限制了数据输入个数,即程序运行后数据只能输入5个,然后求和。如果把语句中for i=1 to 5改为3,即程序运行后数据只能输入3个,再求和。

4、补充完整程序代码

(1) 计算圆周率公式pi^2/6=1+1/2^2+1/3^2+...+1/n^2

当n=100000时,计算出pi=3.14158310432646

当n=1000000时,计算出pi=3.14159169866051

利用公式计算n=10000000时的近似值,补全代码

dim s as double

dim pi as double

s=0

for i=1 to 10000000

s=s+1/(i*i)

pi=sqr(s*6) '填空

(2)珠穆朗玛峰高度是8844.43米,一张白纸厚度大约是0.08毫米,对折一次后厚度为0.16毫米,再对折一次厚度变为0.32毫米……每对折一次,厚度变为前一次的两倍。假设这张纸足够大,可以对折任意次,那么这张纸折叠多少次后,其厚度将超过珠穆朗玛峰的高度。补全代码

Height = 8844.43

h = 0.08

cnt = 0

Do While h < Height * 1000

h=h * 2 '填空

Print cnt

2的多少次方乘以0.08的值大于8844430

相关文档
最新文档