1习题四(控制结构)一、选择题1.C2.A3.B4.D5.C6.A7.B8.B9.A二、填空题4.0三、简答题1.写出数学式|x|2.5×10-2对应的VisualBasic表达式。答案:x2.5e-2andx-2.5e-22.逻辑运算符And、Or和Not的优先级最高的是哪一个。答案:Not3.已知W=10X=9Y=8Z=7,求下列表达式的结果:(1)WXAndY=ZORXY(2)XZOrW=YANDYX(3)Not(WYAndX=Z)(4)Not(YXOrW*3Z)答案(1)True(2)True(3)True(4)False4.写出下列十进制整数逻辑运算的结果:(1)X=23And14(2)X=23Or14(3)X=-1And19(4)X=-1Or10(5)X=Not-1答案(1)6(2)31(3)19(4)-1(5)0四、编程题1.已知变量X和Y的值分别为5、6,编写程序,交换变量X和Y的值。2答案设计界面如图程序代码如下PrivateSubForm_Click()x=5:y=6t=x:x=y:y=tForm1.Printx=;x,y=;yEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Printx=5,y=6Form1.Print单击窗体交换x,y的值EndSub2.征兵的条件是:男性18~20岁,1.65米以上;女性16~18岁,1.60米以上。编写程序,从键盘输入一个人的数据时,判断是否符合征兵的条件。答案设计界面如图程序代码如下PrivateSubCommand1_Click()age=Val(Text1.Text)h=Val(Text2.Text)IfOption1.Value=TrueThenIfage=18Andage=20Andh=1.65ThenLabel4.Caption=合格ElseLabel4.Caption=不合格EndIfElse3Ifage=16Andage=18Andh=1.6ThenLabel4.Caption=合格ElseLabel4.Caption=不合格EndIfEndIfEndSub3.编写程序,计算下面表达式的值(1)1+1×3+1×3×5+……+1×3×……(2N+1)答案设计界面如图程序代码如下PrivateSubCommand1_Click()n=Val(InputBox(请输入N值))Sum=1term=1Fork=3To2*n+1Step2term=term*kSum=Sum+termNextkForm1.Print1+1×3+1×3×5+……+1×3×……(2N+1)=;SumEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算1+1×3+1×3×5+……+1×3×……(2N+1)EndSub计算表达式补充:(2)-(5)(2)1!+3!+5!+……+(2N+1)!答案设计界面如图程序代码如下4PrivateSubCommand1_Click()n=Val(InputBox(请输入N值))Sum=1term=1Fork=3To2*n+1Step2term=term*(k-1)*kSum=Sum+termNextkForm1.Print1!+3!+5!+……+(2N+1)!=;SumEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算1!+3!+5!+……+(2N+1)!EndSub(3)1+X/2!+X2/4!+X3/6!+……+XN/(2N)!答案设计界面如图程序代码如下PrivateSubCommand1_Click()x=Val(InputBox(请输入x值))n=Val(InputBox(请输入N值))Sum=1t1=1t2=1Fork=2To2*nStep2t1=t1*xt2=t2*(k-1)*k5Sum=Sum+t1/t2NextkForm1.Print1+X/2!+X^2/4!+……+X^N/(2N)!=;SumEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算1+X/2!+X^2/4!+……+X^N/(2N)!EndSub(4)x-x3/3!+x5/5!-x7/7!+……答案设计界面如图程序代码如下PrivateSubCommand1_Click()x=Val(InputBox(请输入x值))Sum=xt1=xt2=1f=1k=1While(t1/t20.0001)k=k+2t1=t1*x*xt2=t2*(k-1)*kf=f*(-1)Sum=Sum+f*t1/t2WendForm1.Printx-x^3/3!+x^5/5!-x^7/7!+……=;SumEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算x-x^3/3!+x^5/5!-x^7/7!+……EndSub6(5)1+1/2+1/3+……+1/N(1/N10-4)答案设计界面如图程序代码如下PrivateSubForm_Click()Sum=0k=1While(1/k0.0001)Sum=Sum+1/kk=k+1WendForm1.Print1+1/2+1/3+……+1/N=;SumEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算1+1/2+1/3+……+1/NForm1.Print单击窗体开始EndSub4.由随机函数产生10道一位整数与两位整数相加的加法题,产生的加法题依次显示在屏幕上,每产生一道题后,由用户输入答案,如果答案正确,记10分;如果答案错误,允许第二次输入答案,第二次输入答案正确,记5分,错误记0分。最后给出总得分。7答案设计界面如图程序代码如下PrivateSubForm_Click()s=0Fori=1To10a=Int(10*Rnd)b=Int(10+10*Rnd)str1$=第&i&题&a&+&bc=Val(InputBox(str1$&第一次回答))Ifa+b=cThens=s+10str2$=str1$&10分Elsec=Val(InputBox(str1$&第二次回答))Ifa+b=cThens=s+5str2$=str1$&5分Elsestr2$=str1$&0分EndIfEndIfForm1.Printstr2$NextiForm1.Print总分;sEndSubPrivateSubForm_Load()Form1.AutoRedraw=True8Form1.Print加法题,第一次回答正确10分,Form1.Print第二次回答正确5分Form1.Print单击窗体开始EndSub5.编写程序把一个分数化为最简分数。对一个分数化简,实际是要寻找分子N与分母M的最大公因子。答案设计界面如图程序代码如下PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,uAsInteger,vAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)IfmnThenu=m:v=nElsev=m:u=nEndIfDor=uModvu=v:v=rLoopUntilr=0m=m/u:n=n/uLabel2.Caption=化简后分子&m&,分母&nEndSub6.幼儿园的小朋友分吃一堆糖果。第一天吃了一半,又吃了一颗;第二天,同样吃了剩下的一半,又多吃了一颗。到第十天一看,只剩一颗糖果。问原来共有多少颗糖果。答案程序代码如下PrivateSubForm_Click()num=1Fork=9To1Step-1num=(num+1)*29NextkForm1.Print糖果数为;numEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print计算糖果数Form1.Print单击窗体开始EndSub7.求解方程X3+Y3-Z3=3,其中X、Y、Z均为正整数,且1≤Z≤6。答案程序代码如下PrivateSubForm_Click()Forx=1To6Fory=1To6Forz=1To6Ifx^3+y^3-z^3=3ThenForm1.Printx;y;zEndIfNextzNextyNextxEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print解方程X^3+Y^3-Z^3=3Form1.Print单击窗体开始EndSub8.验证哥德巴赫猜想:“任何一个大于6的偶数,均可以表示为两个素数之和”,从键盘输入一个大于6的偶数后,打印出所有的分解结果。答案程序代码如下PrivateSubForm_Click()n=Val(InputBox(输入一个大于6的偶数))10Ifn=6OrnMod20ThenForm1.Print数据错误ElseForm1=2Ton/2m2=n-m1f=0Fori=2Tom1-1Ifm1Modi=0Thenf=1:ExitForNextiFori=2Tom2-1Ifm2Modi=0Orf=1Thenf=1:ExitForNextiIff=0ThenPrintm1;m2Nextm1EndIfEndSubPrivateSubForm_Load()Form1.AutoRedraw=TrueForm1.Print打印两个素数之和Form1.Print单击窗体开始EndSub另:补充4-1从键盘输入一个学生的三科成绩,计算总分,并找出最高分。答案设计界面如图程序代码如下PrivateSubCommand1_Click()g1=Val(Text1.Text)g2=Val(Text2.Text)g3=Val(Text3.Text)Var=(g1+g2+g3)/3g=g1Ifgg2Theng=g2Ifgg3Theng=g3Text4.Text=Var11Text5.Text=gEndSub4-2空调机基本单价为2500元。购买空调机的价格随季节而异。冬季购买,优惠15%,春、秋季购买,优惠8%,夏季购买,不优惠。编写一个程序,打印出顾客随季节购买空调机的单价,数量和总价。数据由键盘输入。答案设计界面如图程序代码如下PrivateSubCommand1_Click()num=Val(Text1.Text)IfOption1.Value=TrueOrOption3.Value=TrueThenprice=2500*0.92Label3.Caption=优惠8%Str1$=价格&priceLabel4.Caption=Str1$cost=num*priceStr2$=总价&costLabel5.Caption=Str2$EndIfIfOption2.Value=TrueThenprice=2500Label3.Caption=优惠0Str1$=价格&priceLabel4.Caption=Str1$cost=num*priceStr2$=总价&costLabel5.Caption=Str2$EndIf12IfOption4.Value=TrueThenprice=2500*0.85Label3.Caption=优惠15%Str1$=价格&priceLabel4.Caption=Str1$cost=num*priceStr2$=总价&costLabel5.Caption=Str2$EndIfEndSub4-3利用InputBox函数输入三角形三条边A,B,C,求三角形的面积。(程序中应考虑A,B,C三条边能否构成三角形)。答案设计界面如图程序代码如下PrivateSubForm_Click()x=Val(Input