山东省普通高中学业水平考试算法与程序设计复习资料.doc
- 文档编号:1851459
- 上传时间:2022-10-24
- 格式:DOC
- 页数:4
- 大小:178.50KB
山东省普通高中学业水平考试算法与程序设计复习资料.doc
《山东省普通高中学业水平考试算法与程序设计复习资料.doc》由会员分享,可在线阅读,更多相关《山东省普通高中学业水平考试算法与程序设计复习资料.doc(4页珍藏版)》请在冰豆网上搜索。
算法与程序设计部分题目
老题目
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毫米……每对折一次,厚度变为前一次的两倍。 假设这张纸足够大,可以对折任意次,那么这张纸折叠多少次后,其厚度将超过珠穆朗玛峰的高
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东省 普通高中 学业 水平 考试 算法 程序设计 复习资料