华工最新版VB习题答案.docx
《华工最新版VB习题答案.docx》由会员分享,可在线阅读,更多相关《华工最新版VB习题答案.docx(62页珍藏版)》请在冰豆网上搜索。
华工最新版VB习题答案
华工最新版VB习题答案
《VB.NET语言程序设计》习题答案
第1章概述
1.1填空题
1.答案:
低级语言、高级语言
2.答案:
编译、解释
3.答案:
编译、运行、逻辑
1.2问答题略
1.3编程题
1.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
WriteLine("欢迎使用VisualBasic!
")
EndSub
EndModule
2.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dimx,yAsDouble
Write("请输入的矩形的长:
")
x=ReadLine()
Write("请输入的矩形的宽:
")
y=ReadLine()
WriteLine("圆周长={0:
f}",2*x+2*y)'计算输出周长
WriteLine("圆面积={0:
f}",x*y)'计算输出面积
EndSub
EndModule
第2章基本数据类型与表达式
2.1填空题
1.答案:
关键字2.答案:
标识符
3.答案:
4、8、4、8、16
4.答案:
整、单精度浮点、货币
5.答案:
函数运算、算术运算、关系运算、逻辑运算
6.答案:
Round(1234.567,0)
7.答案:
Mid(“VisualBASIC6.0”,8,5)
8.答案:
Int((b-a+1)*Rnd+a)
2.2选择题
1.答案:
c
2.答案:
d
3.答案:
c
4.答案:
c
5.答案:
b
6.答案:
a
7.答案:
c
8.答案:
a
9.答案:
d
10.答案:
b
2.3下列变量名哪些是正确的,哪些是错误的?
答:
1.n正确。
2.3x错误。
变量名必须以字母为开始。
3.Abs错误。
不能和关键字同名。
4.85错误。
变量名必须以字母开始。
5.print_56正确6.名称正确。
7.ab#正确。
#是类型说明符。
8.MyName错误。
变量名内不能有空格字符。
9.“年龄”错误。
这是字符串常量。
10.学校$正确。
$是类型说明符。
2.4把下列数学表达式写成VB表达式。
答案:
1.1/(1+(1/(1+1/(x+y))))
2.x*(x*(x*(a*x+b)+c)+d)+e
3.Log(1+Abs((a+b)/(a-b))^10)
4.Sqrt(1+3.14159/2*Cos(48*3.14159/180))
5.1/Tan((1-x*x)/(1+x*x))或者Cos((1-x*x)/(1+x*x))/Sin((1-x*x)/(1+x*x))
6.Log10(a*a+a*b+b*b)
2.5写出下列函数的值。
答案:
1.-123462.12343.12.344.1234.575.100
6.27.Visual8.09.$$$
2.6写出下列表达式的值。
答案:
1.42.03.abc123abc4.True
5.True6.True7.False8.True
2.7用关系表达式或逻辑表达式表示下列条件。
答案:
1.iModj=02.n3.1<=xAndx<104.x5.Sqr((x-10)^2+(y-15)^2)<35
6.YearMod4=0AndyearMod400<>0OrYearMod400=0
2.8问答题
略
2.9阅读下列程序,写出执行结果
1.答案:
-3VisualBasicFalse0.75
x=12.34
2.答案:
3E81.000000E0031,000.00
x=1000,y=12.34,x*y=12340
2.10编程题
1.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dimx%,i%,j%,k%
Write("请输入x的值:
")
x=ReadLine()
i=x\100
j=(x-i*100)/10
k=x-i*100-j*10
WriteLine("{0}{1}{2}",k,j,i)'或WriteLine("{0}",100*k+10*j+i)
EndSub
EndModule
2.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
DimxAsSingle,yAsSingle,bAsBoolean
Write("请输入x的值:
")
x=ReadLine()
Write("请输入y的值:
")
y=ReadLine()
b=(-2<=x)And(x<=2)And(-2<=y)And(y<=2)
WriteLine("{0}",b)
EndSub
EndModule
第3章程序流程控制
3.1填空题
1.答案:
s=3.14159*r*r
3.答案:
IfiMod2=0Thenprintx
4.答案:
Ifx>0Thens1=s1+xElses2=s2+x
5.答案:
Ifx>0Theny=2*x+1ElseIfx=0Theny=0Elsey=2*x-1
6.答案:
Ifa=bThen
Print“aisequaltob”
End
7.答案:
IfAsc(ch)>=97AndAsc(ch)<=122Then
Print“Yes”
Else
Print“No”
EndIf
8.答案:
这些常数中的某一个
9.答案:
这个范围内的值
10.答案:
Is后的关系
11.答案:
循环体、循环条件、结束循环条件
12.答案:
DoWhile…Loop语句
13.答案:
For…Next
14.答案:
循环条件
15.答案:
ExitFor
3.2选择题
1.答案:
d
2.答案:
d
3.答案:
d
4.答案:
c
5.答案:
d
6.答案:
c
7.答案:
c
8.答案:
c
9.答案:
c
10.答案:
a、c
11.答案:
b
12.答案:
c
13.答案:
b
3.3问答题
略
3.4阅读下列程序,写出执行结果
1.
答案:
a=-1b=3c=2
S=2w=0t=0
2.
答案:
x=2y=4
x=8y=9
x=4y=8
x=15y=226
3.
答案:
t=945
4.
答案:
x=105y=384
5.
答案:
s=36
6.
答案:
10
20
21
30
31
32
7.
答案:
s=36
3.5编程题
1.解答
ImportsSystem.Console
ModuleModule1
SubMain()
Dimscore!
Write("请输入score的值:
")
score=ReadLine()
Ifscore>=85Then
WriteLine("Verygood!
")
ElseIfscore>=60Then
WriteLine("Good!
")
Else
WriteLine("Nogood!
")
EndIf
EndSub
EndModule
2.解答
ImportsSystem.Console
ImportsSystem.Math
ModuleModule1
SubMain()
Dima!
b!
c!
disc!
x1!
x2!
realpart!
imagpart!
Conste!
=0.000001
Write("请输入a的值:
"):
a=ReadLine()
Write("请输入b的值:
"):
b=ReadLine()
Write("请输入c的值:
"):
c=ReadLine()
IfAbs(a)<=eThen
WriteLine("方程不是一个二次方程!
")
Else
disc=b^2-4*a*c
IfAbs(disc)<=eThen
WriteLine("方程有两个相同的实根:
x1=x2={0}",-b/(2*a))
ElseIfdisc>0.000001Then
x1=(-b+Sqrt(disc))/(2*a)
x2=(-b-Sqrt(disc))/(2*a)
WriteLine("方程有两个实根:
x1={0}x2={1}",x1,x2)
ElseIfdiscrealpart=-b/(2*a):
imagpart=Sqrt(-disc)/(2*a)
WriteLine("方程有两个虚根:
")
WriteLine("x1={0}+{1}i",realpart,imagpart)
WriteLine("x1={0}-{1}i",realpart,imagpart)
EndIf
EndIf
EndSub
EndModule
3.解答
ImportsSystem.Console
ImportsSystem.Math
ModuleModule1
SubMain()
Dimx%,y%
Write("请输入x的值:
")
x=ReadLine()
Ifx>=1Andx<=5Then
SelectCasex
CaseIs<2
y=3*x-5
CaseIs<4
y=2*Cos(x)+1
CaseIs<=5
y=Sqrt(1+x*x)
EndSelect
Else
y=x*x-4*x+5
EndIf
WriteLine("x={0}y={1}",x,y)
EndSub
EndModule
4.解答
ImportsSystem.Console
ModuleModule1
SubMain()
Dimr!
f$
Constpi!
=3.14159265
Write("请输入圆的半径r:
"):
r=ReadLine()
Ifr>=0Then
Write("请输入运算标志C(计算周长),A(计算面积),B(两者都计算):
")
f=ReadLine()
f=UCase(f)
SelectCasef
Case"C"
WriteLine("半径r={0}y=圆周长={1}",r,2*r*pi)
Case"A"
WriteLine("半径r={0}y=圆面积={1}",r,r*r*pi)
Case"B"
WriteLine("半径r={0}y=圆周长={1}",r,2*r*pi)
WriteLine("半径r={0}y=圆面积={1}",r,r*r*pi)
CaseElse
WriteLine("输入的运算标志错!
")
EndSelect
Else
WriteLine("半径不能是负数!
")
EndIf
EndSub
EndModule
5.解答
ImportsSystem.Console
ModuleModule1
SubMain()
Dimn%,s&
n=0:
s=0
Whiles<=1000
n=n+1
s=s+n^2
EndWhile
WriteLine("满足1^2+2^2+…-+n^2>1000的最小n值为:
{0}",n)
EndSub
EndModule
6.解答
(1)用DoWhile…Loop语句
ImportsSystem.Console
ModuleModule1
SubMain()
Dima!
s!
Write("请输入a的值:
"):
a=ReadLine()
DoWhilea>=0
s=s+a
Write("请输入a的值:
"):
a=ReadLine()
Loop
WriteLine("输入的正实数之和为:
{0}",s)
EndSub
EndModule
(2)用DoUntil…Loop语句
ImportsSystem.Console
ModuleModule1
SubMain()
Dima!
s!
Write("请输入a的值:
"):
a=ReadLine()
DoUntila<0
s=s+a
Write("请输入a的值:
"):
a=ReadLine()
Loop
WriteLine("输入的正实数之和为:
{0}",s)
EndSub
EndModule
7.解答
ImportsSystem.Console
ImportsSystem.Math
ModuleModule1
SubMain()
Dimi&,s#,term#
i=1
s=0
Do
term=1/(i*i)
s=s+term
i=i+1
LoopWhileterm>=0.00000001
WriteLine("圆周率的近似值为:
{0}",Sqrt(6*s))
EndSub
EndModule
8.解答
ImportsSystem.Console
ImportsSystem.Math
ModuleModule1
SubMain()
Dimx0!
x1!
x1=0
Do
x0=x1
x1=x0-(x0^5-3*x0^2+2*x0+1)/(5*x0^4-6*x0+2)
LoopUntilAbs(x1-x0)<0.00001
WriteLine("方程的根为:
{0}",x1)
EndSub
EndModule
9.解答
ImportsSystem.Console
ModuleModule1
SubMain()
Dimi%,s!
sign%
sign=1:
s=0
Fori=1To100
s=s+sign*1/i
sign=-sign
Nexti
WriteLine("s的值为:
{0}",s)
EndSub
EndModule
10.解答
法1:
ImportsSystem.Console
ModuleModule1
SubMain()
Dimi%,a%,b%,c%
WriteLine("100--999之间的水仙花数为:
")
Fori=100To999
a=i\100
b=(i-a*100)\10
第4章复合型数据类型
4.1填空题
1.答案:
10,0,9
2.答案:
Dima(5,6)AsInteger
3.答案:
四舍五入
4.答案:
Read和ReadLine,Write和WriteLine
5.答案:
[Preserve]
6.答案:
数据成员
7.答案:
Add
8.答案:
枚举类型名.成员名
4.2选择题
1.答案:
c2.答案:
c3.答案:
d4.答案:
b5.答案:
d6.答案:
c7.答案:
b8.答案:
d9.答案:
d10.答案:
d
11.答案:
c
12.答案:
d13.答案:
a
4.3问答题
略
4.4阅读下列程序,写出执行结果
1.答案:
f(0)=1f
(1)=1f
(2)=2f(3)=3
f(4)=5f(5)=8f(6)=13f(7)=21
f(8)=34f(9)=55f(10)=89
2.答案:
s(0)=6s
(1)=5s
(2)=4s(3)=3s(4)=2s(5)=1
3.答案:
1
24
369
4.答案:
1 1 1 1 1
2 1 1 1 1
3 2 1 1 1
4 3 2 1 1
5 4 3 2 1
4.5编程题
1.解答:
ImportsSystem.Console
ImportsSystem.Math
ModuleModule1
SubMain()
Dimsum1!
sum2!
ave!
dev!
n%,i%
n=InputBox("请输入学生人数:
")
Dims!
(n)
Fori=1Ton
s(i)=InputBox("请输入第"&Str(i)&"个学生成绩:
")
Nexti
sum1=0:
sum2=0
Fori=1Ton
sum1=sum1+s(i)
Nexti
ave=sum1/n
Fori=1Ton
sum2=sum2+(s(i)-ave)^2
Nexti
dev=Sqrt(sum2/n)
WriteLine("平均成绩:
{0}",ave)
WriteLine("均方差:
{0}",dev)
EndSub
EndModule
2.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dimi%,num%,p%,a%(11)
Randomize()'随机数生成器初始化
Fori=1To10
a(i)=Int(Rnd()*100+1)
Nexti
WriteLine("插入前数组的元素值:
")
Fori=1To10'显示插入前数组的元素值
Write("{0}",a(i))
Nexti
WriteLine()
p=InputBox("请输入插入位置:
")
num=InputBox("请输入插入数据:
")
Fori=10TopStep-1
a(i+1)=a(i)
Nexti
a(p)=num
WriteLine("插入后数组的元素值:
")
Fori=1To11'显示插入后数组的元素值
Write("{0}",a(i))
Nexti
WriteLine()
EndSub
EndModule
3.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dima(20),i%,max%
Randomize()
Fori=1To20
a(i)=Int((90*Rnd()+10))
Nexti
WriteLine("产生的随机数为:
")
Fori=1To20
Write("a({0})={1}",i,a(i))
IfiMod4=0ThenWriteLine()
Nexti
WriteLine()
max=a
(1)
Fori=2To20
Ifa(i)>maxThenmax=a(i)
Nexti
WriteLine("最大值为:
{0}",max)
WriteLine("最大值所在数组元素的下标为:
")
Fori=1To20
Ifa(i)=maxThenWrite("{0}",i)
Nexti
WriteLine()
EndSub
EndModule
4.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dima()AsSingle={1,2,7,8},b()AsSingle={3,4,8,8,9,10,12,12},c%(11)
Dimi%,j%,k%
i=0:
j=0:
k=0
Whilei<4Andj<8
Ifa(i)>b(j)Then
c(k)=b(j):
k=k+1:
j=j+1'比较a和b中的元素,把较大的元素移到
Else'c中,直到其中一个数组搬空为止
c(k)=a(i):
k=k+1:
i=i+1
EndIf
EndWhile
Whilei<4
c(k)=a(i):
i=i+1:
k=k+1'把a中剩余的元素搬到c中
EndWhile
Whilej<8
c(k)=b(j):
j=j+1:
k=k+1'把b中剩余的元素搬到c中
EndWhile
WriteLine("合并后的升序数组C:
")
Fori=0To11
Write("{0}",c(i))
Nexti
WriteLine()
EndSub
EndModule
5.解答:
ImportsSystem.Console
ModuleModule1
SubMain()
Dimi%,j%,m%,n%,sum!
ave!
max!
min!
m=InputBox("请输入矩阵的行数:
")
n=InputBox("请输入矩阵的列数:
")
Dima!
(m,n)
WriteLine("输入的矩阵为:
")
Fori=1Tom
Forj=1Ton
a(i,j)=InputBox("输入第"&St