文档库 最新最全的文档下载
当前位置:文档库 › 山东高中信息技术学业水平考试2018年6月算法与程序设计1-5套题(附答案及解析)

山东高中信息技术学业水平考试2018年6月算法与程序设计1-5套题(附答案及解析)

山东高中信息技术学业水平考试

2018年6月算法与程序设计1-5套题(附答案及解析)

第一套

Dim n As Integer ’n用于统计年数

p=6.7

r=0.07

n=0

Do While_________

p=p*(1+r)

n=n+1

Loop

Print n & ”年后,GDP的值超过15万亿元。”

根据上述回答下列问题:(共6分,每空3分)

1、本题采用的算法是______________(填写:解析法/枚举法/排序法/递归法)。

2、写出程序中空白处表达式_______________________________。

30、算法设计与程序实现

判断车牌的单双号

【背景知识】

为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。

如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。(提示:(1)所有车牌号中都含有数字,并且车牌号的长度都是6;(2)以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)

(1)输入:AD2367 (2)输入:A8888A (3)输入:A8963C 输出:单号输出:双号输出:单号【算法描述】

自然语言流程图

第1步:输入车牌号

第2步:取车牌号的最后一位x;

第3步:判断x是否为数字,如

果是,转第4步;如果不是,则

依次取得倒数第二、三……位判

断,知道找到数字为止;

第4步:判断x 是奇数还是偶

数,然后输出相应的结果。

请根据上述算法描述补全代码

Dim n As Integer

Dim s As String ’定义s 为字符串类型 Dim x As String

s=InputBox(“s=”,s)‘将输入的车牌号赋值给s n=6 ‘车牌号的长度为6

x=Mid(s,n,1) ‘取车牌号s的第n位Do While x<”0” Or x>”9”‘x不是数字字符,则取x的前一位_______①_______

x=Mid(s,n,1) ‘取车牌号s的第n位

Loop

If _______②_______then

Print“双号”

Else

Print“单号”

End If

(提示:Mid(s,m,n)的功能:从字符创S的第m位开始,截取长度为n的子串。例如:Mid(“A8963C”,5,1)的返回值是“3”。)

请完善上述程序:(共8分,每空4分)

1、根据题意,程序中空白①处应填写:_______________________________ 。

2、根据题意,程序中空白②处应填写:______(填写字母:A/B/C/D)。

A、Val(x)\ 2= 0

B、Val(x)Mod 2 = 1

C、Val(x) Mod 2=0

D、Val(x) Mod 2 <> 0

第二套

23、设a=2,b=5,在VB中,表达式a>b And b>3的值是()。

A True

B -1

C 1

D False

24、以下程序段运行后,x和st的值分别是()。

Dim x As Integer

Dim st As String

x=123+678

st=”123”+”678”

A 123678 “801”

B 801 “801”

C 801 “123678”

D 123678 “123678”

25、用流程图表示条件“A>B”是否成立,要用到以下哪个图形?()

A 菱形

B 圆角矩形

C 平行四边形

D 直角矩形

26、下列选项中,能作为VB程序变量名的是()。

A dim

B 3ab

C xy

D a*b

27、以下程序段运行后,s的值是()。

n=0

s=0

Do While s<=10

n=n+3

s=s+n

loop

A 3

B 18

C 0

D 30

28、阅读程序,写出运行结果

Dim a(10) As Integer

Dim iAs Integer

a(1)=1

a(2)=1

Fori=3 To 6

a(i)=a(i-1)+a(i-2)

Next i

Print a(6)

上述程序运行后,输出a(6)的值是_________________________。(6分)

29、分析并完善程序

以下是计算s=1*2*3*…*10的程序代码,请补全程序。(6)

Dim s As Long

Dim i As Integer

s=__________

For i=1 To 10

s=__________

Next i

Print s

30、算法设计与程序实现

勾股数

求出100以内满足a

【参考程序】

Dim a As Integer

Dim b As Integer

Dim c As Integer

For a=1 To 100

