二级VISUAL BASIC真题.docx

上传人:b****7 文档编号:26307472 上传时间:2023-06-17 格式:DOCX 页数:20 大小:118.40KB
下载 相关 举报
二级VISUAL BASIC真题.docx_第1页
第1页 / 共20页
二级VISUAL BASIC真题.docx_第2页
第2页 / 共20页
二级VISUAL BASIC真题.docx_第3页
第3页 / 共20页
二级VISUAL BASIC真题.docx_第4页
第4页 / 共20页
二级VISUAL BASIC真题.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

二级VISUAL BASIC真题.docx

《二级VISUAL BASIC真题.docx》由会员分享,可在线阅读,更多相关《二级VISUAL BASIC真题.docx(20页珍藏版)》请在冰豆网上搜索。

二级VISUAL BASIC真题.docx

二级VISUALBASIC真题

2010年3月全国计算机等级考试二级笔试试卷

VisualBasic语言程序设计

一、选择题

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

(11)在VB集成环境中要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是

(12)设x是整型变量,与函数IIf(x>0,-x,x)有相同结果的代数式是

A)|x|B)-|x|C)xD)-x

(13)设窗体文件中有下面的事件过程:

PrivateSubCommand1_Click()

Dims

a%=100

Printa

EndSub

其中变量a和s的数据类型分别是

A)整型,整型B)变体型,变体型

C)整型,变体型D)变体型,整型

(14)下面哪个属性肯定不是框架控件的属性

A)TextB)Caption

C)LeftD)Enabled

(15)下面不能在信息框中输出“VB”的是

A)MsgBox"VB"B)x=MsgBox("VB")

C)MsgBox("VB")D)CallMsgBox"VB"

(16)窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程

PrivateSuboption1_Click(IndexAsInteger)

EndSub

下面关于此过程的参数Index的叙述中正确的是

A)Index为1表示单选按钮被选中,为0表示未选中

B)Index的值可正可负

C)Index的值用来区分哪个单选按钮被选中

D)Index表示数组中单选按钮的数量

(17)设窗体中有一个文本框Text1,若在程序中执行了Text1.SetFocus,则触发

A)Text1的SetFocus事件B)Text1的GotFocus事件

C)Text1的LostFocus事件D)窗体的GotFocus事件

(18)VB中有3个键盘事件:

KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母

A)这3个事件都会触发B)只触发KeyPress事件

C)只触发KeyDown、KeyUp事件D)不触发其中任何一个事件

(19)下面关于标准模块的叙述中错误的是

A)标准模块中可以声明全局变量

B)标准模块中可以包含一个SubMain过程,但此过程不能被设置为启动过程

C)标准模块中可以包含一些Public过程

D)一个工程中可以含有多个标准模块

(20)设窗体的名称为Form1,标题为Win,则窗体的MouseDown事件过程的过程名是

A)Form1MouseDownB)Win_MouseDown

C)Form_MouseDownD)MouseDown_Form1

(21)下面正确使用动态数组的是

A)Dimart()AsIntegerB)Dimarr()AsInteger

……

ReDimarr(3,5)ReDimarr(50)AsString

C)Dimarr()D)Dimarr(50)AsInteger

……

ReDimarr(50)AsIntegerReDimarr(20)

(22)下面是求最大公约数的函数的首部

Functiongcd(ByValxAsInteger,ByValyAsInteger)AsInteger

若要输出8、12、16这3个数的最大公约数,下面正确的语句是

A)Printgcd(8,12),gcd(12,16),gcd(16,8)

B)Printgcd(8,12,16)

C)Printgcd(8),gcd(12),gcd(16)

D)Printgcd(8,gcd(12,16))

(23)有下面的程序段,其功能是按图1所示的规律输出数据

Dima(3,5)AsInteger

Fori=1To3

Forj=1To5

a(i,j)=i+j

Printa(i,j);

Next

Print

Next

若要按图2所示的规律继续输出数据,则接在上述程序段后面的程序段应该是

A)Fori=iTo5B)Fori=1To3

Fori=1To3Forj=1To5

Printa(j,i);Printa(j,i);

NextNext

PrintPrint

NextNext

C)Forj=1To5D)Fori=1To5

Fori=1To3Forj=1To3

Printa(j,1);Printa(i,j);

NextNext

PrintPrint

NextNext

(24)窗体上有一个Text1文本框,一个Command1命令按钮,并有以下程序

PrivateSubCommand1_click()

Dimn

IfText1.Text<>"123456"Then

n=n+1

print"口令输入错误"&n&"次"

EndIf

EndSub

