高考选考信息技术必修3 第一章算法及VB语言.docx

上传人:b****6 文档编号:6168496 上传时间:2023-01-04 格式:DOCX 页数:24 大小:77.11KB
下载 相关 举报
高考选考信息技术必修3 第一章算法及VB语言.docx_第1页
第1页 / 共24页
高考选考信息技术必修3 第一章算法及VB语言.docx_第2页
第2页 / 共24页
高考选考信息技术必修3 第一章算法及VB语言.docx_第3页
第3页 / 共24页
高考选考信息技术必修3 第一章算法及VB语言.docx_第4页
第4页 / 共24页
高考选考信息技术必修3 第一章算法及VB语言.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

高考选考信息技术必修3 第一章算法及VB语言.docx

《高考选考信息技术必修3 第一章算法及VB语言.docx》由会员分享,可在线阅读,更多相关《高考选考信息技术必修3 第一章算法及VB语言.docx(24页珍藏版)》请在冰豆网上搜索。

高考选考信息技术必修3 第一章算法及VB语言.docx

高考选考信息技术必修3第一章算法及VB语言

第一章 算法及VB语言

[考试标准]

考试内容

考试要求

考试属性

1.算法的基本概念及常用表示方法

b

加试

2.面向对象程序设计的基本思想与方法

b

3.类、对象、属性、方法、事件和事件处理的概念及应用

c

4.VB应用程序的调试及运行

c

5.VB基本数据类型、常量、变量与数组

c

6.VB各类基本运算、表达式与常用的标准函数

c

7.常用VB语句

c

8.过程与自定义函数

c

VB应用程序是按模块化的方式组成的,一个程序模块是程序的一部分,每个模块负责解决整个应用问题的一部分任务。

程序模块分为过程和函数两种。

一、过程

可以将程序划分成一个个较小的逻辑单元,这样每个逻辑单元可以构成一个过程。

过程中的代码可以被重复调用,从而避免了不必要的代码的重复编制,减少了编程的工作量。

构造事件处理过程

Sub事件处理过程名(参数表)

 语句块

EndSub

其中,事件处理过程名必须符合下面的规则:

对象名_事件的标准名。

VB的一些常用对象上的常见事件的标准名见下表:

对象

事件处理过程名

说明

文本框

Text

Text_Click

在文本框内单击鼠标

Text_DblClick

在文本框内双击鼠标

Text_KeyPress

文本框被激活后,用户在键盘上按下了某个键

命令按钮Command

Command_Click

在命令按钮上单击鼠标

标签Label

Label_Click

在标签上单击鼠标

窗体Form

Form_Load

窗体装载

通过过程:

是一个独立的程序段,不同的事件可能需要使用同一个程序段时,可以把这个程序段单独地建立成一个通用过程,供其他事件处理过程或其他通用过程调用。

二、函数

函数是类似于过程的另一种程序模块,不同之处是函数执行完成后,函数的计算结果被送到函数的调用点上,供程序的后继部分继续进行处理。

自定义函数格式:

Function函数名(参数表)As 类型名

 语句块

End__Function

函数名是为函数指定的名称,参数表是对一函数需要的原始数据类型一一地进行说明,As后的类型名,是说明函数的计算结果,即函数返回值的数据类型。

自定义函数的语句块中至少要有一个形如“函数名=表达式”的语句,这样,表达式的计算结果才能作为函数的返回值,被VB送到函数的调用点上。

【例1】 某VB程序如下:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

 IfKeyAscii=13Then

Text2.Text=Text1.Text+Str(5)

 EndIf

EndSub

程序运行时,能触发该事件过程的是(  )

A.单击文本框Text1

B.单击文本框Text2

C.文本框Text1被激活后,用户在键盘上按下某一个键

D.文本框Text2被激活后,用户在键盘上按下某一个键

解析 事件处理过程名必须符合规则:

对象名_事件的标准名。

