新颖的算法与程序设计题参考全资料Word文档格式.docx
《新颖的算法与程序设计题参考全资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《新颖的算法与程序设计题参考全资料Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
0orx<
=1
C、x>
0andx<
1D、0<
x<
1
8、已知海伦公式:
其中
,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>
bD、b+c>
11、关于算法的描述,下列选项中正确的是(B)
A、算法本身就是一种程序设计语言B、算法的每一步骤必须有确切的含义
C、算法必须有输入D、算法的步骤可以是无穷的
12、下列选项中,不属于计算机程序设计语言的是(B)
A、汇编语言B、自然语言C、高级语言D、机器语言
13、下列VB表达式中,能正确表示不等式方程的
>
1解的是(B)
A、x>
-1andx<
1B、x<
-1orx>
C、x<
-1andx>
1D、x>
-1orx<
14、下列选项中,可以作为VB程序变量名的是(B)
A、a/bB、abC、a-bD、a+b
15、以下程序段中循环体执行的次数是(A)
s=0
i=1
DoWhiles<
10
i=i+1
s=s+i*i
Loop
A、2B、4C、1D、3
16、算法的描述方法有多种,下列选项中不适合描述算法是(C)
A、流程图B、伪代码C、机器语言D、自然语言
17、下列VB程序运行时(如图所示),在文本框Text1中输入20,在文本框Text2中输入13,单击命令按钮command1后,文本框Text3中显示的容是(B)
PrivateSubCommand1_Click()
a=Val(Text1.text)
b=Val(Text2.text)
Text3.text=a+b
EndSub
A、”33”B、33C、”2013”D、2013
18、二分查找又称折半查找,是一种应用于有序数列的高效查找算法的是(D)
(1)1199517239
(2)305263717881
(3)67323831515
(4)857859521918
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、1C、0D、2
20、关于算法的描述,下列选项中正确的是(A)
A、一个算法可以没有输入
B、一个算法的执行步骤可以是无限的
C、算法只能用流程图来表示
D、一个算法,当没有输入时,也没有输出
21、下列VB表达式中:
(1)Sqr(x)
(2)Text1.text(3)Command1.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=”0”,如果需要根据此求出该人的“出生年月日”。
下列表达式不能实现的是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相同的功能。
算法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
DimkAsInteger
Fork=1To8
Circle(2000,2000),K*100
Nextk
2、阅读下列程序,请写出正确的运行结果
Dimaasinteger
Dimbasinteger
Dimcasinteger
a=1
b=1
Fori=1to4
c=a+b
a=b
b=c
Nexti
Printc
运行结果是:
8
3、阅读下列程序,写出运行结果
Dimnaslong
Dimsaslong
Dimxaslong
n=val(inputbox("
n="
))
Dowhilen>
x=nMod10
s=s+x
n=n\10
loop
prints
程序运行时,输入518,运行输出结果是:
14(6分)
(提示:
\(整除运算)如:
237\10=23
Mod(取余数运算)如:
237Mod10=7)
4、某VB的事件过程如下:
a=val(text1.text)
b=a*a+1
text1.text=b
Endsub
程序运行时(如图所示),在文本框text1中输入2,连续2次单击命令按钮Command1后,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用来记录对折次数
Dowhileh<
Height*1000
t=cnt+1
h=h*2
Printt
6、圆周率л值得计算方法有多种,其中一种近似值计算公式如下:
对于n的不同取值,得到的л值的精度不同。
如:
当n=100000时,计算出л=3.646.
当n=1000000时,计算出л=3.051。
以下程序是利用上述公式求n=10000000时л近似值的主要程序片段,请你补全代码。
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>
0then
X1=(-b+sqr(d))/(2*a)
X2=(-b-sqr(d))/(2*a)
Print”x1=”;
x1
Print”x2=”;
x2
Endif
Ifd=0then
-b/(2*a)
Ifd<
Print”无实数解!
”
8、阅读下列程序,选出运行结果
Fori=1to10’i控制*的行数
Forj=1toI’j控制每行的个数
Print”*”;
’输出*
Nextj
Print’输出换行
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分)
Dimsumaslong’sum用来记录n的因子和
n=inputbox(”n=”)
fori=1ton-1’求n的因子和sum
ifnmodi=0then
sum=sum+i
ifsum=nthen
Printn&
”是完数”
Else
”不是完数”
10、分析解答问题:
执行情况如下:
当输入a、b的值分别为3、8是,输出结果为5
当输入a、b的值分别为11、7时,输出结果为4
问题一:
下列流程图填入虚线框中,符合条件的是C
开始
输入a、b的值
输出c的值
结束
问题二:
依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果为3。
11、阅读下列程序,写出运行结果
DimxasInteger
DimyasInteger
y=Val(InputBox(”y=”))’输入第一个数赋值给y
Fori=1to3’循环3次,每次输入1个数
x=Val(InputBox(”x=”))
Ifx<
ythen
y=x
Endif
Printy
程序运行后,依次输入:
45961137
运行输出结果是:
11
12、分析完善程序:
输入一个正整数n,判断该正整数是否为素数(质数)。
要判断一个数n是否为素数,最简单的方法是:
统计2到n-1之间的所有能整除n的整数个数,若s大于0,则n不是素数,否则就是素数。
根据以上方法,完善一下程序代码;
n=Val(InputBox(”n=”))
fori=2ton-1
ifnModi=0Then
s=s+1’统计因数个数
endif
IfS<
=0then
Printn&
”是素数”
Esle
Printn&
”不是素数”
EndIf
13、分析完善程序:
考拉兹猜想:
考拉兹猜想又称为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>
Cnt=cnt+1
IfnMod2=0then
n=n/2
Else
n=n*3+1
EndIf
Printt’输出步骤数
14、阅读下列程序,写出运行结果
DimSumAsInteger
DimKAsInteger
Sum=0
Fork=1to20
IfkMod2=0Then
Sum=Sum+k
PrintSum
程序运行后输出结果是:
110
15、在使用计算机解决问题时,选择合适的算法,是有效解决问题的关键。
分析下面的问题,请选择最合适的算法:
(请用英文字母填写)
A解析法B递归法C穷举法D排序法
猴子吃桃问题:
小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个;
第二天桃子一半多一个;
以后每天都是如此,到了第七天要吃桃子是,却发现只剩下一个桃子问小猴那天一共摘了多少桃子?
16、在使用计算机解决问题时,选择合适的算法,是有效解决问题的关键。
C(请用英文字母填写)
搬砖问题:
100块砖,100人搬,一个男人搬4块,一个女人搬3快,两个小儿抬1块,要求一次搬完,问男、女、小儿各多少人。
17、4位的水仙花数或者玫瑰花数问题都是“穷举法”(有一定的围,有一定的条件的时候用穷举法)百鸡百钱
如果一个4位数恰好等于它的各位数字的4次方和,则这个4位数称为“玫瑰花”数。
例如1634就是一个玫瑰花数:
1634=14+64+34+44如果要求出所有的玫瑰花数,下列算法最合适的是(D)
A排序法B查找法C解析法D穷举法
18、阅读下列程序,写出运行结果
Fork=1to10
IfkMod2=0ThenSum=Sum+k
30
19、已知在VB语言中,int(x)函数的功能是返回不大于x的最大整数,abs(x)函数的功能是取绝对值,则表达式abs(int(2.88)+int(-3))的值是(B)
20、DimxasInteger
Y=0
Fori=1to5
x=Val(InputBox(”请输入”))
y=y+x
程序运行后,依次输入:
1020304050
运行输出结果是:
150
21、Dimsumaslong
Dimiaslong
Sum=0
I=0
Dowhilesum<
10
i=i+1
sum=sum+i*i
loop
printsum
运行结果:
14
23、下列流程图表示循环结构的是(B)
(1)
(2)(3)(4)
A
(1)
(2)B
(2)(4)C
(2)(3)D(3)(4)