1、二级公共基础知识-72 及答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:46,分数:100.00)1.以下程序段的输出结果是_。x=1:y=4Do Until y4x=x*yy=y+1LoopPrint x A.1 B.4 C.8 D.20(分数:2.00)A.B.C.D.2.有如下事件过程:Private Sub Form_Click()Dim n As Integerx=0n=InputBox(“请输入一个整数“)For i=1 To nFor j=1 To ix=x+1Next jNext iPrint xEnd Sub程序运行后,单击窗体,如果在输入
2、对话框中输入 5,则在窗体上显示的内容是_。 A.13 B.14 C.15 D.16(分数:2.00)A.B.C.D.3.下面函数的功能应该是:删除字符串 str 中所有与变量 ch 相同的字符,并返回删除后的结果。例如:若 str=“ABCDABCD”,ch=“B”,则函数的返回值为:“ACDACD”。Function delchar(str As String, ch As String)As StringDim k As Integer, temp As String, ret As Stringret=“For k=1 To Len(str)temp=Mid(str, k, 1)If
3、temp=ch Thenret=ret Next iEnd Sub运行程序,单击命令按钮,窗体上显示的内容为_。 A.5 4 3 2 1 1 B.5 4 3 2 1 C.4 3 2 1 1 D.4 4 3 2 1 1(分数:2.00)A.B.C.D.8.窗体上有 1 个名称为 Text1 的文本框;1 个名称为 Timer1 的计时器控件,其 Interval 属性值为5000,Enabled 属性值是 True。Timer1 的事件过程如下:Private Sub Timer1_Timer()Static flag As IntegerIf flag=0 Then flag=1flag=-f
4、lagIf flag=1 ThenText1.ForeColor=n=n/10WendPrintEnd Sub此程序功能是:输入 2 个正整数,反序输出这 2 个数的每一位数字,再反序输出这 2 个数之和的每一位数字。例如:若输入 123 和 234,则应该输出:3 2 14 3 27 5 3但调试时发现只输出了前 2 行(即 2 个数的反序),而未输出第 3 行(即 2 个数之和的反序),程序需要修改。下面的修改方案中正确的是_。 A.把过程 pro 的形式参数 n As Integer 改为 ByVal n As Integer B.把 Call pro(a+b)改为 pro a+b C.
5、把 n=n/10 改为 n=n/10 D.在 pro b 语句之后增加语句 c%=a+b,再把 Call pro(a+b)改为 pro c(分数:2.00)A.B.C.D.22.在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim I, NumRandomizeDoFor I=1 To 1000Num=Int(Rnd*100)Print Num;Select Case NumCase 12Exit ForCuse 58Exit DoCase 65,68,92EndEnd SelectNext ILoopEnd Sub上述事件过程执行后,下
6、列描述中正确的是_。 A.Do 循环执行的次数为 1000 次 B.在 For 循环中产生的随机数小于或等于 100 C.当所产生的随机数为 12 时结束所有循环 D.当所产生的随机数为 65、68 或 92 时窗体关闭、程序结束(分数:2.00)A.B.C.D.23.在窗体上画一个名称为 Command1 的命令按钮。然后编写如下的事件过程:Public Function Fun(xStr As String)As StringDim tStr As String, strL As IntegertStr=“:strL=Len(xStr):i=1Do While i=strL/2tStr=t
7、Str sumNext iEnd Sub运行此程序时发现,除第 1 个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是_。 A.把外层循环语句 For i=1 To 4 改为 For i=1 To 3 内层循环语句 For j=1 To 3 改为 For i=1 To 4 B.把 sum=0 移到 For i=1 To 4 和 For j=1 To 3 之间 C.把 sum=sum+score(i,j)改为 sum=sum+score(j,i) D.把 sum=sum+score(i,j)改为 sum=score(i,j)(分数:2.00)A.B.C.D.29.
8、关于语句 If I=1 Then J=1,下列说法正确的是_。 A.I=1 和 J=1 均为关系表达式 B.I=1 和 J=1 均为赋值语句 C.I=1 为赋值语句,J=1 为关系表达式 D.I=1 为关系表达式,J=1 为赋值语句(分数:2.00)A.B.C.D.30.下列程序执行后,变量 a 的值为_。Dim a,b,c,d As Singlea=10:b=20:c=40If ba Thend=a:a=b:b=dEnd IfIf ca Thend=a:a=c:c=dEnd IfIf cb Thend=b:b=c:c=dEnd If A.10 B.40 C.20 D.100(分数:2.00)
9、A.B.C.D.31.设 a=5,b=6,c=7,d=8,执行下列语句后,x 的值为_。x=IIf(ab)And(cd),10,20) A.10 B.20 C.True D.False(分数:2.00)A.B.C.D.32.下列程序段的执行结果为_。x=Int(Rnd+4)Select Case xCase 5:Print “A Class“Case 4:Print “B Class“Case 3:Print “C Class“Case Else:Print “D Class“End Select A.A class B.B Class C.C Class D.D Class(分数:2.00)
10、A.B.C.D.33.在窗体上有一个名称为 Command1 的命令按钮和两个名称分别为 Text1、Text2 的文本框,并编写有如下事件过程:Private Sub Command1_Click()num=Text1.TextSelect Case numCase 1 To 20:x=10Case 2,4,6:x=20Case Is10:x=30Case 10:x=40End SelectText2.Text=xEnd Sub程序运行后,如果在文本框 Text1 中输入 10,然后单击命令按钮,则在 Text2 中显示的内容是_。 A.10 B.20 C.30 D.40(分数:2.00)A
11、.B.C.D.34.设有如下程序段:S=0For i=1 To 10 Step 2S=S+iNext运行以上程序后,S 的值是_。 A.24 B. 25 C.36 D.55(分数:2.00)A.B.C.D.35.下面的程序段被执行后,s 的值为_。s=0For i=1.4 To 3.8 Step 0.5s=s+1Next i A.3 B.4 C.5 D.6(分数:2.00)A.B.C.D.36.下列程序段的执行结果为_。a=6For k=1 To 0a=a+kNext kPrint k;a A.-1 6 B.-1 16 C.1 6 D.11 21(分数:2.00)A.B.C.D.37.在窗体上
12、有一个名称为 Command1 的命令按钮和一个名称为 Label1 的标签,并编写有如下事件过程:Private Sub Command1_Click()s=0For i=1 To 15n=2*i-1If n Mod 3=0 Then s=s+1Next iLabel1.Caption=sEnd Sub程序运行后,单击命令按钮,则标签中显示的内容是_。 A.1 B.5 C.27 D.45(分数:2.00)A.B.C.D.38.在以下事件过程:Private Sub Form_Click()Dim S As String, a As String, b As Stringa=“#“:b=“$“
13、For i=1 to 4If i/2=Int(i/2)ThenS=String(i, b)ElseS=String(i, a)End IfPrint S;Next iEnd Sub运行程序后,显示结果是_。 A.$#$# B.#$#$#$#$ C.#$#$ D.$#$#$#$#(分数:2.00)A.B.C.D.39.在窗体上有一个名称为 Command1 的命令按钮,并编写有如下事件过程:Private Sub Command1_Click()s=0:n=InputBox(“)For i=1 To nFor j=1 To is=s+1Next j, iPrint sEnd Sub程序运行后,单
14、击命令按钮,如果输入 3,则在窗体上显示的内容是_。 A.3 B.4 C.5 D.6(分数:2.00)A.B.C.D.40.以下程序段的输出结果是_。num=0While num=2num=num+1WendPrint num A.2 B.3 C.4 D.0(分数:2.00)A.B.C.D.41.为了计算 1+3+5+99 的值,某人编程如下:k=1:s=0While k=99k=k+2:s=s+kWendPrint s在调试时发现运行结果有错误,需要修改。下列错误原因和修改方案中正确的是_。 A.While.Wend 循环语句错误,应修改为 For k=1 To 99.Next k B.循环
15、条件错误,应改为 While k99 C.循环前的赋值语句 k=1 错误,应改为 k=0 D.循环中两条赋值语句的顺序错误,应改为 s=s+k:k=k+2(分数:2.00)A.B.C.D.42.假定有以下循环结构Do Until 条件循环体Loop则正确的描述是_。 A.如果“条件”是一个为 0 的常数,则一次循环体也不执行 B.如果“条件”是一个为 0 的常数,则至少执行一次循环体 C.如果“条件”是一个不为 0 的常数,则至少执行一次循环体 D.不论“条件”是否为“真”,至少要执行一次循环体(分数:2.00)A.B.C.D.43.以下能够正确退出循环的是_。 A.i=10 Do i=i+1
16、 Loop Until i10 B.i=1 Do i=i+1 Loop Until i=10 C.i=10 Do i=i+1 Loop Until i0 D.i=1 Do i=i-3 Loop Until i=0(分数:2.00)A.B.C.D.44.在窗体上有一个名称为 Command1 的命令按钮,并编写有如下事件过程:Private Sub Command1_Click()Dim num As Integern=1Do Until n6Print nn=n+2.4LoopEnd Sub程序运行后,单击命令按钮,则窗体上显示的内容是_。 A.1 3 5 B.1 3.4 5.8 C.1 4
17、7 D.无数据输出(分数:2.00)A.B.C.D.45.在窗体上有一个名称为 Command1 的命令按钮,并编写有如下事件过程:Private Sub Command1_Click()Dim a As Integer, s As Integern=8:s=1Dos=s+n:n=n-1Loop While n=0Print s; nEnd Sub程序运行后,单击命令按钮,则窗体上显示的内容是_。 A.7 9 B.9 7 C.34 0 D.死循环(分数:2.00)A.B.C.D.46.如下有一段不完整的程序段,如果要求该程序执行 3 次循环体,则在程序中的空白处要填入_。x=1Dox=x+3:
18、Print xLoop Until_ A.x=8 B.x=8 C.x=7 D.x=7(分数:10.00)A.B.C.D.二级公共基础知识-72 答案解析(总分:100.00,做题时间:90 分钟)一、B单项选择题/B(总题数:46,分数:100.00)1.以下程序段的输出结果是_。x=1:y=4Do Until y4x=x*yy=y+1LoopPrint x A.1 B.4 C.8 D.20(分数:2.00)A.B. C.D.解析:考点 Do 循环 解析 Do 型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是什么,至
19、少执行一次循环体。在Until 循环中条件为 False 时执行循环体,条件为 True 时退出循环;在 While 循环中条件为 True 时执行循环体,条件为 False 时退出循环。本题中第一次循环时由于不满足 y4,因此执行一次循环体,随后就由于满足 y4 而退出循环,故此 x 的值为 4。2.有如下事件过程:Private Sub Form_Click()Dim n As Integerx=0n=InputBox(“请输入一个整数“)For i=1 To nFor j=1 To ix=x+1Next jNext iPrint xEnd Sub程序运行后,单击窗体,如果在输入对话框中输
20、入 5,则在窗体上显示的内容是_。 A.13 B.14 C.15 D.16(分数:2.00)A.B.C. D.解析:考点 二重循环 解析 本题是一个简单的二重循环,外循环执行第一次的时候在累加和 x 中加上 1,外循环第二次的时候在累加和 x 中加上 2,以此类推,外循环循环 5 次,累加和中的值为1+2+3+4+5=15。3.下面函数的功能应该是:删除字符串 str 中所有与变量 ch 相同的字符,并返回删除后的结果。例如:若 str=“ABCDABCD”,ch=“B”,则函数的返回值为:“ACDACD”。Function delchar(str As String, ch As Strin
21、g)As StringDim k As Integer, temp As String, ret As Stringret=“For k=1 To Len(str)temp=Mid(str, k, 1)If temp=ch Thenret=ret Next iEnd Sub运行程序,单击命令按钮,窗体上显示的内容为_。 A.5 4 3 2 1 1 B.5 4 3 2 1 C.4 3 2 1 1 D.4 4 3 2 1 1(分数:2.00)A. B.C.D.解析:考点 For 循环 解析 For 循环语句的初值、终值和步长均为数值表达式,其值不一定是整数,循环次数=Int(终值-初值)/步长+1
22、。Int 函数用于删除所给数的小数部分而返回剩下的整数。 本题中,一共执行 6 次循环:第 1 次执行循环体时,i=5,Int(i)=5;第 2 次执行循环体时,i=4.2,Int(i)=4;第3 次执行循环体时,i=3.4,Int(i)=3;第 4 次执行循环体时,i=2.6,Int(i)=2;第 5 次执行循环体时,i=1.8,Int(i)=1;第 6 次执行循环体时,i=1,Int(i)=1。8.窗体上有 1 个名称为 Text1 的文本框;1 个名称为 Timer1 的计时器控件,其 Interval 属性值为5000,Enabled 属性值是 True。Timer1 的事件过程如下:
23、Private Sub Timer1_Timer()Static flag As IntegerIf flag=0 Then flag=1flag=-flagIf flag=1 ThenText1.ForeColor=n=n/10WendPrintEnd Sub此程序功能是:输入 2 个正整数,反序输出这 2 个数的每一位数字,再反序输出这 2 个数之和的每一位数字。例如:若输入 123 和 234,则应该输出:3 2 14 3 27 5 3但调试时发现只输出了前 2 行(即 2 个数的反序),而未输出第 3 行(即 2 个数之和的反序),程序需要修改。下面的修改方案中正确的是_。 A.把过程
24、 pro 的形式参数 n As Integer 改为 ByVal n As Integer B.把 Call pro(a+b)改为 pro a+b C.把 n=n/10 改为 n=n/10 D.在 pro b 语句之后增加语句 c%=a+b,再把 Call pro(a+b)改为 pro c(分数:2.00)A. B.C.D.解析:考点 当循环控制结构和过程 解析 本题考查的考点是有关过程调用的。本题题干中的程序之所以不能显示第三行的值,是由于在调用 pro 函数时使用的是默认的传地址调用,这时在 pro 过程中的对形参的更改都会影响到实参。仔细观察 pro 过程,发现每次循环都要对形参 n 整
25、除 10 一直到 n 为 0 为止,所以每次 pro 过程调用结束后都会把对应实参改为 0。修改参数传递方式为传值调用即可使程序正确运行。22.在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim I, NumRandomizeDoFor I=1 To 1000Num=Int(Rnd*100)Print Num;Select Case NumCase 12Exit ForCuse 58Exit DoCase 65,68,92EndEnd SelectNext ILoopEnd Sub上述事件过程执行后,下列描述中正确的是_。 A.Do 循
26、环执行的次数为 1000 次 B.在 For 循环中产生的随机数小于或等于 100 C.当所产生的随机数为 12 时结束所有循环 D.当所产生的随机数为 65、68 或 92 时窗体关闭、程序结束(分数:2.00)A.B.C.D. 解析:考点 多分支控制结构和 For 循环 解析 本题考查的考点是有关随机数和退出语句的。在本题中,首先在循环中生成一个随机数,由于 Rnd 函数可以生成 01 开区间的数,所以 Int(Rnd*100)能够生成 099 之间的整数,随后对此数进行判断,当随机数为 12 时退出内循环;当随机数为 58 时退出外循环:当随机数为 65、68 或 92 时将会结束整个窗体的运行。本题中的循环次数受随机数控制,所以次数不定。23.在窗体上画一个名称为 Command1 的命令按钮。然后编写如下的事件过程:Public Function Fun(xStr As String)As StringDim tStr As String, strL As IntegertStr=“:strL=Len(xStr):i=1