Text1_KeyPress(KeyAsciiAsInteger)中Text1是这个事件过程的触发对象,所以排除B、D选项。

KeyAscii是事件过程的参数,意思是键盘输入后传递给程序的ASCII码。

结合if语句,当按下键盘上某一个键传递给程序的ASCII码值等于13的时候执行then后面的语句。

所以答案选C。

答案 C

[变式1] 有如下VB程序段:

DimiAsInteger,cAsString,sAsString,tAsString

s=”China2014IT”:

t=””

Fori=1ToLen(s)

 c=Mid(s,i,1)

 Ifc>=”a”Andc<=”z”Thent=t+c

Nexti

Label1.Caption=t

该程序段运行后,标签Label1中显示的内容是(  )

A.2014B.ChinaITC.hinaD.CIT

解析 该程序的功能是取出字符串s中的小写字母。

答案 C

[变式2] 下面VB程序的功能为:

在文本框Text1和Text2中输入两个整数,单击按钮对象Command1,在标签对象Label1中显示这两个数的差。

Functionlsc(x,y)AsInteger

 Ifx>yThen

lsc=x-y

 Else

lsc=y-x

 EndIf

EndFunction

PrivateSubCommand1_Click()

 Dima1AsInteger,a2AsInteger

 a1=Val(Text1.Text)

 a2=Val(Text2.Text)

 Label1.Caption=________

EndSub

要实现上述功能,程序画线处应填入的语句为(  )

A.lsc(x,y)

B.lsc(Text1.Text,Text2.Text)

C.lsc

D.lsc(a1,a2)

解析 自定义函数lsc用于求两个整数的差,由于输入的整数为a1、a2,因此画线处应填的语句为lsc(a1,a2),答案为D。

答案 D

[变式3] 某VB应用程序的两个事件过程如下:

PrivateFunctionout(xAsInteger,yAsInteger,zAsInteger)AsInteger

 DimtempAsInteger

 Ifx>yThentemp=yElsetemp=x

 Iftemp>zThentemp=z

 out=temp

EndFunction

PrivateSubCommand1_Click()

 DimaAsInteger,bAsInteger,cAsInteger

 a=1

 b=2

 c=3

 Text1.Text=out(a,b,c)

EndSub

程序运行时,单击命令按钮command1后,在文本框Text1中显示的内容是(  )

A.0B.1C.2D.3

解析 自定义函数out的功能是求三个数中的最小数,1、2、3三个数中的最小数为1,因此答案为B。

答案 B

[变式4] 小明在VB中定义了以下函数,功能是求a和b的最大公约数。

Functiongcd(aAsInteger,bAsInteger)AsInteger

 DoWhileb>0

c=aModb

a=b

b=c

 Loop

EndFunction

调试中发现计算结果一直是0。

经过仔细观察与分析,发现错误的原因是(  )

A.函数名有错

B.变量c没有定义

C.函数没有返回值

D.b>0应该改为b>=0

解析 A选项函数名的命名规则同变量名。

VB中可以省略一些变量的定义,未定义的变量即为通用类型,即根据赋值变化数据类型,所以B选项局部变量c未定义,不影响程序运行。

D选项把循环条件改成b>=0反而会使DoWhihe……Loop循环进入死循环。

所以正确答案是C。

答案 C

[变式5] 在VB中,设已定义函数过程f,它有三个实型传值参数。

设a,b,c为实型变量,则下列能调用该函数的正确语句是(  )

A.fB.f(a+b,b+c)

C.f(a+b,b+c,c+a)D.fa+b,b+c,c+a

解析 注意函数的格式。

答案 C

【例2】 如果一个整数是另一个整数的平方,则称该数是“完全平方数”。

如:

1=1×1,4=2×2,9=3×3,所以1、4、9是完全平方数。

下列VB程序可以求出1到n(1≤n≤1000)之间的所有完全平方数之和:

PrivateSubCommand1_Click()

 DimsAsLong ′用于存储1到n之间所有完全平方数之和

 DimiAsInteger,nAsInteger

 n=Val(Text1.Text)

 s=0

 Fori=1Ton

Ifok(i)Thens=s+i ′当ok函数返回值为True时,执行s=s+i

 Nexti

 Label1.Caption=Str(s)

EndSub

′ok函数用于判断变量t的值是否为完全平方数

Functionok(tAsInteger)AsBoolean

 DimkAsInteger

 

 Ifk*k=tThenok=TrueElseok=False

EndFunction

方框中的正确语句是(  )

A.k=Int(Sqr(t))B.t=Int(Sqr(k))

C.k=t^2D.t=k^2

解析 在判断t是否为完全平方数之前,先取出k的值,使k=Int(Sqr(t)),若正好有k*k=t,则得出结论:

t是完全平方数,ok=True。

答案 A

【例3】 (2016·9月嘉兴测试)VisualBsaic程序段如下:

Functiof(xAsSingle,yAsSingle)AsSingle

Ifx>yAndy<0Thenf=x^Abs(y)Elsef=x*Int(Spr(y))

EndFunction

PrivateSubCommand1Click()

DimaAsSingle,bAsSingle

a=Val(Text1.Text):

b=val(Text2.Text)

Text3.Text=Str(f(a,b))

EndSub

该程序段运行后,文本框Text1、Text2分别输入3,2后,单击命令按钮Command1,文本框Text3中显示的是(  )

A.2B.3C.6D.9

解析 本题考查简单的自定义函数,程序运行后,输入两个值3和2分别给变量a和b,text3.text=str(f(a,b))调用自定义函数f,自定义函数f将3和2两个参数变量传递给x和y,判断“x>yandy<0”为假,则返回函数值“x*int(sqr(y))”即“3*int(sqr

(2))”,结果为3。

答案 B

【例4】 (2015·10月浙江选考)某数据加密方法描述如下:

(1)以字节为单位进行加密处理;

