山东省普通高中学业水平考试算法与程序设计复习资料Word文档下载推荐.doc
《山东省普通高中学业水平考试算法与程序设计复习资料Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《山东省普通高中学业水平考试算法与程序设计复习资料Word文档下载推荐.doc(4页珍藏版)》请在冰豆网上搜索。
dimbasinteger
dimcasinteger
a=1
b=1
fori=1to4
c=a+b
a=b
b=c
nexti
printc
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'
统计步骤数
dowhilen>
1
cnt=cnt+1
ifnmod2=0then
n=n/2
else
n=n*3+1
endif
printcnt'
输出步骤数
1、VB事件过程如下
privatesubcommand1_click()
a=val(text1.text)
b=a*a+1
text1.text=b
endsub
程序运行时,在text1.text里输入2,连续两次单击命令按钮command1后,Text1中现实的内容是(26)
输入2以后,第一次运行b=a*a+1,结果是5,5给a,第二次运行b=a*a+1,结果是26。
2、已知海伦公式******,a,b,c分别是三角形的三条边长,利用海伦公式求三角形面积的算法属于(解析法)
3、写出程序运行结果
dimxasinteger
dimyasinteger
y=val(inputbox("
y="
fori=1to3
x=val(inputbox("
x="
ifx<
ythen
y=x
endif
printy‘程序运行后,依次输入45961137
程序输出结果是:
11
输入45后赋值给y,96赋值给x,运行ifx<
ytheny=x,不符合要求,y值保留45,输入11给x,运行ifx<
ytheny=x,符合要求,y值为11,输入37给x,运行ifx<
ytheny=x,不符合要求,y值输出11,注意fori=1to3限制了x的输入数据个数,x需要输入3个数据,如果改为fori=1to4,则x需要再输入4个数据
4、某人的身份证号码S="
370102199602190000"
如果需要根据此身份证号码求出该人的“出生年月日”,下列表达式不能实现的是(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)
5、“完数”一个自然数恰好等于它的因子(不包含本身)之和,如6的因子为1,2,3,又6=1+2+36就是完数。
如28的因子是1,2,4,7,14,而28=1+2+4+7+14,故28就是完数。
问题:
输入一个正整数N,判断该正整数是否为完数,要判断一个整数N是否否完数,最简单的方法是:
求出1到n-1之间n的所有因子和为sum,如果sum的值和n的值相同,则n就为完数
代码
dimnaslong
dimsumaslong
n=inputbox("
)
fori=1ton-1
ifnmodi=0thensum=sum+i
ifn=sumthen
printn&
"
是完数"
else
不是完数"
1、如果给出三条线段的长度分别为a,b,c,且已知a<
=b<
=c,要问这三条线段能否构成三角形,需要下列选项中的那个判定条件即可(a+b>
c)
2、二分查找又称折半查找,是一种应用于有序数列的高效查找算法。
下列数列中适合二分查找算法的是(2,4)
(1)119915171239
(2)305263717881
(3)276268161514
(4)857859531918
3、dimaasintger的作用是(定义一个变量)
4、dimnaslong
dimsaslong
dimxaslong
s=0
0
x=nmod10
s=s+x
n=n\10
程序运行时,输入518,运行输出结果是:
14
15/10=1.5是除,据定义类型对余数四舍五入;
15\10=1是整除,去掉余数;
当循环执行到x=nmod10时如果此时的n值小于10,n直接赋值给x后参与s=s+x运算,并输出结果。
5、输入一个正整数n,判断该正整数是否为素数(质数),要判断一个数n是否是素数,最简单的方法是,统计2到n-1之间的所有能整除n的整数个数s,若s大于0,则n不是素数,否则就是素数,完善代码:
fori=2ton-1
ifnmodi=0then
s=s+1
ifs=0then
printn"
是素数"
else
不是素数"
1、程序运行题目
Fori=1To10
Forj=1Toi
Print"
*"
;
Nextj
Print
Nexti
输入的图形是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
dimkasinteger
fork=1to8
circle(2000,2000),k*100
nextk
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
ifd>
0then
x1=(-b+sqr(d))/(2*a)
x2=(-b-sqr(d))/(2*a)
print"
x1="
x1
x2="
x2
ifd=0then
print"
-b/(2*a)
ifd<
无实数解!
4、求1到20偶数的和
dimsumasinteger
sum=0
fork=1to20
ifkmod2=0thensum=sum+k
printsum
程序运行输出的结果是:
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、Dimxasinteger
Dimyasinteger
Y=0
Fori=1to5
x=val(inputbox(“请输入”))
y=y+x
Printy
程序运行后,依次输入:
10,20,30,40,50
运行输出结果是:
150
语句中fori=1to5限制了数据输入个数,即程序运行后数据只能输入5个,然后求和。
如果把语句中fori=1to5改为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时的近似值,补全代码
dimsasdouble
dimpiasdouble
fori=1to10000000
s=s+1/(i*i)
pi=sqr(s*6)'
填空
Print"
pi="
pi
(2)珠穆朗玛峰高度是8844.43米,一张白纸厚度大约是0.08毫米,对折一次后厚度为0.16毫米,再对折一次厚度变为0.32毫米……每对折一次,厚度变为前一次的两倍。
假设这张纸足够大,可以对折任意次,那么这张纸折叠多少次后,其厚度将超过珠穆朗玛峰的高