A)0B)1C)FalseD)True
9.要计算x的平方根并放入变量y,正确的语句是( D )。
A)y=Exp(x)B)y=Sgn(x)C)y=Int(x)D)y=Sqr(x)
参考答案:
D【解析】Exp函数是e为底的指数函数,即ex;Sgn是符号函数,正数返回1,负数返回-1,0返回0;Int是取整函数,取<=N的最大整数;Sqr是求平方根函数。
故D选项正确。
10.PrintRight("VBProgramming",2)语句的输出结果是( C )。
A)VBB)ProgrammingC)ngD)2
参考答案:
C【解析】Right是字串右截取函数,本题中是从字串"VBProgramming"右边向左截2个字符,即为"ng",故选C。
11.PrintFormat(1234.56,"###.#")语句的输出结果是( B )。
A)123.4B)1234.6C)1234.5D)1234.56
参考答案:
B【解析】Format是格式输出函数,数据要按照"输出格式字符串"指定格式输出。
"输出格式字符串"中#表示显示一数字,若此位置没有数字则不显示。
本题中"输出格式字符串"整数部分###长度小于1234时,1234按原样输出,小数部分#长度为1,则小数部分保留一位,四舍五入取6,故选B。
12.表达式12/2\4的值是( D )。
A)1.5B)2C)4D)1
参考答案:
D【解析】运算符除/优先级高于整除、所以先计算/,再计算、结果是1,故选D。
13.有下面的程序段:
A=1.2
B=321
C=Len(Str(A)+Str(B))
PrintC
执行上面的程序段,输出结果是(D)
A)8B)5C)7D)6
14.下列程序段的输出结果是(B)
x=5
Printx+1;x+1
A)55B)66C)56D)67
15.窗体上有2个名称分别为Text1和Text2的文本框。
编写如下程序:
PrivateSubForm_Load()
Text1.Text=””
Text2.Text=””
EndSub
PrivateSubCommand1_Click()
PrintText1.Text+Text2.Text
EndSub
程序运行后,在Text1和Text2中依次输入100和200,并单击命令按钮Command1,则输出结果为(A)
A)100200B)200C)100D)300
16.已知:
x=-6:
y=39则表达式"y\x*Sgn(x)"的值为( C )。
【2013年3月考试真题】
A)-6.5B)-6C)6D)6.5
答案:
C【解析】本题按运算符从高到低优先级计算:
*(\,所以应该是39\-6)*Sgn(-6)=39\(-6)*(-1)=(39\6=6,故选C
17.下列合法的变量名是( B )。
【2013年9月考试真题】
A)sum-aB)num_9C)print$D)5avg
答案:
B【解析】VB中变量的命名规则为:
①必须以字母或汉字开头②由字母、汉字、数字或下划线组成③不能使用VB的保留字。
变量名sum-a中有-减号,不合法;print是VB保留字,不能作变量名,不合法;5avg不能以数字开头,不合法。
故选B
18.下列有语法错误的赋值语句是( D )。
【2013年9月考试真题】
A)y=7=9B)s=m+nC)Text1.Text=10D)m+n=12
参考答案:
D【解析】赋值语句的格式是:
变量名=表达式。
赋值号左边必须是变量名,不能是表达式或常量。
D选项中赋值号左边m+n是表达式,不是变量名,故D选项错误。
19.如果在程序中直接使用了没有声明的变量,则它的数据类型是(B)
A)逻辑型B)变体型C)整型D)字符串型
20.语句:
PrintAsc(Chr$(Mid$(“98765432”,4,2)))的输出是(A)
A)65B)WC)AD)8765
21.设变量x中的值是395,则下面语句的输出是(A)
Printx\100+((xMod100)\10)*10+(xMod10)*100
A)593B)935C)539D)395
参考答案:
A【解析】本题中x定义为整型变量,通过输入对话框输入395,按"确定"按钮后,InputBox函数把返回值395赋给变量x。
表达式395Mod10,结果是5,395\100结果为3,(395Mod100)\10的结果为9。
故A选项正确。
第五章特殊对象及特殊属性
1.设程序中有以下语句:
MsgBox“Visual”,,“Basic”,“等级考试”,2
执行该语句后,显示一个信息框,以下关于该信息框的叙述中,正确的是(C)
A)提示信息是BasicB)标题栏显示为VisualC)提示信息是VisualD)标题栏显示为”等级考试”
参考答案:
C【解析】MsgBox函数的作用:
在对话框中显示消息,等待用户单击按钮,并返回一整数,告诉用户单击哪一个按钮。
Msgbox函数的格式是:
MsgBox(提示信息[,按钮样式][,标题信息][,帮助文件,帮助上下文编号])。
故C选项正确。
2.窗体上有一个名称为Command1的命令按钮,其事件过程如下:
PrivateSubCommand1_Click()
x="VisualBasicProgramming"
a=Right(x,11)
b=Mid(x,7,5)
c=MsgBox(a,,b)
EndSub运行程序后单击命令按钮。
以下叙述中错误的是( D )。
A)信息框的标题是BasicB)信息框中的提示信息是Programming
C)c的值是函数的返回值D)MsgBox的使用格式有错
参考答案:
D【解析】Right(x,11)是从字符串变量x右边取11个字符,即“Programming”,这个字符串存入变量a中。
Mid(x,7,5)是从字符串变量x的第7个字符开始取5个字符,即“Basic”,此字符串存入变量b中。
MsgBox的格式为:
MsgBox(Prompt[,Button][,Title]),参数中只有Prompt是必需的,如果省略Button则显示一个确定按钮,因此题目显示的消息框有一个确定按钮,标题是“Basic”,信息是“Programming”。
MsgBox的返回值是一个与所选按钮有关的整数。
第六章VisualBasic结构化程序语句
1.在窗体上画一个名称为Command1的命令按钮,编写如下事件过程:
PrivateSubCommand1_Click()
n=0
Fori=0To10
X=2*i-1
IfXMod3=0Thenn=n+1
Nexti
Printn
EndSub运行程序,单击命令按钮,则窗体上显示的是( B )。
A)1B)3C)5D)7
参考答案:
B【解析】Mod是取模运算符,即求运算两数相除的余数。
每次循环中X的值分别是-1,1,3,5,7,9,11,13,15,17,19,其中与3求模为0的数有3、9、15共3个,因此n=n+1会执行3次,最终n=3。
2.设有以下程序:
PrivateSubForm_Click()
x=50
Fori=1To4
y=InputBox("请输入一个整数")
y=Val(y)
IfyMod5=0Then
a=a+y
x=y
Else
a=a+x
EndIf
Nexti
Printa
EndSub程序运行后,单击窗体,在输入对话框中依次输入15、24、35、46,输出结果为( A )。
A)100B)50C)120D)70
参考答案:
A【解析】程序的作用是输入的数如果是5的倍数就累加,如果不是就每次加50或与上次是5的倍数的那个数相累加。
因此最终a的值是15+15+35+35=100。
3.在窗体上画1个命令按钮和2个文本框,其名称分别为Command1、Text1和Text2,然后编写如下事件过程:
PrivateSubCommand1_Click()
n=0
a=Val(Text1.Text)
Whilea>0
n=n+aMod10
a=a\10
Wend
text2.Text=Str(n)
EndSub
程序运行后,在Text1中输入2468,,单击Command1按钮,则在Text2中显示的是(B)
A)10B)20C)2468D)8642
4.编写如下程序:
PrivateSubForm_Click()
a=0
Fori=1to20step3
a=a+i\5
Nexti
Printa
EndSub运行程序,单击窗体,输出结果为(D)
A)14B)13C)12D)11
5.有如下程序:
PrivateSubForm_Click()
DimsAsInteger,NAsInteger
s=0
Do
s=(s+1)*(s+2)
N=N+1
LoopUntils>=30
PrintN;s
EndSub运行程序,单击窗体,输出结果是(C)
A)4220B)130C)3182D)242
6.有如下程序:
PrivateSubForm_Click()
DimBAsString
DimmAsInteger,DecAsInteger
B=Inputbox(“请输入一个二进制数”)
M=Len(B)
Fori=1tom
Dec=Dec*2+Val(______)
Nexti
PrintDec
EndSub
程序功能是,从键盘上输入一个二进制数,把它转换为等值的十进制数并输出。
程序不完整,在_____处应填入的内容是:
C
A)Right(B,i)B)Str(B)C)Mid(B,i,1)D)Left(B,i)
参考答案:
C【解析】将二进制数转换为十进制数需要将二进制数的每一位取出来进行运算,从一个数值字符串中截取一位数字字符要使用Mid函数,因此在程序空缺处该填入Mid。
7.设有如下程序:
PrivateSubForm_Click()
DimaAsString
a=InputBox("输入一个字符串")
Fori=Len(a)To1Step-1
PrintMid(a,i,2);
Nexti
EndSub运行程序,单击窗体,在输入对话框中输入ABCD,单击”确定”按钮,输出结果是(A)
A)DCDBCABB)AABBCCDDC)DCBAD)DDCCBBAA
8.编写如下程序:
PrivateSubCommand1_Click()
DimnAsLong,sAsString
n=InputBox(“输入一个数”)
Dowhilen<>0
Printn\10Mod10;
PrintnMod10;
n=n\100
Loop
Prints
EndSub
程序运行后,单击命令按钮Command1,并输入数值123456,则输出结果为(A)
A)563412B)642531
C)654321D)615243
9.编写如下程序:
PrivateSubCommand1_Click()
DimxAsString,yAsString
x=Right("abcd",2)
y=Mid("dcba",2,3)
Ifx>yThen
Printx+y
Else
Printy+x
EndIf
EndSub程序运行后,单击命令按钮Command1,输出结果为(C)
A)cbacdB)cbcdC)cdcbaD)cdcb
10.编写如下程序:
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=1:
y=1
Do
y=x*y
Ify>10Then
Printx,y
ExitDo
Else
x=x+3
EndIf
LoopWhilex<=10
EndSub运行程序,循环实际执行次数为(B)
A)4B)2C)0D)3
11.编写如下程序:
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger
m=2:
n=1
SelectCasem
Case1
SelectCasen
Case1
Print"AAA"
Case2
Print"BBB"
EndSelect
Case2
Print"CCC"
EndSelect
EndSub
程序运行后,单击命令按钮Command1,输出结果为(B)
A)AAAB)CCCC)1D)BBB
12.在窗体上画一个命令按钮,然后编写如下事件过程:
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)当所产生的随机数为12时结束所有循环B)在For循环中产生的随机数小于或等于100
C)当所产生的随机数为65、68或92时窗体关闭、程序结束D)Do循环执行的次数为1000次
参考答案:
C【解析】程序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循环。
13.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
C=1234
C1=Trim(str(c))
Fori=1to4
Print____________
Next
EndSub程序运行后,单击命令按钮,要求在窗体上显示如下内容:
1
12
123
1234
则在横线处应填入的内容为(A)
A)Left(c1,i)B)Right(c1,i)C)Mid(c1,i,i)D)Mid(c1,i,1)
参考答案:
A【解析】程序中使用Str(c)将数值1234转换成为一个字符串"1234",又使用Trim函数去除了字符串首尾可能存在的空格,保证了字符串中只有1、2、3、4这4