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

上传人:wj 文档编号:6680602 上传时间:2023-05-10 格式:DOC 页数:4 大小:178.50KB
下载 相关 举报
山东省普通高中学业水平考试算法与程序设计复习资料.doc_第1页
第1页 / 共4页
山东省普通高中学业水平考试算法与程序设计复习资料.doc_第2页
第2页 / 共4页
山东省普通高中学业水平考试算法与程序设计复习资料.doc_第3页
第3页 / 共4页
山东省普通高中学业水平考试算法与程序设计复习资料.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《山东省普通高中学业水平考试算法与程序设计复习资料.doc》由会员分享,可在线阅读,更多相关《山东省普通高中学业水平考试算法与程序设计复习资料.doc(4页珍藏版)》请在冰点文库上搜索。

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

算法与程序设计部分题目

老题目

1、下列VB程序运行时,在文本框Text1中输入20,在文本框Text2中输入13,单击命令按钮command1后,文本框Text3中显示的内容是(33)

PrivateSubcommand1click()

a=val(text1.text)

b=val(text2.text)

Text3.text=a+b

endsub

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

s=0

i=0

dowhiles<10

i=i+1

s=s+i*i

loop

printi

prints

实际运行结果:

i=3S=14时程序结束,此时循环体执行3次。

3、算法描述方法有多种,下列选项中不适合描述算法的是(机器语言)

4、写出程序运行结果,运行结果是:

(8)

dimaasinteger

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

loop

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

y=x

endif

nexti

printy‘程序运行后,依次输入45961137

程序输出结果是:

11

输入45后赋值给y,96赋值给x,运行ifx

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("n=")

fori=1ton-1

ifnmodi=0thensum=sum+i

nexti

ifn=sumthen

printn&"是完数"

else

printn&"不是完数"

endif

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

n=val(inputbox("n="))

s=0

dowhilen>0

x=nmod10

s=s+x

n=n\10

loop

prints

程序运行时,输入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不是素数,否则就是素数,完善代码:

n=val(inputbox("n="))

s=0

fori=2ton-1

ifnmodi=0then

s=s+1

endif

nexti

ifs=0then

printn"是素数"

else

printn"不是素数"

endif

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

print"x2=";x2

endif

ifd=0then

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

endif

ifd<0then

print"无实数解!

"

endif

4、求1到20偶数的和

dimsumasinteger

dimkasinteger

sum=0

fork=1to20

ifkmod2=0thensum=sum+k

nextk

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

Nexti

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

s=0

fori=1to10000000

s=s+1/(i*i)

nexti

pi=sqr(s*6)'填空

Print"pi=";pi

(2)珠穆朗玛峰高度是8844.43米,一张白纸厚度大约是0.08毫米,对折一次后厚度为0.16毫米,再对折一次厚度变为0.32毫米……每对折一次,厚度变为前一次的两倍。

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

补全代码

Height=8844.43

h=0.08

cnt=0

DoWhileh

cnt=cnt+1

h=h*2'填空

Loop

Printcnt

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

新题目

程序题目:

1、人口增长问题。

假设我国人口数为14亿,如果每年增长率为1.6%。

编写程序,计算多少年之后我国人口数超过25亿。

写出程序代码。

PrivateSubCommand1_Click()

DimsAsSingle

DimtAsSingle

DimnAsSingle

s=14

t=0.016

n=0

DoWhiles<25

s=s*(1+t)

n=n+1

Loop

Printn;"年后";"人口超过";s

EndSub

2、银行存钱问题:

假设银行的年存储利率为2.5%,如果现在存储20000元钱,问多少年后连本带息超过50000元。

设定:

连本带息=本金*(1+利率)年数,写出程序代码。

PrivateSubCommand1_Click()

DimsAsSingle

DimrAsSingle

DimnAsInteger

s=25000

r=0.025

n=0

DoWhiles<50000

n=n+1

s=s*(1+r)

Loop

Printn;"年后";"连本带息超过";s

EndSub

3、s=3+6+9+12+…+900补充程序代码。

Fori=3to900step3Fori=1to300

s=s+________s=s+__________

NextiNexti

Fori=3to900step3Fori=1to300

s=s+is=s+3*i

NextiNexti

4、1-2+3-4+…+99-100,写出程序代码。

PrivateSubCommand1_Click()

Dims,iAsInteger

s=0

Fori=1To100

IfiMod2=1Then

s=s+i

Else

s=s-i

EndIf

Nexti

Prints

EndSub

5、1+2+3+4+…+99+100,写出程序代码。

PrivateSubCommand1_Click()

Dims,iAsInteger

s=0

Fori=1To100

s=s+i

Nexti

Prints

