第四章基本的控制结构习题一、选择题1.下面正确的赋值语句是(c)。(A)x+y=30(B)y=π*r*r(C)y=x+30(D)3y=x2.为了给x,y,z三个变量赋初值1,下面正确的赋值语句是(a)。(A)x=1:y=1:z=1(B)x=1,y=1,z=1(C)x=y=z=1(D)xyz=13.赋值语句:a=123+Mid(123456”,3,2)执行后,a变量中的值是(157)。4.赋值语句:a=123&Mid(123456”,3,2)执行后,a变量中的值是(”12334”)。5.InputBox函数返回值的类型为(字符串)。6.在窗体上画一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()a=InputBox(“请输入第一个数”)b=InputBox(“请输入第二个数”)Printb+aEndSob程序运行后,单击命令按钮,先后在两个输入框中分别输入456和123,则输出结果是(123546)。7.在窗体上画一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()Dimaasinteger,basintegera=InputBox(“请输入第一个数”)b=InputBox(“请输入第二个数”)Printb+aEndSob程序运行后,单击命令按钮,先后在两个输入框中分别输入456和123,则输出结果是(579)。8.设a=10,b=20,则不能实现变量a,b交换的是(a)。(A)c:=a:b:=a:a:=c(B)c:=a:a:=b:b:=c(C)c:=b:b:=a:a:=c(D)c:=a:d:=b:b:=c:a:=d9.VB提供了结构化程序设计的三种基本结构是选择结构、循环结构、顺序结构11.设x为未赋值的整型变量,语句ifxthenPrintxelseprintx+1执行后的结果是(1)。12.语句ifx=1theny=1,下列说法正确的是(c)。(A)x=1和y=1均为赋值语句(B)x=1和y=1均为关系表达式(C)x=1为关系表达式,y=1为赋值语句(D)x=1为赋值语句,y=1为关系表达式13.下面程序段求两个数中的大数,(b)不正确。(A)max=iif(xy,x,y)(B)ifxythenmax=xelsemax=y(C)max=x(D)ify=xthenmax=yify=xthenmax=ymax=x14.在DoUntil条件------Loop循环结构中,正确的描述是(b)。(A)如果“条件”是一个为0的常数,则一次循环体也不执行(B)如果“条件”是一个为0的常数,则至少执行一次循环体(C)如果“条件”是一个不为0的常数,则至少执行一次循环体(D)不论“条件”是否为“真”,至少要执行一次循环体15.设a=6,则执行x=IIf(a5,-1,0)后,x的值为(-1)。分析程序的运行结果1.阅读程序段:x=1y=4dountily4x=x*yy=y+1loopprintx执行此段程序后的结果是:42..阅读程序段:fori=1to3forj=1toifork=jto3a=a+1nextknextjnextiprinta执行此段程序后的结果是:143.在窗体上画一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_click()Fori=1to4X=4Forj=1to3X=3Fork=1to2X=x+6NextkNextjNextiPrintxEndsub程序运行后,单击命令按钮,输出结果是:154.在窗体上画一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_click()X=0Dountilx=-1a=Val(InputBox(“请输入a的值”))b=Val(InputBox(“请输入b的值”))X=Val(InputBox(“请输入X的值”))a=a+b+xLoopPrintaEndSub程序运行后,单击命令按钮,依次在输入对话框中输入5、4、3、2、1、-1,则输出结果是:25.在窗体上画一个文本框text1,然后编写如下事件过程:PrivateSubForm_Load()Text1.text=””Text1.setfocusFori=1to10Sum=Sum+iNextiText1.text=sumEndsub程序运行后,在文本框中显示的结果是:556.在窗体上画两个文本框text1、text2和一个命令按钮command1,然后编写如下事件过程:Privatesubcommand1_click()X=0Dowhilex50X=(x+2)*(x+3)N=n+1LoopText1.text=str(n)Text2.text=str(x)Endsub程序运行后,单击命令按钮,在两个文本框中显示的值分别是:2727.阅读程序:PrivateSubForm_click()Dimk%,n%,m%n=10m=1k=1Dowhilek=nm=m*2k=k+1LoopPrintmEndsub程序运行后,单击窗体,输出结果为:10248.阅读程序:PrivateSubForm_click()A=0Fori=1to2Forj=1to4Ifjmod20thena=a+1Endifa=a+1NextjNextiPrintaEndsub程序运行后,单击窗体,输出结果为:129.阅读程序:Privatesubform_click()S$=InputBox(“输入一个数据串”)Fori=1toLen(s)IfMid(s,i,1)=”;”thenk=k+1NextiIfright(s,1)”;”thenk=k+1PrintkEndsub运行程序时,从键盘输入数据串“56;76;4;22;45;65;87”,输出的结果是:710.在窗体上一个命令按钮command1,然后编写如下事件过程:privateSubcommand1_click()dimxasinteger,nasintegerx=1:n=0dowhilex20x=x*3n=n+1loopprintx,nendsub程序运行时,单击命令按钮,结果为:2711.阅读程序:Privatesubcommand1_click()X=7Fori=1to4K=val(inputbox(“pleaseinput:”))Ifkmod5=0thenY=y+kX=kElseY=y+xEndifPrintyNextiEndsub程序运行时,从键盘输入2、5、7、10,输出的结果为:312.阅读程序:Privatesubcommand1_click()s$=inputbox(“请输入一个字符串:”)fori=1tolen(s)t=mid(s,i,1)ift=”a”andt=”z”thenn=n+1elseift=”A”andt=”Z”thenm=m+1elseift=”0”andt=”9”thenk=k+1endifnextiprint“k=”;k;”m=”,m;”n=”;nendsub程序运行时,从键盘输入字符串”*35Abc46GHks,erw345’?/3”,输出的结果为:k=8m=3n=713.阅读程序:privatesubcommand1_click()dimcrasstring*2cr=chr(13)+chr(10)‘回车换行字符串fori=1to5forj=Ito5s=s&space(1)&“*”nextjs=s&crnextiprintsendsub程序运行时,结果为:14.阅读程序:privatesubcommand1_click()dimcrasstring*2cr=chr(13)+chr(10)‘回车换行字符串fori=1to5forj=ito5s=s&space(1)&“*”nextjs=s&cr&space(i)nextiprintsendsub程序运行时,结果为:二、简答题1.指出下列赋值语句中的错误(包括运行时产生的错误)。(1)10x=sin(x)+y(2)c=3+sqr(-3)(3)c+x+y=c*y(4)x=sin(x)/(20mod2)15.阅读程序:privatesubcommand1_click()a=val(inputbox(“inputa:”))b=val(inputbox(“inputb:”))x=a*(a+b)ifbathenx=b*(b+a)printxendsub程序运行时,从键盘输入5、4,输出的结果为:16.阅读程序:privatesubcommand1_click()s$=”*123456abcdef**54*#eee”doi=i+2loopuntilmid(s,I,1)=”*”printI,left(s,i)endsub程序运行时,输出的结果为:14*123456abcdef*17.阅读程序:privatesubcommand1_click()a$=”123456789”b$=”ABCDEFGHIJ”text1=””fori=1to5s$=mid(a$,9-i,1)+mid(b$,i,1)text1=text1+s$nextiendsub程序运行后,文本框text1中的内容是:8a7b*6c5d4e18.阅读程序:privatesubcommand1_click()a$=”123456789”b$=”ABCDEFGHIJ”text1=””fori=1to5s$=mid(a$,9-i,2)+mid(b$,i,1)text1=s$+text1nextiendsub程序运行后,文本框text1中的内容是:45e56d67c78b89a19.阅读程序:privatesubcommand1_click()a$=”0123456789”c=6d=5dowhiled0d=val(mid(a,10-i,1))i=i+1ifdcthenc=c+1loopprintc+dendsub程序运行后,输出的结果为:820.在窗体上画一个名称为Command1的命令按钮,一个名称为Label1的标签,然后编写如下事件过程:PrivateSubCommand1_Click()s=0Fori=1To15x=2*i-1IfxMod3=0Thens=s+1NextiLabel1.Caption=sEndSub程序运行后,单击命令按钮,则标签中显示的内容是52.Msgbox作为函数使用时与Inputbox的区别?各自获得的是什么值?3.语句:IF表达式Then中的表达式可以是算术、字符、关系、逻辑表达式中的哪些?4.指出下列语句中的错误。(1)Ifx≥yThenprintx(2)If10x20Thenx=x+20(3)Ifc=”A”andc=”Z”ThenPrint“大写字母”ElseIfc=”a”andc=”z”ThenPrint“小写字母”EndIf5.按照条件,写出相应的条件语句。(1)当C字符变量中第三个字符是”C”时,利用Msgbox显示”yes”,否则显示”No”。(2)利用If语句、SelectCase语句两种方法计算分段函数:||12323xxxxy(3)利用If语句和IIf函数两种方法求三个数x、y、z中的最大值,并将其放入Max变量中。6.计算下列循环语句的次数:(1)ForI=-3To20step4(2)ForI=--3.5To5.5step0.5(3)I=-3.5To5.5step-0.5(4)I=--3To20step07.下列30~90为语句标号,分别标记该语句,第40句共执行了几次?第50句共执行了几次?第90句语句显示的结果是多少?30forj=1to12step3当x20当10≤x≤20当x1040fork=6to2step-250mk=k60printj,k70nextk80nextj90printj,k,mk8.如果事先不知道循环次数,如何用For…Next结构来实现?9.利用循环结构,实现如下功能:(1)101)12)(1