希望程序运行时得到左图所示的效果,即:

输入口令,单击“确认口令”命令按钮,若输入的口令不是“123456”,则在窗体上显示输入错误口令的次数。

但上面的程序实际显示的是右图所示的效果,程序需要修改。

下面修改方案中正确的是

A)在Dimn语句的下面添加一句:

n=0

B)把Print"口令输入错误"&n&"次"改为Print"口令输入错误"+n+"次"

C)把Print"口令输入错误"&n&"次"改为Print"口令输入错误"&Str(n)&"次"

D)把Dimn改为Staticn

(25)要求当鼠标在图片框P1中移动时,立即在图片框中显示鼠标的位置坐标。

下面能正确实现上述功能的事件过程是

A)PrivateSubP1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

PrintX,Y

EndSub

B)PrivateSubP1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

Picture.PrintX,Y

EndSub

C)PrivateSubP1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

P1.PrintX,Y

EndSub

D)PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle)

P1.PrintX,Y

EndSub

(26)计算霄的近似值的一个公式是

某人编写下面的程序用此公式计算并输出π的近似值:

PrivateSubCommand1_Click()

PI=1

Sign=1

n=20000

Fork=3Ton

sign=-sign

PI=PI+sign/k

Nextk

PrintPI*4

Endsub

运行后发现结果为3.22751,显然,程序需要修改。

下面修改方案中正确的是

A)把Fork=3Ton改为Fork=1Ton

B)把n=20000改为n=20000000

C)把Fork=3Ton改为Fork=3TonStep2

D)把PI=1改为PI=0

(27)下面程序计算并输出的是

PrivateSubCommand1_Click()

a=10

s=0

Do

s=s+a*a*a

a=a-1

Loopuntila<=0

Prints

Endsub

A)13+23+33+…103的值B)10!

+…+3!

+2!

+1!

的值

C)(1+2+3+…+10)3的值D)10个103的和

(28)若在窗体模块的声明部分声明了如下自定义类型和数组

PrivateTyperec

CodeAsInteger

CaptionAsString

EndType

Dimart(5)Asrec

则下面的输出语句中正确的是

A)Printarr.Code

(2),arr.Caption

(2)B)Printarr.Code,arr.Caption

C)Printarr

(2).Code,arr

(2).CaptionD)PrintCode

(2),Caption

(2)

(29)设窗体上有一个通用对话框控件CD1,希望在执行下面程序时,打开如图所示的文件对话框

PrivateSubCommand1_Click()

CD1.DialogTitle="打开文件"

CD1.InitDir="C:

\"

CD1.Filter="所有文件|*.*||Word文档|*.doc|文本文件|*.txt"

CD1.FileName=""

CD1.Action=1

IfCD1.FileName=""Then

Print"未打开文件"

Else

Print"要打开文件"&CD1.FileName

EndIf

EndSub

但实际显示的对话框中列出了C:

\下的所有文件和文件夹,“文件类型”一栏中显示的是“所有文件”。

下面的修改方案中正确的是

A)把CD1.Action=1改为CD1.Action=2

B)把"CD1.Filter="后面字符串中的“所有文件”改为“文本文件”

C)在语句CD1.Action=1的前面添加:

CD1.FilterIndex=3

D)把CD1.FileName=""改为CD1.FileName="文本文件"

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

Privatesubcommand1_Click()

Dimx%

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

PrintxMod10,x\100,(xMod100)\10

EndSub

A)395B)539C)593D)359

(31)窗体上有List1、List2两个列表框,List1中有若干列表项(见图),并有下面的程序:

PrivatesubCommand1_Click()

Fork=List1.ListCoum-1To0step-1

IfList1.Selected(k)Then

List2.AddItemList1.List(k)

List1.RemoveItemk

EndIf

Nextk

EndSub

程序运行时,按照图示在List1中选中2个列表项,然后单击Command1命令按钮,则产生的结果是

A)在List2中插入了“外语”、“物理”两项

B)在List1中删除了“外语”、“物理”两项

C)同时产生A)和B)的结果

D)把List1中最后1个列表项删除并插入到List2中

(32)设工程中有2个窗体:

Form1、Form2,Form1为启动窗体。

Form2中有菜单,其结构如表。

要求在程序运行时,在Form1的文本框Text1中输入口令并按回车键(回车键的ASCII码为13)后,隐藏Form1,显示Form2。

若口令为"Teacher",所有菜单项都可见;否则看不到"成绩录入"菜单项。

为此,某人在Form1窗体文件中编写如下程序:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

IfText1.Text="Teacher"Then

