国二VB语言辅导讲解18题定稿2.docx

上传人:b****7 文档编号:11021302 上传时间:2023-02-24 格式:DOCX 页数:37 大小:712.40KB
下载 相关 举报
国二VB语言辅导讲解18题定稿2.docx_第1页
第1页 / 共37页
国二VB语言辅导讲解18题定稿2.docx_第2页
第2页 / 共37页
国二VB语言辅导讲解18题定稿2.docx_第3页
第3页 / 共37页
国二VB语言辅导讲解18题定稿2.docx_第4页
第4页 / 共37页
国二VB语言辅导讲解18题定稿2.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

国二VB语言辅导讲解18题定稿2.docx

《国二VB语言辅导讲解18题定稿2.docx》由会员分享,可在线阅读,更多相关《国二VB语言辅导讲解18题定稿2.docx(37页珍藏版)》请在冰豆网上搜索。

国二VB语言辅导讲解18题定稿2.docx

国二VB语言辅导讲解18题定稿2

母版十八题精讲

第1题(二叉树)

.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( D )。

A)3B)4C)6D)7

.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( A )。

A)16B)10C)6D)4

.设有下列二叉树:

对此二叉树中序遍历的结果为( D )。

A)ACBDEFB)DEBFCAC)ABDECFD)DBEAFC

第2题(变量的范围)

.标准模块中有如下程序代码:

PublicxAsInteger,yAsInteger

Subvar_pub()

  x=10∶y=20

EndSub

在窗体上有1个命令按钮,并有如下事件过程:

PrivateSubCommand1_Click()

  DimxAsInteger

  Callvar_pub

  x=x+100

  y=y+100

  Printx;y

EndSub

运行程序后单击命令按钮,窗体上显示的是( B 同名时优先使用局部变量x)。

A)100 100B)100 120C)110 100D)110 120

.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:

PrivateXAsInteger

PrivateSubCommand1_Click()

  X=5:

Y=3

  Callproc(X,Y)

  Label1.Caption=X

  Label2.Caption=Y

EndSub

PrivateSubproc(aAsInteger,ByValbAsInteger)

  X=a*a

  Y=b+b

EndSub

程序运行后,单击命令按钮,则两个标签中显示的内容分别是( A )。

A)25和3B)5和3C)25和6D)5和6

.工程文件中包含一个模块文件和一个窗体文件。

模块文件的程序代码是:

PublicxAsInteger

PrivateyAsInteger

窗体文件的程序代码是:

DimaAsInteger

PrivateSubForm_Load()

  DimbAsInteger

  a=2:

b=3:

x=10:

y=20

EndSub

PrivateSubCommand1_Click()

  a=a+5:

b=b+5:

x=x+5:

y=y+5

  Printa;b;x;y

EndSub

运行程序,单击窗体上的命令按钮,则在窗体上显示的是( D )。

A)55155B)751525

C)78155D)75155

第3题(静态变量)

.窗体上有名称为Command1的命令按钮,名称分别为Label1、Label2、Label3的标签。

编写如下程序:

PrivatexAsInteger

PrivateSubCommand1_Click()

  StaticyAsInteger

  DimzAsInteger

  n=5

  z=z+n

  y=y+n

  x=x+y

  Label1=x

  Label2=y

  Label3=z

EndSub

运行程序,连续3次单击命令按钮后,3个标签中分别显示的是( D )。

A)5 5 5B)15 10 5C)15 15 15D)30 15 5

.窗体上有1个名称为Command1的命令按钮,事件过程及函数过程如下:

PrivateSubCommand1_Click()

  DimpAsInteger

  p=m

(1)+m

(2)+m(3)

  Printp

EndSub

PrivateFunctionm(nAsInteger)AsInteger

  StaticsAsInteger

  Fori=1Ton

    s=s+1

  Next

  m=s

EndFunction

运行程序,第2次单击命令按钮Command1时的输出结果为( D )。

A)6B)10C)16D)28

第4题(运算符)

.下面程序运行时,若输入395,则输出结果是( B )。

