Ifa(i)>a(iMax)TheniMax=i
Nexti
t=a(iMin):
a(iMin)=a(p):
a(p)=t
①
t=a(iMax):
a(iMax)=a(q):
a(q)=t
p=p+1
q=q-1
Loop
要使程序实现上述算法思想,则方框中的语句是
AIfiMax=pTheniMax=iMinB.IfiMin=pTheniMin=iMax
C.IfiMax=pTheniMin=iMaxD.IfiMin=pTheniMax=iMin
【答案】A
【解析】
【详解】执行到这里的时候,需要判断最小值和最大值是否相等,即已经将所有数据排序完成,故应判断iMax和p是否相等,如果相等,则使iMax=iMin即可。
故选A。
二、非选择题
13.小王收集了2016年第四季度部分移动应用APP的相关数据,并使用Excel软件进行数据处理,如下图所示。
请回答下列问题:
(1)区域G3:
G18的数据是通过公式计算得到的:
在G3单元格输入公式后,用自动填充功能完成G4:
G18的计算,则G3单元格中的公式是_____。
(2)通过排序使得相同应用领域的12月环比增幅有序,则排序的主次关键字依次为________________。
(3)对上图中的数据进行筛选操作,筛选设置界面如下图所示,在下拉列表框中选择___________选项后,单击“确定”按钮,筛选结果只显示“酷狗音乐”、“酷我音乐”和“优酷视频”3行数据。
(4)根据下图中数据,制作了一张反映所有APP的10月份活跃人数的图表。
如下图所示,但该图表中显示的并不是APP名称,改正的方法是________________。
【答案】
(1).=(E3-D3)/D3*100
(2).)应用领域12月环比增幅%(3).包含(4).将图表的数据区域改为A2:
A18,C2:
C18
【解析】
【详解】
(1)要求“12月环比增幅%”,需要用12月活跃人数(E3)-11月活跃人数(D3),所得的差再除以11月活跃人数(D3)。
由于是百分比,还需要乘以100.即:
=(E3-D3)/D3*100;
(2)判断得失“应用领域”,执行排序操作的是“12月环比增幅%”,故而主关键字是“应用领域”,次关键字是“12月环比增幅%”;
(3)“酷狗音乐”、“酷我音乐”和“优酷视频”3行数据的共同特点是:
包含“酷”字。
故应选“包含”;
(4)图标数据区域选择时,选择了B2:
B18,C2:
C18,改为A2:
A18,C2:
C18即可。
14.奇偶校验是一种校验数据传输正确性的方法。
其中奇校验方法:
统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。
小李编写了一个计算奇校验位值得VB程序,功能如下:
在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。
程序运行界面如图所示。
(1)在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的_______属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
PrivateSubCommand1_Click()
DimaAsInteger,sAsString
DimnAsInteger,tAsInteger,vAsInteger
n=Val(Text1.Text)
t=0
s=""
DoWhilen>0
a=nMod2
n=n\2
t=____________①
s=Str(a)+s
Loop
v=tMod2
Text2.Text=s
Label3.Caption="校验位值:
"+____________②
EndSub
(3)运行该程序,在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是____________。
【答案】
(1).Text
(2).t+a(3).str(1-v)(4).0
【解析】
【详解】
(1)VB中,文本框内的显示内容存储在Text属性中;
(2)①这一步是记录二进制数中1的个数,只需要对二进制的每一位求和即可,而二进制的每一位是复制给变量a的,所以,这一步应该是:
t=t+a;
②这一步是计算校验值,需要判断二进制数据的数位中“1”的个数是奇数则校验位值为0,否则校验位值为1。
由于计算了v是t/2的余数,当二进制数据的数位中“1”的个数是奇数时,v=1,当二进制数据的数位中“1”的个数是偶数时,v=0,即v的值与校验位值恰好相反,通过1-v的运算,即可完成转化。
由于文本框的Text属性是字符串类型,故而需要转化。
综上,该处填写“str(1-v)”;
(3)“22”转化成二进制数为:
“10110”,其中“1”的个数是3,为奇数,校验位值为0.
15.小王制作主题为“中国象棋”的多媒体作品。
他首先使用Photoshop软件制作一张背景图片,然后使用Flash软件制作动画。
请回答下列问题:
(1)如上图所示,当前状态下,下列操作可行的是______(多选,填字母:
A.修改图中左下角的数值缩放图像/B.选中“背景”图层后,调整其不透明度/C.对“右”图层的内容进行自由变换/D.选中“中国象”图层后,对其内容进行填充)。
(2)如下图所示,“录”图层第25帧到第36帧实现了由象棋子“帅”变化为汉字“录”的动画效果,该动画类型为_______(填字:
动画补间/形状补间/逐帧动画)。
(3)要实现“象棋简介”、“象棋起源”、“行棋规则”和“主要赛事”4个补间动画依次出现的效果,应做的调整是____。
(4)为实现该场景动画播放完后自动停止,小王选中“三叠子按钮”图层最后1帧添加停止动画的动作脚本,但脚本出现在该图层第1帧,其原因是___。
(5)测试影片时,单击“象棋简介”按钮,实现在浏览器中显示位于同一目录下“intro.txt”文件的内容,则“象棋简介”按钮的动作脚本为___。
【答案】
(1).AC
(2).形状补间(3).将“行棋规则”图层的1至6帧移动到25至30帧(4).“三叠子按钮”图层的最后一帧为普通帧(或非关键帧)(5).on(release){GetUrl(“intro.txt”);}
【解析】
【详解】
(1)A.修改图中左下角的数值缩放图像,是对左侧的窗口中显示的内容进行缩放,当前可以操作,故A正确;
B.“背景”图层不透明度不可以调整,故B错误;
C.当前选中的图层是“右”图层,可以对其的内容进行自由变换,故C正确;
D.当前不能进行填充操作,故D错误。
故填AC。
(2)这是一个“形状补间”的动画类型;
(3)由图可以看出,“象棋简介”图层是在第13到18帧显示,“象棋起源”图层是在第19到24帧显示,“行棋规则”图层是在第1到6帧显示、“主要赛事”图层是在第31到36帧显示。
要按照“象棋简介”、“象棋起源”、“行棋规则”和“主要赛事”顺序显示,只需要将“行棋规则”图层的1到6帧,移动到25到30帧即可。
(4)动画的动作脚本需要添加在关键帧上,而“三叠子按钮”图层的最后一帧为普通帧(或非关键帧),因此被自动添加到了第1帧;
(5)单击按钮使用:
“on(release){}”,显示同目录下intro.txt文本,使用:
“GetUrl(“intro.txt”);”,故而为:
“on(release){GetUrl(“intro.txt”);}”。
16.【加试题】小王编写了一个实现文字查找替换功能的VB程序,运行界面如图所示。
文本框Text1显示原文内容,Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Command1后,Text4显示查找替换的结果,Text5中显示替换的次数,Text6显示“查找内容”在原文中的起始位置。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
PrivateSubCommand1_Click()
DimsAsString,resuleAsString,posAsString
DimcountAsInteger,iAsInteger
i=1:
count=0
resule="":
pos=""
DoWhilei<=Len(Text1.Text)
s=Mid(Text1.Text,i,Len(Text2.Text))
Ifs=Text2.TextThen
result=result+Text3.Text
count=count+1
pos=①
i=i+Len(Text2.Text)
Else
②
i=i+1
EndIf
Loop
Text4.Text=result
Text5Text=Str(count)
Text6.Text=pos
EndSub
【答案】pos+str(i)result=result+mid(text1.text,i,1)
【解析】
【详解】①此处需要添加的是被替换内容在原文中的起始位置序号,这个序号记录在变量i中,故应该改为:
pos+str(i)
②这里是替换text1的文本中的第i个位置处的内容,应该改为:
result=result+mid(text1.text,i,1)
17.【加试题】小王编写了一个依据成绩计算名次的VB程序,成绩为0到100之间的整数。
算法的基本思想:
先统计每个分数的个数,然后按照分数从高到低依次计算每个有效分数(该分数的个数不为0)对应的名次,分数相同时名次并列。
最高分为第1名,该分数的名次与个数之和为下一个有效分数的名次,以此类推。
程序用数组A存放每个分数对应的个数,数组B存放每个分数对应的名次。
例如,下表中最高分100有2个,并列第1名,则分数96的名次为分数100的名次加上分数100的个数,即第3名。
分数
100
99
98
97
96
95
94
…
0
个数(A数组)
2
0
0
0
1
0
3
…
0
名次(B数组)
1
3
4
…
程序运行时,学生数据显示在列表框List1中,单击“计算”按钮Command1,计算结果显示在列表框List2中,程序运行界面如图所示。
实现上述功能的VB程序如下,请回答下列问题:
(1)如上表所示,若分数93的个数为2,则该分数对应的名次为_____________。
(2)请在划线处填入合适的代码。
DimsName(1To50)AsString'存放学生姓名
DimsScore(1To50)AsInteger'存放学生分数
DimrecCountAsInteger'存放学生人数
PrivateSubForm_Load()
'本过程从数据库中读取学生数据,存储在相应的变量中,并在List1中显示
'代码略
EndSub
'整数转换成长度固定的字符串
Functionads(xAsInteger,nAsInteger)AsString
DimsxAsString,nxAsInteger,iAsInteger
sx=Str(x):
nx=Len(sx)
Fori=1Ton-nx
sx=""+sx
Nexti
__________①
EndFunction
PrivateSubCommand1_Click()
DimA(0To100)AsInteger'存放每个分数的个数
DimB(0To100)AsInteger'存放每个分数的名次
DimmcAsInteger,scoreAsInteger,iAsInteger
Fori=0To100
A(i)=0
Nexti
Fori=1TorecCount'计算每个分数的个数
___________②
Nexti
mc=1
Fori=100To0Step-1'计算每个分数的名次
IfA(i)<>0Then
B(i)=mc
___________③
EndIf
Nexti
List2.Clear
List2.AddItem"姓名分数名次"
List2.AddItem"----------------"
Fori=1TorecCount
score=sScore(i)
mc=B(sScore(i))
List2.AddItemsName(i)+ads(score,5)+"第"+ads(mc,3)+"名"
Nexti
EndSub
【答案】
(1).7
(2).ads=sx(3).A(sscore(i))=A(sscore(i))+1(4).mc=A(i)+B(i)或mc=mc+A(i)
【解析】
【详解】
(1)表中最高分100有2个,并列第1名,则分数96的名次为分数100的名次加上分数100的个数,即第3名,94有3个,并列,名次数96的名次3加上96的个数1等于4,即并列第4名,93有2个,并列,名次数是94的名次4加上94的个数3等于7.故填7
(2)①这里需要将sx的值复制给ads,故而应写ads=sx;
②这一步是对数组A中的第sscore(i)项自增1,故而应写:
A(sscore(i))=A(sscore(i))+1;
③这里需要将mc的值加上A(i)的值,再存入mc故而应写:
mc=mc+A(i);由于上一步B(i)=mc,故而也可以写成:
mc=B(i)+A(i);