最新算法与程序设计题参考资料.doc
精品文档,仅供学习与交流,如有侵权请联系网站删除算法与程序设计试题一、选择题:1、VB程序中“Dim n As Integer”这条语句的作用是(B )A、定义一个数据输入方法B、定义一个变量C、定义一个数据处理方法D、定义一个事件过程2、一元二次方程ax2+bx+c=0(a0)的两个实数根分别为:下列表达式正确的是( B )A、x2=-b-sqr(b2-4*a*c)/(2*a)B、x2=(-b-sqr(b2-4*a*c)/(2*a)C、x1=(-b+sqr(b2-4ac)/(2*a)D、x1=-b+sqr(b2-4*a*c)/(2*a)3、长度分别为a、b、c的三条线段,能够组成三角形的条件是(D ) A、a+b>c And a+c>b Or b+c>a B、a+b>c Or a+c>b Or b+c>a C、a+b>c Or a+c>b And b+c>a D、a+b>c And a+c>b And b+c>a4、下列关于算法的描述,正确的是(D) A、算法就是数值计算的方法 B、描述算法的方法只有流程图 C、同一种算法只能用一种程序语言来实现 D、算法是描述解决问题的方法和步骤5、编制计算机程序解决问题的一般过程是:分析问题、编写程序、调试运行、设计算法。B A、正确B、错误6、下列问题不能用算法描述的是(D) A、已知圆锥的底面半径和高,求表面积和体积 B、计算某班英语平均分 C、求一元二次方程ax2+bx+c=0(a0)的两个实数解 D、求方程y=2X+1的所有整数解7、在VB语言中表示“x属于区间(0,1”的正确表达式是( A ) A、0<x and x<=1B、x>0 or x<=1 C、x>0 and x<1D、0<x<18、已知海伦公式:其中,a、b、c分别为 三角形的三条边长。利用海伦公式求三角形面积的算法属于( D ) A、穷举法B、排序法C、查找法D、解析法9、用计算机编程来求解某一方程的解,通常的步骤是(A ) A、分析问题设计算法编写程序调试运行检测结果 B、编写程序调试运行 C、设计算法编写程序 D、编写程序调试程序检测结果10、如果输出三条线段的长分别为a、b、c,且已知abc,请问这三条线段能否构成三角形,仅需下列选项中的哪个判定条件即可?( B) A、其他选项都不对 B、a +b>c C、a+c>bD、b+c>a11、关于算法的描述,下列选项中正确的是( B ) A、算法本身就是一种程序设计语言B、算法的每一步骤必须有确切的含义 C、算法必须有输入D、算法的步骤可以是无穷的12、下列选项中,不属于计算机程序设计语言的是( B ) A、汇编语言B、自然语言C、高级语言D、机器语言13、下列VB表达式中,能正确表示不等式方程的>1解的是( B ) A、x>-1 and x<1B、x<-1 or x>1 C、x<-1 and x>1D、x>-1 or x<114、下列选项中,可以作为VB程序变量名的是( B ) A、a/bB、abC、a-bD、a+b15、以下程序段中循环体执行的次数是(A )s=0i=1Do While s<10i=i+1s=s+i*iLoopA、2B、4C、1D、316、算法的描述方法有多种,下列选项中不适合描述算法是( C )A、流程图B、伪代码C、机器语言D、自然语言17、下列VB程序运行时(如图所示),在文本框Text1中输入20,在文本框Text2中输入13,单击命令按钮command1后,文本框Text3中显示的内容是(B )Private Sub Command1_Click() a=Val(Text1.text)b=Val(Text2.text)Text3.text=a+bEnd SubA、”33”B、33C、”2013”D、201318、二分查找又称折半查找,是一种应用于有序数列的高效查找算法 的是( D )(1) 11 99 5 17 239 (2) 305263717881(3) 67323831515(4) 857859521918A、(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、220、 关于算法的描述,下列选项中正确的是( 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=”370102199602190000”,如果需要根据此身份证号码求出该人的“出生年月日”。下列表达式不能实现的是 D ( )(单选)AMid(s,7,8) BRight(Left(s,14),8)CMid(s,7,4)+Mid(s,11,2)+Mid(s,13,2)DLeft(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+R2D 、(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算法2Circle (2000,2000),100Circle (2000,2000),200Circle (2000,2000),300Circle (2000,2000),400Circle (2000,2000),500Circle (2000,2000),600Circle (2000,2000),700Circle (2000,2000),800Dim k As IntegerFor k=1 To 8 Circle(2000,2000), K*100 Next k2、阅读下列程序,请写出正确的运行结果 Dim a as integer Dim b as integer Dim c as integer a=1 b=1 For i=1 to 4 c=a+ba=bb=cNext iPrint c运行结果是: 8 3、阅读下列程序,写出运行结果Dim n as longDim s as longDim x as longn=val(inputbox("n=")s=0Do while n>0 x=n Mod 10 s=s+x n=n10loopprint s程序运行时,输入518,运行输出结果是: 14 (6分)(提示: (整除运算) 如:23710=23Mod (取余数运算) 如:237 Mod 10=7)4、某VB的事件过程如下:Private Sub Command1_Click()a=val(text1.text)b=a*a+1text1.text=bEnd sub程序运行时(如图所示),在文本框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用来记录对折次数Do while h<Height*1000 cnt=cnt+1 h= h*2 LoopPrint cnt6、圆周率值得计算方法有多种,其中一种近似值计算公式如下:对于n的不同取值,得到的值的精度不同。如: 当n=100000时,计算出=3.14158310432646. 当n=1000000时,计算出=3.14159169866051。以下程序是利用上述公式求n=10000000时近似值的主要程序片段,请你补全代码。(4分)Dim s as doubleDim pi as doubleS=0For i=1 to 10000000 求公式右边的值ss=s+1/(i*i)next ipi=sqr( s*6 )print”=”;pi7、以下是求解一元二次方程ax2+bx+c=0(a0)的主要源程序,请你补全代码:(8分)a=val(inputbox(”a=”)b=val(inputbox(”b=”)c=val(inputbox(”c=”)d=_b*b-4*a*c_求判别式dIf d>0 then X1=(-b+sqr(d)/(2*a)X2=(-b-sqr(d)/(2*a)Print ”x1=”;x1Print ”x2=”;x2End ifIf d=0 thenPrint ”x1=”;-b/(2*a)End ifIf d<0 then Print ”无实数解!” End if8、阅读下列程序,选出运行结果For i=1 to 10 i控制*的行数 For j=1 to I j控制每行的个数 Print ”*”; 输出*Next jPrint 输出换行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分)Dim n as longDim sum as long sum用来记录n的因子和n = inputbox(”n=”)for i=1 to n -1 求n的因子和sumif n mod i=0 then sum= sum+i next iif sum=n thenPrint n&”是完数”ElsePrint n&”不是完数”End if10、分析解答问题:执行情况如下: 当输入a、b的值分别为3、8是,输出结果为5 当输入a、b的值分别为11、7时,输出结果为4问题一:下列流程图填入虚线框中,符合条件的是 C 开始输入a、b的值输出c的值结束问题二:依据问题一所选流程图,当输入a、b的值分别为9、6时,输出结果为 3 。11、阅读下列程序,写出运行结果Dim x as IntegerDim y as Integery=Val(InputBox(”y=”)输入第一个数赋值给yFor i=1 to 3循环3次,每次输入1个数 x= Val(InputBox(”x=”) If x<y then y=x End ifNext iPrint y程序运行后,依次输入:45961137运行输出结果是: 11 12、分析完善程序:问题:输入一个正整数n,判断该正整数是否为素数(质数)。要判断一个数n是否为素数,最简单的方法是:统计2到n-1之间的所有能整除n的整数个数,若s大于0,则n不是素数,否则就是素数。根据以上方法,完善一下程序代码;(8分)n= Val(InputBox(”n=”)s=0for i=2 to n-1 if n Mod i=0 Thens= s+1 统计因数个数end ifNext iIf S<=0 then Print n &”是素数”EslePrint n &”不是素数”End If13、分析完善程序:考拉兹猜想:考拉兹猜想又称为3n+1猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1;如果它是偶数,则对它除以2;如此循环,最终都能够得到1;如n=6,根据上述规则,得出63105168421.(共有8个步骤)以下是验证考拉兹猜想的主要VB程序片段,请你补全代码:(8分) n= Val(InputBox(”n=”)cnt=0 统计步骤数 Do While n>1 Cnt=cnt+1 If n Mod 2 =0 then n= n/2 Elsen= n*3+1 End IfLoopPrint cnt 输出步骤数14、阅读下列程序,写出运行结果Dim Sum As IntegerDim K As IntegerSum=0For k=1 to 20 If k Mod 2=0 ThenSum=Sum+kEnd ifNext kPrint Sum程序运行后输出结果是: 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、阅读下列程序,写出运行结果Dim Sum As IntegerDim k As IntegerSum=0For k=1 to 10 If k Mod 2=0 Then Sum=Sum+kNext kPrint Sum程序运行后输出结果是: 30 19、已知在VB语言中,int(x)函数的功能是返回不大于x的最大整数,abs(x)函数的功能是取绝对值,则表达式abs(int(2.88)+int(-3)的值是( B )A、5B、1C、0D、220、Dim x as IntegerDim y as IntegerY=0For i=1 to 5 x= Val(InputBox(”请输入”) y=y+xNext iPrint y 程序运行后,依次输入:10203040 50 运行输出结果是: 150 21、Dim sum as long Dim i as long Sum=0 I=0 Do while sum <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)【精品文档】第 14 页