算法与程序设计会考真题_第1页
算法与程序设计会考真题_第2页
算法与程序设计会考真题_第3页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1, 分析并完善程序:考拉兹猜想:又称为 3n+1猜想,指的是对于给定的每个正整数n,经过一系列的有限次变化后,最终都能变为了:如果它是偶数,则对它除以2,如果它是奇数,则对它乘3再加1;如此循环,直到得到位为止。例如:n=6,根据上述需要8次变换后得1 ,变换过程:6-3-10-5-16-8-4-2-1 。以下是验证考拉兹猜想的主要程序片段,请你补全代码,Dim n As LongDim ent AS Long '变换次数 entn=Val(lnputBox( n= ”)'输入正整数 nent=0Do While n>1ent=ent+1变换次数累加If n Mod 2

2、=0 Thenn=n/2Elsen=_3*n+1en difLoopPrint ent输出变换次数2, 输入一个正整数 n,判断该正整数是否为素数(质数)。要判断一个数n是否为素数,最简单的方法是, 统计2到n-1之间的所有能整除 n的整数个数s若s大于0,则n不是素数,否则是素数,根据以上方法, 完善以下程序代码:N= val(lnputBox( “ n=)"S=0For i=2 to n-1If n mod i=0 The nS=_s+1'统计因数个数En difNext iIfs<=0ThenPrint n & "是素数"ElsePri

3、nt n & "不是素数"End if3, VB语言中绘制圆的方法是:Cirele(x,y),r格式说明:其中(x,y)为圆心坐标,r为圆的半径。下表中算法 1是在窗体中绘制以(2000, 2000)为圆 心,半径依次为100,200,800的8个同心圆。请补充完成算法 2,使其实现与算法1相同的功能。(6 分)算法1算法2Ciele(2000,2000),100Ciele(2000,2000),200Ciele(2000,2000),300Ciele(2000,2000),400Ciele(2000,2000),500Ciele(2000,2000),600Cie

4、le(2000,2000),700Dim k As In tegerFor k= 1 to 8Ciele(2000,2000),k*100Next kCiele(2000,2000),8004, “完数”是指一个自然数恰好等于它的因子(不包含本身)的和,如6的因子为1, 2, 3,而6=1+2+3 ,因而6就是“完数”,如28=1+2+4+7+14问题:输入一个正整数 n,判断该数是否为“完数”要判断一个整数 N是否为“完数”,最简单的方法是:求出现1到n-1之间n的所有因子和为sum,如果sum的值和n的值相同,则n就是完数。以下代码是判断n是否为完数的程序片段,请补全代码:Dim n as

5、 longDim sum as long量级 SUM用来记录N的因子和N= in putBox( n=")For I = 1 to n-1'求 N 的因子和 SUMIf n modi = 0 the n sum = sum+iNext IIfsum=nthe nPrint n &是完数”ElsePrint n & ”不是完数”5,2005年10月9 日,国家测绘局正式宣布珠穆朗玛峰的高度是8848.43米,并停用之前的数据,现有一长白纸的厚度大约是0.08毫米,对折一次,厚度变为0.16毫米,每对折一次,厚度变为折前的两倍。假设这长纸足够大,可对折任意次,那么

6、这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度。以下是求解该问题的程序片段,请补全代码:Dim height as double 定义珠穆朗玛峰的高度Dim h as double'定义一张纸的厚度Dim ent as long'定义对折次数Height=8844430H=0.08Cnt=_0Do while h<heightCn t=ent+1h=_2*h_ 或 2Aent*0.008LoopPrint ent26, 以下是求解一元二次方程aX +bx+e=0(a工0)的主要VB程序片段,请补全代码:a=val(inputbox( a=")b= val(

7、inputbox( b=")e=val( in putbox( e=")d=b*b-4*a*c 求判另U式If d>0 thenX1= (-b+sqrt(d)/(2*a)X2=(-b-sqrt(d)/(2*a)Print x仁"x1Print ”x2=”;x2End ifIfd=0thenPrint x= ”;-b/(2*a)EndifIf d<0 thenPrint “无实数解! ”Endif7, 选择算法解决问题;在使用计算机解决问题时,选择合适的算法是有效解决问题的关键。分析下面的问 题,请选择合适的算法: 穷举法 (填:解析法 /穷举法 /递归

8、法 /排序法, 6分 )搬砖问题: 100 块砖, 100 人搬,一个男人搬 4 块,一个女人搬 3 块,两个小儿抬 1 块,要求一次全搬完, 问需男、女、小儿各多少人。8,分析下面的问题,选择合适的算法(填:解析法/递归法 /穷举法 /排序法) 递归法 猴子吃桃问题:小猴有一天摘了若干个桃子,它非常贪吃,当天就吃掉了一半还多一个,第二天接着剩下 的一半多一个,以后每天都是如此,到了第七天要吃桃子时,却发现只剩下 1 个,问小猴子那天一共摘了 多少个桃子。9, 分析程序,得出结果:Dim sum as longDim I as longSum=0I=0Do while sum<10I=i

9、+1Sum=sum+i*iLoopPrint sum运行结果是: _1410, 分析程序,得出结果Dim n as longDim s as longDim x as longN=val(inputbox( “n=”)S=0Do while n>0X=n mod 10S=s+xN=n10LoopPrint s程序运行时,输入 518,运行输出结果是: 14(6 分)(提示:(整除运算)如:23710=23;mod(取余数运算)如:237 mod 10=7)11, 分析程序,得出结果Dim sum as integerDim k as integerSum=0For k=1 to 10If

10、 k mod 2=0 then sum=sum+kNext kPrint sum程序运行后输出结果是: 3012, 分析程序,得出结果Dim x as in tegerDim y as in tegerY=0For I =1 to 5X=val(inputbox(请输入”)Y=y+xNext IPrint y程序运行后,依次输入:10 20 3040(650分)。运行输出的结果是:15013,程序段:for I =1 to 10'控制*的行数for j=1 to IJ控制每行*的个数print * ”输出*n ext jprint'输出换行next i运行结果是D(填:A/B/

11、C/D)*+*+*,*+*#*+*+* * *屮*屮*+水hJL*4TP'* * Mlcaikm* sT* "T5*耶屮半申年klfaalji hla"T*1*水屮屮*=5! 0*亦JC 3fCifcijgi laiIjlXjiJLij iiiTfr flpi fJb ifisThHfi*ABCD14,在VB语言中常用的字符串截取函数有:函数名功能示例结果Mid(s,m, n)从字符串S的第M位开始,截取长度 为N的子串Mid( ABCDEFG ”,5,2)EF”Left(s ,n)截取字符串S左边N个字符Left( ABCDEFG ”,3)ABC”Right(s,

12、 n)截取字符串S右边N个字符Right( ABCDEFG ”,2)FG”。下假如某人身份证号码s=' ”,如果需要根据此身份证号码求出该人的“出生年月日列四个表达式中不能实现的一个是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)15,下图所示的算法流程图:(6分)执行情况如下:当输入 a,b的值为3、8时,输出结果为5当输入a,b的值为11、7时,输出结果为4开始输入a,b的值输出c的值A/B/C)结束<>问题一:下列流程图填入

13、虚线框中,符合条件的是:C(填:BAC问题二:依据问题一所选流程图,当输入a,b的值分别为9, 6时,输出结果为 3部分选择题:1下列选项中,可以作为VB程序变量名的是(D)A、a+b B、a/b C、a-bD、ab2, 下列程序执行后,变量s的值是(B )S=0For I =1 to 10S=s+iNext iA、 1 B、 55 C、 10 D、 03, 长度分别是a,b,c的三条线段,能够组成三角形的条件是(A )A、a+b>c and a+c>b and b+c>aB、a+b>c or a+c>b or b+c>aC、 a+b>c and a+

14、c>b or b+c>a D、a+b>c or a+c>b and b+c>aA, x>-1 and x<1B,x>1 or x<-1C,x>-1 or x<1D,x>1 and x<-15, 已知海伦公式其中:a、b、c分别为三角形的三条边长,利用海伦公式求三角形的面积的算法属于(B )A、查找法B、解析法C、穷举法D、排序法6, 如果一个4四位数恰好等于它的各位数字的确4次方各,则这个4位数称为“玫瑰花”数。例如1634就是一个玫瑰花数,1634=1 4+64+34+44。如果要求出所有的玫瑰花数,下列算法最合适

15、的是(D )A、排序法B、解析法C、查找法D、穷举法Elia 3UD7, 下列VB程序运行时(如图所示),在文本框Textl中输入20,在文本框Text2中输入13,单击命令按钮Command1后,文本框 Text3中显示的内容是(B )Private sub Comma nd1_click()a=val(text1.text)b=val(text2.text)text3.text=a+bEnd subA、”2013”B、33C、2013 D、”33”8, 下列关于算法的描述错误的是(A)A、一个有效的算法至少要有一个或多个输入B、算法必须在有限步骤实现C、算法是解决某一问题的方法和步骤D、算

16、法可以使用自然语言、伪代码、流程图等多种不同的方法来描述9, 下列 VB 表达式中:(1)sqr(x) (2)Text1.text (3)Command1.caption (4) ”45”+”34”(5)45+34 值为字符串类 型的是(D)A,2、4、5 B,1、3、5 C,1、2、3 D,2、3、410, 下列选项中,不属于计算机程序设计语言的是(B )A、汇编语言 B、自然语言 C、高级语言 D、机器语言11,VB程序中“ dim n as integer"这条语句的作用是( A )A、定义一个变量 E、定义一个事件过程C、定义一个数据处理方法论D、定义一个数据输入方法12、关

17、于算法的描述,下列选项中正确的是(B )A、算法必须有输入E、算法的每一步骤必须有确切的含义C、算法的步骤可以是无穷的D、算法本身就是一种程序设计语言13、二分查找又称为折半查找,是一种应用于有序数列的高效查找算法。下列数列中适合二分查找算法 的是(B )A、11 99 5 17 2 39 E、85 78 59 53 19 18 C、30 52 43 71 78 81 D、67 62 68 6 15 1514、 如果给出一条线段的长分别为a、b、c,且已知aw b< c,要问这一条线段能否构成三角形,仅需下列选项中的哪个判定条件即可?(C )A、b+c>a B、a+c>b C

18、、a+b>cD、其他选项都不对15、已知在VB语言中,int(x)函数的功能是返回不大于x的最大整数,abs(x)函数的功能是返回x的绝对值,则表达式int(2.88)+abs(-3)的值是(A )b + AacxL=2aA、5B、6 C、0 D、116, 一元二次方程ax2+bx+c=0( a* 0)的两个实数根分别为列表达式正确的是(C )A、x2=-b-sqr(bA2-4*a*c)/(2*a)C、x2=(-b-sqr(bA2-4*a*c)/(2*a)17,在VB语言中,字符串运算符B、x1= (-b+sqr(bA2-4ac)/(2*a)D、x1= -b+-sqr(bA2-4*a*c

19、)/(2*a)+”和“ & “的作用是把两个或多个字符串连接成一个字符串。则表达 式“ 20” + “13” & “20+13的运算结果是(D)D、 ”201320+13A、 ”332013”B、 ”3333”C、 ”201333”1 1 118,两个阻值分别为 R1、R2的电阻并联后,电路阻值R可由公式一 ”-求解,下面能正确求出 R的VB表达式是(D )。A、R1 +R2/(R1*R2)B、R1*R2 / R1+R219, 关于算法的描述,下列选项中正确的是( A、一个算法的执行步骤可是无限的C、一个算法,当没有输入时,也没有输出20, 下列问题不能用算法描述的是(AA、求方程y=2x+1的所有整数解C、计算某班英语平均分C、 (R1+R2)/(R1*R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论