PrivateSubCommand1_Click()

  Dimx%

  x=InputBox("请输入一个3位整数")

  PrintxMod10,x\100,(xMod100)\10

EndSub

A)3 9 5B)5 3 9C)5 9 3D)3 5 9

第5题(控制结构与数组)

.窗体上有一个名称为Command1的命令按钮,事件过程如下:

PrivateSubCommand1_Click()

  Dimarr_x(5,5)AsInteger

  Fori=1To3

    Forj=2To4

      arr_x(i,j)=i*j

    Nextj

  Nexti

  Printarr_x(2,1);arr_x(3,2);arr_x(4,3)

EndSub

运行程序,并单击命令按钮,窗体上显示的内容为( A )。

A)0 6 0B)2 6 0C)0 6 12D)2 6 12

.在窗体上画一个名称为Command1的命令按钮,并编写如下程序:

FunctionFun(x)

  y=0

  Ifx<10Then

    y=x

  Else

    y=y+10

  EndIf

  Fun=y

EndFunction

PrivateSubCommand1_Click()

  n=InputBox("请输入一个数")

  n=Val(n)

  P=Fun(n)

  PrintP

EndSub

运行程序,单击命令按钮,将显示输入对话框,如果在对话框中输入100,并单击"确定"按钮,则输出结果为( A )。

A)10B)100C)110D)出错信息

.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

PrivateSubCommand1_Click()

  DimiAsInteger,nAsInteger

  Fori=0To50

    i=i+3

    n=n+1

    Ifi>10ThenExitFor

  Next

  Text1.Text=Str(n)

EndSub

程序运行后,单击命令按钮,在文本框中显示的值是( B )。

A)2B)3C)4D)5

.设有如下事件过程:

PrivateSubCommand1_Click()

  Dima

  a=Array(12,3,8,5,10,3,5,9,2,4)

  Fork=1To9

    Printfun(a(k-1),a(k));"";

  Nextk

EndSub

PrivateFunctionfun(x,y)AsInteger

  DoWhilex>=y

    x=x-y

  Loop

  fun=x

EndFunction

程序运行时的输出结果是( B )。

A)4 0 1 0 3 0 0 4 0B)0 3 3 5 1 3 5 1 2

C)9 -5 3 -5 7 -2 -4 7-2D)9 3 3 5 7 3 5 7 2

第6题(复杂程序的阅读)

.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:

OptionBase1

PrivateSubCommand1_Click()

  d=0

  c=10

  x=Array(10,12,21,32,24)

  Fori=1To5

    Ifx(i)>cThen

      d=d+x(i)

      c=x(i)

    Else

      d=d-c

    EndIf

  Nexti

  Printd

EndSub

程序运行后,如果单击命令按钮,则在窗体上输出的内容为( C列表法)。

A)89B)99C)23D)77

.编写如下程序:

PrivateSubCommand1_Click()

  Dimstr1AsString,str2AsString

  str1=InputBox("输入一个字符串")

  subfstr1,str2

  Printstr2

EndSub

Subsubf(s1AsString,s2AsString)

  DimtempAsString

  StaticiAsInteger

  i=i+1

  temp=Mid(s1,i,1)

  Iftemp<>""Thensubfs1,s2

  s2=s2&temp

EndSub

程序运行后,单击命令按钮Command1,且输入"abcdef",则输出结果为( C 递归)。

A)afbecdB)cdbeafC)fedcbaD)adbecf

.设有如下Command1的单击事件过程及fun过程:

PrivateSubCommand1_Click()

  DimxAsInteger

  x=Val(InputBox("请输入一个整数"))

  fun(x)

EndSub

PrivateSubfun(xAsInteger)

  IfxMod2=0Thenfun(x/2)

  Printx;

EndSub

执行上述程序,输入6,结果是( A 递归)。

A)3 6B)6 3C)6D)程序死循环

第7题(传值、传引用)

.某人编写了下面的程序:

PrivateSubCommand1_Click()

  DimaAsInteger,bAsInteger

  a=InputBox("请输入整数")

  b=InputBox("请输入整数")

  proa

  prob

  Callpro(a+b)

EndSub

PrivateSubpro(nAsInteger)

  While(n>0)

    PrintnMod10;

    n=n\10

  Wend

  Print

EndSub

此程序功能是:

输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。

例如:

若输入123和234,则应该输出:

  3 2 1

  4 3 2

  7 5 3

但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改。

下面的修改方案中正确的是( A )。

A)把过程pro的形式参数nAsInteger改为ByValnAsInteger

B)把Callpro(a+b)改为proa+b

C)把n=n\10改为n=n/10

D)在prob语句之后增加语句c%=a+b,再把Callpro(a+b)改为proc

第8题(组合框)

.在窗体上画一个组合框,一个命令按钮和一个文本框,其名称分别为Combo1,Command1和Text1,然后编写如下事件过程:

PrivateSubForm_Load()

  Combo1.AddItem"AAAAA"

  Combo1.AddItem"BBBBB"

  Combo1.AddItem"CCCCC"

  Combo1.AddItem"DDDDD"

  Combo1.AddItem"EEEEE"

EndSub

程序运行后,如果单击命令按钮,则在文本框中显示组合框的项目"CCCCC"。

为了实现该操作,在命令按钮的Click事件过程中应使用的语句为( A )。

A)Text1.Text=Combo1.List

(2)B)Text1.Text=Combo1.Text

C)Text1.Text=Combo1.List(3)D)Text1.Text=Combo1.ListIndex

第9题(定时器)

.(第2套静态变量)

PrivateSubC1_Click()

'Timer1.Enabled=?

EndSub

PrivateSubTimer1_Timer()

Statica%

a=a+1

'IfP1.Top>P2.Top+P2.?

Then

P1.MoveP1.Left,P1.Top-5-a,P1.Width,P1.Height

Else

'Timer1.Enabled=?

EndIf

EndSub

.(第10套)

PrivateSubForm_Load()

Picture1(0).Left=0

Picture1(0).Top=100

Fork=1To7

' Picture1(k).Visible=?

Next

EndSub

PrivateSubCommand1_Click()

' Timer1.Enabled=?

EndSub

PrivateSubCommand2_Click()

Timer1.Enabled=False

EndSub

PrivateSubTimer1_Timer()

StaticiAsInteger

Picture1(i).Visible=False

i=i+1

' Ifi=?

Then

' i=?

EndIf

Picture1(i).Visible=True

EndSub

.(第12套)

Dimleft0AsInteger

Constbluecolor=&HFF0000,redcolor=&HFF&

PrivateSubCommand1_Click()

' Timer1.Enabled=?

EndSub

PrivateSubCommand2_Click()

Timer1.Enabled=False

EndSub

PrivateSubForm_Load()

left0=Shape1.Left

EndSub

PrivateSubTimer1_Timer()

IfShape1.FillColor=bluecolorThen

    IfShape1.Left>0Then

     Shape1.Height=Shape1.Height+100

      Shape1.Width=Shape1.Width+100

      Shape1.Left=Shape1.Left-50

      Shape1.Top=Shape1.Top-50

    Else

' Shape1.FillColor=?

    EndIf

EndIf

IfShape1.FillColor=redcolorThen

    IfShape1.Left

      Shape1.Height=Shape1.Height-100

      Shape1.Width=Shape1.Width-100

' ?

=Shape1.Left+50

' ?

=Shape1.Top+50

    Else

' Shape1.FillColor=?

    EndIf

EndIf

EndSub

第10题(字符串)

.(第13套读字符串插入单词)

PrivateSubCommand1_Click()

Dimst$,ch$

OpenApp.Path&"\in3.txt"ForInputAs#1

DoWhileNotEOF

(1)

  Input#1,ch

' st=?

&ch

Loop

Close#1

Text1=st

EndSub

PrivateSubCommand2_Click()

Dimst$,word$,c$

st=Text1

n=Len(st)

Fork=1Ton

' ?

