VisualBasic程序设计第二版习题答案吴昌平文档格式.docx
《VisualBasic程序设计第二版习题答案吴昌平文档格式.docx》由会员分享,可在线阅读,更多相关《VisualBasic程序设计第二版习题答案吴昌平文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
![VisualBasic程序设计第二版习题答案吴昌平文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/a67645d7-ae7c-499c-9b38-eb7b5e5c8986/a67645d7-ae7c-499c-9b38-eb7b5e5c89861.gif)
=5
4.
(1)40
(2)10(3)0(4)False(5)99-7-26
5.
(1)cint(x)
(2)fix(x*100)/100)
6.
(1)fix(rnd*991+10)
(2)fix(rnd*90+10)
第三章
1.标签主要用于显示不需要修改的文本。
所以,标签可以用来标识窗体及窗体上的对象,如:
为文本框、列表框等添加说明性文字,或者作为窗体的说明文字
文本框在窗体中为用户提供一个既能够显示文本又能编辑文本的区域。
在文本框内,用户可以用鼠标,键盘按常用方法对文字进行编辑,例如进行输入,删除,选择,复制和粘贴等各种操作
2.Print方法:
优点是输入格式灵活多变,可以使用多种的格式函数进行输出格式设置。
缺点是当只输入少量数据,如运算结果时,尤其在指定位置输入不够方便和醒目。
标签方法:
优点是当只输出少量数据,如运算结果时,尤其在指定位置输出时方便和醒目。
缺点是输出格式死板,不能够灵活变化
3.Inputbox方法:
优点是具有提示和标题,输入方式灵活。
缺点是不够醒目。
文本框方法:
优点是在窗体上醒目,缺点是方式不够灵活,缺少信息提示
4.输出结果为:
57(间隔14个字符)
355
5.Print"
*********"
Print"
*********"
6.msgbox"
显示Yes,No,Cancel和警告"
3+48,"
消息演示"
7.
习题3-7
Dima!
b!
c!
p!
a=Text1.Text
b=Text2.Text
c=Text3.Text
p=(a+b+c)/3
平均成绩为:
&
p&
"
分"
8.
习题3-8
Text2.Text="
PrivateSubText1_Change()
Text2.Text=Text1.Text
PrivateSubText2_Change()
Text1.Text=Text2.Text
第四章
1.相同点:
二者都是选择结构的一种形式,当条件成立时执行then后面的语句,条件不成立时执行else后面的语句。
不同点:
块if后面跟的是语句块,这个语句块既可以是一条语句,也可以是多条语句,当然也可以是嵌套了选择和循环的大语句块,都可以。
而行if语句后面只能跟一条语句。
2.相同点:
都是多条件的判断
ELSEIF结构是顺次判断多个条件,当某一个条件成立时,其他条件就直接跳过而直接执行ELSEIF后面的语句。
当条件不成立时,依次向下判断,直到找到成立的条件为止。
如果条件均不成立,则执行ELSE后面的语句。
对于IF语句的嵌套,先判断外层条件,当条件成立时,判断隶属于该条件的语句块中的条件。
3.
(1)1
(2)743(标准格式输出)(3)1.52
(4)x=-15y=1.25;
x=0y=0
x=10y=500
x=100y=100
4.
PrivateSubCommand1_Click()
Dimx!
y!
x=InputBox("
)
Ifx>
0Then
y=Exp(x)+Log(x)
ElseIfx=0Then
y=0
Else
y=3*x^2+5*x+1
EndIf
Printy
5.
Dimx%
IfxMod2=0AndxMod3=0AndxMod5=0Then
Printx;
可以被2,3,5同时整除"
不能被2,3,5同时整除"
6.
IfSqr(x)=Int(Sqr(x))Then
是一个完全平方数"
不是一个完全平方数"
7.
Ifx<
1000Then
ElseIfx<
=2000Then
y=0.025
=4000Then
y=0.035
y=0.05
第五章
1.
(1)10
(2)1015202530354045
(3)#(4)12481632
**
###
****
#####
2.
PrivateSubForm_Click()
Dimx1&
x2&
i%
x1=0
x2=1
Fori=1To30
x=x1+x2
x1=x2
x2=x
IfiMod5=0ThenPrint
Nexti
习题5-2
3.
Dimp!
r!
p=2376000
r=0.1345
i=0
Whilep<
2376000*2
p=p*(1+r)
i=i+1
Wend
Printi;
年后产值可以翻一翻"
习题5-3
Dimi%,a%,b%,c%,n%
100---500的水仙花数如下:
Fori=100To500
a=i\100
b=(i-a*100)\10
c=i-a*100-b*10
Ifi=a^3+b^3+c^3Then
n=n+1
IfnMod5=0ThenPrint
习题5-4
Dimi%,j%
Fori=1To4
PrintTab(20-2*i);
Forj=1To2*i-1
Print"
*"
;
Nextj
Print
习题5-5
Dimi%,n%,p#,e#
n=InputBox("
Fori=1Ton
p=1
Forj=1Toi
p=p*j
e=e+1/p
当n="
n;
时,e=:
e+1
习题5-6
Dimi%
Fori=500To1000Step2
Forj=3Toi/2Step2'
先找一个素数作为第一个数
Fork=2ToInt(Sqr(j))
IfjModk=0ThenExitFor
Nextk
Ifk>
Int(Sqr(j))Then'
找到第一个素数
l=i-j'
做减法,求得第二个数
Form=2ToInt(Sqr(l))'
判断第二个数是否为素数
IflModm=0ThenExitFor
Nextm
Ifm>
Int(Sqr(l))Then'
如果第二个数也是素数
Printi;
="
j;
+"
l;
IfiMod3=0ThenPrint
ExitFor
EndIf
习题5-7
第六章
1.二者的主要区别在于:
(1)图片框控件可以作为其他控件的容器而图象框不能。
(2)图片框可以通过Print方法接收文本,而图象框不能接收用Print方法输入的信息(3)图象框比图片框占用的内存少,显示速度快。
当对程序速度要求不高,并且控件是用来显示图片的情况下,二者可以通用。
当需要接收文本或者是作为其他控件的容器的时候只能用图片框
2.
习题6-2
Dimt
P3.Picture=Picture1.Picture
Picture1.Picture=Picture2.Picture
Picture2.Picture=P3.Picture
3.
习题6-3
代码如下:
PrivateSubTimer1_Timer()
Label1.FontSize=20
Label1.Caption="
日期:
+Str(Date)+"
时间:
+Str(Time)
4.
习题6-4
PrivateSubTimer1_Timer()
P1.Left=P1.Left+100
5.框架的主要作用:
作为其他控件的容器,给同类型控件分组
6.主要区别:
组合框是由一个文本框和一个下拉式列表框组合而成,所以组合框上既可以输入,也可以选择,而列表框只能够选择
习题6-7
PrivateSubcommand1_Click()
P1.Visible=True
command1.Visible=False
command2.Visible=False
PrivateSubcommand2_Click()
End
PrivateSubP1_DblClick()
P1.Visible=False
command1.Visible=True
command2.Visible=True
8.
习题6-8
Dimt$
t=List1.Text
Ift="
广州"
ThenPicture1.Print"
北京到广州距离为1000公里"
深圳"
北京到深圳距离为1100公里"
上海"
北京到上海距离为800公里"
济南"
北京到济南距离为400公里"
第七章
1.
(1)10
(2)8(3)15(4)60(5)16(6)10
OptionBase1
DimaAsVariant
a=Array(12,87,96,34,79,45,67,78,93,23)
Max=a
(1)
p=1
Fori=2To10
Ifa(i)>
MaxThen
Max=a(i)
p=i
最大值为:
Max;
是第"
p;
个数"
习题7-2
Dima%(5,4),b%(5)
Dimi%,j%,t%,max%
Randomize
Fori=1To5
Forj=1To4
a(i,j)=Rnd*90+10
Printa(i,j);
b(i)=b(i)+a(i,j)
max=a(1,i)
s=0
第"
i;
门课的不及格成绩有:
Forj=1To5
Ifa(j,i)>
maxThenmax=a(j,i)
Ifa(j,i)<
60ThenPrinta(j,i);
s=s+a(j,i)
门课的最高成绩为:
max
门课的平均成绩为:
s/5
Forj=i+1To5
Ifb(i)<
b(j)Thent=b(i):
b(i)=b(j):
b(j)=t
按总分排序为:
Printb(i),
习题7-3
Dima%(3,3),b%(3,3),I%,j%
Fori=1To3
Forj=1To3
a(i,j)=Int(Rnd*100)
b(i,j)=Int(Rnd*100)
第一个矩阵为:
第二个矩阵为:
Printb(i,j);
两矩阵相加和为:
Printa(i,j)+b(i,j);
习题7-4
5.
Dima%(10),i%,j%,t%
Fori=1To10
a(i)=Int(Rnd*100)
Printa(i);
Print
Fori=1To9
Forj=i+1To10
a(j)Thent=a(i):
a(i)=a(j):
a(j)=t
排序为:
习题7-5
6.
Dima%(17)
Fori=1To17
a(i)=1
m=0
n=17
Whilen<
>
1
i=i+1
Ifa(i)=1Then
m=m+1
IfmMod3=0Then
a(i)=0
n=n-1
Ifi=17Theni=0
最后余下的是第:
号"
习题7-6
Dimi%,j%,a(10,10)
Forj=1To10
Ifi=jThena(i,j)=1Elsea(i,j)=0
习题7-7
Dima%(100)
Fori=1To100
a
(1)=0
Fori=2ToSqr(100)
Ifa(i)<
Fork=i+1To100
IfkModi=0Thena(k)=0
Ifa(i)=1ThenPrinti;
IfiMod10=0ThenPrint
习题7-8
第八章
1.子过程是用特定格式组织起来的一组代码,通常用来完成一个特定的功能。
函数过程是自定义过程的另一种形式,同内部函数一样,函数过程也有一个返回值。
对于同一个问题,若可以用函数过程实现,则也可以用子过程实现。
函数过程与子过程不同之处是函数过程有返回值,而子过程通过形参与实参的传递得到结果。
在调用方法上,子过程可以使用call语句或者直接作为一条语句来使用,而函数过程的调用方法可以直接调用,得到一个返回值。
2.
(1)用CALL语句调用子过程。
格式为:
CALL过程名[(参数列表)]
(2)把过程名作为一个语句来使用,格式为:
过程名[参数列表]
3.形参:
子过程或函数过程的定义中的参数称之为形参
实参:
主调过程中的参数称为实参
值传递:
系统将实参的值复制给形参,之后实参与形参之间就断开了联系。
子过程或函数在自身内部创建变量用于存储参数,执行完毕后,该变量消失,对参数的改变不会传回到主程序
地址传递:
当调用一个过程时,它将实参的地址传递给形参。
因此在被调过程体中对形参的任何操作都变成了对相应实参的操作,因此实参的值就会随形参的改变而改变。
4.
Dimn&
i%,flag%
请输入数据"
IfNotsushu(n)Then
不是素数"
Print"
是素数"
PublicFunctionsushu(x&
)AsBoolean
Dimi%,flag%
Fori=2ToInt(Sqr(x))
IfxModi=0Thenflag=1
Ifflag=1Then
sushu=False
sushu=True
EndFunction
习题8-4
PrivateSubForm_Click()
Dimn%
请输入n的值"
时,pi="
pi(n)*4
PublicFunctionpi#(n%)
f=1
Fori=1TonStep2
pi=pi+f/i
f=f*(-1)
习题8-5
Dima%(),n%
请输入一维数组的维数"
ReDima(n)
Callm1(a)
PublicSubm1(b%())
Dimi%,min%,p%