VB选择题要点.docx
- 文档编号:6617428
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:39
- 大小:154.02KB
VB选择题要点.docx
《VB选择题要点.docx》由会员分享,可在线阅读,更多相关《VB选择题要点.docx(39页珍藏版)》请在冰豆网上搜索。
VB选择题要点
1.现有如下程序:
PrivateSubCommand1_Click()
s=0
Fori=1To5
s=s+f(5+i)
Next
Prints
EndSub
PublicFunctionf(xAsInteger)
Ifx>=10Then
t=x+1
Else
t=x+2
EndIf
f=t
EndFunction
运行程序,则窗体上显示的是( )。
A)38
B)49
C)61
D)70
【解析】程序中过程f的功能是参数值大于等于10时,返回参数加1的值,否则返回参数加2的值。
因此按钮事件中s值的计算过程如下:
i=1时,s=0+f(5+1)=8;
i=2时,s=8+f(5+2)=8+9=17;
i=3时,s=17+f(5+3)=17+10=27;
i=4时,s=27+f(5+4)=27+11=38;
i=5时,s=38+f(5+5)=38+11=49;
因此最终在窗体上输出的是49。
2.设窗体上有一个文本框Text1和一个命令按钮Command1,并有以下事件过程:
PrivateSubCommand1_Click()
DimsAsString,chAsString
s=""
Fork=1ToLen(Text1)
ch=Mid(Text1,k,1)
s=ch+s
Nextk
Text1.Text=s
EndSub
程序执行时,在文本框中输入"Basic",然后单击命令按钮,则Text1中显示的是( )。
A)Basic
B)cisaB
C)BASIC
D)CISAB
【解析】Len函数返回字符串的长度,Mid函数为字符串中部截取函数格式为:
Mid(字符串,起始位置,长度)。
程序中,For循环的终值是Text1中输入的字符串的长度,即"Basic"的长度,为5。
循环体中Mid函数从第一个字符开始依次取出一个字符,然后与上次取出的字符连接,本次取出的字符在前,上次取出的字符在后。
最终变量s中应该是"cisaB"。
3.某人编写了如下程序,用来求10个整数(整数从键盘输入)中的最大值:
PrivateSubCommand1_Click()
Dima(10)AsInteger,maxAsInteger
Fork=1To10
a(k)=InputBox("输入一个整数")
Nextk
max=0
Fork=1To10
Ifa(k)>maxThen
max=a(k)
EndIf
Nextk
Printmax
EndSub
运行程序时发现,当输入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 PrivateSubCommand1_Click() DimsumAsInteger sum=0 Fori=1To4 Forj=1To3 sum=sum+score(i,j) Nextj Print"第"&i&"个学生的总分是: ";sum Nexti EndSub 运行此程序时发现,除第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 PrivateSubCommand1_Click() m=InputBox("请输入一个正整数") ReDima(m) EndSub PrivateSubCommand2_Click() m=InputBox("请输入一个正整数") ReDima(m) EndSub 运行程序时,单击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,然后编写如下事件过程: PrivateSubCommand1_Click() 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 EndSub PrivateSubproc(aAsInteger,ByValbAsInteger) X=a*a Y=b+b EndSub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是( )。 A)25和3 B)5和3 C)25和6 D)5和6 8在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程: PrivateSubCommand1_Click() DimiAsInteger,nAsInteger Fori=0To50 i=i+3 n=n+1 Ifi>10ThenExitFor Next Text1.Text=Str(n) EndSub 程序运行后,单击命令按钮,在文本框中显示的值是( )。 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在窗体上画一个命令按钮,然后编写如下事件过程: PrivateSubCommand1_Click() DimI,Num Randomize Do ForI=1To1000 Num=Int(Rnd*100) PrintNum; SelectCaseNum Case12 ExitFor Case58 ExitDo Case65,68,92 End EndSelect NextI Loop EndSub 上述事件过程执行后,下列描述中正确的是( )。 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 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 参考答案: B 【解析】原程序的错误在于没有把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 EndFunction 在调试时发现是错误的,例如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 参考答案: B 【解析】程序中计算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 参考答案: D 【解析】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运行如下程序 PrivateSubCommand1_Click() Dima(5,5)AsInteger Fori=1To5 Forj=1To4 a(i,j)=i*2+j Ifa(i,j)/7=a(i,j)\7Then n=n+1 EndIf Nextj Next Printn EndSub n的值是( )。 A)2 B)3 C)4 D)5 参考答案: B 【解析】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的命令按钮,事件过程及函数过程如下: 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时的输出结果为( )。 A)6 B)10 C)16 D)28 参考答案: D 【解析】在过程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的命令按钮,并编写如下事件过程: PrivateSubCommand1_Click() x=1 s=0 Fori=1To5 x=x/i s=s+x Next Prints EndSub 该事件过程的功能是计算()。 A)S=1+2+3+4+5 B) C) D) 参考答案: C 17窗体上有1个名称为Command1的命令按钮,事件过程及函数过程如下: PrivateSubCommand1_Click() DimmAsString m=InputBox("请输入字符串") Printpick_str(m) EndSub 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 EndFunction 运行程序,单击命令按钮,并在输入对话框中输入"basic",则在窗体上显示的内容为( )。 A)bcai B)cbia C)bcais D)cbias 【解析】过程pick_str的功能是对输入的字符串的字符重新组合,通过Do循环从原字符串中头尾开始各取一个字符重新组合,循环次数小于等于原字符串长度整除2的值。 当输入字符串是"basic"时,字符串长度为5,循环次数为5/2=2次,因此取出的字符依次是"b","c","a","i"。 即"bcai",因此答案为A。 18在窗体上画一个名称为Command1的命令按钮,并编写如下事件过程: PrivateSubCommand1_Click() x=1 s=0 Fori=1To5 x=x/i s=s+x Next Prints EndSub 该事件过程的功能是计算()。 A)S=1+2+3+4+5 B) C) D) 1934.工程文件中包含一个模块文件和一个窗体文件。 模块文件的程序代码是: 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 运行程序,单击窗体上的命令按钮,则在窗体上显示的是( )。 A)55155 B)751525 C)78155 D)75155 参考答案: D 解析】程序在模块文件中定义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"计算机等级考试" EndIf IfIndex=2Then PrintCommand1 (2).Caption EndIf EndSub 运行程序,单击"命令按钮2",则如下叙述中正确的是( )。 A)PrintCommand1 (2).Caption语句有错 B)在窗体上显示"命令按钮2" C)在窗体上显示"命令按钮3" D)在窗体上显示"计算机等级考试" 参考答案: D 解析】控件数组与数据数组一样下标默认从0开始,即本题中按钮控件数组的Index值为0,1,2,分别对应命令按钮1、命令按钮2、命令按钮3。 当单击命令按钮2时,Index值为1,因此程序会输出"计算机等级考试"。 21.下面程序的执行结果是( )。 PrivateSubCommand1_Click() a=0 k=1 DoWhilek<4 x=k^k^a k=k+1 Printx; Loop EndSub A)1427 B)111 C)149 D)000 参考答案: B 【解析】本题主要考查算术运算符中的幂运算,在程序中x的值为k的k次方的a次方,k的值每次循环都加1,但a的值不变总为0,除0以外的任何数的0次方都是1,因此,在k的值变为4之前会输出三个1。 命令按钮Command1的单击事件过程如下: PrivateSubCommand1_Click() Dima(10,10)AsInteger x=0 Fori=1To3 Forj=1To3 a(i,j)=i*2Modj
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 选择题 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)