程序设计题目Word格式文档下载.docx
《程序设计题目Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《程序设计题目Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
Nexti
_____=str(s)
EndSub
问:
(1)为了计算上述表达式的值,上面程序段划线处应填入_________。
(2)该程序段运行后,a(5)的值是____________。
用辗转相除法求最大公约数。
已知用辗转相除法求两个正整数m、n的最大公约数的算法如下:
(用num1,num2,r分别表示被除数m、除数n和余数)
①求num1/num2的余数r;
②若r=0,则执行第⑤步;
③将num2的值放在num1中,将r的值放在num2中;
④重新执行第①步;
⑤输出最大公约数num2。
下列VisualBasic程序用于求三个正整数的最大公约数。
程序界面如图所示,在文本框Text1、Text2和Text3中分别输入三个数a、b和c,单击“求最大公约数”按钮(Command1)后,在文本框Text4中输出a、b、c的最大公约数y。
Functiontemp(num1asInteger,num2asInteger)asInteger
DimrasInteger'
此函数用于计算两个正整数的最大公约数
r=num1Modnum2
DoWhile②
num1=num2
num2=r
r=num1Modnum2
Loop
temp=num2
EndFunction
DimaasInteger,basInteger,casInteger,xasInteger,yasInteger
a=Val(Text1.Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
x= ③
y=temp(x,c)
Text4.Text=Str(y)
(1)解决此问题的算法是①。
(选填:
解析法或枚举法)
(2)在程序划线处,填入适当的语句或表达式,把程序补充完整:
程序中②划线处应填入___________________。
程序中③划线处应填入___________________。
m=-5
n=-2
s=m+Int(n)
该程序段运行后,变量s的值为____________。
a=10
b=8
morning"
Label1.Caption="
byebye"
s=0
Fori=1To10Step2
a=a+i
s=a*i
Nexti
该程序段运行后,
(1)变量i的值是____________。
(2)变量s的值是___________。
某超市打折促销,规定如下:
①购物未超过500元按原价支付;
②购物超过500元但未超过1000元,超过500元部分按9折优惠计价;
③购物超过1000元但未超过1500元,超过1000元部分按8折优惠计价;
④购物超过1500元但未超过3000元,超过1500元部分按7折优惠计价;
⑤购物超过3000元,超过3000元部分按6折优惠计价。
根据以上规定,假定购物货款为x元,则实付金额y为:
xx≤500
500+(x-500)*0.9500<x≤1000
y=500+500*0.9+(x-1000)*0.81000<x≤1500
500+500*0.9+500*0.8+(x-1500)*0.71500<x≤3000
500+500*0.9+500*0.8+1500*0.7+(x-3000)*0.6X>3000
程序界面如图所示,在“输入购物金额(单位:
元)”后的文本框orgtext中输入购物金额(单位:
元),单击“实付金额计算”按钮(Command1)后,在“实际支付金额(单位:
元)为”后的文本框cashText中输出实付金额。
解决此问题相应的VisualBasic程序如下:
DimxAsSingle,yAsSingle
x=Val(orgtext.Text)
Ifx<
=500Then
y=x
ElseIf②Then
y=500+(x-500)*0.9
ElseIfx<
=1500Then
y=500+500*0.9+(x-1000)*0.8
=3000Then
y=500+500*0.9+500*0.8+(x-1500)*0.7
y=500+500*0.9+500*0.8+1500*0.7+(x-3000)*0.6
EndIf
③
(1)解决此问题的算法是①。
(选填:
解析法或枚举法)
(2)在程序划线处,填入适当的语句或表达式,把程序补充完整。
程序中②划线处应填入___________________。
程序中③划线处应填入___________________。
m="
sch"
n=Mid("
tools"
2,3)
s=m+n
该程序段运行后,变量s的值为__________。
a=3:
b=4:
c=5
bAndb>
cThen
happy"
better"
DimiAsInteger,sAsInteger
i=1:
a=5
DoWhilei<
=100
s=s+a*i
i=i*5
(2)变量s的值为____________。
要求从某一字符串中删除指定的字符(假设所含的英文字母均为小写字母),并将处理后的字符串重新输出。
程序界面如图所示,在文本框Text_1中输入原始字符串,在文本框Text_2中输入需要删除的字符,单击“删除此字符”按钮(Command1)后,在文本框Text_3中输出处理后的结果。
解决此问题的算法流程图如图所示,相应的VisualBasic程序如下:
DimpAsString,kAsString
DimsAsInteger,resultAsString,flagAsBoolean
result="
"
p=Text_1.Text
k=Text_2.Text
Fors=1ToLen(p)
flag=f(s)
IfNotflagThen
result=result+②
Nexts
③
Functionf(sAsInteger)AsBoolean
IfMid(p,s,1)=kThenf=True
(1)解决此问题的算法是①。
顺序查找或对分查找)
a=-1:
b=2
c=3Modb
b=b+c
该程序段运行后,变量b的值为______。
a=13:
b=24:
bOrb>
monday"
tiger"
s=10
Fori=1To20Step3
s=s+i
Forj=1To3
s=s*j
Nextj
问:
(1)语句“s=s*j”执行的次数为_________。
(2)变量s的值为。
某协会进行钓鱼比赛,最后有十人进入决赛,录入员编制了如下VisualBasic程序,功能是根据成绩进行排序,程序中数组a保存所有参赛者的成绩,数组b保存此成绩对应的姓名,第i位参赛者的成绩保存在a(i)中,姓名保存在b(i)中。
程序界面如图所示,左边列表框List1中显示原始数据(成绩和相应的姓名),单击“排序”按钮(Command1),排序后的结果按成绩从高到低显示在列表框List2中。
解决此问题的算法流程图如图所示,排序部分的程序段如下:
Dima(1To10)AsSingle
Dimb(1To10)AsString
DimiAsInteger,jAsInteger,kAsInteger,xAsSingle,yAsString
Fori=1To9
k=i
Forj=i+1To10
If②Thenk=j
Nextj
Ifk<
>
iThen
x=a(i):
a(i)=a(k):
③
y=b(i):
b(i)=b(k):
b(k)=y
Fori=1To10
List2.AddItemStr(a(i))+"
"
+b(i)
PrivateSubForm_Load()
'
此过程用于对数组a和数组b进行初始赋值,代码略
(1)解决此问题的算法是①。
冒泡排序或选择排序)
s="
expression"
a=25
b=a+Len(s)
该程序段运行后,变量b的值为____________。
a=1:
b=2:
c=5
bAnda>
c=a+b
c=a+5
Label1.Caption=Str(c)
该程序段运行后,在标签Label1上显示的是____________。
已知某数列前二项分别为:
a1=1、a2=2,以后每项都满足:
ai=ai-1+ai-2
(i>
2)
Dima(1To20)AsInteger
a
(1)=1:
a
(2)=2
Fori=3To_______
a(i)=a(i-2)+a(i-1)
(1)数组a存储该数列的前20项,上面程序段划线处应填入_________。
(2)该程序段运行后,a(6)的值为____________。
王敏的E-Mail邮箱密码忘记了,但她需要收一封很重要的来信,请你帮她尽可能找出密码。
她零星记得自己密码信息:
①密码是六位数字,前面两位为31;
②最后两位数字相同;
③能被16和46整除。
程序界面如图所示,单击“帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
解决此问题的相应程序如下:
DimaAsInteger,sAslong,bAsInteger,iAsInteger
Fori=0To9999②
s=310000+i
IfsMod46=0Then
b=(sMod100)\10
Ifa=bThen
List1.AddItemStr(s)
枚举算法或排序算法)
a=15
b=Val("
256"
a=a*2+b
该程序段运行后,变量a的值为____________。
a=Mid("
Pleaseinput"
4,2)
b="
Please"
IfLen(a)<
Len(b)Then
标准"
不合格"
a1=1,a2=2,以后每项都满足:
ai=ai-1+ai-2(i>
Fori=3To20
a(i)=+a(i-2)
(1)如果用数组a存储该数列的前20项,程序段划线处应填入_________。
(2)该程序段运行后,a(4)的值为____________。
小明设计了某单位的公积金查询系统,输入职工的公积金账号,可以查出该账号对应的余额。
所有职工的公积金账号和相应的余额已分别保存在数组a(按从小到大排序)和数组b中,第i个职工的账号保存在a(i)中,对应的账号余额保存在b(i)中。
程序界面如图所示,左边列表框List1中显示的是部分职工的账号和余额,在文本框Text1中输入职工的公积金账号,单击“查询余额”按钮(Command1)后,如果找到此账号,则在标签Label2中显示“此账号余额为”和账号对应的余额值,如果未找到则显示“找不到此账号,请重新输入”。
解决此问题的算法流程图如图所示,相应的查找部分程序段如下:
Dima(1Ton)AsLong
Dimb(1Ton)AsSingle
DimxAsLong,iAsLong,jAsLong,mAsLong,fAsBoolean
x=Val(Text1.Text)
j=n:
f=False'
设账号总数为n
DoWhile(i<
=j)AndNotf
②
Ifx=a(m)Then
f=True
a(m)Then
j=m-1
Else
③
Loop
IffThen
Label2.Caption="
此账号余额为"
+Str(b(m))+"
元"
找不到此账号,请重新输入"
(1)解决此问题的算法是①。
对分查找或顺序查找)
(2)在程序划线处填入适当的语句或表达式,将程序补充完整:
a=210
b=-19
b=a+a\5
该程序段运行后,变量b的值为____________。
a=11
VisualBasic"
计算机基础"
课外活动"
s=150:
i=1
DoWhiles>
100
s=s-i+1
i=i+20
(2)变量s的值为___________。
陈晓峰和同学们去农科院开展研究性学习,大家都收获很大,晓峰设计了一个VisualBasic程序,他把同学们收集到的水稻亩产量和同学姓名已分别保存在数组a和数组b中,第i个同学收集的亩产量保存在a(i)中,对应的同学姓名保存在b(i)中,最后按亩产量从高到低进行排序。
程序界面如图所示,左边列表框List1中显示的是所有同学收集到的原始数据,单击“排序”按钮(Command1)后,在右边的列表框List2中显示排序完成后的结果(按亩产量从高到低排列)。
解决此问题的算法流程图如图所示,相应的排序部分程序如下:
Dima(1Ton)AsSingle
Dimb(1Ton)AsString
DimiAsInteger,jAsInteger,cAsSingle,tAsString
Fori=1Ton'
设共有n名同学
Forj=nToi+1 ②
If ③ Then
c=a(j-1)
a(j-1)=a(j)
a(j)=c
t=b(j-1)
b(j-1)=b(j)
b(j)=t
Fori=1Ton
选择排序或冒泡排序)
a=29:
b=6
a=aModb
b=a+Len("
Input"
x=2010
s=10
Ifx<
2012Thens=s+x
Label1.Caption=Str(s)
i=5
=50
s=s+i:
i=i*2
(1)语句“s=s+i”执行的次数为____________。
数制转换。
将一个K进制(k<
=10)数x转换成十进制数可采用如下方法:
主要方法是从右向左,依次取数x的各位数字,分别计算出该数从右边数起的第i位数字与k(i-1)的积,再将其累加,直到所有的数字取完为止。
例如,将五进制数1231转换成十进制数的方法如下:
下列VisualBasic程序的功能是将K进制(k<
=10)数x转换成十进制数。
界面如图所示,在文本框Text1中输入数制k,在文本框Text2中输入数x,单击“转换”按钮(Command1)后,在标签Label4中输出转换的结果。
解决此问题的算法流程图如图所示,相应的V