For b=1 To 100

For c=1 To 100

If ________Then

Print a;b;c

End If

Next c

Next b

Next a

1、本题采用的算法是__________(填写:解析法/ 枚举法/排序法/递归法)。

2、程序代码中空白处应填写的条件是________(填写字母:A/B/C/D).

A a

B a

C a

D a

第三套

23、一下程序段运行后,y的值是()。

x=3

If x>3 Then

y=2*x

Else

y=3*x+1

end if

A 10

B 25

C 5

D 26

24、某晚会的猜数字游戏中,有100张写有1~100之间整数的卡片,主持人随机抽取一张卡片,让大家竞猜。有一种方案是:第一次猜50,若提示低了,则第二次猜75,若提示还是低了,则第三次猜87,依次类推;若第一次猜50,提示高了,则第二次猜25,若提示还是高了,则第三次猜12,依次类推;……。这种每次缩小一半查找范围而达到迅速确定目标的算法称为()。

A 排序法 B解析法 C 顺序查找法 D 二分查找法

25、在平面直角坐标系中,设点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]

26、下列语句正确定义了一个单精度实型变量x 的是()。

A Dim x As Single

B 其它三项都不对

C Dim x As String

D Dim x As Integer

27、在VB中表示“x 属于区间[a,b)”的正确表达式是()。

A a<=x

B a≦x And x

C a<=x Or x

D a<=x And x

28、阅读程序,写出运行结果

Dim s As Integer

Dim i As Integer

s=0

For i=1 To 10 Step 4

Print “#”;

s=s+i

Next i

Print s

上述程序运行后,输出“#”的个数是__________;输出s的值是________。(共6分,每空3分)29、阅读程序,写出运行结果

Dim a As Integer

Dim b As Integer

Dim r As Integer

a=98

b=63

r=a Mod b

Do While r <>0

a=b

b=r

r=a Mod b

Loop

Print b

程序运行后,输出结果为:___________________。(6分)

30、算法设计与程序实现

拖动滚动条浏览全部试题内容,点击右侧图标可切换输入法

换钱问题

要将一张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.

【参考程序】

Dim x AsInteger

Dim y AsInteger

Dim z As Integer

For x=1 To20

For y=1To 50

Forz=1 To 100

If ______________Then

Print x;y;z ’x y z 之间以分号分隔

End If

Nextz

Next y

Next x

根据上述回答下列问题:(8分,每空4分)

1、本题采用的算法是 _____________(填:解析法/枚举法/排序法/递归法)。

2、程序代码中空白处应填写的条件是 _______________(填写字母:A/B/C/D)。

A 5x + 2y + z=100 Or x+ y + z = 50

B 5x + 2y + z=100 And x + y + z = 50

C 5*x + 2*y + z=100 Or x + y + z = 50

D 5*x + 2*y + z=100 And x + y + z = 50

第四套

23、在VB中,下列属于字符串常量的是()。

A 3.14

B 2018

C “Visual Basic”

D cnt

24、以10下程序段运行后,整型变量s的值是()。

s=1

Fori=1 To 10 Step 3

s=s*i

Next i

Print s

A 280

B 28

C 3640

D 55

25、以下程序段运行后,整型变量max1,min1的值分别是()。

a=3

b=5

max1=(a+b)/2+Abs(a-b)/2

min1=(a+b)/2-Abs(a-b)/2

A 3 3

B 3 5

C 5 3

D 5 5

26、给定一个四位数的年份,判断它是否为闰年:四年一闰、百年不闰;四百年又闰(年份能被4整除但不能被100整除是闰年,或者年份能被400整除也是闰年。例如2004年和2000年都是闰年,2100年不是闰年)。下列判断年份。下列判断年份y是闰年的表达式正确的是()。

A yMod 4=0 And y Mod 100 <>0 Or y Mod 400=0

B yMod 400=0

C yMod 4=0

D yMod 4=0 Or y Mod 100<>0 And y Mod 400=0

27、将(1/2)gt2数学表达式转化为VB表达式,下列选项正确的是()。

