第三章控制结构练习题.doc_第1页
第三章控制结构练习题.doc_第2页
第三章控制结构练习题.doc_第3页
第三章控制结构练习题.doc_第4页
第三章控制结构练习题.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章 Visual Basic控制结构 教学要求:熟练掌握选择结构条件语句(包括单行结构条件语句、块结构条件语句)、IIf函数的特点和使用,熟练掌握多分支结构的特点和使用,熟练掌握For循环控制结构、DO循环控制结构的特点和使用,掌握多重循环控制结构,了解GOTO型控制(GOTO和ON-GOTO语句)的特点,正确使用选择结构、循环结构的嵌套。 知识点:单行结构条件语句、块结构条件语句;IIf函数;多分支结构;For循环结构、DO循环结构、多重循环控制结构,循环控制语句的比较;选择结构、循环结构的嵌套。熟练连续累加、累乘的算法,数列运算算法、”遍历”算法的程序设计;常用数值运算算法:平方根迭代公式、牛顿迭代法和二分法求方程的根、求f(x)的数值积分、泰勒公式。 内容导航:一、选择控制结构(一)单行结构条件语句格式:If条件Then then部分Else else部分功能:如果“条件”为True,则执行“then部分”,否则执行“else部分”。(二)块结构条件语句格式:If条件1 Then 语句块1ElseIf 条件2 Then语句块2ElseIf 条件3 Then 语句块3Else语句块nEnd If功能:如果“条件1”为True,则执行“语句块1”;否则如果“条件2”为True,则执行“语句块2”否则执行“语句块n”,若无Else及其后面语句,则执行End If后面的语句。(三)IIf函数IIf函数的格式: result=IIf(条件,True部分,False部分)功能:当“条件”为真时,IIf函数返回“True部分”,而当“条件”为假时返回“False部分”。二、多分支控制结构格式: Select Case 测试表达式 Case 表达式表列1语句块1 Case表达式表列2 语句块2 Case Else语句块nEnd Select执行过程:先对“测试表达式”求值,然后测试该值与那一个Case子句中的“表达式表列”相匹配;如果找到,就执行该Case子句有关的语句块,并把控制转移到End Select后面的语句;如果没有找到,则执行Case Else子句有关的语句块,并把控制转移到End Select。三、For循环控制结构一般格式:For循环变量 = 初值To终值Step步长循环体Exit For Next循环变量,循环变量执行过程:首先把“初值”赋给“循环变量”,接着检查“循环变量”的值是否超过“终值”,若超过就停止执行“循环体”,跳出循环,执行Next后面的语句;否则执行一次“循环体”,然后把“循环变量步长”的值赋给“循环变量”,重复上述过程。四、当循环控制结构格式:While语句块Wend执行过程:如果“条件”为True,则执行“语句块”,当遇到Wend语句时,控制返回到While语句并对“条件”进行测试,如仍然为True,则重复上述过程,如果“条件”为False,则不执行“语句块”,执行Wend后面的语句。五、Do循环控制结构格式:Do语句块1 Exit DoLoopWhile|Until循环条件 DoWhile|Until循环条件语句块2Exit DoLoop功能:当指定的“循环条件”为True或直到指定的“循环条件”变为True之前重复执行一组语句(即循环体)。 训练:一、选择题1.VB的3中结构化程序设计的3种基本结构是_。A) 选择结构、过程结构、顺序结构B) 递归结构、选择结构、顺序结构C) 过程结构、转向结构、递归结构D) 选择结构、顺序结构、循环结构2用If语句表示分段函数 ,以下_表示方法不正确。A) f=x3+1If x=1 Then f=s3-1B) If x=1 Then f=x3-1If x=1 Then f=x3-1f=x3+1D) If x5,-1,0)后,x的值为_。A) 5B) 6C) 0D) 15下面程序段的运行结果是_。cj=85If cj90 Then dj=AIf cj80 Then dj=BIf cj70 Then dj=CIf cj60 Then dj=DIf cj60 Then dj=EPrint dj=;djA) dj=BB) dj=CC) dj=DD) dj=E6下列语句正确的是_。A) If KN Then N=k3B) If KN Then N=k3C) If KN Then N=k3D) If KN Then N=k*37设X=2.0,y=8.0,z=6.0,L=True,则下列Visual Basic表达式中值为True的是_。A) X+ZY AND LB) NOT(YZ+X)NOT LC) NOT L OR (L=Y+X=Z)D) Y+X=Z+X AND (L AND FALSE)8要判断”月收入在2000元以上(含2000元)且5000元以下(不含5000元)”的职工,应使用的逻辑表达式是_。A) M=2000 AND M=2000 OR M=2000 AND M=2000 OR M90Print 优秀Case 80 To 89Print 良好Case 60 To 79Print 合格Case ElsePrint 不合格End SelectA) 优秀B) 良好C) 合格D) 不合格10在窗体上画一个命令按钮,名称为Command1。然后编写如下程序:运行结果_。Private Sub Command1_Click()For I=1 To 4For J=0 To IPrint Chr$(65+I);Next JPrintNext IEnd Sub单击命令按钮后,运行结果_。A) BB CCC DDDD EEEEEB) A BB CCC DDDDC) B CC DDD EEEED) AA BBB CCCC DDDDD11在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim i As Integer,n As IntegerFor i=0 To 50i=i+3n=n+1If i10 Then Exit ForNextText1.Text=Str(n)End Sub程序运行后,单击命令按钮,在文本框中显示的值是_。A) 2B) 3C) 4D) 512在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()For i=1 To 4x=4For j=1 To 3x=3For k=1 To 2x=x+6Next kNext jNext iPrint xEnd Sub程序运行后,单击命令按钮,输出结果是_。A) 7B) 15C) 157D) 53813阅读下面的程序段:For i=1 To 3For j=1 To iFor k=j To 3a=a+1Next kNext jNext i执行上面的三重循环后,a的值为_。A) 3B) 9C) 14D) 2114在窗体上画一个文本框(其Name属性为Text1),然后编写如下事件过程:Private Sub Form_Load()Text1.Text=Text1.SetFocusFor i=1 To 10Sum=Sum+iNext iText1.Text=SumEnd Sub上述程序的运行结果是_ 。A) 在文本框Text1中输出55B) 在文本框Text1中输出0C) 出错D) 在文本框Text1中输出不定值15有如下程序:a=10b=4For j=1 To 20 Step -2a=a+5b=b+4Next jPrint a;b运行后,输出的结果是_。A) 10 4B) 60 24C) 110 44D) 55 4016有如下程序:d$=a$=abcdeFor i=Len(a$) To 1 Step -1d$=d$+Mid(a$,i,1)Next iPrint d$运行后,输出的结果是_。A) abcdeB) edcbaC) acebdD) ecadb17在Command1_Click事件程序的功能是:按顺序读入10名学生4门课程的成绩。计算出每位学生的平均分并输出,程序如下:Dim n As Integer,k As IntegerDim score As Single,sun As Single,ave As Singlesum=0#For n=1 To 10For k=1 To 4score=InputBox(请输入一门课的成绩)sum=sum+scoreNext kave=sum/4print第;n;个人的平均成绩为:;aveNext n上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是_。A) sum=0#B) sum=sum+scoreC) ave=sum/4D) print第;n;人的均分:;ave18下列程序的输出结果是_。Dim y As Integery=10While y0y=y-1WendPrint y= ; yA) y=0B) y=1C) y=随机值D) y=-119以下程序的输出结果是_。Dim m As Integerm=1While m10 Then Exit DoLoopPrint mEnd SubA) 0B) 10C) 11D) 出错21下面程序运行语句Print m执行的次数是_。Private Sub Form_Click()Dim m As Integer,n As Integerm=0Dom=m+1For n=10 To 1 Step -3m=m+nPrint mNext nLoop While m50End SubA) 4B) 8C) 12D) 1622在窗体上画两个名称分别为Text1、Text2的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click()Dim x As Integer,n As Integerx=1n=0Do While x20x=x*3n=n+1LoopText1.Text=Str(x)Text2.Text=Str(n)End Sub程序运行后,单击命令按钮,在两个文本框中显示的值分别是_。A) 15和1B) 27和3C) 195和3D) 600和423在窗体上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(其Name属性为Command1),然后编写如下事件过程:Private Sub Command1_Click()x=0Do While x50x=(x+2)*(x+3)n=n+1LoopText1.Text=Str(n)Text2.Text=Str(x)End Sub程序运行后,单击命令按钮,在两个文本框中显示的值分别为_。A) 1和0B) 2和72C) 3和50D) 4和16824在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x=0Do Until x=-1a= InputBox(请输入A的值)a=Val(a)b=InputBox(请输入B的值)b=Val(b)x=InputBox(请输入x的值)x=Val(x)a=a+b+xLoopPrint aEnd Sub程序运行后,单击命令按钮,依次在输入对话框中输入5、4、3、2、1、-1,则输出结果为_。A) 2B) 3C) 14D) 15二、填空题1执行下面的程序,当输入的值为5时输出为_2_。Private Sub Form_Click()Dim x As Singlex=InputBox(X)If x=0 Theny=2 : Print yElseIf x=1 Theny=3 : Print yElse y=4 : print yEnd IfEnd Sub2下面的程序将从InputBox输入对话框得到的3个数按从大到小输出。阅读程序并填空。如果程序运行时分别输入12.3、35.8和25.7三个数,则输出为_36 26 12_。Private Sub Form_Click()Dim a As Integer,b As Integer,c As Integera=InputBox(输入一个数)b=InputBox(输入一个数)c=InputBox(输入一个数)If ba Thend=a : a=b : b=dEnd IfIf ca Thend=a : a=c : c=dEnd IfIf cb Then End IfPrint a;b;cEnd Sub3下列程序运行时,单击窗体,执行结果为_。说明:在窗体上有一个Label控件,名为lblDate。Dim Y As Integer, D As Integer, W1 As IntegerDim Rq As DateDim W2 As StringPrivate Sub Form_Click()Rq = DateY = Year(Rq) : m=Month(Rq) : d=Day(Rq)W1 = Weekday(x)Select Case W1Case 1 W2 = 日Case 2 W2 = 一Case 3 W2 = 二Case 4 W2 = 三Case 5 W2 = 四Case 6 W2 = 五Case 7 W2 = 六End Selectlbldate.Caption = 今天是 & Y & 年 & M & 月 & D & 日 & W2End Sub4执行下面的程序段后,s的值为_4_。a=5For i=2.6 To 4.9 Step 0.6s=s+1Next i5下面是一个体操评分程序。20位评委,除去一个最高分和一个最低分,计算平均分(设满分为10分)。Max=0Min=10For i=1 To 20n=Val(InputBox请输入分数)If _Then Max=nIf _Then Min=ns=s+nNext is=_ p=s/18Print最高分;Max,最低分;MinPrint最后得分:;p6下面程序的功能是求1到100的平方和,如果平方和超过了1000则跳出循环,输出此时的和S。For I=1 To 100s=s+i*iIf s1000 Then_s=s+i*i_ End Ifnext iabc:Print s7以下程序段的输出结果是_123_。num=0While num10 Then Exit DoLoop Until m10Print mEnd Sub5写出下面程序的运行结果。59 10Private Sub Form_Click()Dim m As Integer,n As Integerm=10Do m=m+nFor n=10 To m step -1m=m+nNext nLoop While m50Print m;nEnd Sub6写出下面程序的运行结果。1 0Private Sub Form_Click()Dim m As Integer,n As Integer,k As Integerm=1 : n=a : k=5Do While m=k*n m=m*nn=n+1Print m;nLoopPrint m;nEnd Sub7写出下面程序的运行结果。32Dim i As Integer,a As IntegerDo While i20Do While TrueIf i Mod 10=0 ThenExit DoElsei=i-1End IfLoopi=i+11 : a=a+iLoopPrint a五、程序填空题1下面的程序段是检查输入的文字段中大括号是否配对,并显示相应的结果。本程序在文本框中边输入,边统计大括号的个数,以输入回车符作为输入结束标志,然后显示结果。Dim count1%,str As StringPrivate Sub Text1_KeyPress(KeyAscii As Integer)str=【1 】If str= Thencount1=count1+1ElseIf str= Then【2 】End IfIf KeyAscii=13 ThenIf【3 】ThenPrint 左右大括号配对ElseIf【4 】ThenPrint 左大括号多;count1;个ElsePrint 右大括号多;-count1;个End IfEnd IfEnd Sub2下列Visual Basic程序的功能是:计算一元二次方程的根,若为复根,要以R+W(为虚数单位)的形式输出,请填空。Dim a As Single,b As Single,c As SingleDim q As Single,q1 As Single,q2 As Singlea=InputBox(请输入第一个参数) b=InputBox(请输入第二个参数)c=InputBox(请输入第三个参数)q=b2-4#*a*cq1=-b/2/a : q2=Sqr(Abs(q)If(Abs(q2)0.0000001) ThenPrint x1=x2=;q1ElseIf(【1 】)ThenPrint x1=;q1+q2Print x1=;q1-q2ElsePrintCOMPLEX ROOT1=;【2 】PrintCOMPLEX ROOT2=;【3 】End If3阅读下面分段函数及其程序,请填空: Dim x As Single,y As Singlex=inputBox(请输入x)If(x-10) Theny=0#ElseIf(x0) Theny=2*x+20ElseIf(【1 】) Theny=20ElseIf(x40) Then【2 】ElseIf(x50) Theny=50-x【3 】y=0End IfPrint X=;x;Y=;y4随机产生0100的整数作为某门功课的分数,按059、6069、7089、90100划分为不及格、及格、良好、优秀4个层次,阅读程序并填空。Private Sub Form_Click()Dim mm=Int(101*Rnd)Print m【1 】Print mSelect Case mCase【2 】(此空不能超过5个字符)Print 不及格Case 6Print 良好Case 7,8Print 良好Case ElsePrint 优秀End SelectEnd Sub5下面的程序输入X的值,按以下公式求Y值。Private Sub Command1_Click()X=Val(Text1.Text)Select Case XCase 【1 】Print X200Case 【2 】Y=100-XCase 【3 】Y=100+XCase 【4 】Y=400End SelectText2.Text=YEnd Sub6以下程序是利用公式来计算的值。其中,变量k表示当前符号项,t表示当前项,n表示当前项的序号,要求精度控制在0.00001内。试分析程序,完成空格处填的内容。Dim pi As Single,t As SingleDim n As Single,k As Singlepi=0 : n=1k=1 : t=1Do While(【1 】)pi =pi+tk=-kt=【2 】n=n+1Looppi=【3 】Print pi=;pi7下列程序的功能是输出的前20项,按每行5个数的形式输出。Fibonacci数列:F1=1,F2=1,Fn=Fn-1+Fn-2(n=2)Dim a As Integer, b As IntegerDim c As Integer, i As

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论