2009年春上机试卷(01)本试卷完成时间为70分钟【考试须知】1.改错题的界面不作要求,主要是用来调试程序,若题目中有参考界面,则仅作参考。2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。3.程序代码应缩行书写(呈锯齿型)。一.改错题(14分)【题目】本程序的功能是:把10~20范围内的数分别表示成若干质因子连乘的形式。程序界面参见如下图:OptionexplicitOptionbase1Privatesubcommand1_click()Dimjasinteger,pf()asinteger,IasintegerDimstasstringFori=10to20Callprime_f(i,pf)st=cstr(i)&”=”forj=1toubound(pf)st=st&str(pf(j))&”*”nextjst=st&str(pf(j))list1.additemstnextiendsubprivatesubprime_f(nasinteger,a()asinteger)dimIasinteger,kasintegeri=2doifnmodi=0thenk=k+1redimpreservea(k)a(k)=in=n\ielsei=i+1endifloopuntiln=0endsub【要求】1.新建工程输入上述代码,改正程序中的错误。2.改错时,不得增减或删除语句,但可调整语句位置。3.将窗体文件和工程文件命名为F1和P1,并保存到T盘的根目录下。二.编程题(26分)【题目】编写程序找出介于M、K(M100,K10000)之间的勾股弦数。设N是介于M、K之间的正整数,它的第一位数字依次为a、b,最后一位(或两位)是c,若a^2+b^2=c^2,则这样的数N称为勾股弦数.【编程要求】1.程序界面参见下图:编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。2.运行程序,首先在文本框M和K中输入查找范围,然后按“运行”按钮,在列表框中以指定格式输出查找结果,若指定区间无勾股弦数,则输出“无勾股弦数!”信息;按“清理”按钮,将文本框和列表框清空,焦点置于文本框M上;按结束按钮,结束程序运行。3.程序中应定义一个通用过程,用于将一个整数按给定规则分解成三个数,并验证其是否为勾股弦数。【算法提示】注意,三角形的边长不得为0.【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。2009年(春)上机试卷(02)(本试卷完成时间为70分钟)【考试须知】4.改错题的界面不作要求,主要是用来调试程序,若题目中有参考界面,则仅作参考。5.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。6.程序代码应缩行书写(呈锯齿型)。一.改错题(14分)【题目】下面的程序的功能是:找出100以内的所有因子(包括1和本身)之和为一个完全平方数的正整数,并按图中所示格式将结果显示在列表框中。程序界面参见如下图。OptionexplicitOptionbase1Privatesubcommand1_click()DimIasinteger,jasintegerDimf()asinteger,sumasintegerDimsasstringFori=3to100Iffac(I,F,sum)thenSum=0S=I&”:”Forj=1toubound(F)S=S&F(j)&“+”NextjList1.additems&F(j)&“=”&sum&“=”&sqr(sum)&“^2”EndifNextiEndsubPrivatefunctionfac(kasinteger,a()asinteger,sumasinteger)asBooleanDimnasinteger,jasintegerForn=1tokIfkmodn=0thenJ=j+1Redima(j)A(j)=nSum=sum+nEndifNextnIfsum=int(sqr(sum))^2thenfac=trueEndfunction【要求】4.新建工程输入上述代码,改正程序中的错误。5.改错时,不得增减或删除语句,但可调整语句位置。6.将窗体文件和工程文件命名为F1和P1,并保存到T盘的根目录下。二.编程题(26分)【题目】编写程序,随机生成15个10~100之间的整数,找出其中所有的素数以及最大的素数.【编程要求】4.程序界面参见下图:编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。5.运行程序,按“运行”按钮,生成15个随机数存放到数组中,并显示在文本框1中;找出其中的素数输出到列表框中;再找出最大的素数在文本框2中显示;按“清除”按钮,将文本框和列表框清空;按”结束”按钮,结束程序运行。6.程序中应定义一个prime的通用过程,用于验证一个数是否为素数。【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。2009年春上机试卷(03)(本试卷完成时间为70分钟)【考试须知】7.改错题的界面不作要求,主要是用来调试程序,若题目中有参考界面,则仅作参考。8.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。9.程序代码应缩行书写(呈锯齿型)。一.改错题(14分)【题目】本程序的功能是生成20个不可约真分数,每行5个显示在列表框中。要求分子和分母均为两位正整数且分数中没有相同数字。提示:不可约真分数是指分子小于分母并且分子和分母除1以外没有其他公约数。程序界面参见下图。Privatesubcommand1_click()Dimfzasinteger,fmasinteger,jsasintegerRandomizeDoFz=int(90*rnd)+10Fm=int(90*rnd)+10IffzfmthenIfvalidate(fz,fm)thenText1=text1&fz&“/”&fm&“”Js=js+1Ifjsmod5=0thentext1=text1&vbcrlfEndifEndifLoopuntiljs=20EndsubPrivatefunctionvalidate(fzasinteger,fmasinteger)asBooleanDimnasinteger,Iasinteger,sasstringForn=2tofzIffzmodn=0andfmmodn=0thenexitforNextnS=fz+fmFori=1tolen(s)-1Forn=i+1tolen(s)Ifmid(s,I,1)=mid(s,n,1)thenExitfunctionEndifNextnNextiValidate=trueEndfunction【要求】7.新建工程输入上述代码,改正程序中的错误。8.改错时,不得增减或删除语句,但可调整语句位置。9.将窗体文件和工程文件命名为F1和P1,并保存到T盘的根目录下。二.编程题(26分)【题目】编写程序,找出1000---9999范围内的所有满足”各位数字的四次方之和等于它本身”的四位数.【编程要求】7.程序界面参见下图:编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。8.运行程序,首先在文本框m和n中输入查找范围,然后按“运行”按钮,找出1000~9999之内满足条件的数,并按图示格式显示在多行文本框中;按“清除”按钮,将所有的文本框清空,焦点置于文本框m上;按结束按钮,结束程序运行。9.程序中应定义一个名为pd的函数过程,用于判断一个数各位数字的四次方和等于它本身。【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。2009年春上机试卷(04)(本试卷完成时间为70分钟)【考试须知】1.改错题的界面不作要求,主要是用来调试程序,若题目中有参考界面,则仅作参考。2.考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。3.程序代码应缩行书写(呈锯齿型)。三.改错题(14分)【题目】本程序的功能是:随机生成5组数,每组数由5个3位数组成,要求每个数必须且只能含有一个数字8,程序界面参见下图。OptionexplicitOptionbase1Privatesubcommand1_click()Dima(5)asintegerDimIasinteger,jasinteger,sasstringS=””Fori=1to5J=1Dowhilej=5a(j)=int(100+rnd*900)ifint8(a(i))thenj=j+1endifloopforj=1to5s=s&“”&a(j)nextjlist1.additemsnextiendsubprivatefunctionint8(nasinteger)asBooleandimIasinteger,jsasintegerdountiln=0ifnmod10=8thenjs=js+1endifn=n\10loopifjs=1thenin8=trueendfunction【要求】1.新建工程输入上述代码,改正程序中的错误。2.改错时,不得增减或删除语句,但可调整语句位置。3.将窗体文件和工程文件命名为F1和P1,并保存到T盘的根目录下。四.编程题(26分)【题目】编写程序,找出介于A、B之间的所有只有素数因子(1和自身除外)的数。例如106只能被2和53整数,而2和53都是素数,所有106是符合要求的数。【编程要求】1.程序界面参见下图:编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。2.运行程序,首先在文本框A和B中输入查找范围,然后按“查找”按钮,把结果输出到列表框中;按“清除”按钮,将文本框和列表框清空,焦点置于文本框A上;按结束按钮,结束程序运行。3.程序中应定义一个prime的函数过程,用于判断一个数是否为素数。【算法提示】自身是素数或含有非素数因子的数都不符合要求,应排除。【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下。2009年春上机试卷(05)(本试卷完成时间为70分钟)【考试须知】1改错题的界面不作要求,主要是用来调试程序,若题目中有参考界面,则仅作参考。2考试结束后,文件必须存放在指定位置,否则适当扣分;考试盘中若无指定文件,则不予评分。3程序代码应缩行书写(呈锯齿型)。一.改错题(14分)【题目】本程序的功能是:生成12个只有两个相同数字的3位随机整数。例如797就是满足条件的数。程序界面参见下图。OptionexplicitOptionbase1Privatesubcommand1_click()Dimkasinteger,nasinteger,num()asinteger,IasintegerDoN=int(rnd*900)+100Ifvalidate(n)thenK=k+1Redimnum(k)Num(k)=nEndifLoopuntilk=12Fori=1toubound(num)IfImod40thenText1=text1&str(num(i))ElseText1=text1&str(num(i))&vbcrlfEndifNextiEndsubPrivatefunctionvalidate(nasinteger)asBooleanDimp(3)asinteger,Iinteger,jasinteger,kasintegerDoI=i+1P(i)=nmod10N=n\10Loopuntiln0Fori=1toubound(p)-1Forj=i+1toubound(p)Ifp(i)=p(j)thenk=k+1NextjNextiIfk=1thenvalidate=trueEndfunction【要求】1新建工程输入上述代码,改正程序中的错误。2.改错时,不得增减或删除语句,但可调整语句位置。3.将窗体文件和工程文件命名为F1和P1,并保