专题6 VB语言及算法基础 课件-2022届高三信息技术选考总复习(27张PPT)

文档属性

名称 专题6 VB语言及算法基础 课件-2022届高三信息技术选考总复习(27张PPT)
格式 pptx
文件大小 343.7KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-10-29 14:40:12

图片预览

文档简介

(共27张PPT)
专题6 VB语言及算法基础
1.常见标准函数的功能
函数名 功能 应用举例 函数返回值
Abs(x) 取x的________ Abs(-6.3) ________
Int(x) 求不大于x的__________ Int(-6.3) ______
Sqr(x) 求x的________ Sqr(9) ____
Rnd() 产生一个_______之间小数 Rnd() ________________
Str(x) 将数值x转换成______ Str(123) ________
绝对值
6.3
最大整数
-7
平方根
3
[0,1)
[0,1)之间小数
文本
”123”
Val(s) 将文本s转换成______ Val(”63”) ______
Len(s) 求字符串s的______ Len(”Abc”) ____
Mid(s,i,n) 在字符串s第i个位置开始____个字符 Mid(”I am a boy”,3,2) _______
Asc(s) 求字符串s的十进制______码值 Asc(”A”) ______
Chr(x) 将ASCII值转换成______ Chr(97) ________
数值
长度
63
3
n
”am”
ASCII
65
字母
”a”
2.算术类基本运算符及优先级按从高到低排列为^(乘幂)→-(取负)→*、____和\→________→+—
3.关系类运算符 =、>、<、______、>=、<=
4.逻辑类运算符 Not→________→Or
5.基本运算的优先级
______运算符→______运算符→______运算符
/
Mod
<>
And
算术
关系
逻辑
B
考点一 对于标准函数的理解
【例1】 用UltraEdit观察字母”A”的内码为41H,若已知大写字母S在26个英文字母表中位置是t(1≤t≤26),则下列能表示该英语字母的VB表达式是(  )
A.Chr(t) B.Chr(Asc(”A”)+t-1)
C.Chr(41+t) D.Chr(65+Int(t*Rnd))
解析 本题考核对函数的理解。字母”A”的内码为41H,转换成十进制为65D。因此选项B不正确。大写字母S在26个英文字母表中位置为t,因此可以表达为Chr(64+t),用A的ASCII码值代入,应为Chr(Asc(”A”)+t-1)。
A
【变式1】 下列VB表达式的值为”2020”的是(  )
A.Mid(”Hello2020!”,6,4) B.Abs(Int(-2018.8)-1)
C.Int(Rnd*2020+1) D.”2018”+”2”
解析 A选项取出字符串,B选项结果的类型是整型,C选项产生[1,2020]范围内的随机整数。D选项进行连接,值为“20182”。
C
考点二 运算符的优先级
【例2】 下列VB表达式中,值最大的是(  )
A.Val(Mid(”3.1415926”,6,2)) B.Int((Rnd-Rnd+1)/2)*100
C.6790 Mod 1000\10 D.Int(Rnd*80)+10
解析 本题考核的知识点是VB函数和表达式的知识。选项A的值为59,表达式(Rnd-Rnd+1)/2的范围[0,2)/2,因此选项B的值为0。选项C中先整除再取模,值为90.选项D中属于[10,89]之间的整数。
A
【变式2】 VB表达式 Int(Rnd*10)+54\9/3的值可能是(  )
A.18     B.12 C.28 D.11
解析 Int(Rnd*10)的值范围为0至9,54\9/3的值为18(/优先级高于\),故答案是A。
【变式3】 (2021·1月浙江选考)VB表达式3+9 Mod 3*2的值是(  )
A.0     B.3 C.6 D.9
解析 考查了表达式的识读。优先级“*”大于Mod,先计算“*”,再计算Mod。
A
D
考点三 逻辑表达式的值
【例3】 若x是整型变量,下列选项中,与表达式Not(x>=5 And x<9)等价的是(  )
A.x<5 And x>=9 B.Not x>5 And Not x<9
C.x>=5 Or x<9 D.x<5 Or x>=9
解析 本题考查关系表达式。通过在数轴上画出x>=5 And x<9 区域(左图),取反后得到右图。
容易得知答案选D。此题也可以根据通用技术数字电路中“德·摩根定律”进行解答。
D
【变式4】 与表达式Not x<0 Or y Mod 2=0具有相同功能的是(  )
A.x>=0 And y Mod 2=1 B.x>=0 And y\2=0
C.x>0 Or y/2=Int(y/2) D.x>=0 Or y\2=y/2
解析 本题考查VB运算符优先级别和运算方法。关系运算级别高于逻辑运算,Not运算优先级别优于Or,y Mod 2=0、y/2=y\2、y/2=Int(y/2),这三个表达式都可以表示y能被2整除,因此D选项正确。
B
【变式5】 三角形的三边长为a、b、c(均大于0),能判断它是等边三角形的VB表达式是(  )
A.a=b=c B.a=b And b=c
C.a=b Or b=c Or a=c D.c-a-b=0
解析 本题主要考查VB表达式。选项A是赋值语句,先计算表达式“b=c”的值再赋值给a。选项B中a=b和b=c同时为True时,表达式a=b And b=c的值才为True,即a、b、c相等,能判断是等边三角形,选项B正确。选项C只能判断是等腰三角形,只要a=b或b=c或a=c中一个为True,表达式a=b Or b=c Or a=c值为True。选项D只能表明c=a+b,而这甚至都不能组成一个三角形。
考点四 程序调试
【例4】 某VB程序的一个事件过程如下:
Private Sub Command1_Click( )
Dim i As Integer,k As Integer,s As String
Dim a(1 To 10) As Integer
For i=1 To 100
k=Int(Rnd()*11)+1
a(k)=a(k)+1
Next i
For i=1 To 10
s=Str(a(i))
List1.AddItem s
Next i
End Sub
B
程序运行时,单击命令按钮Command1后弹出如图所示的错误信息提示。出现错误的语句是(  )
A.k=Int(Rnd()*11)+1 B.a(k)=a(k)+1
C.s=Str(a(i))) D.List1.AddItem s
解析 本题考核的知识点是VB的错误调试。根据图中的错误提示,错误发生的原因是数组的下标越界,观察程序,数组定义的范围是1到10,而k=Int(Rnd() *11)+1产生的k的范围是1到11,当产生的随机数是11的时候,超出了数组的下标范围。
C
【变式6】 有如下VB程序段:
s=Text1.Text
i=2: n=Len(s): flag=True
Do While i <=Len(s)-1
a=Val(Mid(s,i,1))-Val(Mid(s,i-1,1))
b=Val(Mid(s,i+1,1))-Val(Mid(s,i,1))
If a <>b Then flag=False Else i=i+1
Loop
If flag=True Then s=”Yes” Else s=”No”
Label1.Caption=s
在Text1中输入“13578”,程序执行结束后,下列说法正确的是 (  )
A.在Label1中输出“No” B.在Label1中输出“Yes”
C.程序将进入死循环 D.程序执行完后,i的值是5
解析 阅读程序可知,该程序用于判断某字符串数是否是等差数列。在Text1中输入“13578”,当i=4时,Val(Mid(s,i,1))-Val(Mid(s,i-1,1)) <>Val(Mid(s,i+1,1))-Val(Mid(s,i,1))成立,flag的值被赋值为False,此后程序陷入死循环,因为i不变,条件i <=Len(s)-1永远成立。要解决死循环的问题,最好将循环条件改为i <=Len(s)-1 And flag=True。
【变式7】 有如下VB程序段:
n=Val(Text1.Text)
i=2: flag=True
Do While i <=Int(Sqr(n))
If n Mod i=0 Then
flag=False
Else
i=i+1
End If
Loop
If flag Then Label1.Caption=”Yes” Else Label1.Caption=”No”
该程序段运行后,若在文本框Text1中输入“15”,则下列说法正确的是(  )
A.flag 的值为True
B.Label1中输出“No”
C.程序将进入死循环
D.条件表达式n Mod i=0等价于In(n/i)=n\i
解析 程序的功能是判断n是否是素数,但该数不是素数时,并没有退出,也没有将i的值增加,因此将进入死循环。
C
1.VB表达式6\2*3+Abs (-8/2) Mod 3的值是(  )
A.2     B.10 C.0 D.8
解析 运算符的优选级,先*/,\,MOD, +-。
2.VB表达式 Sqr(Abs(Int (-8.2) ))+ 32 Mod 10\3的结果是(  )
A.5     B.4 C.3 D.2
解析 本题属于 VB 基础运算题,VB 运算的优先级是先乘除,再整除,然后是取余 Mod。由于(Int(-8.2))=-9,因此该 VB 表达式的前半部分答案是 3。而加号后面表达式部分结果为 2,故本题答案是5。
A
A
3.为了模仿抛硬币判断正反面,若以数值1表示硬币的正面,则不能实现的语句是(  )
A.Rnd*2 B.Int(Rnd*2)
C.Int(Rnd*2)+1 D.1-Int(Rnd*2)
解析 值为1可以表达正面,所以下列表达式应该是包含1的整数。A表达式Rnd*2值是小数,不能;B表达式Int(Rnd*2) 值是0或1,可以;C表达式Int(Rnd*2)+1值是1或2,可以;D表达式1-Int(Rnd*2) 值是0或1。
A
4.已知“A”的ASCII码值为41H,下列产生随机大写字母的VB表达式是(  )
A.Chr(Int(Rnd()*26+41)) B.Asc(Int(Rnd()*26+41))
C.Chr(Int(Rnd()*26+65)) D.Asc(Int(Rnd()*26+65))
解析 41H转十进制是65,大写字母ASCII编码值范围是65到90,根据用RND函数构建随机整数取值范围表达式:int(rnd*(b-a+1))+a,可以得到答案是C。
C
5.(2020·4月台州)有如下 VB 程序段:
Dim s As String,c As String,n As Integer,i As Integer
Dim a(1 To 26) As Integer
s=”23ab5cd968xyz”: n=0
For i=1 To Len(s)
c=Mid(s,i,1)
If c>=”a” And c <=”z” Then
a(Asc(c)-Asc(”a”)+1)=a(Asc(c)-Asc(”a”)+1)+1
Else
n=n*10+Val(c)
End If
Next i
执行该程序段后,出现的错误提示为(  )
A.溢出 B.下标越界
C.类型不匹配 D.无效的过程调用或参数
解析 本题主要考查VB程序运行时的错误类型。变量n定义为Integer,取值范围为[-32768,32768],当i=10,c=“8”时,n=235968,故出现溢出错误。
A
6.(2020·4月之江教育联考)下列有关VB表达式的描述,正确的是(  )
A.VB的基本表达式包括算术表达式、关系表达式和条件表达式
B.VB表达式“Int(3.14159*1000)/1000”的值为3.142
C.VB表达式“Abs(Int(-20.19))+Len(Mid(”20.19”,2))”的值是25
D.VB表达式“20201\10+Int(Sqr(5))”和“Len(”2020”)+2”的值相等
解析 本题主要考查VB表达式。A项VB的基本表达式包括算术、关系和逻辑表达式;B项的表达式是将3.14159保留三位小数,并没有四舍五入的功能;D项20201\10+Int(Sqr(5))的结果为2022,Len(”2020”)+2的结果为6。
C
7.如果a、b、c三个变量中任何一个变量的值为0,则将a、b、c三个变量都赋值为1。与上述描述相匹配的VB语句是(  )
A.If a=0 And b=0 And c=0 Then a=b=c=1
B.If a=0 And b=0 And c=0 Then a=1: b=1: c=1
C.If a*b*c=0 Then a=b=c=l
D.If a*b*c=0 Then a=1: b=a: c=b
解析 选项A、B满足的条件是a、b、c三个变量均为0,C选项的赋值不对。
D
8.有如下VB程序段:
Private Sub Command1_Click()
Dim a(1 To 9) As Integer
Dim i As Integer,sum As Integer
Dim s As String,ch As String
s=”ABCDEFGHIJK”
a(1)=1
For i=2 To 10
ch=Mid(s,i,1)
a(i)=a(i-1)*(Asc(ch)-Asc(”A”))
Next i
For i=2 To 10
sum=sum+(a(1)-a(i-1))
Next i
Label1.Text=Str(sum)
End Sub
程序运行时,单击命令按钮Command1后,将会出现的提示信息是(  )
A.溢出 B.未找到方法或数据成员
C.下标越界 D.类型不匹配
解析 本题考查程序的调试。Asc(ch)-Asc(”A”)的值表示字母ch距离字母”A”值,数组元素a(2)-a(10)的值分别为1-9,在累乘过程中,当i的值为9时,出现溢出现象。
A
同课章节目录