vb习题参考答案分析Word格式文档下载.docx
《vb习题参考答案分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《vb习题参考答案分析Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
(3)pmodq=0(4)x<
-5orx>
-2andx<
2orx>
(5)x<
zandy>
zorx>
zandy<
z(6)a<
bandamod2=0
8、写出下列函数的值:
(1)-4
(2)换行符(3)–3(4)-1(5)hello
(6)ello(7)16(8)“-459.65”(9)5
1.整型、长整型、双精度型、双精度型
2.(Xmod10)*10+X\10。
3.sin(1/4*3.14)+sqr(x+2*exp(y))/abs(x-y)。
4.(a+b)/(c*d-sqr(1-a^2))。
5.xmod5=0orxmod9=0。
6.False。
7.-3、2、-2、2。
8.CDEF
9.x>
0andy>
0orx<
0andy<
0或x*y>
0。
10.s>
=”A”ands<
=”Z”ors>
=”a”ands<
=”z”。
四、编程题
1、
PrivateSubForm_Click()
Dimx%,Ten%,hundred%
x=Val(Text1.Text)
Ten=(x\10)Mod10
hundred=x\100
Print"
百位数是:
"
&
hundred
十位数是:
Ten
EndSub
DimcharAsString*1
Form1.CurrentX=Rnd*Form1.ScaleWidth
Form1.CurrentY=Rnd*Form1.ScaleHeight
char=Chr(Int(Rnd*16)+65)
Printchar
第4章习题参考答案
三、程序阅读
写出下列各段程序执行后的输出结果。
1.78
5786
357864
13578642
2.w=4、w=13、w=135、w=31
3.此题有点错误,修改如下:
是将语句“Ifk<
Asc("
A"
)Thenk=k+26”改为:
Ifk<
)Ork>
Z"
)Andk<
a"
)Thenk=k+26
改后的答案:
xyza12uvw&
4.A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
5.此题的“IFKeyAsci=13Then”改为“IFKeyAscii=13Then”
答案是:
129
四、程序填空题
1.
(1)Sing=-1
(2)Fori=2to19
(3)Sing=-Sing
2.
(1)Len(oldsen)
(2)Mid(oldsen,i,1)
(3)Ucase(char)
(4)char
3.
(1)Len(str1)
(2)Length-1
(3)Mid(str1,i,2)
(4)Sum=0
4.
(1)Trim(Str(i))
(2)Trim(Str(i*i))
(3)Right(x2,Len(x1))=x1
5.
(1)last_one=last_two
(2)last_two=this_one
(3)i=i+1
(4)i-1
五、编程题
1.
DimR1AsDouble,R2AsDouble'
R1,R2表示两电阻值
DimRpAsDouble,RsAsDouble
R1=Val(InputBox("
输入电阻R1=?
"
))
R2=Val(InputBox("
输入电阻R2=?
Rp=R1*R2/(R1+R2)
Rs=R1+R2
Rp=Fix(Rp*1000+0.5)/1000'
保留小数点后3位
Rs=Fix(Rs*1000+0.5)/1000'
MsgBox"
并联电阻是:
Rp&
vbCrLf&
串联电阻是:
Rs
2.
DimNAsLong
N=Val(InputBox("
请输入年份"
"
提示框"
If(NMod400=0)Or(NMod4=0AndNMod100<
>
0)Then'
判断条件
PrintN&
年是闰年"
Else
年不是闰年"
EndIf
Dima!
b!
c!
s!
x!
a=Val(InputBox("
EnterA=?
b=Val(InputBox("
EnterB=?
c=Val(InputBox("
EnterC=?
Ifa+b>
cAndb+c>
aAnda+c>
bThen'
如果能构成三角形
x=(a+b+c)/2
s=Sqr(x*(x-a)*(x-b)*(x-c))
S="
;
s
数据有错,不能构成三角形"
4.(此题不适合使用Select语句)
PrivateSubCommand1_Click()
DimxAsDouble,fxAsDouble
x=Val(InputBox("
输入x=?
Ifx<
0Andx<
-3Then
fx=x*x+x-6
ElseIfx>
=0Andx<
10Andx<
2Andx<
3Then
fx=x*x-5*x+6
fx=x*x-x-1
x="
x;
f("
x&
)="
fx
5.
DimiAsInteger
DimsAsLong,tAsLong
t=1
Fori=1To10
t=t*i
s=s+t
Nexti
S="
6.
Dimi%,s!
n!
t!
f%
i=1'
项数
s=0'
累加和
n=1'
阶乘
t=1'
通项
f=1'
系数
DoWhilet>
0.000001
s=s+f*t
i=i+1
n=n*i
t=1/n
f=-f'
表示符号
Loop
7.
'
方法一
DimiAsInteger
DimHundredAsInteger,TenAsInteger,OneAsInteger'
定义百位,十位,个位数
Fori=100To999
Hundred=i\100'
求百位数
Ten=(i\10)-Hundred*10'
求十位数
One=iMod10'
求个位数
Ifi=Hundred^3+Ten^3+One^3Then'
判断是否为素数
Printi&
是水仙花数"
方法二
ForHundred=1To9'
百位数
ForTen=0To9'
十位数
ForOne=0To9
i=Hundred*100+Ten*10+One
NextOne
NextTen
NextHundred
8.
DimaAsDouble,x0AsDouble,x1AsDouble
a=Val(InputBox(“输入a=?
”)
x0=a'
初值
x1=2/3*x0+a/(3*x0*x0)'
第一次迭代后的值
DoWhileAbs(x1-x0)>
0.000001'
控制精度
x0=x1'
迭代
x1=2/3*x0+a/(3*x0*x0)
Loop
Print“立方根:
”;
x1
第5章习题参考答案
三、程序填空
1.Preservea(n+1)a(i+1)=a(i)a(i+1)=mn+1或Ubound(a)
2.Print
K-1
t=a(k,j):
a(k,j)=a(j,k):
a(j,k)=t
3.Rnd*100
P=10
P=J
P=0
四、编写程序
1.
DimA()AsInteger,NAsInteger
DimiAsInteger,MAsInteger,tAsInteger,kAsInteger
请输入数组的大小N=?
M=Val(InputBox("
请输入移位次数M=?
))'
输入循环次数的大小
IfN<
=0ThenExitSub
ReDimA(N-1)
原始数组值"
Fori=0ToN-1'
给数组赋值
A(i)=Int(Rnd*100)
PrintA(i);
Print
移位
Fori=1ToM'
循环体完成右移一位,循环完成右移j位
t=A(N-1)
Fork=N-1To1Step-1'
循环右移
A(k)=A(k-1)
Nextk
A(0)=t
打印右移后的数组值
循环右移"
M&
位后的数组值"
Fori=0ToN-1
2.
ConstNM=100
Dima(1ToNM)AsSingle,b(1ToNM)AsInteger,maxAsInteger
DimiAsInteger,jAsInteger,kAsInteger,tAsInteger
Fori=1ToNM'
输入100个数值
a(i)=Val(InputBox("
请输入a("
i&
)的值"
IfInt(a(i))=a(i)Then'
判断是否为整数
k=k+1'
整数个数加1
b(k)=a(i)'
将这个整数存放到数组B
'
选择排择
Fori=1Tok-1
max=i
Forj=i+1Tok
Ifb(max)<
b(j)Thenmax=j
Nextj
Ifmax<
iThen
t=b(max):
b(max)=b(i):
b(i)=t
打印输出
Fori=1Tok
Printb(i);
IfiMod5=0ThenPrint
3.
Dima()AsInteger
Dimn%,i%,j%
n=Val(InputBox("
输入一个整数n=?
ReDima(n)
Form1.Cls
Randomize
产生的30个随机整数:
Fori=1Ton
a(i)=Int(Rnd*21)-10
Printa(i);
IfiMod10=0ThenPrint
删除数组的相同数据
j=2
DoWhilej<
n
Fori=1Toj-1'
查找相同的元素
Ifa(j)=a(i)ThenExitFor
Ifi<
jThen'
如果第i个数与前面的数据相同,删除第i个元素
Fori=jTon-1
a(i)=a(i+1)
n=n-1
ReDimPreservea(n)
j=j+1
删除后的数据:
4.
Dima(1To50)AsInteger,i%,j%,t%,p%,n%,x%
n=0'
已经产生的元素个数
DoWhilen<
50
x=Int(Rnd*90)+10'
产生10~100之间的随机整数
Ifx=a(i)ThenExitFor
Ifi>
nThen
n=n+1
a(n)=x
Fori=1To49'
使用选择法排序
p=i
Forj=i+1To50
Ifa(p)>
a(j)Thenp=j
t=a(p):
a(p)=a(i):
a(i)=t
Fori=1To50'
习题与思考题
略
二、判断题
1.nsp=TruemModi=0p1Andp2=nsp(i)或=p2
2.
(1)number(i,7)
(2)(intn,intm)
(3)number=number*10+m
五、程序阅读
1.a=9b=4
2.
(1)36
25
16
0
(2)0
3.6
4.144
五、编写程序
PublicFunctionfact(xAsInteger)AsSingle'
求x!
DimfAsSingle,iAsInteger
f=1
Fori=1Tox
f=f*i'
累积
fact=f
EndFunction
Dimn%,m%,y!
Do
m%=Val(InputBox("
m="
n%=Val(InputBox("
n="
LoopUntilm>
=nAndn>
=0
y=fact(m)/(fact(n)*fact(m-n))
Printy
2.OptionExplicit
Dima()AsInteger'
定义窗体级动态数组
插入过程Sort
PrivateSubInsertfun(a%(),y%)'
y为要插入的数
DimjAsInteger,iAsInteger,nAsInteger
j=1
n=UBound(a)'
求数组上界
DoWhiley>
a(j)Andj<
n'
查找插入的位置
Fori%=n-1TojStep-1'
空出要插入的位置
a(i+1)=a(i)
a(j)=y'
插入
PrivateSubForm_Load()
PrivateSubTxtinput_KeyPress(KeyAsciiAsInteger)
DimxAsInteger,iAsInteger
IfKeyAscii=13Then
StaticnAsInteger'
定义静态变量
x=Val(Txtinput.Text)
Picdata.Printx
ReDimPreservea(n)'
插入后重定义数组的大小
Insertfuna,x'
调用插入过程
Fori=1ToUBound(a)
Picresult.Printa(i);
Picresult.Print
Txtinput.Text="
3.'
判断是否为回文录函数
PrivateFunctionJudge(strAsString)AsBoolean
Judge=True'
假设为回文
Fori=1ToLen(str)\2'
依次判断对应位置的两个字符,只要有一组不等即不是回文
IfMid(str,i,1)<
Mid(str,Len(str)+1-i,1)Then
Judge=False
ExitFunction
Dimn%,x!
n=Val(InputBox("
x="
Printfe(n,x)'
调用求值函数过程
求值函数过程
PublicFunctionfe(n%,x!
)AsSingle
DimiAsInteger,tAsSingle
fe=1:
t=t*x/i'
t为通项
fe=fe+t
第7章习题参考答案
12
13
14
15
1.___Multiline_______
2.____Value______
3.___Selected______、____Li