(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数;

(3)分别将上述两个4位二进制数转换为十进制数;

(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:

值(十进制)

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

加密字符

I

l

i

k

e

C

H

N

p

o

s

t

c

a

r

d

小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:

单击“加密”按钮Command1,程序依次将文本框Text1中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。

下表显示了字符串中一个字符的加密过程:

←转换前字符m

←字符m的ASCII码十进制值

←对应的二进制数

←分割、转换后的十进制数

←对应的加密字符

程序运行效果如图所示。

实现上述功能的VB程序如下:

(1)请在画线处填入合适代码。

PrivateSubCommand1_Click()

 DimnAsInteger,sAsString,iAsInteger,ssAsString

 DimaAsInteger   ′存储加密前字符的ASCII码

 Dimb1AsInteger,b2AsInteger ′分别存储分割、转换后的两个十进制数

 s=Text1.Text

①__

 Fori=1Ton

a=Asc(Mid(s,i,1))

b1=a\16

b2=aMod16

ss=ss+Code2Char(b1)+Code2Char(b2)

 Nexti

 Text2.Text=ss

EndSub

′十进制值转换为加密字符的函数

FunctionCode2Char(cAsInteger)AsString

 DimsAsString

 s=“IlikeCHNpostcard”

 Code2Char=__②__

EndFunction

(2)若将“密码表”中值为“0”对应的加密字符“I”改成“i”,加密后的密文可能无法解密,原因是__________________________________________________________

_____________________________________________________________________

_____________________________________________________________________。

解析 本题考查过程和自定义函数,常用标准函数等。

(1)根据题意,对文本框Text1中输入的字符串逐个字符加密,需算出字符串的长度n,作为循环变量的终值,即n=Len(s)。

加密后的字符串(密文)存储于字符串变量ss中。

②自定义函数Code2Char()中,根据密码表对应的每个十进制数转换为1个加密字符,第一个加密字符对应十进制值为0,故当十进制数值为6时,对应的字符H是第6+1个字符位置,即当十进制数值为c时,对应的字符是第c+1个字符位置,用取子串函数Mid(s,c+1,1)。

(2)若密码表中值为0对应的加密字符I改为i,造成同时对应加密字符i,当解密时,加密字符i对应的十进制有两个值0和2,不唯一而出错,从而无法解密。

答案 

(1)①n=Len(s)[或n=Len(Text1.Text)]

②Mid(s,c+1,1)

(2)加密字符i对应两个值0,2

【易错易误】

过程:

将程序划分为一个个较小的逻辑单元,每个逻辑单元构成一个过程。

过程中的代码可以被重复地调用。

过程分成两类:

事件处理过程和通用过程。

事件处理过程:

Sub事件处理过程名(参数表)

 语句块

EndSub

VB预设的事件有:

Click(单击)、DblClick(双击)、KeyPress(按键)、Load(装载)、Change(改变)等。

VB的一些常用对象上的常见事件的标准名有:

文本框Text:

Text1_Click、Text1_DblClick、Text1_KeyPress、Text1_Change

命令按钮Command:

Command1_Click

标签Label:

Label1_Click

窗体Form:

Form_Load(窗体装载)

1.字符串变量a的值为“Hello,world!

”,下列VisualBasic表达式的值是“world”的是(  )

A.Len(a,6,5)B.Mid(a,6,5)

C.Mid(a,7,4)D.Mid(a,7,5)

解析 Mid(X,n,k)的作用是取字符串X中第n个字符起长度为k的子串。

Mid(a,7,5)的功能是取字符串变量“Hello,world!

”中第7个字符“w”起长度为5的子串,即“world”。

答案 D

2.运行如下VB程序:

PrivateSubCommand1_Click()

 DimxAsInteger

 DimyAsString

 x=Val(Text1.Text)

 Ifx>=95Then

y=”非常满意”

 ElseIfx>=80Then

y=”满意”

 ElseIfx>=60Then

y=”基本满意”

 Else

y=”不满意”

 EndIf

Label1.Caption=y

EndSub

在文本框Text1中输入50,单击命令按钮Command1后,在标签Label1中显示(  )

A.非常满意B.满意

C.基本满意D.不满意

解析 当x=50时,执行y=“不满意”。

答案 D

3.某对象的一个事件过程代码如下:

PrivateSubObj_Click()

 s=s+1

 Text1.Text=Str(s)

EndSub

下列说法正确的是(  )

A.该过程的过程名为“Obj”

B.该对象的类名为“Sub”

C.该对象的对象名为“Obj_Click”

D.该事件是一个“单击”事件

解析 由题中可以看出是一个“单击”事件。

答案 D

4.窗体装载事件过程可以对程序进行初始化。

VB窗体装载事件过程的名称是(  )

A.Command1_ClickB.Form_Keypress

C.Form_LoadD.Form_DblClick

答案 C

5.下面VB程序的功能是判断一个数是否为一个完全平方数。

在文本框Text1中输入一个整数,单击按钮对象Command1,如果此数是一个完全平方数,则在标签对象Label1中显示“Yes”,否则显示“No”。

所谓完全平方数,是指一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫平方数。

例如,1、4、9、16等是完全平方数。

Functionjudge(x)AsBoolean

 judge=False

 Ifx=Sqr(x)^2Then____①____

EndFunction

PrivateSubCommand1_Click()

 DimxAsInteger

 x=Val(Text1.Text)

 Ifjudge(x) Then

Label1.Caption=”Yes”

 Else

②____

 EndIf

EndSub

为实现上述功能,请分别在画线①和画线②处填入合适的语句。

画线①处应填入的语句为_______________________________________________

_____________________________________________________________________

画线②处应填入的语句为_______________________________________________

_____________________________________________________________________

解析 分析可知,①处代码是完全平方数的情况,因此应填入judge=True;根据题意,如果输入的整数不是完全平方数,则在标签对象Label1中显示“No”,因此②处代码为Label1.Caption=“No”。

答案 ①judge=True ②Label1.Caption=“No”

6.以下是求阶乘和1!

+2!

+……+10!

的程序,单击按钮(Command1)后,结果输出显示在窗体上,使用Function函数计算某个数的阶乘,请将画线处的代码补充完整。

PrivateSubCommand1_Click()

 Fori=1To10

Sum=________①________

 Nexti

 PrintSum

EndSub

Functionjiecheng(num)

 jiecheng=1

 Fori=1Tonum

________②________

 Nexti

EndFunction

答案 ①Sum+jiecheng(i) ②jiecheng=jiecheng*i

7.下列VB程序用于求2个正整数(均小于10000)的最大公约数:

PrivateSubCommand1_Click()

 DimxAsInteger

 DimyAsInteger

 DimzAsInteger

 x=Val(Text1.Text)

 y=Val(Text2.Text)

__z__=gcd(a,b) ①

 Text3.Text=Str(z)

EndSub

Functiongcd(aAsInteger,bAsInteger)AsInteger

 DoWhilea>b ②

 Ifa>bThena=a-bElseb=b-a

 Loop

 gcd=b

EndFunction

其中,画线①,②部分有错,应改为________,________。

解析 ①处需要调用gcd函数,传入x,y的值,得到他们的最大公约数,返回给变量z。

②处循环终止条件应该是a等于b,要使循环运行,只需要a不等于b,而不是a>b。

答案 ①z=gcd(x,y) ②a<>b

8.在VB中,有如下程序:

Functionmax(xAsInteger,yAsInteger)AsInteger

 Ifx>yThenmax=xElsemax=y

EndFunction

 PrivateSubCommand1_Click()

DimaAsInteger,bAsInteger,cAsInteger

DimdAsInteger,zAsInteger

a=Val(Text1.Text)

b=Val(Text2.Text)

c=Val(Text3.Text)

d=max(a,b)

z=max(d,c)

 Text4.Text=Str(d)

 Text5.Text=Str(z)

EndSub

运行该程序,在文本框Text1、文本框Text2、文本框Text3中分别输入2、-5、6后,单击命令按钮Command1,文本框Text4中显示的是①________,文本框Text5中显示的是②________。

解析 由程序运行可知,Text4显示2,Text5显示6。

答案 ①2②6

1.下列问题不能用算法描述的是(  )

A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数根

B.计算某个班级学生身高的平均值

C.列出方程y=2x+1的所有实数解

D.根据三角形三边长度求三角形面积

解析 选项C中,所有的实数解个数有无数个,所以它违背了算法的有穷性特征,因此不能用算法描述。

答案 C

2.在VB数组说明语句Dimd(3To8,4To9)AsBoolean中,数组d的变量类型是(  )

A.长整数型B.字符串型

C.单精度实数型D.逻辑型

解析 “Boolean”表示逻辑型数组。

答案 D

3.某宾馆的房间号由5位字符组成(例如A0823表示A幢8层33号房间),末位数字为奇数时表示房间朝南、为偶数时表示房间朝北。

字符串变量s中存储了1个房间号,下列能正确判断房间朝南的VB表达式是(  )

A.Val(Mid(s,5,1))Mod2=1

B.Val(Mid(s,5,1))Mod2=0

C.Val(Mid(s,5,1))\2=1

D.Val(Mid(s,5,1))\2=0

解析 要判断房间朝南,则先取出房间号中的第5位数字,然后将其转换为数值后除以2,若余数为1,则表示是奇数。

答案 A

4.下列VB表达式的值等于3的是(  )

A.Sqr

(2)+1B.Abs(-1)-2

C.Asc(“1”)+2D.Len(“-2”)+1

解析 Sqr(x)

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

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1