A 1/2*g*t^2

B 1/2gt^2

C 1/2g*t^2

D 1/2g*t2

28、分析并完善流程图

执行流程图,当输入x的值为4时,输出y的值为2,则菱形判断框中的条件可能为________(填写字母:A/B/C/D 6分)。

A x>3

B x>4

C x<=4

D x<=5

29、分析并完善程序

以下是计算s=12+22+32+…+1002的程序代码,请补全程序。(共6分,每空3分) Dim s As Long

Dim i As Integer

s=0

For i=1 To 100

s=s+_____________

___________

Print s

30、算法设计与程序实现

拖动滚动条浏览全部试题内容,点击右侧图标可切换输入法

十进制整数转换为二进制整数采用“除2取余”法。

算法描述

第1步:输入一个十进制正整数n;

第2步:将n除以2,记录余数r;

第3步:将r追加到字符串s的左边(s 用于记录转换后的二进制数,初值为空);

第4步:将n 除以2的商赋给n ;

第5步:若n 为0,则转到第6步;若n不为0,转到第2步;

第6步:输出s (即逆序输出每一次的余数)。

【参考程序】

Dim s As String ‘记录转换后的二进制数

Dim n As Integer ‘记录十进制正整数n

Dim r As Integer ‘记录n除以2的余数

s=“ ”‘s记录转换后的二进制数,初值为空

n=Val(Text1.Text)

Do While n>0

r=______①________

s=r & s

n=______②________

Loop

Text2.Text=s

1、上述算法描述采用的方法是:______________(填:自然语言/伪代码/流程图)。(2分)

2、在参考程序①处应填入____________(填写字母:A/B/C/D)。(3分)

A nMod 2

B n \2

C 2 Mod n

D n/2

3、在参考程序②处应填入____________(填写字母:A/B/C/D)。(3分)

A n Mod 2

B n \2

C 2 Mod n

D n/2

第五套

23、下列选项中,关于算法的描述正确的是()。

A算法可以有0个或多个输入,但只能有一个输出 B算法只能用自然语言描述

C 算法就是一种高级程序设计语言

D 算法必须在有限步骤内实现

24、下列选项中,能作为VB程序变量名的是()。

A while

B dist

C 4A123

D a%c

25、以下程序段执行后,输出结果为()。

m=29

If m Mod 3 <> 0 Then

Print m & “不能被3整除”

Else

Print m & “能被3整除”

End If

A n能被3整除

B 29不能被3整除

C 29能被3整除

D n不能被3整除

26、下列VB表达式中,值为字符串类型的是()。

(1) Abs(x) (2) Text1.Text (3)”123+45” (4) Sqr(x) (5) Labell.Caption

A (2)(4)(5)

B (1)(2)(3)

C (1)(3)(5)

D (2)(3)(5)

27、在VB中,下列哪个选项是正确的赋值语句?()

A s=s+5

B 5s=80

C a+b=c

D 2018=x

28、阅读程序,写出运行结果

Dim n As Integer

n=Val(InputBox(“n=”))

Do While n Mod 2=0

n=n\2

Loop

Print n

程序运行时,输入24,输出n的值是:______(提示:\整除运算如:17\2=8;Mod除余运算如:17mod2=1) 29、分析并完善程序

以下是计算s=1+6+11+…+101的程序代码,请完善程序。

Dim s As Integer

Dim i As Integer

s=0

For i=1 To 101 Step__________

s=____________

Next i

Print s

30、算法设计与程序实现

某市出租车收费标准如下:

(1)3公里内(含3公里),收费8元;

(2)超过3公里但未超过6公里部分,按1.5元/公里收费;

(3)超过6公里部分,按2.25元/公里收费。

根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?

【参考代码】

Dim s As Single

Dim p As Single

s=Val(InputBox(“s=”))

If s<=3 Then

p=8

End If

If ______________Then

p=1.5*(s-3)+8

End If

If s>6 Then

p=2.25*(s-6)+1.5*3+8

