学业水平测试信息技术第二部分 专题三.docx

上传人:b****1 文档编号:14564147 上传时间:2023-06-24 格式:DOCX 页数:27 大小:189.99KB
下载 相关 举报
学业水平测试信息技术第二部分 专题三.docx_第1页
第1页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第2页
第2页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第3页
第3页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第4页
第4页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第5页
第5页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第6页
第6页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第7页
第7页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第8页
第8页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第9页
第9页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第10页
第10页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第11页
第11页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第12页
第12页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第13页
第13页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第14页
第14页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第15页
第15页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第16页
第16页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第17页
第17页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第18页
第18页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第19页
第19页 / 共27页
学业水平测试信息技术第二部分 专题三.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学业水平测试信息技术第二部分 专题三.docx

《学业水平测试信息技术第二部分 专题三.docx》由会员分享,可在线阅读,更多相关《学业水平测试信息技术第二部分 专题三.docx(27页珍藏版)》请在冰点文库上搜索。

学业水平测试信息技术第二部分 专题三.docx

学业水平测试信息技术第二部分专题三

专题三 解析算法、枚举算法及程序实现

【考纲标准】

考试内容

考试要求

考试属性

选考规律

1.枚举算法及程序实现

c

必考+加试

每次选考1个非选择题

2.解析算法及程序实现

c

1.(2018·6浙江学考)素数只能被1和它本身整除,不能被其他自然数整除。

编写VB程序实现如下功能:

单击“产生奇数并判断”按钮Command1,随机产生一个三位正奇数显示在文本框Text1中,并在文本框Text2中显示其是否为素数的判断结果。

例如,当随机产生的三位正奇数为953时,程序运行界面如图a所示。

(1)在设计程序界面时,应使用图b所示“控件工具箱”中的________(填写相应编号)添加文本框Text1。

(2)实现上述功能的VB程序如下,请在划线处填写合适的代码。

 PrivateSubCommand1_Click()

DimnAsInteger,iAsInteger

DimflagAsBoolean ′用于标记是否为素数

Randomize

n=Int(____①____)*2+1

Text1.Text=Str(n)

flag=True ′标记为素数

i=3

DoWhilei<=n-1Andflag=True

 If nModi=0 Then

  flag=False

 EndIf

 i=i+2

Loop

If____②____Then

 Text2.Text=Str(n)+″是素数″

Else

 Text2.Text=Str(n)+″不是素数″

EndIf

EndSub

(3)以下选项中,与加框处表达式“nModi=0”等价的是________(单选,填字母)。

A.n\'i=Int(n/i)  B.n\'i=n/i

C.nModi=n\'i

解析 

(1)掌握常见的控件。

(2)三位正奇数的范围在[100,999]之间,等效于[0,899]+100,等效于([0,449]+50)*2。

先仔细阅读题目要求,再整体通览程序,分析各模块程序功能,n表示产生的随机数,同时也肯定是奇数。

用[3,n-1]之间的数去除,如果除通了,flag的值为False,flag用于标记是否为素数,值为True时为素数。

(3)整除即除以后是整数。

答案 

(1)2 

(2)①Rnd()*450+50 ②flag=True (3)B

2.(2018·11浙江选考)在平面坐标系中,给定一组有序的点。

从原点出发,依次用线段连接这些点,构成一条折线。

要求编写一个“计算折线长度”的程序,功能如下:

在文本框Text1中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。

例如,三个点的坐标(5,10)、(8,12)、(6,17)输入格式如图所示。

(1)Cmd对象属于________类。

(单选,填字母:

A.Form/B.Label/C.TextBox/D.CommandButton)

(2)实现上述功能的VB程序如下,请在划线处填入合适代码。

PrivateSubCmd_Click()

DimiAsInteger,jAsInteger,kAsInteger

Dimx1AsSingle,y1AsSingle,x2AsSingle,y2AsSingle

DimdAsSingle,TotaldAsSingle,vAsSingle,sAsString

s=____①____

x1=0∶y1=0    ′出发点为坐标原点

k=1∶j=1∶Totald=0

Fori=1ToLen(s)

IfMid(s,i,1)=”,”Then

    v=Val(Mid(s,j,i-j))  ′提取坐标值,保存在变量v中

    j=i+1

    If____②____Then

      x2=v

    Else

      y2=v

      d=Sqr((x2-x1)^2+(y2-y1)^2)

      Totald=Totald+d

      x1=x2∶y1=y2

    EndIf

    k=k+1

EndIf

Nexti

Label1.Caption=Str(Totald)

EndSub

(3)运行该程序,输入数据如上图所示,程序执行到循环结束时,变量k的值为________。

答案 

(1)D

(2)①Text1.Text ②kMod2=1

(3)7

枚举法的基本思想是一一列举出该问题所有可能的解,并挑选出符合条件的解。

