高考信息技术大一轮优选课件+习题 47.docx

上传人:b****7 文档编号:9385993 上传时间:2023-02-04 格式:DOCX 页数:12 大小:43.81KB
下载 相关 举报
高考信息技术大一轮优选课件+习题 47.docx_第1页
第1页 / 共12页
高考信息技术大一轮优选课件+习题 47.docx_第2页
第2页 / 共12页
高考信息技术大一轮优选课件+习题 47.docx_第3页
第3页 / 共12页
高考信息技术大一轮优选课件+习题 47.docx_第4页
第4页 / 共12页
高考信息技术大一轮优选课件+习题 47.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

高考信息技术大一轮优选课件+习题 47.docx

《高考信息技术大一轮优选课件+习题 47.docx》由会员分享,可在线阅读,更多相关《高考信息技术大一轮优选课件+习题 47.docx(12页珍藏版)》请在冰豆网上搜索。

高考信息技术大一轮优选课件+习题 47.docx

高考信息技术大一轮优选课件+习题47

第4节 VB基本语句

模拟演练

A组 学考题组

1.现要求刚好输出1至100内所有能被7整除的数字,下列哪段程序不能实现(  )

A.Fori=1To100

IfiMod7=0Then

  List1.AddItemi

Nexti

B.Fori=7To100Step7

  List1.AddItemi

Nexti

C.i=1:

s=7

DoWhiles<=100

  List1.AddItems

  i=i+1

  s=i*7

Loop

D.s=0

DoWhiles<=100

  s=s+7

  List1.AddItems

Loop

答案 D 本题考查对循环结构的掌握。

A选项利用了枚举法,i从1循环到100,步长为1,当Mod7为0(即i能被7整除)时输出i,可以实现;B选项i从7开始循环到100,步长为7,输出的刚好也是所有100内能被7整除的数字;C选项利用i的值,从1开始步长为1不断循环,每次输出i*7的值,直到s大于100停止,也可以实现;D选项看似没有问题,但是s超出100后的第一个能被7整除的数字还是会被输出来,程序有缺陷。

2.阅读下面的程序:

PrivateSubCommand1_Click()

 a=Val(Text1.text)

 b=Val(Text2.text)

 DoWhileaModb<>0

r=aModb

a=b

  b=r

Loop

Text3.text=str(b)

EndSub

在Text1、Text2中分别输入30、6,则Text3中的值为(  )

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

答案 C 本题考查辗转相除法求最大公约数。

将30、6代入程序即可。

3.有如下VisualBasic程序:

PrivateSubCommand1_Click()

DimsumAsDouble,xAsDouble

 sum=0

 n=0

 Fori=1To5

  x=n/i

  n=n+1

  sum=sum+x

 Next

EndSub

该程序通过For循环计算sum的值,下列表达式的值与sum相等的是(  )

A.1+1/2+2/3+3/4+4/5B.1+1/2+2/3+3/4

C.1/2+2/3+3/4+4/5D.1+1/2+1/3+1/4+1/5

答案 C 本题考查程序阅读。

程序运行过程如下:

i

x=n/i

执行n=n+1后的n

sum

1

0

1

0

2

1/2

2

1/2

3

2/3

3

1/2+2/3

4

3/4

4

1/2+2/3+3/4

5

4/5

5

1/2+2/3+3/4+4/5

退出循环

4.下面程序段用于计算分段函数y=

的值,不正确的是(  )

A.Ifx<0Then

 y=0

ElseIfx<1Then

 y=1

Else

 y=x

EndIf

B.Ifx<0Then

 y=0

Else

 Ifx<1Then

  y=1

 Else

  y=x

 EndIf

EndIf

C.Ifx<0Theny=0

Ifx<1Theny=1

Ifx>=1Theny=xD.Ifx<0Theny=0

Ifx>=0andx<1Theny=1

Ifx>=1Theny=x

答案 C 本题考查VB选择结构语句的书写。

C选项中语句条件范围存在重叠。

5.有如下VisualBasic程序段:

s=0

Fori=1To20Step2

 Ifs<15Then

  s=s+i

 EndIf

Nexti

以上程序执行结束后,变量s和i的值分别为(  )

A.9 20B.16 7C.16 21D.15 22

答案 C 本题主要考查的是VB中的循环语句和选择语句,具体计算过程如下:

i

1

3

5

7

21

s

1

4

9

16

16

16

由表可知,本题选C。