End If

Print p

根据上述回答下列问题:

1、本题采用的算法是__________(填写:解析法/查找法/枚举法/排序法)。

2、程序代码中空白处应填写的条件是____________(填写字母:A/B/C/D).

A 3

B 3 ≦s≦6

C s>3 And s<=6

D s>3 Or s<=6

2018年6月算法与程序设计1-5套答案及解析

第一套

23、答案:C

vb变量命名原则:

1、必须以字母开头;

2、只能使用英文字母、阿拉伯数字和下划线(实际上可以使用汉字);

3、不能和受到限制的关键字同名,如不能使用vbred、command等作为变量名;

4、不能超过255个字符,控件、窗体、类和模块的名字不能超过40个字符;

5、不区分大小写。

true属于限制关键字,所以答案为"s1"

24、答案:B

红色区域的i用来控制行数,蓝色框中的j用来控制每行?= 0;*号数

另外 (for i与next i)(for j 与 next j)必须是= 对应关系

25、答案:A

Sqr(c):对c开平方,约为2.24

Abs(a-b):取绝对值,为1

int(2*a-c/b):转化为整型数字,为4

a^2+b^2-c^2:a的平方+b的平方-c的平方=0

----------------------------------------

所以答案为"int(2*a-c/b)"

26、答案:A

1、整型(Integer)

2、单精度数(Single)

3、双精度数(Double)

4、字符串( String )

简单的来说,integer就是不带小数的数字,single和double都是带小数的数字,但double范围更大一点

题目编码前面有个“N”显然不是数字,因此只能是string

----------------------------------------

所以答案为"string"

27、答案:A

自然语言就是我们平时交流用的语言,汉语、英语等

机器语言就是0和1的二进制语言。电脑刚刚发明出来的时候,人们给电脑编程是采用打孔的纸带,有孔和无孔分别对应0和1。

因为机器语言实在不方便理解,所以出现了汇编语言,他们的区别如下

*********************************************************

操作:寄存器BX的内容送到AX中

1000100111011000 机器语言:一般人表示一脸蒙X

mov ax,bx 汇编语言:稍微容易懂点

***********************************************************

然并卵,汇编语言仍然比较晦涩,不适合大规模的推广编程,所以出现了更加接近于人类语言特点的语言,我们叫它高级语言

现在我们用的编程工具绝大多数都属于高级语言,vb当然也是

所以答案为"高级语言"

28、答案:87

输入36后,y=30,x=36.因为30<36,,所以y=x,即y=36

输入87后,y=36,x=87 .因为36<87,所以y=x,即y=87

输入51后,y=87,x=51,因为87>51,所以判断语句不成立,y=x的赋值语句不执行,y仍然=87

29、答案:1:解析法 2:P<=15

1、解析法和枚举法的最大区别是:枚举法会舍弃一些不符合题意的数据。

比如枚举法计算能被3整除的数,从1开始一直枚举,1和2都不符合题意,都舍去,保留符合题意的3. 本题中的数据没有舍弃,前一个循环产生的数据是后一个循环必须的,因此是解析法。

2、根据题意,只要GDP总量 p<=15(万亿元),程序就要循环执行,直到p>15跳出。因此答案为:p<=15 30、答案:1:n=n-1 2:c

首先搞清楚①所在位置要干什么

=====================================================

n=6

‘车牌号的长度为6,假设车牌号为s="12345s"

x=Mid(s,n,1)

‘mid函数的意思是,在s里,从第n为开始取,取1位字符。由于n=6,s="12345s",所以这里的x 就是车牌的第6位"s"

Do While x<”0” Or x>”9”

‘这里是判断x的值是不是数字。我们的例子中,x的值为"s",所以满足这个条件。

_______①_______

'由于第六位不是数字,要取车牌的第五位。因此n=n-1.(想想:为什么这里不直接让n=5呢?)

x=Mid(s,n,1) ‘取车牌号s的第n位

Loop

If _______②_______ then

