第三章控制结构练习题_第1页
第三章控制结构练习题_第2页
第三章控制结构练习题_第3页
第三章控制结构练习题_第4页
第三章控制结构练习题_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

1、第七章 Visual Basic控制结构块结构条件语句)、Ilf函数的特For循环控制结构、DO循环控制GOTO 型控制(GOTO 和 ON-GOTO 语熟练掌握选择结构条件语句(包括单行结构条件语句、 点和使用,熟练掌握多分支结构的特点和使用,熟练掌握 结构的特点和使用,掌握多重循环控制结构,了解 句)的特点,正确使用选择结构、循环结构的嵌套。 1知识点:单行结构条件语句、块结构条件语句;Ilf函数;多分支结构;For循环结构、DO循环结构、多重循环控制结构,循环控制语句的比较;选择结构、循环结构的嵌套。熟练连续累加、累乘的算法,数列运算算法、”遍历”算法的程序设计;常用数值运算算法:平方根

2、迭代公式、牛顿迭代法和二分法求方程的根、求f(x)的数值积分、泰勒公式。目内容导航:一、选择控制结构(一)单行结构条件语句格式:If条件Then then部分Else else部分功能:如果 条件”为True,则执行“the部分”否则执行“els部分”(二)块结构条件语句格式:If 条件 1 Then语句块1:Elself 条件 2 Then语句块2:Elself 条件 3 Then语句块3:Else语句块n End If功能:如果 条件1 ”为True,则执行 语句块1”否则如果 条件2”为True,则执行 语句 块2” 否则执行 语句块n”若无Else及其后面语句,则执行End If后面的

3、语句。(三)IIf函数IIf函数的格式:result=IIf (条件,True部分,False部分)功能:当 条件”为真时,Ilf函数返回“ Tru部分”而当 条件”为假时返回“ Fals部分”二、多分支控制结构格式:Select Case测试表达式Case表达式表列1语句块1:Case表达式表列 2语句块2门Case Else语句块nEnd Select表达式表列”Select后面的End Selecto执行过程:先对 测试表达式”求值,然后测试该值与那一个 Case子句中的 相匹配;如果找到,就执行该 Case子句有关的语句块,并把控制转移到 End 语句;如果没有找到,则执行 Case

4、Else子句有关的语句块,并把控制转移到三、For循环控制结构一般格式:For循环变量=初值To终值Step步长 循环体:Exit For:Next 循环变量,循环变量执行过程:首先把 初值”赋给 循环变量”,接着检查 循环变量”的值是否超过 终值”, 若超过就停止执行 循环体”,跳出循环,执行 Next后面的语句;否则执行一次 循环体”, 然后把 循环变量+步长”的值赋给 循环变量”,重复上述过程。四、当循环控制结构格式:While语句块Wend执行过程:如果 条件”为True,则执行 语句块”,当遇到 Wend语句时,控制返回到 While语句并对 条件”进行测试,如仍然为 True,则重

5、复上述过程,如果 条件”为False,则 不执行 语句块”,执行 Wend后面的语句。五、Do循环控制结构格式:Do语句块1:Exit Do Loop WhilelUntil 循环条件 Do : While|Until 循环条件语句块2:Exit Do Loop功能:当指定的 循环条件"为True或直到指定的 循环条件"变为True之前重复执行一 组语句(即循环体)。昇训练:一、选择题1.VB的3中结构化程序设计的3种基本结构是AC)选择结构、过程结构、顺序结构 过程结构、转向结构、递归结构oB)递归结构、选择结构、顺序结构D)选择结构、顺序结构、循环结构2.用If语句表示

6、分段函数f(x)x:T x1,以下,x +1 XV1表示方法不正确。A) f=x3+1If x>=1 The n f=s3-1B) If x>=1 The n f=x3-1If x<1 The n f=x3+1C) If x>=1 The n f=x3-1f=x3+1D) If x<1 The n f=x3+1 ElseF=x3-13执行下面的程序段后显示结果是 Private Sub Form_Click()Dim mIf m Then Print m Else Print m+1End SubA) 0 B) 1 C) ”D) False4. 设a=6,则执行x

7、=llf(a>5,-1,0)后,x的值为A) 5 B) 6 C) 0 D)-5. 下面程序段的运行结果是 cj=85 lf cj>90 Then dj="A" lf cj>80 Then dj="B" lf cj>70 Then dj="C" lf cj>60 Then dj="D" lf cj<60 Then dj="E"Print "dj="djA) dj=B B) dj=C C) dj=D D) dj=E6. 下列语句正确的是 A)

