算法与程序设计.docx
《算法与程序设计.docx》由会员分享,可在线阅读,更多相关《算法与程序设计.docx(19页珍藏版)》请在冰豆网上搜索。
![算法与程序设计.docx](https://file1.bdocx.com/fileroot1/2023-6/2/2ee14197-fb6b-4689-9282-e3923565293f/2ee14197-fb6b-4689-9282-e3923565293f1.gif)
算法与程序设计
信息技术选修模块测试
(一)
一、选择题
1、下列选项中,能作为vb程序变量名的是()
A、whileB、distC、4A123D、a%c
2、以下程序段运行后,整型变量max1,min1的值分别是()
a=3
b=5
max1=(a+b)/2+Abs(a-b)/2
min1=(a+b)/2-Abs(a-b)/2
A、3,3B、3,5C、5,5D、5,3
3、以下程序段运行后,整型变量s的值是()
s=1
Fori=1to10step3
s=s*i
Nexti
Prints
A、55B、280C、3640D、28
4、将数学表达式转换为vb表达式,下列选项正确的是()
A、1/2gt^2B、1/2g*t
2C、1/2g*t^2D、1/2*g*t^2
5、给定一个四位数的年份,判断它是否为闰年:
四年一闰、百年不闰;四百年又闰(年
份能被4整除但不能被100整除是闰年,或者年份能被400整除也是闰年。
例如2004
年和2000年都是闰年,2100年不是闰年)。
下列判断年份y是闰年的表达式正确的是
A、ymod4=0orymod100<>0andymod400=0
B、ymod400=0
C、ymod4=0
Dymod4=0andymod100<>0orymod400=0
6、在vb中,下列哪一个选项是正确的赋值语句()
A、5s=80B、s=s+5C、a+b=cD、2018=x
7、以下程序运行后,s的值是()
n=0
s=0
Dowhiles<=10
n=n+3
s=s+n
Loop
Prints
A、18B、30C、3D、0
1
8、以下程序段运行后,x和st的值分别是()
DimxasInteger
DimstasString
x=123+678
st=〞123〞+〞678〞
A、123678〞123678〞B、801〞123678〞
C、801〞801〞D、123678〞801〞
9、用流程图表示条件“A>B”是否成立,要用到以下哪个图形?
()
A、B、C、D、
10、设a=2,b=5,在vb中,表达式a>bandb>3的值是()
A、-1B、TrueC、FalseD、1
11、以下程序段执行后,输出结果为()
m=29
Ifmmod3<>0then
Printm&〞不能被3整除〞
Else
Printm&〞能被3整除〞
A、m不能被3整除B、29能被3整除
C、29不能被3整除D、m能被3整除
12、下面四段程序,哪段程序运行结果如图所示:
()
******
******
******
******
******
A、forj=1to5B、fori=1to5
forj=1to6fori=1to6
Print〞*〞;Print〞*〞;
NextjNexti
PrintPrint
NextjNexti
C、fori=1to5D、fori=1to5
forj=1to6forj=1to6
Print〞*〞;Print〞*〞;
NextjNexti
PrintPrint
NextiNextj
13、在VB中下列属于字符串常量的是()
A、2018B、cntC、3.14D、〞visualbasic〞
2
14、已知赋值语句s=“GoodBye!
”,则下列定义变量s正确的是()
A、DimsasLongB、DimsasInteger
C、DimsasDoubleD、DimsasString
15、下列序列能采用二分查找法查找某一元素的是()
A、1471513B、151412723
C、6912142325D、3425179103
16、在VB中,用变量code存储学生的借阅卡编码(code=〞NO20170502〞),则变量
code的数据类型应定义为()
A、DoubleB、StringC、IntegerD、Single
17、在VB中,Int(x)函数的功能是返回不大于x的最大整数,设a=3,b=4,c=5,则下
列表达式的运算结果中值最大的是()
A、a^2+b^2-c^2B、Sqr(c)C、Int(2*a-c/b)D、Abs(a-b)
18、VisualBasic程序设计语言属于()
A、机器语言B、自然语言C、汇编语言D、高级语言
二、分析题
19、以下是计算s=1+6+11+⋯⋯⋯101的程序代码,请完善该程序
Dims,iasInteger
s=0
Fori=1to101step________
s=______________
Nexti
Prints
20、阅读程序,写出运行结果
DimnasInteger
n=Val(Inputbox(“n=”))
Dowhilenmod2=0
N=n\2
Loop
Printn
程序运行时,输入24,输出n的值是___________________
(提示:
\整除运算如17\2=8;mod取余数运算如:
17mod2=1)
21、以下是计算s=12+22+32+⋯⋯1002的程序代码,请补全程序
Dimsaslong;dimiasinteger
s=0
fori=1to100
s=____________
_______________
Prints
22、以下是解决s=1*2*3*4⋯⋯*10的程序代码,请补全程序:
3
Dimsaslong
DimiasInteger
s=____________
Fori=1to10
s=_____________
Nexti
Prints
23、阅读程序,写出运行结果
Dima(10)asInteger
DimiasInteger
a
(1)=1
a
(2)=1
Fori=3to6
a(i)=a(i-1)+a(i-2)
nexti
printa(6)
上述程序运行后,输出a(6)的值是______________
24、阅读程序,写出运行结果
Dimi,x,yasInteger
y=30
Fori=1to3
x=val(inputbox(〞x=〞)
ifyy=x
endif
nexti
printy
程序运行后:
依次输入:
368751运行后输出结果是________________
222
25、勾股数是指满足条件a+b=c
的自然数,求出100以内的满足a
【算法分析】a的取值范围[1,100];
b的取值范围[1,100];
c的取值范围[1,100];
【参考程序】Dima,b,casInteger
Fora=1To100
Forb=1To100
Forc=1To100
If_____________________________Then
Printa;b;cˊabc之间以分号分隔
Endif
4
Nextc
Nextb
Nexta
根据上述回答下列问题:
1、本题采用的算法是_________(填写:
解析法/枚举法/排序法/递归法)
2、程序代码中空白处应填写的条件是______________(填写字母:
A/B/C/D)
2+b2=c2B、aA、a^2+b^2=c^2D、aC、a26、十进制数转换为二进制整数采用“除2取余”法
第1步:
输入一个十进制正整数n;
第2步:
将n除以2,记录余数r;
第3步:
将r追加到字符串s的左边(s用于记录转换后的二进制数,初值为空);
第4步:
将n除以2的商赋给n;
第5步:
若n为0,则转到第6步;若n不为0,转到第2步;
第6步:
输出s(即逆序输出每一次的余数)
【参考程序】Dimsasstring‘记录转换后的二进制数
DimnasInteger‘记录十进制正整数n
DimrasInteger‘记录n除以2的余数
s=〞〞‘s记录转换后的二进制数,初值为空
n=Val(Text1.text)
Dowhilen>0
r=____①_____
s=r&s
n=____②_____
loop
Text2.text=s
1、上述算法描述采用的方法是:
______________(填:
自然语言/伪代码/流程图)
2、在参考程序①处应填入________(填写字母:
A/B/C/D)
A、nmod2B、n\2C、2modnD、n/2
3、在参考程序②处应填入___________(填写字母:
A/B/C/D)
A、nmod2B、n\2C、2modnD、n/2
5
27、算法与程序设计:
判断车牌的单双号
【背景知识】
为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限
行,违反规定的车辆将予以处罚。
如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮
忙,完善下面的程序。
(提示:
(1)所有车牌号中都含有数字,并且车牌号的长度都
是6;
(2)以车牌中最后的一位阿拉伯数字的奇、偶来决定单双号)
(1)输入AD2367
(2)输入A88888A(3)输入A8963C
输出:
单号输出:
双号输出:
单号
【算法描述】
自然语言流程图
第1步:
输入车牌号;
第2步:
取车牌号的最后一
位x;
第3步:
判断x是否为数字,
如果是转第4步;如果不是,
则依次取倒数第二、三⋯⋯
位判断,直到找到数字为
止;
第4步:
判断x是奇数还是
偶数,然后输出相应的结
果。
请根据上述算法描述补全代码
DimnasInteger
DimsasString’定义s为字符串类型
DimxasString
s=InputBox(“s=”,s)’将输入的车牌号赋值给s
n=6’车牌号的长度为6
x=Mid(s,n,1)’取车牌号s的第n位
DoWhilex<”0”orx>”9”’x不是数字字符,则取x的前一位
___①______
x=mid(s,n,1)’取车牌号s的第n位
6
Loop
If____②_______Then
Print“双号”
Else
Print“单号”
EndIf
(提示:
mid(s,m,n)的功能:
从字符串s的第m位开始,截取长度为n为子串。
例如:
mid(“A8963C”,5,1)的返回值是”3”。
)
请完善上述程序:
(共8分,每空4分)
1、根据题意,程序中空白①处应填写:
____________。
2、根据题意,程序中空白②处应填写:
_____________(填写字母:
A/B/C/D)。
A.Val(x)\2=0B.Val(x)mod2=1
C.Val(x)mod2=0D.Val(x)mod2<>0
28、阅读下面问题:
GDP增长问题
某省2016年的GDP是6.7万亿元,如果每年按7%的比例增长,问经过多少年该
省的GDP超过15万亿元?
【算法分析】假设n年后此省的GDP超过15万亿元,根据题意得出数学关系式,6.7*
n>15。
求最小的n。
(1+7%)
【参考程序】
dimpassingle’p用于记录GDP的值
dimrassingle’r用于记录GDP的年增长比例
dimnasinteger’n用于统计年数
p=6.7
r=0.07
n=0
dowhile________________
p=p*(1+r)
n=n+1
loop
printn&“年后,GDP的值超过15万亿元。
”
根据上述回答下列问题:
(每空3分共6分)
1、本题采用的算法是_________(填写:
解析法/枚举法/排序法/递归法)
2、写出程序中空白处表达式_____________________。
29、要将一张100元的钞票,换成等值的5元、2元、1元一张的零钞,每次换成50张,
其中一种换法如下:
5元:
3张;2元:
38张;1元:
9张。
求出所有的换钱方案。
[算法设计]x表示5元的张数:
1≤x≤20;y表示5元的张数1≤y≤50;z表示1元的
张数:
1≤z≤100。
[参考程序]Dimx,y,zAsInteger
Forx=1To20
7
Fory=1To50
Forz=1To100
IfThen
Printx;y;z
EndIf
Nextz
Nexty
Nextx
根据上述回答下列问题:
(8分,每空4分)
1、本题采用的算法是(填:
解析法/枚举法/排序法/递归法)。
2、程序代码中空白处应填写的条件是(填写字母:
A/B/C/D)。
A.5x+2y+z=100orx+y+z=50B.5x+2y+z=100Andx+y+z=50
C.5*x+2*y+z=100orx+y+z=50D.5*x+2*y+z=100Andx+y+z=50
30、算法与程序设计:
出租车计费问题
某市出租车收费标准如下:
(1)3公里内(含3公里),收费8元;
(2)超过3公里但未超过6公里部分,按1.5元/公里收费;
(3)超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客付费多少元?
【算法分析】假设总费用为p,则可以分段计算
p=8(s≤3)
p=1.5*(s-3)+8(3
p=2.25*(s-6)+1.5*3+8(s>6)
【参考代码】DimsasSingle
DimpasSingle
s=Val(inputbox(“s=”))
Ifs<=3Then
p=8
EndIf
If__________Then
p=1.5*(s-3)+8
EndIf
Ifs>6Then
p=2.25*(s-6)+1.5*3+8
EndIf
Printp
根据上述回答下列问题:
(8分,每空4分)
1、本题采用的算法是__________(解析法/查找法/枚举法/排序法)。
2、程序代码中空白处应填写的条件是_______(填写字母:
A/B/C/D)。
8
A.33ands<=6D.s>3ors<=6
9