在列举的过程中,既不能遗漏也不能重复。

【例】鸡和兔在一个笼里,共有腿100条,头40个,问鸡有几只,兔有几只?

以下求解程序,请在划线处填写恰当的数值。

PrivateSubCommand1_Click()

DimJiAsInteger ′鸡

DimTuAsInteger ′兔

DimLeg AsInteger′腿数

DimHead AsInteger′头数

ForJi=1To____①____

 ForTu=1To____②____

Leg=Ji*2+Tu*4 ′计算腿

Head=Ji+Tu    ′计算头

IfLeg=100AndHead=40Then

   List1.Aditem ″鸡=″+Str(Ji)+″只,兔=″+Str(Tu)+″只″

EndIf

 NextTu

NextJi

EndSub

解析 此程序为枚举算法,枚举算法(又称“穷举法”)的基本思想是根据问题的本身性质,一一列举出该问题所有可能的情况,并根据题目的条件逐个作出判断,从中挑选出符合条件的解答。

枚举算法适用于那些解变量确定的连续值域的问题。

枚举算法要列举出所有可能的情况,不能遗漏,也不能重复。

通常采用循环来处理穷举问题。

本题将鸡和兔所有可能的组合测试一遍,鸡最多50只,外循环是鸡依次从1到50循环;兔最多25只,内循环是兔依次从1到25循环。

答案 ①50 ②25

考点1 解析算法

【训练1】在文本框Text1中输入一个正整数N,单击“计算”按钮Command1,输出该数的各个位数之和s。

程序运行的界面如下图所示:

为实现上述功能,请在划线处填入合适的代码。

PrivateSubCommand2_Click()

DimnAsSingle,iAsInteger,tAsInteger,sAsInteger

n=Val(Text1.Text)

 Do Whilen<>0

 t=____①____

 s=____②____

 List1.AddItem″个位数″+Str(t)+″,N值″+Str(n)+″,S的值″+Str(s)

 ____③____

Loop

Text2.Text=Str(s)

EndSub

解析 n是输入的数,t是n的个位数,s是各个个位数相加的和。

把数n的个数求出来,把n的个位数去除后,重复执行,直到n为0,再把各个个位数相加。

答案 ①nMod10 ②s+t ③n=n\10

【训练2】查找ASCII码值最小的字符。

程序功能如下:

在文本框Text1中输入一个字符串,单击命令按钮Command1,在文本框Text2中输出该字符串中ASCII码值最小的字符,运行界面如图所示。

解决该问题的VB程序如下:

PrivateSubCommand1_Click()

 Dimstr1AsString     ′存储输入的字符串

 DimnAsInteger     ′存储输入字符串的长度

 DimiAsInteger,jAsInteger

 str1=____①____

 n=Len(str1)

 s=____②____

 Fori=2Ton

IfMid(str1,i,1)<sThens=Mid(str1,i,1)

 Nexti

 Text2.Text=s

EndSub

(1)将命令按钮Command1中显示的文本“Command1”修改为“查找”,可在其属性窗口中将________属性的属性值改为“查找”。

(2)为实现上述功能,请在划线处填入合适的代码。

程序中划线处①应填入________________,程序中划线处②应填入________________。

(3)如图所示,在文本框Text2中输出的字符“M”是输入字符串中的第________个“M”。

解析 

(1)修改按钮上显示的文本应修改其Caption属性。

(2)变量str1用于存储文本框Text1中输入字符串的内容,所以str1=text1.text。

变量s用于存储字符串中的ASC码值较小字符,初值为字符串中的第一个字符,所以初值s=left(str1,1)或s=mid(str1,1,1)。

(3)因为在if语句比较过程中,ifmid(str1,i,1)<sthens=mid(str1,i,1),只有小于s才重新赋值;第二个M值时,mid(str1,i,1)等于s,s不再重新赋值,仍然是第一个M的值。

答案 

(1)caption 

(2)①text1.text ②s=left(str1,1)或s=mid(strl,1,1) (3)1

【训练3】小林想用VB实现以下功能:

输入一个十进制正整数(10000以内),输出其二进制形式。

效果图如图1所示,完成以下填空。

图1

PrivateSubCommand1_Click()

DimaAsLong

DimbAsString

DimcAsString

a=Val(Text1.Text)

b=″ ″

DoWhilea>0

c=Str(aMod2)

  ____①______

a=____②____

Loop

Text2.Text=b

EndSub

(1)完善代码,划线①部分应填入________________,划线②部分应填入________________。

(2)小林为了使得代码功能更强大,希望修改代码,添加一个文本框输入整数k(范围在2到9之间),使得程序能实现十进制到k进制的转化。

得到的界面和代码如图2所示:

图2

PrivateSubCommand1_Click()