8、If K<3*N And k>N The n 11=心3B) lf K<3*N And k>N Then N=k3C) If K<3*N : k>N The n 5人3D) lf K<3*N And k>N Then N=k*37. 设 X=2.0 , y=8.0 , z=6.0, L=True ,则下列 Visual Basic 表达式中值为 True 的是A) X+Z>Y AND L B) NOT(Y<Z+X)<>NOT LC) NOT L OR (L=Y+X=Z) D) Y+X>=Z+X AND (L AND

9、FALSE)8. 要判断 ”月收入在 2000 元以上(含 2000 元)且 5000 元以下(不含 5000 元) ”的职工, 应使用的逻辑表达式是 _B) M>=2000 OR M<=5000D) M>=2000 OR M<5000A) M>=2000 AND M<=5000C) M>=2000 AND M<50009. 下列程序段的执行结果为x=Int(69-60)*Rnd+60)Select Case xCase Is>90Print "优秀"Case 80 To 89Print "良好"Ca

10、se 60 To 79 Print " 合格 "Case Else Print "不合格 "End SelectA) 优秀 B) 良好 C) 合格 D) 不合格10. 在窗体上画一个命令按钮,名称为Command1。然后编写如下程序:运行结果 Private Sub Command1_Click()For I=1 To 4For J=0 To I Print Chr$(65+I);Next JPrintNext IEnd Sub单击命令按钮后,运行结果A) BB CCC DDDDEEEEEB) A BB CCCDDDDC) BCCDDDEEEED) AA

11、BBBCCCCDDDDD11在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮, 然后编写 如下事件过程:Private Sub Command1_Click() Dim i As Integer,n As Integer For i=0 To 50 i=i+3 n=n+1If i>10 Then Exit ForNextText1.Text=Str(n)End Sub程序运行后,单击命令按钮,在文本框中显示的值是 A) 2 B) 3 C) 4 D) 5 12在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Cli

12、ck()For i=1 To 4x=4For j=1 To 3x=3For k=1 To 2x=x+6Next kNext jNext iPrint x End Sub 程序运行后,单击命令按钮,输出结果是 A) 7 B) 15 C) 157 D) 538 13阅读下面的程序段: For i=1 To 3For j=1 To iFor k=j To 3 a=a+1Next kNext j Next i 执行上面的三重循环后,a的值为 A) 3 B) 9 C) 14 D) 2114在窗体上画一个文本框(其Name 属性为 Text1 ),然后编写如下事件过程:Private Sub Form_L

13、oad()Text1.Text=""Text1.SetFocusFor i=1 To 10Sum=Sum+iNext iText1.Text=SumEnd Sub 上述程序的运行结果是A) 在文本框 Text1 中输出 55 B) 在文本框 Text1 中输出 0 C) 出错 D) 在文本框 Text1 中输出不定值 15有如下程序:a=10b=4For j=1 To 20 Step -2a=a+5b=b+4Next jPrint a;b 运行后,输出的结果是A) 10 4 B) 60 24 C) 110 44D) 55 40 16有如下程序:d$=""

14、 a$="abcde"For i=Len(a$) To 1 Step -1 d$=d$+Mid(a$,i,1)Next iPrint d$ 运行后,输出的结果是 。A) abcde B) edcba C) acebd D) ecadb17在 Command1_Click 事件程序的功能是:按顺序读入 10 名学生 4 门课程的成绩。计算 出每位学生的平均分并输出,程序如下:Dim n As Integer,k As IntegerDim score As Single,sun As Single,ave As Single sum=0#For n=1 To 10For k=

15、1 To 4 score=InputBox(" 请输入一门课的成绩 ") sum=sum+scoreNext k ave=sum/4print"第"n;"个人的平均成绩为:”;ave这条语句Next n 上述程序运行后结果不正确, 调试中发现有一条语句出现在程序中的位置不正确。 是A) sum=0# B) sum=sum+scoreH.C) ave=sum/4 D) print"第"n;"人的均分:"ave 18下列程序的输出结果是 Dim y As Integery=10While y<>0

16、y=y-1WendPrint "y=" ; yA) y=0 B) y=1 C) y=随机值 D) y=-119以下程序的输出结果是Dim m As Integerm=1While m<=3m=m+1Print m;WendA) 2 B) 2 3 C) 2 3 4 D) 2 3 4 5 20下面的程序运行结果是 Private Sub Form_Click() m=0Do Until 0m=m+1If m>10 Then Exit DoLoopPrint mEnd SubA) 0 B) 10 C) 11 D) 出错 21下面程序运行语句 Print m 执行的次数

17、是 Private Sub Form_Click()Dim m As Integer,n As Integerm=0Dom=m+1For n=10 To 1 Step -3 m=m+nPrint mNext nLoop While m<50End SubA) 4 B) 8 C) 12 D) 1622在窗体上画两个名称分别为Text1 、 Text2 的文本框和一个名称为 Command1 的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim x As Integer,n As Integerx=1n=0Do While x<20x=x*3

