内容正文:
第三章 面向对象程序设计的基本知识
一、选择题
1.x和n都是正整数且x<=n,下列选项中,与语句“x=x Mod n +1 ”功能相同的是( )
A.x=(x+1) Mod n
B.x=x+1
If x=n Then x=1
C.x=x+1
If x=n+1 Then x=1
D.x=x+1
If x=n+1 Then x=0
2.有如下VB程序段:
a =3: b = 4: c = 5
If a >= b And a >= c Then
y = a
ElseIf b >= c Then
y = b
Else
y = c
End If
执行以上程序后,变量y值为( )
A.5 B.3 C.4 D.0
3.在Visual Basic程序中,下列属于可执行文件的是( )
A.test.vbp B.test.frm C.test.exe D.test.vbw
4.根据解决某一问题或完成某一任务的具体步骤,将一条条指令进行有序排列,这一指令序列称为( )
A.操作码 B.操作数 C.软件 D.程序
5.在[10,99]中产生一个随机奇数的VB表达式是( )
A.11 + Int(Rnd*99) B.11 + Int(Rnd*45)*2
C.11 + Int(Rnd*89) D.10 + Int(Rnd*90)
6.窗体的名称属性是( )
A.NAME B.CAPTION C.TOP D.LEFT
7.程序设计语言是用于编写计算机程序的语言,下列属于程序设计语言的是( )
A.VB B.PHOTOSHOP C.FLASH D.FRONTPAGE
8.某字符串s是由一个原始字符串反复重叠形成的。例如字符串"abcababcababcab"的是由原始字符串"abcab"重叠而成。为查找字符串s的原始字符串,有如下VB程序段:
s = "abcababcababcab": L = Len(s)
For t = 1 To L \ 2 '枚举可能的原始长度
If L Mod t = 0 Then
For i = t + 1 To L Step t
If ① <> Mid(s, 1, t) Then Exit For
Next i
If i = L + 1 Then ans = ② : Exit For
End If
Next t
Text1.Text = ans
上述程序段划线处①②语句依次可为( )
A.①Mid(s, i, t) ②Mid(s, 1, t)
B.①Mid(s, i, t) ②Mid(s, t, 1)
C.①Mid(s, i Mod t, 1) ②Mid(s, 1, t)
D.①Mid(s, i Mod t, 1) ②Mid(s, t, 1)
9.小明打开“工程1.vbp”文件进行编辑,如题所示,为了显示应用程序的窗体,他应该进行的操作是( )
A.单击A处的“视图”菜单 B.双击B处的“Form1”窗体文件
C.单击C处的“窗口”菜单 D.关闭文件,重新打开
10.【加试题】下列程序执行后文本框Text1 显示的内容是()
s = "ERROR:Divisor must not be zero!"
flag = False: m = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "a" And ch <= "z" Then
If Not flag Then
m = m + 1
flag = True
End If
Else
flag = False
End If
Next i
Text1.Text=Str(m)
A.4
B.5
C.6
D.19
11.有如下程序段:
Private Sub Command1_Click()
Dim i As Integer, s As String, c As String
s = Text1.Text: Text2.Text = ""
For i = 1 To Len(s)
c = Mid(s, i, 1) : Text2.Text = Text2.Text + convert(c)
Next i
End Sub
Function convert(c As String) As String
If c >= "a" And c <= "z" Then convert = Chr(Asc(c)-32) Else convert = Chr(Asc(c)+32)
End Function
文本框 Text1中输入hOMEpAGE,执行该程序段,文本框Text2中显示的是( )
A.HomePage B.Homepage C.homepage D.hOMEpAGE
12.有如下 VB程序段∶
Dim a(1 to 6) As Integer,i As Integer
For i=1 To 6
a(i)=Int(Rnd*4)*2+1
If i Mod 2=1 Then a(i)=a(i) * 2 Else a(i)=a(i)+a(i-1)
Next i
最终a数组各元素的值可能是( )
A.10,11,6,7,14,17 B.6,5,2,9,10,17
C.2,9,14,17,5,7 D.6,11,10,23,4,9
13.VB 表达式Int(Rnd*9)+54\3^2/3的值可能是( )
A.9 B.16 C.19 D.27
14.字符串,由数字、字母和“-”组成,现以“-”为分组标记,作如下处理:数字往后移5个,如0→5,3→8,6→1;各组字母倒序放在本组前面;“-”不作处理。如字符串“t37-9Yg-52r-”,经过处理后变为“t82-gY4- r07-”。下列VB程序段实现该算法,则填空处的代码应该是( )
Const mw = "0123456789"
S = Text1.Text: s1 = "":s2 = ""
For i=1 To Len(s)
C = Mid(s,i,1)
If c >= "0" And c <= "9" Then
______(1)_____
______(2)_____
s1 = s1 + c
ElseIf c = "-" Then
s2 = s2 + sl + c
s1 = ""
E1se
______(3)_____
End If
Next i
① t =(Val(c)+5) Mod 10 ② c = Mid(mw,t,1) ③ sl = c + sl
④ t=(Val(c)+4) Mod 10+1 ⑤ c= Mid(mw,t+1,1) ⑥ sl = sl + c
A.①②③ B.④⑤⑥ C.①⑤③ D.④②⑥
15.有如下VB程序段:
a(1) = 3:a(2) = 1:a(3) = 3
a(4) = 4 :a(5) = 6
pos = 1 : n = 5
For i = 1 To 10000
pos = (pos + a(pos) - 1) Mod n + 1
Next i
执行该程序段后,pos的值是( )
A.0 B.1 C.3 D.4
16.C编译程序是( )
A.C程序的机器语言版本
B.一组机器语言指令
C.将C源程序编译成目标程序的程序
D.由制造厂家提供的一套应用软件
17.已知变量a、b、c、d数据类型为Integer, 变量flag数据类型为Boolean。 下列选项中与其他语句功能不相同的是( )
A.If(a>b Or b>c)And flag=False Then d=a\2
B.If(a>b Or Not b<=c)And Not flag Then d=a\2
C.If Not(a<=b And b<=c)And flag=False Then d=a\2
D.If(a>b And b>c)Or Not flag Then d=a\2
18.窗体的标题属性是_______。
A.NAME B.CAPTION C.LEFT D.TOP
19.有如下VB程序段:
Const s= "3123abc21d64"
Dim flag (0 To 9) As Integer
Dim i As Integer,c As String
For i=0 To 9
flag (i)=0
Next i
For i=1 To Len(s)
c=Mid (s,i,1)
If c>="0" And c <= "9" Then flag(Val(c))=flag(Val(c))+1
Next i
执行该程序后,数组变量flag(3)的值为( )
A.0 B.1 C.2 D.3
20.有如下程序段:
执行程序段后,变量s的值可能是( )
A.7 B.16 C.20 D.34
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查赋值语句,VB运算。题干x=x Mod n +1,有两种情况。(1)x<n,则x=x+1。(2)x=n,则x=1。结合选项判断。选项A,当x=n-1时候,A选项的结果是x=0,故有误。选项B,首先进行x=x+1,故接下来的判断实际上是x+1和n的判断,若x+1=n,则x=1,有误。选项C正确。选项D,当x和n相等时,x应该是1,故选项D有误。本题选项C为正确选项。
2.A
【详解】本题主要考查VB程序的执行。a=3,b=4,c=5,不满足if条件,也不满足ElseIf条件,故执行Else部分的语句,y=c=5,故执行以上程序后,变量y值为5,故本题选A选项。
3.C
【详解】本题主要考查VB文件的格式。vbp是工程文件,frm是窗体文件,vbw是工作区文件,exe是可执行文件扩展名,故本题选C选项。
4.D
【详解】本题主要考查程序的描述。根据解决某一问题或完成某一任务的具体步骤,将一条条指令进行有序排列,这一指令序列称为程序,故本题选D选项。
5.B
【详解】本题主要考查VB的函数。在[10,99]中随机奇数范围应为[11,99],可以转换为[0,88] + 11,且[0,88]只能为偶数。而[0,88]可以表达为[0,44]*2,即[0,45)*2。故选B。
6.A
【详解】本题主要考查VB窗体的描述。窗体的名称属性是NAME,故本题选A选项。
7.A
【详解】本题主要考查程序设计语言。VB是程序设计语言,Photoshop是图像处理软件,Flash是动画设计软件,FrontPage是网页制作软件,故本题选A选项。
8.A
【详解】本题主要考查VB程序的执行与调试。①t是枚举可能的长度,此处通过for循环判断从字符串s中位置i处截取长度为t的子串与从字符串s中位置1处截取长度为t的子串进行比较,若不相等则退出循环,若相等则进行判断下一个可能的长度,故此处填Mid(s, i, t)。②如果i=L+1,则已到末尾,已找到原始字符串,即为从字符串s中位置1开始截取长度为t的子串赋给变量ans,故此处填Mid(s, 1, t)。故本题选A选项。
9.B
【详解】本题主要考查VB窗体的描述。题目中是要显示应用程序的窗体,应该双击B处的“Form1”窗体文件。通过点击A处可以打开不同窗口,C处是选择窗口不同的显示方式。关闭文件重新打开,还是需要双击B处才可以,故本题选B选项。
10.B
【详解】本题主要考查VB程序的执行。分析程序可知,ch是截取字符串s位置i处长度为1的字符,当ch是小写字母时且flag为False,m递增且赋值flag为True,当遇到其他字符时赋值flag为False,故当ch分别为第一个i、m、n、b、z时变量m递增,故程序执行后文本框Text1 显示的内容是m=5,故本题选B选项。
11.A
【详解】本题主要考查VB程序的执行。该程序实现将文本框1中的字符串中大写字母转换为小写字母,小写字母转换为大写字母,故文本框 Text1中输入hOMEpAGE,执行该程序段,文本框Text2中显示的是HomePage,故本题选A选项。
12.A
【详解】本题考查VB程序。程序通过一个循环给数组赋值,Rnd*4范围是值是0~4但是不包括4;Int(Rnd*4)*2,值的范围是0~8但是不含8;Int(Rnd*4)*2+1,范围是1~9的奇数,不含9。当数组索引为奇数时,执行a(i)=a(i) * 2;当数组索引为偶数时,执行a(i)=a(i)+a(i-1)。
i=1, a(i)=a(i) * 2
i=2, a(i)=a(i)+a(i-1)
i=3, a(i)=a(i) * 2
i=4, a(i)=a(i)+a(i-1)
i=5, a(i)=a(i) * 2
i=6, a(i)=a(i)+a(i-1)
经分析,第1/3/5位肯定为偶数(排除C);第2/4/6位,为奇数,最大为21(排除D),值且比前一位值大(5<6,排除B)。故本题选项A正确。
13.C
【详解】本题考查VB运算。Int(Rnd*9)+54\3^2/3,根据优先级,54\3^2/3这一部分得到的结果为18,Int(Rnd*9)结果为0-8的随机整数,故得到的值应该是18-26之间。所以选C。
14.C
【详解】
本题主要考查VB程序的调试。(1)数字往后移5位,故将当前字符转为数字型加5然后模10取余,故填t =(Val(c)+5) Mod 10。(2)字符串mw第一位是从0开始,故应截取t+1处的值字符赋给变量c,故填 c= Mid(mw,t+1,1) 。(3)各组字母倒序放在本组前面,故填sl = c + sl,故本题选C选项。
15.D
【详解】本题主要考查VB程序的执行。pos=1,n=5,当i=1时,pos= (1+ a(1) - 1) Mod 5 + 1=4,当i=2时,pos= (4 + a(4) - 1) Mod 5+ 1=3,当i=3时,pos= (3 + a(3) - 1) Mod 5 + 1=1,故pos的值每三次循环一次,依次为1、4、3,故当i=9999时,pos=1,当i=10000时,pos=4。故程序结束时,pos的值是4,故本题选D选项。
16.C
【详解】本题主要考查C程序设计语言。编译就是利用编译程序从源语言编写的源程序产生目标程序的过程,故本题选C选项。
17.D
【详解】本题考查VB判断条件。选项A,B,C的条件表达的是同一个意思,条件都表示a>b Or b>c满足其中之一成立时,则d=a\2,选项D是a>b And b>c同时成立,故本题选D。
18.B
【详解】本题主要考查VB窗体属性。CAPTION是指“标题”,就是控件上面显示的文字,窗体的标题属性是CAPTION,故本题选B选项。
19.C
【详解】本题主要考查VB程序的执行。第一个for循环将flag数组全部赋值为0,第二个for循环,截取字符串的s的每一个字符,若是数字,则执行 flag(Val(c))=flag(Val(c))+1,字符串s中有两个3,故执行该程序后,数组变量flag(3)的值为2,故本题选C选项。
20.B
【详解】本题主要考查VB程序的执行。int(rnd*10)*2的取值范围是[0,18]之间的偶数,再加5的取值范围是[5,23]之间的任意奇数了,程序实现的是将任意整数n转化为七进制数,所以可以排除A,七进制数16,转化为十进制数为13;七进制数20转化为十进制数为14;七进制数34转化为十进制数为25,选项C为偶数不合题意,选项D超出范围。故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$