DimaAsLong

DimbAsString

DimcAsString

DimkAsLong

a=Val(Text1.Text)

k=Val(Text3.Text)

b=″ ″

DoWhilea>0

c=Str(____③____)

b=c+b

a=____④____

Loop

Text2.Text=b

EndSub

其中划线③部分应填入______________,划线④部分应填入_________________。

解析 十进制转二进制采用除2取余法。

①处需要将每次取余运算得到的结果c连接到需要得到的二进制数串b上,即b=c+b。

需注意“除2取余法”结果是余数后得到的需排在前面,所以b=b+c错误,b=c+b才正确。

②处是十进制数除以2后得到的整数部分。

③、④处为十进制转k进制,采用除k取余法,同十进制转二进制相似。

答案 

(1)①b=c+b或者b=c&b ②a\2

(2)③amodk ④a\k

【训练4】在文本框Text1中输入一个加法的算式,形式为a+b,a和b均为整数。

单击计算显示结果:

请在划线处填入合适的代码。

PrivateSubCommand1_Click()

DimkeyAsString,aAsInteger,bAsInteger,iAsInteger,chAsString

key=Text1.Text

i=1

DoWhilei<=Len(key)

ch=Mid(key,i,1)

Ifch>=″0″Andch<=″9″Then i=i+1Else ExitDo

Loop

a=____①____

b=____②____

Label1.Caption=″计算结果为:

″+Str(a+b)

EndSub

解析 i表示字符串中位置,当该位置不是数字时,退出循环,即i就是加号的位置。

a表示加号前的值,b表示加号后的值。

答案 ①Mid(key,1,i-1) ②Mid(key,i+1,Len(key)-i)

考点2 枚举算法

【训练5】完全数:

所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

如果一个数恰好等于它的因子之和,则称该数为“完全数”。

枚举的范围是1~1000,枚举的条件是nmodi=0。

请在划线处填入合适的代码。

PrivateSubCommand1_Click()′找出1000以内的完全数

DimiAsInteger,jAsInteger

Forn=1To1000

s=0 ′每次要初始化

Fori=____①____

 IfnModi=0Thens=____②____

Nexti

If____③____ThenList2.AddItemStr(n)

Nextn

EndSub

解析 变量n表示1000以内的正整数,i表示小于他的数,如果能除通,表示是因子。

S是因子的和,如果s与他本身相等。

答案 ①1Ton-1 ②s+i ③s=n

【训练6】有一张单据上有一个5位数的编号,如图所示,其百位数和十位数处已经变得模糊不清,但是知道这个5位数是37或67的倍数。

现要设计一个算法,找出所有满足这些条件的5位数,并统计这些5位数的个数。

请在程序划线处填入合适的代码。

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger,nAsInteger

Fori=0To99

j=____①____′构造出一个五位数

If____②____Then

List1.AddItemj

n=n+1

EndIf

Text1.Text=Str(n)

Next

EndSub

答案 ①14000+7+i*10

②(jMod37=0)or(jMod67=0)

一、选择题

1.用VB程序查找能被10整除,且包含3的三位数,部分程序段如下所示:

n=0∶i=100

 DoWhilei<=999

a=i\100

b=____①____

c=iMod10

If____②____Then

 ____③____

 List1.AddItemStr(i)

EndIf

   ____④____

 Loop

 Label2.Caption=″符合条件的数共有:

″+Str(n)

下列关于实现该算法,说法不正确的是(  )

A.①中求n的十位数

B.②中应填入a=3Andb=3 Andc=3

C.③中应填入计数语句

D.④中将改变循环变量的值

答案 B

二、非选择题

2.编写VB程序,实现如下功能:

在文本框Text1中输入发放红包的总金额s,在文本框Text2中输入发放红包的个数n,单击“分配”按钮(Command1),为n个红包随机分配金额,并在列表框List1中显示分配后的这些金额。

界面如图1所示。

    图1          图2

(1)在设计应用程序界面时,应使用图2所示“控件工具箱”中的________(填写相应编号)添加列表框List1;并设置文本框Text1和Text2的________属性的值为空。

(2)为实现上述功能,请在划线①②③处填入合适代码。

PrivateSubCommand1_Click()

DimsAsSingle,xAsSingle,nAsInteger,iAsInteger

Randomize

List1.Clear

s=____①____

n=Val(Text2.Text)

Fori=1Ton-1 ′通过循环语句产生n-1个红包的随机值

 x=Int((Rnd()*s/(____②____)+0.005)*100)/100

 List1.AddItemStr(x)

 s=______③______

Nexti

x=Int((s+0.005)*100)/100 ′产生最后一个红包

List1.AddItemStr(x)

EndSub

答案 

(1)4 或④ Text

(2)①val(Text1.text) ②n-i ③s-x

