算法与程序设计题参考.docx
《算法与程序设计题参考.docx》由会员分享,可在线阅读,更多相关《算法与程序设计题参考.docx(15页珍藏版)》请在冰豆网上搜索。
算法与程序设计题参考
算法与程序设计试题
一、选择题:
1、VB程序中“DimnAsInteger”这条语句得作用就是(B )
A、定义一个数据输入方法B、定义一个变量
C、定义一个数据处理方法D、定义一个事件过程
2、一元二次方程ax2+bx+c=0(a≠0)得两个实数根分别为:
下列表达式正确得就是(B )
A、x2=-b-sqr(b^2-4*a*c)/(2*a)
B、x2=(-b-sqr(b^2-4*a*c))/(2*a)
C、x1=(-b+sqr(b^2-4ac))/(2*a)
D、x1=-b+sqr(b^2-4*a*c)/(2*a)
3、长度分别为a、b、c得三条线段,能够组成三角形得条件就是(D)
A、a+b>c And a+c>bOr b+c>a
B、a+b>c Or a+c>bOrb+c>a
C、a+b>cOra+c>b Andb+c>a
D、a+b>c Anda+c>bAndb+c>a
4、下列关于算法得描述,正确得就是(D)
A、算法就就是数值计算得方法
B、描述算法得方法只有流程图
C、同一种算法只能用一种程序语言来实现
D、算法就是描述解决问题得方法与步骤
5、编制计算机程序解决问题得一般过程就是:
分析问题、编写程序、调试运行、设计算法。
B
A、正确ﻩﻩB、错误
6、下列问题不能用算法描述得就是(D)
A、已知圆锥得底面半径与高,求表面积与体积
B、计算某班英语平均分
C、求一元二次方程ax2+bx+c=0(a≠0)得两个实数解
D、求方程y=2X+1得所有整数解
7、在VB语言中表示“x属于区间(0,1]”得正确表达式就是(A )
A、00orx<=1
C、x>0and x<1D、08、已知海伦公式:
其中,a、b、c分别为 三角形得三条边长。
利用海伦公式求三角形面积得算法属于( D)
A、穷举法B、排序法C、查找法D、解析法
9、用计算机编程来求解某一方程得解,通常得步骤就是(A )
A、分析问题→设计算法→编写程序→调试运行→检测结果
B、编写程序→调试运行
C、设计算法→编写程序
D、编写程序→调试程序→检测结果
10、如果输出三条线段得长分别为a、b、c,且已知a≤b≤c,请问这三条线段能否构成三角形,仅需下列选项中得哪个判定条件即可?
( B)
A、其她选项都不对 ﻩﻩB、a +b>c
C、a+c>bﻩﻩﻩﻩﻩD、b+c>a
11、关于算法得描述,下列选项中正确得就是(B)
A、算法本身就就是一种程序设计语言ﻩﻩB、算法得每一步骤必须有确切得含义
C、算法必须有输入ﻩﻩﻩD、算法得步骤可以就是无穷得
12、下列选项中,不属于计算机程序设计语言得就是( B)
A、汇编语言B、自然语言ﻩC、高级语言D、机器语言
13、下列VB表达式中,能正确表示不等式方程得>1解得就是( B )
A、x>-1 andx<1ﻩB、x<-1orx>1
C、x<-1and x>1ﻩD、x>-1 or x<1
14、下列选项中,可以作为VB程序变量名得就是( B )
A、a/bﻩB、abﻩC、a-bD、a+b
15、以下程序段中循环体执行得次数就是(A )
s=0
i=1
DoWhiles<10
i=i+1
s=s+i*i
Loop
A、2ﻩB、4C、1D、3
16、算法得描述方法有多种,下列选项中不适合描述算法就是(C)
A、流程图B、伪代码ﻩC、机器语言ﻩD、自然语言
17、下列VB程序运行时(如图所示),在文本框Text1中输入20,在文本框Text2中输入13,单击命令按钮mand1后,文本框Text3中显示得内容就是(B)
PrivateSubmand1_Click()
a=Val(Text1、text)
b=Val(Text2、text)
Text3、text=a+b
EndSub
A、”33”ﻩB、33ﻩC、”2013”ﻩD、2013
18、二分查找又称折半查找,就是一种应用于有序数列得高效查找算法得就是( D )
(1)11ﻩ99 5ﻩ17239
(2)30ﻩ52637178ﻩ81
(3)67ﻩ3238ﻩ315ﻩ15
(4)8578ﻩ59521918
A、(3)(4)ﻩB、(2)(3)ﻩC、
(1)
(2)D、
(2)(4)
19、已知在VB语言中,int(x)函数得功能就是返回不大于x得最大整数,abs(x)函数得功能就是取绝对值,则表达式abs(int(2、88)+int(-3、14))得值就是(D )
A、5B、1ﻩC、0D、2ﻩ
20、关于算法得描述,下列选项中正确得就是( A)
A、一个算法可以没有输入
B、一个算法得执行步骤可以就是无限得
C、算法只能用流程图来表示
D、一个算法,当没有输入时,也没有输出
21、下列VB表达式中:
(1)Sqr(x)
(2)Text1、text(3)mand1、caption(4)”45”+”34”(5)45+34值为字符串类型得就是( D )
A、
(1)(3)(5) B、(1)
(2)(3)ﻩC、
(2)(4)(5) D、
(2)(3)(4)
22、在VB语言中吗,字符串运算符“+”与“&”得作用就是把两个或多个字符串连接成一个字符串,则表达式“20”+“13”&“20+13”得运算结果就是(C )
A、“3333”B、“201333”C、“201320+13”ﻩD、“332013”
23、在vb语言中常用得字符串截取函数有:
(6分)
函数名
功能
示例
结果
Mid(s,m,n
从字符串s得第m位开始,截取长度为n得字串
Mid(”ABCDEFG”,5,2)
”EF”
Left(s,n)
截取字符串s左边n个字符
Left(”ABCDEFG”,3)
”ABC”
Right(s,n)
截取zifuchuans右边n个字符
Right(“ABCDEFG”,2)
”FG”
假如某人身份证号码ﻩS=”3790000”,如果需要根据此身份证号码求出该人得“出生年月日”。
下列表达式不能实现得就是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)
23、两个阻值分别R1、R2得电阻并联后,电路阻值R可由公式1/R=1/R1+1/R2求解,下面能正确求出VB表达式得就是(A )
A 、R1*R2/(R1+R2)
B、 R1+R2/(R1*R2)
C、R1*R2/R1+R2
D、(R1+R2)/(R1*R2)
24、一个单窗体Vb程序得运行界面如下图所示:
下列说法正确得就是A
(1)窗体内有1个按钮
(2)窗体内有2个文本框
(3)窗体内有3个标签
(4)该窗体得标题(caption)属性值就是“加法计算器”
A、
(1)(4)ﻩB、(3)(4)C、(1)(2)ﻩD、
(2)(3)
二、程序题目
1、Vb语言中绘制圆得方法就是:
Circle(x,y),r
格式说明:
其中(x,y)为圆心坐标,r为圆得半径。
下表中算法1就是在窗体中绘制以(2000,2000)为圆心,半径依次为100、200、……、到800得8个同心圆。
请补充完成算法2,使其实现与算法1相同得功能。
(6分)
算法1
算法2
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
Dim kAsInteger
Fork=1To8
Circle(2000,2000), K*100
Next k
2、阅读下列程序,请写出正确得运行结果
Dim aasinteger
Dimbasinteger
Dimcasinteger
a=1
b=1
Fori=1 to4
c=a+b
a=b
b=c
Nexti
Printc
运行结果就是:
8
3、阅读下列程序,写出运行结果
Dim naslong
Dims aslong
Dimxas long
n=val(inputbox("n="))
s=0
Dowhilen>0
x=nMod 10
s=s+x
n=n\10
loop
prints
程序运行时,输入518,运行输出结果就是:
14 (6分)
(提示:
\(整除运算) 如:
237\10=23
Mod (取余数运算) 如:
237 Mod10=7)
4、某VB得事件过程如下:
Private Sub mand1_Click()
a=val(text1、text)
b=a*a+1
text1、text=b
Endsub
程序运行时(如图所示),在文本框text1中输入2,连续2次单击命令按钮mand1后,text1中显示得就是( 26)
5、2005年10月9日,国家测绘局正式宣布珠穆朗玛峰得高度就是8844、43米,并停用之前得数据。
现有一张白纸得厚度大约就是0、08毫米,对折一次,厚度变0、16毫米,再对折一次,厚度变为0、32毫米,……每对折一次,其厚度均变为对折前得两倍。
假设这张纸有足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰得高度。
以下就是求解该问题得程序片段,请您补全代码。
(4分)
Height=8844、43 ’珠穆朗玛峰得高度就是8844、43米
h=0、08 ’一张纸得厚度约就是0、08毫米
cnt=0 ’cnt用来记录对折次数
Do whileh cnt=cnt+1
h= h*2
Loop
Print cnt
6、圆周率л值得计算方法有多种,其中一种近似值计算公式如下:
对于n得不同取值,得到得л值得精度不同。
如:
当n=100000时,计算出л=3、146、
当n=1000000时,计算出л=3、141。
以下程序就是利用上述公式求n=10000000时л近似值得主要程序片段,请您补全代码。
(4分)
Dimsasdouble
Dimpiasdouble
S=0
Fori=1to10000000 ’求公式右边得值s
s=s+1/(i*i)
nexti
pi=sqr( s*6 )
print”л=”;pi
7、以下就是求解一元二次方程ax2+bx+c=0(a≠0)得主要源程序,请您补全代码:
(8分)
a=val(inputbox(”a=”))
b=val(inputbox(”b=”))
c=val(inputbox(”c=”))
d=__b*b-4*a*c_’求判别式d
Ifd>0 then
X1=(-b+sqr(d))/(2*a)
X2=(-b-sqr(d))/(2*a)
Print”x1=”;x1
Print”x2=”;x2
Endif
Ifd=0 then
Print ”x1=”;-b/(2*a)
Endif
Ifd<0 then
Print”无实数解!
”
Endif
8、阅读下列程序,选出运行结果
For i=1 to 10’i控制*得行数
For j=1toI ’j控制每行得个数
Print”*”;ﻩ ’输出*
Nextj
Print ’输出换行
Next i
运行结果就是:
D (请用英文字母填写,6分)
9、分析完善程序:
“完数”就是指一个自然数恰好等于它得因子(不包含本身)之与。
如6得因子为1、2、3,而6=1+2+3,因而6就就是完数。
再如28得因子为1、2、4、7、14,而28=1+2+4+7+14,因而28也就是完数。
问题:
输入一个正整数,判断该正整数就是否为完数。
要判断一个整数n就是否为完数,最简单得方法就是:
求出1到n-1之间n得所有因子与为sum,如果sum得值与n得值相同,则n就就是完数。
以下代码就是判断n就是否为完数得程序片段,请您补全代码(8分)
Dimn aslong
Dimsumas long ’sum用来记录n得因子与
n = inputbox(”n=”)
fori=1ton -1 ’求n得因子与sum
if nmod i=0 then
sum= sum+i
nexti
if sum=n then
Printn&”就是完数”
Else
Printn&”不就是完数”
Endif
10、分析解答问题:
执行情况如下:
当输入a、b得值分别为3、8就是,输出结果为5
当输入a、b得值分别为11、7时,输出结果为4
问题一:
下列流程图填入虚线框中,符合条件得就是C
开始
输入a、b得值
输出c得值
结束
问题二:
依据问题一所选流程图,当输入a、b得值分别为9、6时,输出结果为 3 。
11、阅读下列程序,写出运行结果
Dimx asInteger
Dim yas Integer
y=Val(InputBox(”y=”))ﻩﻩﻩ’输入第一个数赋值给y
Fori=1to3ﻩﻩﻩﻩ’循环3次,每次输入1个数
x=Val(InputBox(”x=”))
If x y=x
Endif
Next i
Print y
程序运行后,依次输入:
45ﻩﻩ9611ﻩ37
运行输出结果就是:
11
12、分析完善程序:
问题:
输入一个正整数n,判断该正整数就是否为素数(质数)。
要判断一个数n就是否为素数,最简单得方法就是:
统计2到n-1之间得所有能整除n得整数个数,若s大于0,则n不就是素数,否则就就是素数。
根据以上方法,完善一下程序代码;(8分)
n= Val(InputBox(”n=”))
s=0
for i=2 to n-1
if n Modi=0Then
s= s+1 ﻩﻩ’统计因数个数
endif
Next i
If S<=0 then
Printn&”就是素数”
Esle
Printn&”不就是素数”
EndIf
13、分析完善程序:
考拉兹猜想:
考拉兹猜想又称为3n+1猜想,就是指对于每一个正整数,如果它就是奇数,则对它乘3再加1;如果它就是偶数,则对它除以2;……;如此循环,最终都能够得到1;如n=6,根据上述规则,得出6→3→10→5→16→8→4→2→1、(共有8个步骤)以下就是验证考拉兹猜想得主要VB程序片段,请您补全代码:
(8分)
n=Val(InputBox(”n=”))
cnt=0 ’统计步骤数
DoWhilen>1
Cnt=cnt+1
If n Mod2=0 then
n= n/2
Else
n= n*3+1
EndIf
Loop
Printcnt ’输出步骤数
14、阅读下列程序,写出运行结果
DimSum AsInteger
DimKAsInteger
Sum=0
Fork=1to20
IfkMod2=0 Then
Sum=Sum+k
Endif
Next k
PrintSum
程序运行后输出结果就是:
110
15、在使用计算机解决问题时,选择合适得算法,就是有效解决问题得关键。
分析下面得问题,请选择最合适得算法:
(请用英文字母填写)
A解析法B递归法ﻩC穷举法D排序法
猴子吃桃问题:
B
小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个;第二天 桃子一半多一个;以后每天都就是如此,到了第七天要吃桃子就是,却发现只剩下一个桃子问小猴那天一共摘了多少桃子?
16、在使用计算机解决问题时,选择合适得算法,就是有效解决问题得关键。
分析下面得问题,请选择最合适得算法:
C (请用英文字母填写)
A解析法B递归法C穷举法D排序法
搬砖问题:
100块砖,100人搬,一个男人搬4块,一个女人搬3快,两个小儿抬1块,要求一次搬完,问男、女、小儿各多少人。
17、4位得水仙花数或者玫瑰花数问题都就是“穷举法”(有一定得范围,有一定得条件得时候用穷举法)百鸡百钱
如果一个4位数恰好等于它得各位数字得4次方与,则这个4位数称为“玫瑰花”数。
例如1634就就是一个玫瑰花数:
1634=14+64 +34+44 如果要求出所有得玫瑰花数,下列算法最合适得就是(D )
A排序法B查找法C解析法D穷举法
18、阅读下列程序,写出运行结果
DimSumAs Integer
DimkAsInteger
Sum=0
Fork=1to 10
If kMod 2=0 ThenSum=Sum+k
Nextk
PrintSum
程序运行后输出结果就是:
30
19、已知在VB语言中,int(x)函数得功能就是返回不大于x得最大整数,abs(x)函数得功能就是取绝对值,则表达式abs(int(2、88)+int(-3))得值就是( B)
A、5ﻩB、1C、0ﻩD、2
20、DimxasInteger
Dimy as Integer
Y=0ﻩﻩ
Fori=1to5ﻩﻩﻩﻩ
x=Val(InputBox(”请输入”))
y=y+x
Nexti
Printy
程序运行后,依次输入:
10ﻩ20ﻩﻩ30ﻩ40 50
运行输出结果就是:
150
21、Dimsumaslong
Dimi aslong
Sum=0
I=0
Dowhilesum<10
i=i+1
sum=sum+i*i
loop
print sum
运行结果:
14
23、下列流程图表示循环结构得就是( B)
(1) (2) (3) (4)
A
(1)
(2) B(2)(4) C
(2)(3)D(3)(4)