VB程序设计教程课后参考答案概要Word文档格式.docx
《VB程序设计教程课后参考答案概要Word文档格式.docx》由会员分享,可在线阅读,更多相关《VB程序设计教程课后参考答案概要Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
5.Xmod5=0orxmod9=0
6.False
7.-4、3、-3、3、-4、4
8.CDEF
9.GBCDEFA
10.TRUE
11.变量、属性
12.‘_:
13.(略)
14.“”#
15.Public、通用/模块、Dim、static、private
16.+、&
、+
17.Now()、time()、日期
18.Inputbox()、字符串、val()
19.Msgbox()
三、选择题
1.B2.C3.A4.BD此题有误5.B6.A
7.D8.B9.B10.C11.D12.B
13.C14.B15.A16.C17.A18.D
19.A20.D21.A22.C23.C24.D
25.A26.D27.D28.B29.C30.B
31.C32.B33.CD此题有误34.C35.A
36.D37.C38.A39.B40.A41.C
42.C43.D44.C45.D46.A
四、编程题
1.
OptionExplicit
PrivateSubCommand1_Click()
Dima%,b%,c%,delta%
Dimx1#,x2#,x#
a=Val(InputBox("
pleaseinputdatatoa:
"
"
info"
1))
b=Val(InputBox("
pleaseinputdatatob:
c=Val(InputBox("
pleaseinputdatatoc:
Ifa=0Andb<
>
0Then
x=-c/b
Print"
所构成的方程是:
&
b&
"
x"
+"
c&
=0"
该一元一次方程的根是:
x
EndIf
Ifa=0Andb=0Then
很抱歉,不能构成合法的方程!
Ifa<
delta=b*b-4*a*c
Ifdelta>
=0Then
x1=(-b+Sqr(delta))/(2*a)
x2=(-b-Sqr(delta))/(2*a)
a&
x2"
该方程的根是:
第一个根是:
x1
第二个根是:
x2
Else
x2"
该方程有两个虚根:
第一个虚根是:
-b/(2*a)&
Sqr(Abs(delta))/(2*a)&
i"
第二个虚根是:
-"
EndIf
EndSub
2.
Dimi%,s%
s=0
Fori=1To99Step2
s=s+i
Next
Prints
3.
Dimi%
Dims#
Fori=1To100
s=s+1/i*(-1)^(i+1)
4.
Dimi%,n%
Dimt#,s#
n=Val(InputBox("
pleaseinputdata:
5))
t=1
Fori=1Ton
t=t*i
s=s+t
5.
Dima%,b%,c%
Dimp#,s#
3))
4))
If(a+b>
cAndAbs(a-b)<
c)Or(a+c>
bAndAbs(a-c)<
b)Or((b+c)>
aAndAbs(b-c)<
a)Then
p=(a+b+c)/2
s=Sqr(p*(p-a)*(p-b)*(p-c))
三角形的面积是:
s
Else
很抱歉,不能构成合法的△三角形!
6.
Dimji%,tu%
Forji=1To27
Fortu=1To27
Ifji*2+tu*4=78Andji+tu=27Then
鸡的个数是:
ji
兔的个数是:
tu
Next
7.
Dims#,t#
s=10
t=10
Fori=1To7
t=t*0.4
s=s+t*2
Print"
第八次落地共经过的路径是:
8.
Dimi%,fs%,max%,min%,s%
Dimave#
fs=Val(InputBox("
pleaseinputscore:
90))
s=fs
max=fs
min=fs
Fori=2To7
fs=Val(InputBox("
Ifmax<
fsThen
max=fs
Ifmin>
min=fs
s=s+fs
ave=(s-max-min)/5
该运动员的平均成绩是:
ave
9.‘同学们,这道题方法很多,主要考察你对选择结构的理解,我给出其中一种方法。
Dimx%,y%,z%
x=Val(Text1.Text)
y=Val(Text2.Text)
z=Val(Text3.Text)
Ifx>
yThen
Ifx<
zThen
Text4.Text=z
Text5.Text=x
Text6.Text=y
Ify>
Text4.Text=x
Text5.Text=y
Text6.Text=z
Text5.Text=z
Ify<
Text6.Text=x
Text4.Text=y
PrivateSubForm_Load()
Text1.Text="
Text2.Text="
Text3.Text="
Text4.Text="
Text5.Text="
Text6.Text="
10.
Dimx%,y%,m%
m=xMody
DoWhilem<
0
x=y
y=m
m=xMody
Loop
Text3.Text=y
习题四
1.B2.C3.D4.A5.D
6.C7.D8.B
1.b(i)=a(i-1)+a(i)print
2.Variant
3.M=lbound(a,2)tonnexti
4.20
5.从大到小排序(这是一种比较好的插入排序法,希望同学们能够掌握)
6.Preserve
7.A(k)=min
8.空的变体型
9.J=ubound(a,2)flag=false:
exitfor
10.Dimaa(9,4)asinteger
三、简答题(略)
1.
DimzfcAsString,zmAsString,i%,lenth%,n%
zfc=InputBox("
pleaseinputstring:
youaregoodstudent"
)
lenth=Len(zfc)
n=0
Fori=1Tolenth
zm=Mid(zfc,i,1)‘取每一个字母
IfUCase(zm)="
A"
OrUCase(zm)="
E"
O"
I"
Or_UCase(zm)="
U"
Then
n=n+1
MsgBox"
该字符串的元音字母个数是"
n&
个"
2.’这道题题目有问题,应改为“与其转置矩阵相加”
OptionBase1
Dimaa(3,3)AsInteger,bb(3,3)AsInteger,cc(3,3)AsInteger
Dimi%,j%
Fori=1To3
Forj=1To3
aa(i,j)=Rnd*100‘我假设为100以内的任意整数
Calldisp(aa)‘调用函数,显示aa数组的内容
bb(j,i)=aa(i,j)
Calldisp(bb)‘调用函数,显示bb数组的内容
cc(i,j)=aa(i,j)+bb(i,j)
Calldisp(cc)‘调用函数,显示cc数组的内容
Randomize
Subdisp(sz()AsInteger)‘专门编写一个显示数组的函数,希望同学们在题目中经常使用
Dimi%,j%
Fori=1To3
Printsz(i,j);
Print
3.’这道题题目有问题,应改为“2,16任意进制的数值”
Dimx%
Form1.Cls‘清除窗体
x=Val(InputBox("
20))
Callejz(x)‘调用函数求解二进制
Print‘换行
Callsljz(x)‘调用函数求解十六进制
Subejz(ByValmAsInteger)
Dimaa(30)AsInteger,i%,j%
i=1
DoWhilem\2<
aa(i)=mMod2
m=m\2
i=i+1
Loop
aa(i)=mMod2
转换后的二进制数是:
;
Forj=iTo1Step-1
Printaa(j);
Subsljz(ByValmAsInteger)‘注意十六进制数码的特殊性
Dimaa(30)AsString,i%,j%
DoWhilem\16<
SelectCasemMod16‘想一想,为什么要这样转换
Case10
aa(i)="
Case11
B"
Case12
C"
Case13
D"
Case14
Case15
F"
CaseElse
aa(i)=CStr(mMod16)
EndSelect
m=m\16
SelectCasemMod16
转换后的十六进制数是:
Forj=iTo1Step-1
‘这道题,请同学们认真思考,学会其它各种进制转换的算法。
4.本道题我给出两种方法,希望同学们通过该题目,熟悉函数的运用。
方法一:
Dimi%,str1AsString,str()AsString,str2AsString,lengthAsInteger
str1=InputBox("
请输入第一个字符串:
exam"
length=Len(str1)
ReDimstr(length)‘重新调整数组大小,目的是为排序起作用
Fori=1Tolength
str(i)=Mid(str1,i,1)‘给该数组赋值,换句话说,让第一个字符串放入数组中
Callsort(str,length)‘调用函数对第一个字符串排序
第一个字符串排序后的结果:
Calldisp(str,length)‘调用函数显示第一个字符串排序后的结果
str2=InputBox("
请输入第二个字符串:
good"
str1=str1+str2
length=Len(str1)+Len(str2)
ReDimstr(length)‘重新调整数组大小,目的是为插入后字符串排序起作用
str(i)=Mid(str1,i,1)‘让第一个字符串和第二个字符串放入数组中
Callsort(str,length)‘调用函数对插入后字符串排序
插入第二个字符串后排序后的结果:
Calldisp(str,length)‘调用函数显示插入后字符串排序后的结果
Subsort(str()AsString,lengthAsInteger)
Dimi%,j%,tAsString
Fori=1Tolength-1
Forj=i+1Tolength
Ifstr(i)>
str(j)Then
t=str(i)
str(i)=str(j)
str(j)=t
Subdisp(str()AsString,lengthAsInteger)
Dimi%
Fori=1Tolength
Printstr(i);
方法二:
Dimi%,str1AsString,str()AsString,str2AsString,strinsert()AsString,lengthAsInteger
Form1.Cls
ReDimstr(length)
str(i)=Mid(str1,i,1)
Callsort(str,length)
Calldisp(str,length)
length=Len(str1)+Len(str2)+1
ReDimstrinsert(length)
Fori=1ToLen(str1)
strinsert(i)=str(i)
Fori=1ToLen(str2)
Callinsert(strinsert,Mid(str2,i,1),Len(str1)+i)‘调用函数,逐个字符插入
Calldisp(strinsert,length-1)
Subinsert(str()AsString,zmAsString,length%)
Dimi%,j