Form2.input.Visible=True

Else

Form2.input.Visible=False

EndIf

EndIf

Form1.Hide

Form2.Show

EndSub

菜单结构

标题

名称

级别

成绩管理

mark

1

成绩查询

query

2

成绩录入

input

2

程序运行时发现刚输入口令时就隐藏了Form1,显示了Form2,程序需要修改。

下面修改方案中正确的是

A)把Form1中Text1文本框及相关程序放到Form2窗体中

B)把Form1.Hide、Form2.Show两行移到2个EndIf之间

C)把IfKeyAscii=13Then改为IfKeyAscii="Teacher"Then

D)把2个Form2.input.Visible中的"Form2."删去

(33)某人编写了下面的程序,希望能把Text1文本框中的内容写到out.txt文件中

PrivateSubCommand1_Click()

Open"out.txt"ForOutputAs

Print"Text1"

Close#2

Endsub

调试时发现没有达到目的,为实现上述目的,应做的修改是

A)把Print"Text1"改为Print#2,Text1B)把Print"Text1"改为PrintText1

C)把Print"Text1"改为Write"Text1"D)把所有#2改为#1

(34)窗体上有一个名为Command1的命令按钮,并有下面的程序:

PrivateSubCommand1_Click()

Dimart(5)AsInteger

Fork=1To5

arr(k)=k

Nextk

progarr()

Fork=1To5

Printarr(k);

Nextk

Endsub

Subprog(a()AsInteger)

n=UBound(a)

Fori=nTo2step-1

Forj=1Ton-1

ifa(j)<a(j+1)Then

t=a(j):

a(j)=a(j+1):

a(j+1)=t

EndIf

Nextj

Nexti

Endsub

程序运行时,单击命令按钮后显示的是

A)12345B)54321C)01234D)43210

(35)下面程序运行时,若输入“VisualBasicProgramming”,则在窗体上输出的是

PrivateSubCommand1_Click()

Dimcount(25)AsInteger,chAsString

ch=UCase(InputBox("请输入字母字符串"))

Fork=1ToLen(ch)

n=Asc(Mid(ch,k,1))-Asc("A")

Ifn>=0Then

count(n)=count(n)+1

EndIf

Nextk

m=count(0)

Fork=1To25

Ifm<count(k)Then

m=count(k)

EndIf

Nextk

Printm

Endsub

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

二、填空题

(6)为了使复选框禁用(即呈现灰色),应把它的Value属性设置为______。

(7)在窗体上画一个标签、一个计时器和一个命令按钮,其名称分别为Label1、Timer1和Command1,如图1所示。

程序运行后,如果单击命令按钮,则标签开始闪烁,每秒钟“欢迎”二字显示、消失各一次,如图2所示。

以下是实现上述功能的程序,请填空。

PrivateSubForm_Load()

Label1.Caption="欢迎"

Timer1.Enabled=False

Timer1.Interval:

__[7]___

Command1.Caption="开始闪烁"

Endsub

PrivateSubTimer1_Timer()

Label1.visible=[8]

Endsub

PrivateSubCommand1_Click()

[9]

Endsub

(8)有如下程序:

PrivateSubForm_Click()

n=10

i=0

Do

i=i+n

n=n-2

Loopwhilen>2

Printi

Endsub

程序运行后,单击窗体,输出结果为[10]。

(9)在窗体上画一个名称为Command1的命令按钮。

然后编写如下程序:

OptionBase1

PrivateSubCommand1_click()

Dima(10)AsInteger

Fori=1To10

a(i)=1

Next

callswap([11])

Fori=1To10

Printa(i);

Next

Endsub

Subswap(b()AsInteger)

n=UBound(b)

Fori=1Ton/2

t=b(i)

b(i)=b(n)

b(n)=t

[12]

Next

Endsub

上述程序的功能是,通过调用过程swap,调换数组中数值的存放位置,即a

(1)与a(10)的值互换,a

(2)与a(9)的值互换,……。

请填空。

(10)在窗体上画一个文本框,其名称为Text1,在属性窗口中把该文本框的MultiLine属性设置为True,然后

编写如下的事件过程:

PrivatesubForm_Click()

Open"d:

\test\smtext1.txt"ForInputAs#1

DoWhileNot[13]

LineInput#1,aspect$

whole$=whole$+aspect$+Chr$(13)+Chr$(10)

Loop

Text1.Text=whole$

[14]

Open"d:

\test\smtext2.txt"ForOutputAs#1

Print#1,[15]

Close#1

Endsub