6.阅读如下程序段,程序运行结束时,k和s的值分别是(  )

k=0:

s=0

DoWhilek<=10

s=s+1

k=k+1

Loop

A.k=10,s=10B.k=10,s=11C.k=11,s=10D.k=11,s=11

答案 D 本题主要考查VB循环结构。

Do-Loop循环是未知循环次数的循环,只要循环变量的值满足条件,就一直循环。

程序段中,k和s的初值都为0,每循环一次,s自加1,循环变量k从0开始,一直到k=10,进入最后一次循环,故一共循环11次,所以程序结束时,s=11。

k=10,进入最后一次循环,执行循环体,k=k+1,所以k=11,当k=11时,不符合k≤10,故循环停止。

所以程序结束时,k=11,s=11。

7.斐波那契数列是指从第3项开始,每一项的值为前两项之和。

如:

1,1,2,3,5,8,13,…,下面程序用于求斐波那契数列的第n项的值

Dimf1aslong,f2aslong,faslong

 n=val(Text1.Text)

 f1=1

 f2=1

 Fork=3ton

 

Nextk

Label1.Caption=“斐波那契数列第”+str(n)+“项的值为”+str(f)

方框中的代码由以下三部分组成:

①f2=f ②f1=f2 ③f=f1+f2

代码顺序正确的选项是(  )

A.①②③B.③②①C.②③①D.②①③

答案 B 题中已经给出前两项f1=1,f2=1,从第3项开始进入循环。

循环的目的是对f1和f2求和后,更新两个变量f1,f2,代入再求新的和,如图所示。

因此三条语句的顺序是:

①求和:

f=f1+f2,②更新f1的值:

f1=f2,③更新f2的值:

f2=f,故选B。

8.下面VB程序的功能是:

程序运行时,在文本框Text1中输入正整数n,单击命令“生成”按钮Command1后,在文本框2中输出n,n-1,…,2,1,2,…,n-1,n。

若n=6,在文本框Text2中输出“65432123456”。

程序运行界面如图所示。

实现上述功能的VB程序代码如下,但加框处语句有误,请改正。

PrivateSubCommand1_Click()

 DimiAsInteger,nAsInteger,sAsString

 n=Val(Text1.Text)

 s=“”

 Fori=1To2*n’①

  Ifi<=nThen

   s=s+Str(n-i+1)

  Else

 s=s+Str(2*i-n)’②

  EndIf

 Nexti

 Text2.Text=s

EndSub

(1)程序中①处应改为        ; 

(2)程序中②处应改为        。

 

答案 

(1)2*n-1

(2)s=s+Str(i-n+1)

解析 本题主要考查VB循环结构。

程序实现过程:

在Text1中输入n的值,在Text2中输出结果。

当输入的值为n时,一共输出2*n-1个值。

从n开始依次减小1,直到输出1后,开始递增,依次增大1,直到输出n,停止。

用变量i的值来控制循环次数。

当i≤n时,每次输出n-i+1,当i>n时,每次输出2*i-n。

因为输出在文本框当中,所以需要将数值转换为字符串。

(1)当输入值为n时,输出的值的个数应该为2*n-1个,所以i的范围为1To2*n-1。

控制循环次数。

(2)当i≤n时,输出值依次减小,当i>n时,输出值越来越大。

所以②处应改成s=s+Str(i-n+1)。

B组 选考题组

1.有如下VB程序:

PrivateSubCommand1_Click()

 Dima(1To5)AsInteger

 a(5)=Val(Text1.text)

 Fori=4To1Step-1

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

 Nexti

 Label1.caption=str(a

(1))

Endsub

在文本框Text1中输入“100”,单击命令按钮Command1后,标签Label1中显示的内容是(  )

A.25B.6C.12D.50

答案 B 本题考查程序阅读。

程序执行过程中数组a变化如下:

i

数组a初始:

0,0,0,0,100

4

0,0,0,50,100

3

0,0,25,50,100

2

0,12,25,50,100

1

6,12,25,50,100

2.贝贝有n个桃子,吃完后每三个桃核可以换一个桃子,编写一个程序计算贝贝总共能够吃到几个桃子。

(1)若贝贝总共有7个桃子,则他最后可以吃到   个桃子。

 

(2)修改程序中的错误。

程序代码如下:

PrivateSubCommand1_Click()

DimnAsInteger,ansAsInteger

n=Val(Text1.Text)

ans=n

DoWhile n>3  ’①

 ans=ans+n\3

 n=n\3 ’②