‘什么情况下是双号?当然是x的数值除以2余数为0.vb表达方法为:val(x) mod 2=0 。val的意思是转化为数字

Print“双号”

Else

Print“单号”

End If

第二套

23、答案:D

a>b显然是不成立的,不成立反馈的值是“false”或“0”

如果成立,反馈的值是"true"或“-1”,

(注意,true代表-1其他编程语言并非适用,这里仅讨论vb6)

因为答案中没有0,

----------------------------------------

所以答案为"False"

24、答案:C

以下程序段运行后,x和st的值分别是()。

Dim x As Integer '整数型,就是数字

Dim st As String '文本型,不能像数字一样加减

x=123+678 ‘都是数字,可以加减,所以x=801

st="123"+"678" '加了引号,就不是数字了,不能加减,只能连起来

----------------------------------------

所以答案为:801 “123678”

25、答案:A

长方形是处理框,用于各种数据的处理;菱形是判断框,用于各种条件的判断。

椭圆是开始和结束,菱形是判断,平行四边形是输入输出。

----------------------------------------

所以答案为:菱形

26、答案:C

dim 是限定字符,有特殊用处,不能做变量名

3ab数字不能放到前面

a*b属于表达式,变量中不能有*号

----------------------------------------

所以答案为:xy

27、答案:B

n=0

s=0

Do while s <=10

n=n+3

s=s+n

loop

这里的意思是,如果s<=10,就一直执行下面的语句,直到大于10为止

初始 n=0 s=0

循环第一次 n=3 s=3

循环第二次 n=6 s=9

循环第三次 n=9 s=18

至此s>10,跳出循环

----------------------------------------

所以答案为:18

28、答案:8

初始值:a(1)=1 a(2)=1

i=3时,a(3)=a(2)+a(1)=2

i=4时,a(4)=a(3)+a(2)=3

i=5时,a(5)=a(4)+a(3)=5

i=6时,a(6)=a(5)+a(4)=8

所以本题答案为8

算法题目,最好安装vb6,输入代码后按f8进行单步执行,看程序是如何运行的。这比老师干讲效果要好。

29、答案:1:(1) 2:s*i

第三句代码是给s赋初始值,整个计算过程是乘法,初始值应为1。

初始值为1,实际的计算过程是:1*1*2*3*......*10

如果初始值为0,那么计算过程是:0*1*2*........*10,不符合题意

代码的第五句,根据题意当然是用乘法s=s*i

执行过程如下:

初始值 s=1

i=1时,s=s*i=1*1

i=2时,s=s*i=1*1*2

i=3时,s=s*i=1*1*2*3

...

i=10时,s=s*i=1*1*2*3*....*10

30、答案:1:枚举法 2:C

1、解析和枚举法最大的区别在于:枚举法会直接舍去不符合题意的数值,而对解析法来说,每一步的数据都是有用的,都不能舍去。

本题将abc三个值全部测试一遍,不满足题意的舍去,剩下满足题意的打印出来。

比如a,b,c都是1的时候,经测试不满足题意,所以舍去。

因此本题是枚举法。

2、根据题意,两个条件必须同时满足,所以用"and" 。同时,vb中没有a2的写法,只能写为a^2

第三套

23、答案:A

根据代码,如果x>3,那么y=2*x

否则,y=3*x+1

由于x=3,所以执行第二句,y=10

----------------------------------------

所以答案为:10

24、答案:D

100个数字,先猜50.如果比50小,那么就猜25;如果比50大,那么就猜75.总之是把剩余范围从中间一分为二,逐渐逼近真实结果,这叫做二分法。二分法未必是最好的方法,但却简单有效。尤其是在本题题目要求的前提下,只能选二分法。

所以答案为:二分法

25、答案:B

首先你得知道距离公式,

其实在vb中,平方的表达方式用"^" a^b就是a的b次方

然后,在vb中,基本没有中括号"[]"的用武之地,都要用小括号

sqr是开平方,在其他解析中已经说过很多遍了。

相关文档 最新文档