高中信息学业水平考试算法真题.docx
《高中信息学业水平考试算法真题.docx》由会员分享,可在线阅读,更多相关《高中信息学业水平考试算法真题.docx(36页珍藏版)》请在冰豆网上搜索。
![高中信息学业水平考试算法真题.docx](https://file1.bdocx.com/fileroot1/2023-2/25/8d66b344-8144-4859-a20f-9eb286dd0e94/8d66b344-8144-4859-a20f-9eb286dd0e941.gif)
高中信息学业水平考试算法真题
一、选择题
1、设a=2,b=5,在VB中,表达式a>bAndb>3的值是()
A、True
B、False
C、1
D、-1
2、以下程序段运行后,x和st的值分别是()
DimxAsInteger
DimstAsString
x=123+678
st=”123”+”678”
A、123678“801”
B、801“123678”
C、123678“123678”
D、801“801”
3、用流程图表示条件“A>B”是否成立,要用到以下哪个图形?
()
ABCD
A、CB、AC、DD、B
4、下列选项中,能作为VB程序变量名的是()
A、3abB、a*b
C、dimD、xy
5、以下程序段运行后,s的值是()
n=0
s=0
Dowhiles<=10
n=n+3
s=s+n
Loop
A、18B、3C、0D、30
6、以下程序段运行后,y的值是()
x=3
Ifx>3Then
y=2*x
Else
y=3*x+1
EndIf
A、26B、10C、25D、5
7、某晚会的猜数字游戏中,有100张写有1~100之间整张的卡片,主持人随即抽取一张卡片,让大家竞猜。
有一种方案是:
第一次猜50,若提示低了,则第二次猜75,若提示还是低了,则第三次猜了87,以此类推:
若第一次猜50,提示高了,则第二次猜25,若提示还是高了,则第三次猜12,以此类推:
……。
这种每次缩小一半查找范围而达到迅速确定目标的算法称为()
A、解析法B、二分查找法
C、顺序查找法D、排序法
8、在平面直角坐标系中,设点A(x1,y1)、点B(x2,y2),则AB两点之间的距离为下图,该公式正确的VB表达式是()
A、Sqr((x1-x2)2+(y1-y2)2)
B、Sqr[(x1-x2)2+(y1-y2)2]
C、Sqr((x1-x2)^2+(y1-y2)^2)
D、Sqr[(x1-x2)^2+(y1-y2)^2]
9、下列语句正确定义了一个单精度实型变量x的是()
A、其他三项都不对
B、DimxAsInteger
C、DimxAsSingle
D、DimxAsString
10、在VB中表示“x属于区间[a,b)”的正确表达式是()。
A、a<=xOrx
B、a<=xAndx
C、a≤xAndx
D、a<=x
11、在VB中,下列属于字符串常量的是()
A、3.14B、”VisualBasic”
C、cntD、2018
12、以下程序段运行后,整型变量s的值是()
S=1
Fori=1To10Step3
S=S*i
Nexti
PrintS
A、28B、3640C、55D、280
13、以下程序段运行后,整型变量max1,min1的值分别是()
a=3
b=5
max1=(a+b)/2+Abs(a-b)/2
min1=(a+b)/2-Abs(a-b)/2
A、5,5B、5,3C、3,5D、3,3
14、给定一个四位数的年份,判断它是否为闰年:
四年一闰、百年不闰;四百年又闰(年份能被4整除但不能被100整除是闰年,或者年份能被400整除也是闰年。
例如2004年和2000年都是闰年,2100年不是闰年)。
下列判断年份y是闰年的表达式正确的是( )。
A、yMod4=0OryMod100<>0AndyMod400=0
B、yMod4=0
C、yMod4=0AndyMod100<>0OryMod400=0
D、yMod400=0
15、将数学表达式转化为VB表达式,下列选项正确的是( )。
16、下列选项中,关于算法的描述正确的是()
A、算法只能用自然语言描述
B、算法必须在有限步骤内实现
C、算法就是一种高级程序设计语言
D、算法可以有0个或多个输入,但只能有一个输出
17、下列选项中,能作为VB程序变量名的是( )。
A、while B、4A123
C、a%c D、dist
18、以下程序段执行后,输出结果为( )。
m=29
IfmMod3<>0 Then
Print m & “不能被3整除”
Else
Print m & “能被3整除”
End If
A、m能被3整除
B、m不能被3整除
C、29不能被3整除
D、29能被3整除
19、下列VB表达式中,值为字符串类型的是( )。
(1)Abs(x)
(2)Text1.Text (3)”123+45”(4)Sqr(x)
(5)Labell.Caption
A、
(1)(3)(5) B、
(2)(3)(5)
C、
(2)(4)(5) D、
(1)
(2)(3)
20、在VB中,下列哪个选项是正确的赋值语句?
( )
A、2018=x B、5s=80
C、a+b=c D、s=s+5
21、VB程序中的赋值语句“x=x+1”是合法的()。
A、正确B、错误
22、已知n是一个两位的正整数,则下列表达式能表示整数n的个位数字的是()
A、n/10B、nmod10
C、n\10D、int(n/10)
23、程序有三种基本结构,下列不属于这三种基本结构的是()
A、树形结构B、循环结构C、选择结构D、顺序结构
24、已知赋值语句s=”GoodBye!
”,则下列定义变量s正确的是()
A、dimsasintegerB、dimsasstring
C、dimsaslongD、dimsasdouble
25、仪仗队队员对身高H的选拔要求是:
高于1.85米,但不能超过1.90米,下列表达式能正确表达的是()
A、H>=1.85andH<=1.90
B、H>1.85andH<=1.90
C、H>1.85orH<=1.90
D、H>=1.85orH<=1.90
26、下列序列能采用二分查找法查找某一元素的是()
A、34,25,17,9,10,3
B、1,4,7,15,13
C、6,9,12,14,23,25
D、15,14,12,7,2,3
27、S=1+2+3+……+N,找出一个最大数N,使得S<3000。
编写程序,解决此问题,最合适的程序结构是()。
A、顺序结构B、选择结构
C、分支结构D、循环结构
28、下列关于算法的描述正确的是()
A、算法的步骤可以是无穷的
B、算法必须有输出
C、算法就是程序
D、算法必须有输入
29、下列选项中,不能作为VB程序变量名的是()
A、123abcB、abc
C、abc123D、abc_123
30、水仙花数是三位整数:
其各位数字立方和等于该数本身,如153=1^3+5^3+3^3,如果要求出所有的水仙花数,下列算法最合适的是()
A、解析法B、排序法
C、查找法D、枚举法
31、如图所示,三个文本框自上而下的顺序是Text1,text2,text3,在文本框text1中输入3,在文本框text2中输入4,单击命令按钮“计算”后,文本框Text3中显示的内容是()
A、24B、12C、14D、7
32、以下程序段的结构是()
x=100
Ifx<0then
Y=Abs(x)
Else
Y=Sqr(x)
Endif
A、顺序结构B、循环结构
C、选择结构D、三项都是
33、下列变量定义正确的是()
A、dima*casstring
B、dimabcasinteger
C、dimforasdouble
D、dim4acasBoolean
34、下列表达式能判断正整数是偶数的是()
A、xmod2=0
B、xmod2=1
C、x\2=0
D、xmod2<>0
35、用计算机解决某个问题,问题分析清楚后,给出解决这个问题详细的(),这个过程称为设计算法。
A、编程语言
B、方法和步骤
C、加密措施
D、程序代码
36、下列选项中,能作为VB程序变量名的是()
A、do
B、x/y
C、xy
D、x*y
37、下列程序执行后,变量s的值是()。
s=0
Fori=1to10
s=s*i
Nexti
A、10B、55C、0D、1
38、一元二次方程判别式b∧2-4ac的正确的VB表达式是()
A、b∧2-4ac
B、b*b-4*a*c
C、b∧2-4*ac
D、b*b-4a*c
39、下列问题合适用解析法求解的是()
A、输出1000以内所有的完全平方数
B、将全班同学按照身高从高到矮排队
C、在一组彩球中寻找出所有的红球
D、一个小球从100米高的楼顶做自由落体运动,求落地时的速度V
40、以下关系表达式的值,可能为True的是()
A、4<>2*2
B、x=x+1
C、2>4
D、i41、算数表达式68Mod10的值是()
A、0
B、8
C、6
D、14
42、下列程序段运行后,输出“*”的个数是()
Fori=2To10
Print“*”
Nexti
A、6
B、9
C、8
D、7
43、一元二次方程ax∧2+bx+c=0有两个不相等的实数解的条件是()
A、b*b-4*a*c>0
B、a<>0orb*b-4*a*c>0
C、a<>0
D、a<>0Andb*b-4*a*c>0
44、下列流程图中是选择结构的是()
①②③④
A、②④
B、②③④
C、①②④
D、①③
45、下列选项中,能作为VB程序变量名的是()
A、if
B、x2
C、a*b
D、2x
46、以下程序段语句执行后,y的值是()
x=16
Ifx<0then
y=abs(x)
Else
y=sqr(x)
EndIf
A、256
B、16
C、4
D、其他三项答案都不对
47、下列程序段运行后,s的值是()
s=0
Fori=2To10
s=s+i
Nexti
A、10B、55C、53D、54
48、在VB语言中,int(x)函数的功能是返回不大于x的最大整数,fix(x)函数的功能是返回x的整数部分(截掉x的小数部分)。
表达式int(2.88)+fix(-3.89)的值是()
A、-1B、-2C、其他三项答案都不对D、0、
49、下列哪个程序运行结果如图所示?
()
50、下列选项中,能作为VB程序变量名的是()
A、s+1
B、3stu
C、true
D、s1
51、在VB中,Int(x)函数的功能是返回不大于x的最大整数,设a=3,b=4,c=5,则下列表达式的运算结果中最大的是()
A、Sqr(c)
B、a^2+b^2+c^2
C、Abs(a-b)
D、Int(2*a-c/b)
52、在VB中,用变量code存储学生的借阅卡编码(code=”N
020170502”),则变量code的数据类型应定义为()。
A、Double
B、String
C、Single
D、Integer
53、VisualBasic程序设计语言属于()
A、汇编语言
B、机器语言
C、自然语言
D、高级语言
二、操作题
1、阅读程序,写出运行结果
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)的值是__________(6分)
2、分析并完善程序
以下是计算s=1*2*3*…*10的程序代码,请补全程序。
(6分)
DimsAsLong
DimiAsInteger
s=____________________
Fori=1To10
s=__________________
Nexti
Prints
3、算法设计与程序实现
勾股数
勾股数是指满足条件a2+b2=c2的自然数,求出100以内满足a
【算法分析】
a的取值范围[1,100];
b的取值范围[1,100];
c的取值范围[1,100].
【参考程序】
DimaAsInteger
DimbAsInteger
DimcAsInteger
Fora=1To100
Forb=1To100
Forc=1To100
If_____________________________Then
Printa;b;c‘abc之间以分号分隔
EndIf
Nextc
Nextb
Next
(1)本题采用的算法是___________(填写:
解析法/枚举法/排序法/递归法)。
(2)程序代码中空白处应填写的条件是_____________(填写字母:
A/B/C/D)
A、aB、aC、aD、a4、阅读程序,写出运行结果
DimsAsInteger
DimiAsInteger
s=0
Fori=1To10Step4
Print“#”
s=s+i
Nexti
Prints
上述程序运行后,输出“#”的个数是_____________;输出s的值是_____________。
(共6分,每空3分)
5、阅读程序,写出运行结果
DimaAsInteger
DimbAsInteger
DimrAsInteger
a=98
b=63
r=amodb
DoWhiler<>0
a=b
b=r
r=aModb
Loop
printb
程序运行后,输出结果为:
______________。
(6分)
6、算法设计与程序实现
换钱问题
要将一张100元的钞票,换成等值的5元、2元、1元一张的钞票共50张。
其中一种换发如下:
5元:
3张2元:
38张1元:
9张求出所有的换钱方案。
【算法设计】
x表示5元的张数:
1≤x≤20;
y表示2元的张数:
1≤y≤50;
z表示1元的张数:
1≤z≤100.
【参考程序】
DimxAsInteger
DimyAsInteger
DimzAsInteger
Forx=1To20
Fory=1To50
Forz=1To100
If_____________________Then
Printx;y;z‘xyz之间以分号分隔
Endif
Nextz
Nexty
Nextx
根据上述回答下列问题:
(8分,每空4分)
(1)本题采用的算法是_________________(填:
解析法/枚举法/排序法/递归法)。
(2)程序代码中空白处应填写的条件是______(填写字母:
A/B/C/D)。
A、5x+2y+z=100Orx+y+z=50
B、5x+2y+z=100Andx+y+z=50
C、5*x+2*y+z=100Orx+y+z=50
D、5*x+2*y+z=100Andx+y+z=50
7、分析并完善流程图
执行流程图,当输入x的值为4时,输出y的值为2,则菱形判断框中的条件可能为________(填写字母:
A/B/C/D6分)。
A、x>3 B、x>4
C、x<=4 D、x<=5
8、分析并完善程序
以下是计算s=12+22+32+…+1002的程序代码,请补全程序。
(共6分,每空3分)
DimsAsLong
DimiAsInteger
s=0
Fori=1To100
s=s+__________
___________
Prints
9、算法设计与程序实现
十进制整数转换为二进制整数采用“除2取余”法。
算法描述
第1步:
输入一个十进制正整数n;
第2步:
将n除以2,记录余数r;
第3步:
将r追加到字符串s的左边(s 用于记录转换后的二进制数,初值为空);
第4步:
将n 除以2的商赋给n ;
第5步:
若n 为0,则转到第6步;若n不为0,转到第2步;
第6步:
输出s (即逆序输出每一次的余数)。
举例说明
界面设计
将一个十进制数13转换为二进制。
【参考程序】
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分)
(2)、在参考程序①处应填入____________(填写字母:
A/B/C/D)。
(3分)
A、nMod2
B、n\2
C、2Modn
D、n/2
(3)、在参考程序②处应填入____________(填写字母:
A/B/C/D)。
(3分)
A、nMod2
B、n\2
C、2Modn
D、n/2
10、阅读程序,写出运行结果
DimnAsInteger
n=Val(InputBox(“n=”))
DoWhilenMod2=0
n=n\2
Loop
Printn
程序运行时,输入24,输出n的值是:
______
(提示:
\整除运算如:
17\2=8;Mod取余数运算如:
17mod2=1)
11、分析并完善程序
以下是计算s=1+6+11+…+101的程序代码,请完善程序。
DimsAsInteger
DimiAsInteger
s=0
Fori=1To101Step__________
s=____________
Nexti
Prints
12、算法设计与程序实现
某市出租车收费标准如下:
(1)3公里内(含3公里),收费8元;
(2)超过3公里但未超过6公里部分,按1.5元/公里收费;
(3)超过6公里部分,按2.25元/公里收费。
根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?
【参考代码】
DimsAsSingle
DimpAsSingle
s=Val(InputBox(“s=”))
Ifs<=3Then
p=8
End If
If______________Then
p=1.5*(s-3)+8
EndIf
Ifs>6Then
p=2.25*(s-6)+1.5*3+8
EndIf
Printp
根据上述回答下列问题:
(1)、本题采用的算法是__________(填写:
解析法/查找法/枚举法/排序法)。
(2)、程序代码中空白处应填写的条件是____________(填写字母:
A/B/C/D).
A、3
B、3≦s≦6
C、s>3Ands<=6
D、s>3Ors<=6
13、阅读下列程序,写出运行结果(6分)
S=0
Fori=1to3
Forj=1to5
S=s+1
Nextj
Nexti
Prints
上述程序运行后s的输出值是____________(6分)
14、算法设计与程序实现
假设公鸡一只5钱,母鸡一只3钱,小鸡一钱3只。
现用100钱来买100只鸡。
问:
公鸡、母鸡、小鸡各买多少只?
(要求公鸡、母鸡、小鸡都是整数)
设计算法并编写程序输出所有的买鸡方案
DimxAsInteger,yAsInteger,zAsInteger
Forx=0To20
Fory=0To33
Forz=0To99Step3
If____________________Then
Print“公鸡:
”x,“母鸡:
”y,”小鸡:
”z
ExitFor
EndIf
Nextz
Nexty
Nextx
EndSub
【算法设计】
根据上述回答如下问题(共8分,每题4分)
(1)、本题采用的算法是_________(填写:
解析法/枚举法/排序法/递归法)
(2)、程序代码中空白处应填写的条件是___________(填:
A/B/C/D)
A、x+y+z=100AND5x+3y+z/3=100
B、x+y+z=100OR5x+3y+z/3=100
C、x+y+z=100AND5*x+3*y+z/3=100
D、x+y+z=100OR5*x+3*y+z/3=100
15、补全程序
数列问题
已知包含25项的数列:
1,2/3,3/5,……,24/47,25/49
问题1:
写出该数列的通项公式f(n)=____________。
(3分)
问题2:
以下是计算s=1+2/3+3/5+……+24/47+25/49的程序,请补全代码:
DimiAsInteger
DimsAsSingle
s=0
Fori=1to25
s=s+________(3分)
Nexti
Print“s=”,s
16、求三角形面积
已知a、b、c分别为三角形的三条边长,利用海伦公式求该三角形面积
p=(a+b+c)/2
编程实现:
输入边长a,b,c,如果能构成三角形,输出面积,否则输出“NoAnswer!
”
界面如下:
(8分)
DimaAsSingle,bAsSingle,cAsSingle
a=val(text1.text)
b=val(text2.text)
c=val(text3.text)
If()then
p=(a+b+c)/2
s=sqr(p*(p-a)*(