VB选择题要点Word文件下载.docx
- 文档编号:19631179
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:39
- 大小:154.02KB
VB选择题要点Word文件下载.docx
《VB选择题要点Word文件下载.docx》由会员分享,可在线阅读,更多相关《VB选择题要点Word文件下载.docx(39页珍藏版)》请在冰豆网上搜索。
,然后单击命令按钮,则Text1中显示的是( )。
A)Basic
B)cisaB
C)BASIC
D)CISAB
【解析】Len函数返回字符串的长度,Mid函数为字符串中部截取函数格式为:
Mid(字符串,起始位置,长度)。
程序中,For循环的终值是Text1中输入的字符串的长度,即"
的长度,为5。
循环体中Mid函数从第一个字符开始依次取出一个字符,然后与上次取出的字符连接,本次取出的字符在前,上次取出的字符在后。
最终变量s中应该是"
cisaB"
。
3.某人编写了如下程序,用来求10个整数(整数从键盘输入)中的最大值:
Dima(10)AsInteger,maxAsInteger
Fork=1To10
a(k)=InputBox("
输入一个整数"
)
max=0
Ifa(k)>
maxThen
max=a(k)
EndIf
Printmax
运行程序时发现,当输入10个正数时,可以得到正确结果,但输入10个负数时结果是错误的,程序需要修改。
下面的修改中可以得到正确运行结果的是( )。
A)把Ifa(k)>
maxThen改为Ifa(k)<
B)把max=a(k)改为a(k)=max
C)把第2个循环语句Fork=1To10改为Fork=2To10
D)把max=0改为max=a(10)
【解析】程序中把变量max的初始值设置为0,没有考虑到负数的情况。
应该把它的初始值设置为数组中的一个元素的值,然后让数组中的各个元素与这个值比较,如果比它大,就替换变量max的值,这样才能得到数组中的最大值。
因此要修改max=0这一行。
4.已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数)。
现需要计算每个学生的总分,某人编写程序如下:
OptionBase1
DimsumAsInteger
sum=0
Fori=1To4
Forj=1To3
sum=sum+score(i,j)
Nextj
Print"
第"
&
i&
"
个学生的总分是:
;
sum
Nexti
运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。
以下修改方案中正确的是( )。
A)把外层循环语句Fori=1To4改为Fori=1To3
内层循环语句Forj=1To3改为Forj=1To4
B)把sum=0移到Fori=1To4和Forj=1To3之间
C)把sum=sum+score(i,j)改为sum=sum+score(j,i)
D)把sum=sum+score(i,j)改为sum=score(i,j)
【解析】程序变量sum的值在开始计算第2个学生的总成绩时,仍保留着第一个学生的总成绩,这样会把前面学生的总成绩计算进去,显然不对。
因此,sum=0这一句应该放在第1层For循环体的第一句,即Fori=1to4和forj=1to3之间。
5.窗体上有Command1、Command2两个命令按钮。
现编写以下程序:
OptionBase0
Dima()AsInteger,mAsInteger
m=InputBox("
请输入一个正整数"
ReDima(m)
PrivateSubCommand2_Click()
运行程序时,单击Command1后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是( )。
A)5
B)6
C)10
D)11
【解析】程序中OptionBase0表示指定数组的下标默认下界为0。
ReDim语句用来重新定义动态数组,按定义的上下界重新分配存储单元。
在一个程序中,可以多次用ReDim语句定义同一个数组,随时修改数组中元素的个数。
程序中先执行ReDima(10),然后执行了ReDima(5),因此数组a的下界为0,上界为5,共有6个元素。
6.在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下事件过程:
Counter=0
Fori=1To4
Forj=6To1Step-2
Counter=Counter+1
Nextj
Nexti
Label1.Caption=Str(Counter)
EndSub
程序运行后,单击命令按钮,标签中显示的内容是( )。
A)11
B)12
C)16
D)20
7.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:
PrivateXAsInteger
PrivateSubCommand1_Click()
X=5:
Y=3
Callproc(X,Y)
Label1.Caption=X
Label2.Caption=Y
PrivateSubproc(aAsInteger,ByValbAsInteger)
X=a*a
Y=b+b
程序运行后,单击命令按钮,则两个标签中显示的内容分别是( )。
A)25和3
B)5和3
C)25和6
D)5和6
8在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
DimiAsInteger,nAsInteger
Fori=0To50
i=i+3
n=n+1
Ifi>
10ThenExitFor
Next
Text1.Text=Str(n)
程序运行后,单击命令按钮,在文本框中显示的值是( )。
A)2
B)3
C)4
D)5
参考答案:
B
【解析】程序中For循环的结束有两种情况,一种是循环完指定的次数,一种是达到一定的条件后直接退出循环。
由于在循环体中循环变量i的值被修改:
i=i+3,因此,每次循环开始时i的取值为0,4,8,i为8时执行i=i+3=11,n=n+1=3,这时i的值大于10,退出For循环,因此For循环执行了3次,即n的值为3。
所以在文本框中会显示3。
9在窗体上画一个命令按钮,然后编写如下事件过程:
DimI,Num
Randomize
Do
ForI=1To1000
Num=Int(Rnd*100)
PrintNum;
SelectCaseNum
Case12
ExitFor
Case58
ExitDo
Case65,68,92
End
EndSelect
NextI
Loop
上述事件过程执行后,下列描述中正确的是( )。
A)Do循环执行的次数为1000次
B)在For循环中产生的随机数小于或等于100
C)当所产生的随机数为12时结束所有循环
D)当所产生的随机数为65、68或92时窗体关闭、程序结束
D
【解析】程序Do循环中嵌套了For循环,Do循环没有设置结束条件,而是在For循环体中的Select语句中设置了退出Do循环和For循环及结束程序的分支,因此Do循环的次数无法确定。
随机函数Rnd产生[0,1)之间的一个数,包括0但不包含1,因此Rnd*100的范围是大于等于0小于100。
随机数为65、68或92时结束程序关闭窗体,为58时退出Do循环,为12时退出For循环进入下一次Do循环。
10某人为计算n!
(0<
n<
=12)编写了下面的函数过程:
PrivateFunctionfun(nAsInteger)AsLong
DimpAsLong
p=1
Fork=n-1To2Step-1
p=p*k
Nextk
fun=p
EndFunction
在调试时发现该函数过程产生的结果是错误的,程序需要修改。
下面的修改方案中有3种是正确的,错误的方案是( )。
A)把p=1改为p=n
B)把Fork=n-1To2Step-1改为Fork=1Ton-1
C)把Fork=n-1To2Step-1改为Fork=1Ton
D)把Fork=n-1To2Step-1改为Fork=2Ton
【解析】原程序的错误在于没有把n的值乘进去。
而B选项中把Fork=n-1To2Step-1改为Fork=1Ton-1,依然没有把n乘进去。
11为计算an的值,某人编写了函数power如下:
PrivateFunctionpower(aAsInteger,nAsInteger)AsLong
DimsAsLong
p=a
Fork=1Ton
p=p*a
Nextk
power=p
在调试时发现是错误的,例如Printpower(5,4)的输出应该是625,但实际输出是3125。
程序需要修改。
下面的修改方案中有3个是正确的,错误的一个是( )。
A)把Fork=1Ton改为Fork=2Ton
B)把p=p*a改为p=p^n
C)把Fork=1Ton改为Fork=1Ton-1
D)把p=a改为p=1
【解析】程序中计算an的算法有误,由于已经将a的值赋给了p,在后边的For循环中再乘n次a显然就多乘了一次a,因此,要改正此程序或者将p=a改为p=1,或者将fork=1ton改成fork=1ton-1或fork=2ton。
而B)选项将p=p*a改为p=p^n将会导致p=p^n执行n次,得不到正确结果。
12已知a=6,b=15,c=23,则语句PrintSgn(a+bMod6-c\a)&
a+b的输出结果为( )。
A)6
B)16
C)31
D)121
【解析】Print语句表达式中按运算符的优先级从高到低:
Mod(+(&
顺序计算。
计算过程:
Sgn(6+15Mod6-23【)&
6+15(Sgn(6+3-5)&
21(Sgn(4)&
21(1&
21("
121"
故选项D正确。
说明:
字符串连接符&
两边的操作数不管是字符型还是数值型,系统首先要将其转换为字符型,然后进行连接。
13一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )。
A)16
B)10
C)6
D)4
A
【解析】根据二叉树的性质3:
在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为1的结点的个数是25-5-4=16个。
14运行如下程序
Dima(5,5)AsInteger
Forj=1To4
a(i,j)=i*2+j
Ifa(i,j)/7=a(i,j)\7Then
n=n+1
EndIf
Printn
n的值是( )。
【解析】VB中"
/"
是浮点除法运算符,"
\"
是整数除法运算符,程序中的条件表达式a(i,j)/7=a(i,j)】成立时说明这个数能够被7整除,程序即是统计这个二维数组中能被7整除的数的个数。
数组元素值在i=1时为(3,4,5,6),i=2时为(5,6,7,8),i=3时为(7,8,9,10),i=4时为(9,10,11,12),i=5时为(11,12,13,14),其中能够被7整除的数有7、7、14共3个。
因此答案为B。
15窗体上有1个名称为Command1的命令按钮,事件过程及函数过程如下:
DimpAsInteger
p=m
(1)+m
(2)+m(3)
Printp
PrivateFunctionm(nAsInteger)AsInteger
StaticsAsInteger
Fori=1Ton
s=s+1
m=s
运行程序,第2次单击命令按钮Command1时的输出结果为( )。
D)28
【解析】在过程m中s被定义为静态变量,因此它的值只在第一次调用过程时初始化,以后再调用都不再初始化,而是保留之前的值。
m过程的功能是根据参数值累加,因此第1次单击时,m
(1)+m
(2)+m(3)=1+3+6=10,此时变量s的值,即过程m的值为6,第2次单击时,m
(1)+m
(2)+m(3)=7+9+12=28。
因此答案为D。
16在窗体上画一个名称为Command1的命令按钮,并编写如下事件过程:
x=1
x=x/i
s=s+x
该事件过程的功能是计算()。
A)S=1+2+3+4+5
B)
C)
D)
C
17窗体上有1个名称为Command1的命令按钮,事件过程及函数过程如下:
DimmAsString
请输入字符串"
Printpick_str(m)
PrivateFunctionpick_str(sAsString)AsString
temp="
i=1
sLen=Len(s)
DoWhilei<
=sLen/2
temp=temp+Mid(s,i,1)+Mid(s,sLen-i+1,1)
i=i+1
Loop
pick_str=temp
运行程序,单击命令按钮,并在输入对话框中输入"
basic"
,则在窗体上显示的内容为( )。
A)bcai
B)cbia
C)bcais
D)cbias
【解析】过程pick_str的功能是对输入的字符串的字符重新组合,通过Do循环从原字符串中头尾开始各取一个字符重新组合,循环次数小于等于原字符串长度整除2的值。
当输入字符串是"
时,字符串长度为5,循环次数为5/2=2次,因此取出的字符依次是"
b"
,"
c"
a"
i"
即"
bcai"
,因此答案为A。
18在窗体上画一个名称为Command1的命令按钮,并编写如下事件过程:
1934.工程文件中包含一个模块文件和一个窗体文件。
模块文件的程序代码是:
PublicxAsInteger
PrivateyAsInteger
窗体文件的程序代码是:
DimaAsInteger
PrivateSubForm_Load()
DimbAsInteger
a=2:
b=3:
x=10:
y=20
a=a+5:
b=b+5:
x=x+5:
y=y+5
Printa;
b;
x;
y
运行程序,单击窗体上的命令按钮,则在窗体上显示的是( )。
A)55155
B)751525
C)78155
D)75155
参考答案:
解析】程序在模块文件中定义x为整型全局变量,在整个工程中都起作用,而y定义为整型私有变量,只能在本模块文件中起作用。
在窗体文件中变量a在本窗体文本中起作用,窗体加载事件中定义的变量b和没有声明的变量y,只在本事件过程起作用。
程序窗体加载时,对后边有影响的变量值为a为2,x为10,没有指定初值的变量值默认为0,因此单击命令按钮后,a=a+5=7,b=b+5=5,x=x+5=15,y=y+5=5,结果输出75155。
2035.窗体上的三个命令按钮构成名称为Command1的控件数组。
如图所示。
程序如下:
PrivateSubCommand1_Click(IndexAsInteger)
IfIndex=1Then
Print"
计算机等级考试"
IfIndex=2Then
PrintCommand1
(2).Caption
运行程序,单击"
命令按钮2"
,则如下叙述中正确的是( )。
A)PrintCommand1
(2).Caption语句有错
B)在窗体上显示"
C)在窗体上显示"
命令按钮3"
D)在窗体上显示"
解析】控件数组与数据数组一样下标默认从0开始,即本题中按钮控件数组的Index值为0,1,2,分别对应命令按钮1、命令按钮2、命令按钮3。
当单击命令按钮2时,Index值为1,因此程序会输出"
21.下面程序的执行结果是( )。
a=0
k=1
DoWhilek<
4
x=k^k^a
k=k+1
Printx;
A)1427
B)111
C)149
D)000
【解析】本题主要考查算术运算符中的幂运算,在程序中x的值为k的k次方的a次方,k的值每次循环都加1,但a的值不变总为0,除0以外的任何数的0次方都是1,因此,在k的值变为4之前会输出三个1。
命令按钮Command1的单击事件过程如下:
Dima(10,10)AsInteger
x=0
Fori=1To3
a(i,j)=i*2Modj
Ifx<
a(i,j)Thenx=a(i,j)
Next
Printx
执行上述事件过程后,窗体上显示的是( )。
A)1
B)2
C)3
22有如下程序:
PrivateSubForm_Click()
DimsAsInteger,pAsInteger
p=1
Fori=1To4
Forj=1Toi
s=s+j
Nextj
p=p*s
Nexti
Printp
程序运行后,单击窗体,则输出结果是( )。
A)90
B)180
C)400
D)800
23现有如下程序:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 选择题 要点