运行程序,单击窗体,将把磁盘文件smtext1.txt的内容读到内存并在文本框中显示出来,然后把该文本框中的内容存入磁盘文件smtext2.txt。

请填空。

2010年3月笔试试卷

一、选择题

(11)D)[解析]A)选项为重复按钮,可以返回撤消前的编辑状态;B)选项为运行按钮,点击即可运行程序;C)选项为添加工程按钮,点击即可添加新工程,而D)选项就是结束按钮,所以选D。

(12)B)[解析]IIF的语法格式为:

II(expr,Truepart,Falsepart)。

其中expr为表达式,如果expr为True,则返回Tmepart的值或表达式;如果expr为False,则返回Falsepart的值或表达式。

所以,题干中语句意思是:

如果一个数大于零,则取其相反值;如果小于零则取本身,所以B)答案正确。

(13)c)[解析]如果在程序中变量没有定义具体的数据类型,则该数据类型为变体型数据类型,因此s为变体型;VB中可以用%定义整型,所以a%=100意思是把100赋值给整型变量a。

所以正确答案为C)。

(14)A)[解析]选项A)Text不是框架控件的属性;选项B)Caption是框架的标题属性,用于设置框架上显示的标题名称;选项C)Left是框架的基本属性,表示框架的左上角在窗体中的横向坐标;选项D)Enabled是框架的属性,它决定框架是否允许操作,其默认值为True,如果框架的该属性设置为False,则其标题变成灰色,框架内的所有对象均不可操作。

(15)D)[解析]当Msgbox需要返回一个函数值时需要加上括号,即选项B)的形式,而选项D)通过Call语句调用过程,也需要加上括号,所以D)是错的。

而当Msgbox只是一个过程的时候不需要加括号,即A)选项和C)选项都是对的。

(16)C)[解析]控件数组是一组具有相同名称和相同属性的控件,为了区分用户使用了哪一个命令按钮,VB系统自动对控件数组的事件过程增加了Index参数项,该参数值代表被单击控件数组元素的下标值(即Index属性值),所以正确的答案为C)。

(17)B)[解析]Seffocus是使文本框获得焦点的方法,Goffocus是文本框获得焦点事件,表示文本框获得焦点,而不是失去了焦点,更加与窗体无关,故B)正确,A)、C)、D)错误。

(18)A)[解析]在输入字母时这三个键盘事件都会发生。

KeyDown事件是当一个键被按下时所产生的事件,而KeyUp事件是松开被压下的键时所产生的事件,而在此过程中KeyPress事件在按下并抬起的过程中也会发生。

只是KeyDown和KeyUp事件返回的是键盘的直接状态。

换言之,KeyDown和KeyUp事件返回的是键盘的KeyCode,而KeyPress事件返回的是“字符”的ASCII码。

(19)B)[解析]标准模块的作用主要是简化程序,其中可以包含类型、常数、变量、外部过程和公共过程的公共或模块级声明,所以A)、C)都是正确的。

一个工程中可以有多个标准模块以供其他窗体调用,所以D)是正确的。

标准模块通常使用SubMain过程作为窗体启动前的初始化运行,所以B)错误。

(20)C)[解析]对于控件来说,它由对象名、下划线“-”和事件名三部分组成;而对于窗体来说,事件过程名由“Form”、下划线“-”和事件名三部分组成,所以正确的答案为C)。

(21)A)[解析]在定义动态数组时,不能在ReDim语句后面改变数组的数据类型,故答案B)、C)错误。

此外,如果要在ReDim中定义数组的长度,那么之前的Dim中则不能注明长度,故答案D)错误。

(22)D)[解析]函数中的两个参数是求最大公约数的两个数,函数返回值是这两个数的最大公约数。

求8、12、16这三个数的最大公约数,可以先求出其中两个数的最大公约数,然后再将返回的数与剩下的数值求最大公约数。

选项A)输出的是三个数,它们分别是每两个数的最大公约数,不是三个数的最大公约数;选项B)函数参数为两个,函数调用错误;选项C)函数参数为两个,函数调用错误,所以正确的答案为D)。

(23)A)[解析]题目的意思是要把原矩阵倒置,可以这样理解:

把原矩阵按列取出,然后重新按行排列,所以答案A)正确,答案B)、C)、D)错误。

(24)D)[解析]本题考查的是动态变量与静态变量。

原来的程序中无法使变量n的值保持到下一次的使用,只有D)选项符合要求,将n定义为静态局部变量,在程序执行到该对象的声明处时被首次初始化,每次执行后n的值都会被保存到内存中,所以答案D)是正确的;而

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

当前位置:首页 > 高中教育 > 语文

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

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