3.(2016·8温州模拟)编写VB程序代码,实现如下功能:

在文本框Text1中输入金额(整数)后,点击“转换”按钮Command1,则在文本框Text2中显示该金额的大写,程序运行界面如图所示:

(1)要使窗体标题上显示的文本改为“人民币大小写”,可在其属性窗口中将________属性的属性值改为“人民币大小写”。

(2)为了实现以上程序功能,使程序正常运行,请完善以下两处代码。

PrivateSubCommand1_Click()

DimdxAsString,dwAsString

DimsAsString,cAsString

DimchAsString

DimiAsInteger

dx=″零壹贰叁肆伍陆柒捌玖拾″

dw=″亿仟佰拾萬仟佰拾元″

s=Text1.Text

IfLen(s)>9____①____

 Text2.Text=″输入的数据超出所能转换的范围″

Else

 Fori=1ToLen(s)

 ch=____②____

 c=c+Mid(dx,Val(ch)+1,1)+Mid(dw,9-Len(s)+i,1)

 Nexti

 Text2.Text=c+″整″

EndIf

EndSub

(3)由上述算法可知,若在文本框Text1中输入“20”,则文本框Text2显示的结果为________。

解析 

(1)窗体标题上显示的文本是窗体的“Caption”的属性值。

(2)①处考查IF语句的格式,IF必须有THEN、ENDIF与之对应。

②处是截取输入的数值串的第i个字符,由下一句转化为第i个数的金额大写,所以②处应是″mid(s,i,1)″。

(3)Text1中输入20,模拟程序运行过程:

s=20,les(“20”)=2,

i=1时,ch=mid(s,i,1)=2,c=贰+拾=贰拾;

i=2时,ch=mid(s,i,1)=0,c=贰拾+零+元=贰拾零元;

Text2.Text=c+“整”=贰拾零元整

结果为:

贰拾零元整

答案 

(1)Caption 

(2)①then ②mid(s,i,1) (3)贰拾零元整

4.如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如9752、9772是降序数,而7524不是降序数)。

现编写VB程序实现如下功能:

在文本框Text1种输入一个正整数,单击“判断”按钮Commmand1,在标签Label2中显示出该数是不是降序数。

程序运行界面如图所示。

(1)代码“Command1_Click()”中的Click是________(选填字母:

A.对象名/B.属性名/C.事件名/D.方法名)。

(2)请完善下列程序代码:

PrivateSubCommand1_Click()

 DimiAsInteger,sAsString,flagAsBoolean

 ____①____

 flag=True:

i=2

 DoWhilei<=Len(s)Andflag

If____②______Then____③____

i=i+1

 Loop

 IfflagThen

Label2.Caption=s+″是降序数!

 Else

Label2.Caption=s+″不是降序数!

 EndIf

 EndSub

解析 程序往往有输入、中间处理和输出三部分组成,在程序中,变量s需输入,i表示在字符中位置,降序数的条件是该数大于或等于他前面的数。

Flag表示是降序数的标志。

如果不是降序数,将不再循环。

答案 

(1)C 

(2)①s=Text1.text ②Mid(s,I,1)

5.王敏的E-Mail邮箱密码忘记了,但她需要收一封很重要的来信,请你帮她尽可能找出密码。

她零星记得自己密码信息:

①密码是六位数字,前面两位为31; ②最后两位数字相同; ③能被16和46整除。

程序界面如图所示,单击“帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。

解决此问题的相应程序如下:

PrivateSubCommand1_Click()

DimaAsInteger,sAslong,bAsInteger,iAsInteger

Fori=0To9999

s=____①____

IfsMod46=0andsmod16=0Then

 a=smod10

 b=____②____

Ifa=bThen

   List1.AddItemStr(s)

 EndIf

EndIf

Nexti

EndSub

(1)解决此问题的主要算法是________________(选填:

枚举算法或解析算法)。

(2)窗口上的“找密码”是对Form1对象的______________属性设置的。

在程序①和②划线处,填入适当的语句或表达式,把程序补充完整:

(3)程序中①划线处应填入________________。

(4)程序中②划线处应填入________________。

答案 

(1)枚举算法 

(2)Caption (3)310000+i (4)s\10mod10

6.如果一个正整数是另一个整数的立方,那么称该数是“立方数”。

如:

1、8、27等是立方数。

现要求编写VB程序实现如下功能:

在文本框Text1中输入正整数n,单击命令按钮Command1后,在标签Lab上显示相关信息。

(1)在VB中,文本框Text1所属的类名是________(单选,填字母:

A.Text/ B.Text1/ C.TextBox)。

(2)为实现上述功能,请在划线处填入合适的代码。

PrivateSubCommand1_Click()

 DimnAsLong,iAsLong

 DimkAsLong,sAsString

 n=Val

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2