Loop

Label2.Caption=“总共能吃到的桃子数为:

”+Str(ans)+“个”

EndSub

答案 

(1)10 

(2)①n>=3 ②n\3+nmod3

解析 本题考查利用程序实现问题模拟的能力。

首先题中最为关键的变量是n,n表示什么呢?

可以认为是初始的桃子数,但实际上n是桃核数量,只不过刚好初始的桃子和桃核数量是相等的,于是循环判断n是否大于等于3。

若不是则继续循环。

若是,则需要加上换过的桃子,而n的值变成了换过的桃子产生的桃核和原先换桃时多出来的桃核数。

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

输入年月日,求该日是这一年的第几天。

程序运行时,在文本框“TextNian”中输入年,在文本框“TextYue”中输入月,在文本框“TextRi”中输入日。

单击“点击计算”按钮“ButtonRun”进行计算,结果输出到文本框“TextAnswer”中。

程序界面如图所示。

请回答下列问题:

(1)应用程序界面设计时,设置文本框“TextNian”的显示内容为空,应设置该对象    的属性为空白。

 

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

PrivateSub     ①     () 

DimnianAsInteger,yueAsInteger,riAsInteger

DimansAsInteger,iAsInteger

Dima(1To12)AsInteger’a(i)存储第i个月的天数

a

(1)=31:

a

(2)=28:

a(3)=31:

a(4)=30

a(5)=31:

a(6)=30:

a(7)=31:

a(8)=31

a(9)=30:

a(10)=31:

a(11)=30:

a(12)=31

nian=Val(TextNian.Text)

yue=Val(TextYue.Text)

ri=Val(TextRi.Text)

Fori=1Toyue-1’依次加上之前每个月的天数

  ans=    ②     

Nexti

ans=ans+ri’加上当月的天数

Ifyue>2Then’包含2月时,判断是否闰年,修正总天数

 IfnianMod400=0Thenans=ans+1

 IfnianMod4=0AndnianMod100<>0Thenans=ans+1

EndIf

    ③    =Str(ans) 

EndSub

①处代码为        。

 

②处代码为        。

 

③处代码为        。

 

答案 

(1)Text

(2)①ButtonRun_Click

②ans=ans+a(i)

③TextAnswer.Text

解析 

(1)略。

(2)①注意“点击计算”按钮的名称为“ButtonRun”,事件为单击。

②累加前yue-1个月的天数,其中若包含2月份,暂以28天计算,若yue>2且为闰年,则之后再加上1天。

③注意文本框的名称为“TextAnswer”。

4.(2016台州六校第一学期期末选考科目联考,16,4分)编写VB程序,实现如下功能:

在文本框Text1中输入筛选关键词“ca”,单击“筛选”按钮Command1,在列表框List1所列字符串中查找左边与“ca”相匹配的字符串,并在列表框List2中输出(运行效果如图所示);否则,在列表框List2中显示“无筛选结果”。

实现上述功能的VB代码如下,但加框处代码有错,请改正。

Dima(1To20)AsString  ’用于存储20个字符串

’将20个字符串分别保存赋值给数组元素a

(1)、a

(2)、a(3)、a(4)、…、a(19)、a(20),并在列表框List1中显示

PrivateSubForm_Load()

’代码略

EndSub

PrivateSubCommand1_Click()

DimsAsString,nAsInteger,iAsInteger

DimflagAsBoolean ’变量flag用于标记是否在数组a中筛选到左边与s匹配的字符串

List2.Clear ’筛选时清空上次筛选结果

s=Text1.Text

n=Len(s)

flag=False

Fori=1To20

  IfMid(a(i),1,i)=sThen’

(1)

   List2.AddItema(i)

   flag=True

  EndIf

Nexti

Ifflag=FalseThen

 List2.AddItema(20)’

(2)

EndIf

EndSub

答案 

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

(2)List2.AddItem“无筛选结果”

解析 本题主要考查数组与函数的运用。

(1)n为输入的字符串的长度。

只需要将a

(1)到a(20)每个数组元素中的字符串第一个位置起的n个字符长度的字符子串与输入的字符串进行比较。

若两个字符串相同,则输出数组元素中的字符串。

所以用mid函数截取数组元素中字符串的子串。

(2)根据题意,若flag=false,则未查找到匹配的字符串,应输出“无筛选结果”。

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

当前位置:首页 > 党团工作 > 思想汇报心得体会

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

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