EndSub

6、1+2/3+3/5+4/7+…+24/47+25/49,写出程序代码及补充下面的数学公式。

PrivateSubCommand1_Click()

Dims,iAssingle

s=0

Fori=1To25

s=s+i/(2*i-1)

Nexti

Prints

EndSub

7、百钱买百鸡,写出程序代码。

假设1只公鸡值5钱,1只母鸡值3钱,3只小鸡值1钱。

现用100钱来买100只鸡。

问:

公鸡、母鸡、小鸡各买多少只?

(要求公鸡、母鸡、小鸡,每种每种最少买一只)。

x表示公鸡的数量:

1≤x≤20;

y表示母鸡的数量:

1≤y≤33;

z表示小鸡的数量:

1≤z≤100。

PrivateSubCommand1_Click()

Dimx,y,zAsInteger

Print"公鸡";"母鸡";"小鸡"

Forx=1To20

Fory=1To33

Forz=1To100

Ifx+y+z=100And5*x+3*y+z/3=100Then

Printx;y;z

EndIf

Nextz

Nexty

Nextx

Print

EndSub

8、4位数8?

?

0,中间2位破损无法看清,但次数能同时被23和37整除,求这个4位数,写出程序代码。

PrivateSubCommand1_Click()

DimxAsLong

DimyAsLong

DimnAsLong

Forx=0To9

Fory=0To9

n=8*1000+x*100+y*10

IfnMod23=0AndnMod37=0Then

Printn

EndIf

Nexty

Nextx

EndSub

9、12个成绩,去掉一个最大数,去掉一个最小数,求平均数。

补充代码。

Max=a

(1)

Min=a

(1)

s=a

(1)

Fori=2to12

s=s+a(i)

Ifa(i)>maxthenmax=a(i)

Ifa(i)

Nexti

Aver=_(s-max-min)/10_

10、写出程序运算结果:

(46)

DimiAsInteger

DimsAsInteger

s=1

Fori=1To9

Forj=1To5

s=s+1

Nextj

Nexti

Prints

11、写出程序运行结果S=(45)

Dima(9)asinteger

Dimi,sasinteger

Fori=1to9

a(i)=i*i

Nexti

s=a(3)+a(6)

Prints

1、下列选项中,不能作为VB程序变量名的是(B)。

A.abcB.123_abcC.a_123D.abc_1

2、下列选项中,能作为VB程序变量名的是(C)。

A.doB.x*yC.xyD.x/y

3、已知n是一个两位的正整数,则下列表达式能表示整数n的个位数字的是(C)。

A.n/10B.int(n/10)C.nmod10D.n\10

4、以下程序段语句执行后,y的值是( A )。

x=16

Ifx<0Then

y=Abs(x)

Else

y=Sqr(x)

EndIf

A.4B.256C.16D.其他三项答案都不对

5、下列关于算法的描述正确的是( B )。

A.算法的步骤可以是无穷的

B.算法必须有输出

C.算法必须有输入

D.算法就是程序

6、已知S=1+2+3+……+N,找出一个最大数N,使得S<3000。

编写程序,解决此问题,最合适的程序结构是( D )。

A.顺序结构B.选择结构

C.环型结构D.循环结构

7、已知n是一个两位的正整数,则下列表达式能表示n的十位数字的是(B  )。

A.n\100B.n\10C.n/10D.nmod10

8、下列序列能采用二分查找法查找某一元素的是( A )。

A.6,9,12,14,23,25B.1,4,7,15,13

C.15,14,12,7,2,3D.34,25,17,9,10,3

9、一元二次方程判别式b2-4ac的正确的VB表达式是( CE )。

A.b^2-4acB.b*b-4a*cC.b*b-4*a*cD.b^2-4*acE.b^2-4*a*c

10、在VB语言中,int(x)函数的功能是返回不大于x的最大整数,fix(x)函数的功能是返回x的整数部分(截掉x的小数部分)。

表达式int(2.88)+fix(-3.89)的值是( A )。

A.-1B.其他三项答案都不对

C.-2D.0

11、下列程序段运行后,s的值是( B )。

s=0

Fori=2To10

s=s+i

Nexti

A.53B.54C.55D.10

12、下列问题适合用解析法求解的是(B)。

A.输出1000以内所有的完全平方数。

B.一个小球从100米高的楼顶做自由落体运动,求落地时的速度V。

C.在一组彩球中寻找出所有的红球。

D.将全班同学根据身高从高到矮排队。

13、下列程序段运行后,输出“*”的个数是(A)。

Fori=2To10

Print"*";

NextI‘执行2、3、4、5、6、7、8、9、10

A.9B.8C.7D.6

4

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2