=Mid(st,k,1)

 Ifc<>""Then

    word=word&c

 Else

    List1.AddItemword

' ?

=""

  EndIf

Next

List1.AddItemword

EndSub

.(单字符)单击"大小写转换"按钮,可以把Text1中的大写字母转换为小写,把小写字母转换为大写。

PrivateSubCmd1_Click()

Dima$,b$,k%,n%

a$=""

n%=Asc("a")-Asc(“A”)

Fork%=1ToLen(Text1.Text)

b$=Mid(Text1.Text,k%,1)

Ifb$>="a"Andb$<="z"Then

b$=String(1,Asc(b$)-n%)

Else

Ifb$>="A"Andb$<="Z"Then

b$=String(1,Asc(b$)+n%)

EndIf

EndIf

a$=a$+b$

Nextk%

Text1.Text=a$

EndSub

第11题(一维及控件数组)

.

参考答案

PrivateSubCommand1_Click()

Dima()AsLong

DimiAsInteger

DimnAsInteger

Fori=0ToOp1.Count-1

IfOp1(i).Value=TrueThen

n=Val(Op1(i).Caption)

ExitFor

EndIf

Next

ReDima(n)

a

(1)=1

a

(2)=1

Fori=3Ton

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

Next

Text1.Text=a(n)

EndSub

拓展条件:

奇数、偶数、被3整除、被7整除、素数、大于?

等个数(和)、下标为奇(偶)数的数组元素的和

偶数分解为两个素数之和。

第12题(两个及以上一维数组)

.(第6套)

程序提供代码

OptionBase1

DimArr1(20)AsInteger

DimArr2(20)AsInteger

SubReadData1()

OpenApp.Path&"\"&"datain1.txt"ForInputAs#1

Fori=1To20

    Input#1,Arr1(i)

Nexti

Close#1

EndSub

SubReadData2()

OpenApp.Path&"\"&"datain2.txt"ForInputAs#1

Fori=1To20

    Input#1,Arr2(i)

Nexti

Close#1

EndSub

SubWriteData(FilenameAsString,NumAsInteger)

OpenApp.Path&"\"&FilenameForOutputAs#1

Print#1,Num

Close#1

EndSub

参考答案

PrivateSubC1_Click()

CallReadData1

CallReadData2

EndSub

PrivateSubC2_Click()

DimArr3(1To20)AsInteger

DimsumAsInteger

sum=0

Fori=1To20

Arr3(i)=Arr1(i)-Arr2(i)

sum=sum+Arr3(i)

Nexti

Print"sum=";sum

WriteData"dataout.txt",sum

EndSub

拓展条件:

两个有序的一维数组,合并后有序存入第三个数组;除10截尾后相乘放入第3个数组中,再求和。

第13题(二维数组)

.(第10套)

程序提供代码

Dima(5,5)AsInteger

Dimb(5)AsInteger

Dimc(5)AsInteger

PrivateSubCommand1_Click()

N=5

Fori=1ToN

'========考生编写程序开始=====

'========考生编写程序结束=====

Nexti

Save

EndSub

PrivateSubForm_Load()

read

EndSub

PublicSubread()

OpenApp.Path&"\Data5.txt"ForInputAs#1

DoWhileNotEOF

(1)

    Fori=1To5

      Forj=1To5

        Input#1,a(i,j)

      Nextj

    Nexti

Loop

Close#1

EndSub

PublicSubSave()

OpenApp.Path&"\out5.txt"ForOutputAs#1

Fori=1To5

    Print#1,b(i),c(i)

Nexti

Close#1

EndSub

参考答案

Max=a(i,1)

Forj=1To5

IfMax

Max=a(i,j)

EndIf

b(i)=Max

IfMax=a(i,j)Thenc(i)=j

Nextj

拓展条件:

主对角线、副对角线、四周、各列、上三角、下三角等数据(最大最小值)输出(求和);交换两列或两行。

第14题(顺序文件的读写及排序)

.(第4套)

程序提供代码

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

当前位置:首页 > 考试认证 > IT认证

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

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