18、n=n+1LoopText1.Text=Str(x)Text2.Text=Str(n)在两个文本框中显示的值分别是C) 195和3 D) 600和 4(其Name属性分别为Textl和Text2)和一个命令按钮(其NameEnd Sub 程序运行后,单击命令按钮, A) 15 和 1 B) 27 和 3 23在窗体上画两个文本框 属性为 Command1 ),然后编写如下事件过程: Private Sub Command1_Click()x=0Do While x<50 x=(x+2)*(x+3) n=n+1LoopText1.Text=Str(n)Text2.Text=Str(x)En

19、d Sub 程序运行后,单击命令按钮,在两个文本框中显示的值分别为 A) 1 和0 B) 2和 72 C) 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 a5、4、 3、2、1、-1,则

20、输出结果为End Sub 程序运行后,单击命令按钮,依次在输入对话框中输入oA) 2 B) 3 C) 14D) 15二、填空题 1执行下面的程序,当输入的值为5 时输出为 _2Private Sub Form_Click()Dim x As Single x=InputBox("X")If x<0 Then 'y=1 : Print y ElseIf x>=0 Then y=2 : Print y ElseIf x>=1 Theny=3 : Print y Else y=4 : print y End If End Sub 2下面的程序将从 Inp

21、utBox 输入对话框得到的 3 个数按从大到小输出。阅读程序并填空。 如果程序运行时分别输入 12.3、35.8 和 25.7 三个数,则输出为 _36 26 12Private Sub Form_Click()")")Dim a As Integer,b As Integer,c As Integer a=InputBox(" 输入一个数 b=InputBox(" 输入一个数 c=InputBox(" 输入一个数 ") If b>a Thend=a : a=b : b=dEnd IfIf c>a Thend=a : a

22、=c : c=dEnd IfIf c>b ThenEnd 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 1W2 = "日&qu

23、ot;Case 2W2 = "Case 3W2 = "Case 4W2 = "Case 5W2 = " 四 "Case 6W2 = " 五 "Case 7W2 = " 六 "End Select lbldate.Caption = " 今天是 " & Y & " 年" & M & " 月" & D & " 日" & W2 End Sub 4执行下面的程序段后, s 的值为

24、 _4 a=5For i=2.6 To 4.9 Step 0.6 s=s+1Next i5下面是一个体操评分程序。 20 位评委,除去一个最高分和一个最低分,计算平均分(设 满分为 10 分)。Max=0Min=10For i=1 To 20 n=Val(InputBox" 请输入分数 ") If Then Max=nIfThen Min=ns=s+nNext is=p=s/18Print"最高分”;Max,"最低分”;MinPrint" 最后得分 :"p6下面程序的功能是求1到 100的平方和, 如果平方和超过了 1000则跳出循环

25、, 输出此时的和 S。For I=1 To 100s=s+i*iIf s>1000 Then_s=s+i*iEnd Ifnext iabc:Print s7以下程序段的输出结果是num=0While num<=2123num=num+1Print numWend 8以下程序段的输出结果是 Dim j As Integer,s As Integer Dos=s+jj=j+1Loop Until j=5Print "s="s 9以下程序段,程序运行后, x=1s=10要求执行 4 次循环。Dox=x+1print 15loop Until10.下列程序运行后,内层循

26、环的循环总次数For x= 1 to 4For y =1 to xPrint yNext yNext X三、简答题1. 设计使用二分法求非线性方程f(x)=0在区间a,b的实根的算法。提示:从端点x0 =a开始,以h为步长,逐步往后进行搜索; 对于每一个子区间Xj , Xj屮h+卫开始再往后搜索;若2Xi 41开始再往后搜索;若(其中Xf = Xi+h):若 仁幼=0,则xi为一个实根,且从Xi +-开始再往后搜索;若f (XiG = 0 ,则Xi出为一个实根,且从Xi卅f (Xi)f (xf) aO,则说明当前子区间内无实根.从f (Xi)f(xF)cO,则说明在当前子区问内有实根。此时,反

27、复将子区间减半,直到发现一个实根或子区间长度小于£为止。在后一种情况下,子区间的中点即取为方程 的一个实根。然后再从X叶开始往后搜索。其中 £为预先给定的精度要求。以上过程一直进行到区间有端点 b为止。在使用本方法时,要注意步长 h的选择。若步长 h选得过大,可能会导致某些实根 的丢失;若步长h选得过小.则会增加计算工作量。2.设计用变步长梯形求积法计算定积分bT = f (x)dx的算法提示:首先用梯形公式计算:T-hf(af(b)其中 n=1, h=b-a然后用下列递推公式计算:1 h 2T2n=丄叽 +耳2 f (Xi +0.5h)2 2直至T2n -Tn名为止3.设

28、计使用牛顿迭代法求方程f(x)=O的一个实根的算法。提示:设f(x)=O ,则满足下列条件:f (x)在闭区间a,b上,其f(X)与f(X)均存在.且各自保持固定符号; f(a)f (b) cO ; f (Xo) f(X)>0 ,且 x,x a,b。则方程f(x)=O在区间a,b上有且只有一个实根,取初值x0,由牛顿迭代公式:Xn* = Xn f (Xn)/ f (人)计算得到的序列Xo ,Xi,xn ,收敛于方程f(x)=O的根。结束迭代过程的条件为f(Xn出)V &与Xn+Xn < S同时成立,其中£为预先给定的精度要求。四、程序阅读题1.写出下面程序的运行结

29、果。432Private Sub Form_Click()Dim s As In teger,k As In teger,m As In teger, n As In tegers=1For m=1 To 3For n=m To 3For k=n To m Ste p -1 s=s*kNext k,n,mPrint sEnd Sub2. 写出下面程序的运行结果。Private Sub Form_Click()For i=3 To 1 Step -1Print Sp c(10-i);For j=1 To 2*i-1 Prin t "*"Next jPrintNext iEnd

30、 Sub3. 写出下面程序的运行结果。a*Private Sub Form_Click()For i=1 To 4x=4For j=1 To 3x=3For k=1 To 2x=x+6Next kNext jNext iprint xEnd Sub4写出下面程序的运行结果。Private Sub Form_Click() m=0Dom=m+1If m>10 Then Exit DoLoop Until m<10Print mEnd Sub5写出下面程序的运行结果。1559 10Private Sub Form_Click()Dim m As Integer,n As Integer

31、 m=10Dom=m+nFor n=10 To m step -1m=m+nNext nLoop While m<50Print m;nEnd Sub 6写出下面程序的运行结果。 1 0Private Sub Form_Click()Dim m As Integer,n As Integer,k As Integer m=1 : n=a : k=5Do While m<=k*nm=m*n n=n+1Print m;nLOOpPrint m;nEnd SUb7写出下面程序的运行结果。32Dim i As Integer,a As IntegerDO While i<20Do W

32、hile True If i Mod 10=0 ThenExit DoElse i=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=&q

33、uot;" Then 【2End If If KeyAscii=13 ThenIf【3Print " 左右大括号配对 " ElseIf 【 4Print"左大括号多”;COUnt1;"个” ElsePrint"右大括号多”;-COUnt1;"个” End IfEnd If】Then】ThenEnd Sub2下列 Visual Basic 程序的功能是:计算一元二次方程的根,若为复根,要以 数单位)的形式输出,请填空。Dim a As Single,b As Single,c As SingleDim q As Single,

34、q1 As Single,q2 As Single a=InputBox(" 请输入第一个参数 ") b=InputBox(" 请输入第二个参数 ") c=InputBox(" 请输入第三个参数 ")R+W (为虚)Then【2【3q=b2-4#*a*cq1=-b/2/a : q2=Sqr(Abs(q) lf(Abs(q2)<0.0000001) ThenPrin t "x1=x2="q1Elself(【1Prin t "x1="q1+q2Prin t "x1="q1-

35、q2ElsePrin t"CO IMPLEX ROOT1="Prin t"CO MP LEX ROOT2="End If3.阅读下面分段函数及其程序,请填空2X+2012030-0.5X50-X(X <-10) (-10<xv0) (0 < X C 20) (20 < X V 40) (40 < X V 50) (50 < X)Dim X As Sin gle,y As Sin gle x=inputBox("请输入 If(x<-10) The ny=0#Elself(x<0) The n y=2

36、*x+20Elself(【1y=20Elself(x<40) Then【2Elself(x<50) Theny=50-x【3X")Theny=0End IfPrin t "X="x;"Y="y4.随机产生 0-100不及格、及格、良好、的整数作为某门功课的分数,按0-59、优秀 4个层次,阅读程序并填空。6069、7089、90100 划分为Private Sub Form_Click()Dim mm=I nt(101*R nd)Print m【1Print mSelect Case mCase【2】(此空不能超过5个字符)Prin

37、t "不及格"Case 6Print "良好”Case 7,8Print "良好”Case ElsePrint "优秀”End SelectEnd Sub5.下面的程序输入 X的值,按以下公式求Y值。100 -X-100<X cOY =100+X4000 <X <100100 <X <200Private Sub Comma nd1_Click()X=Val(Text1.Text)Select Case XCase【1Prin t "X<-100 OR X>200"Case【2Y=100-XCase【3Y=100+XCase【4Y=400End SelectText2.Text=YEnd Sub6以下程序是利用公式兀=4*( 1 -11-+110来计算兀的值。其中,变量k表示当前1+13 5符号项,t表示当前项,n表示当前项的序号,要求精度控制在0.00001内。试分析程序,完成空格处填的内容。Di

温馨提示

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

评论

0/150

提交评论