1、visualbasic程序设计教程第四版刘炳文编著清华大学Visual Basic 程序设计教程部分习题参考第四版 刘炳文 编著 清华大学出版社第五章、从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。通过inputbox函数输入数据,在窗体上显示和及平均值。Dim a as singleFor i=1 to 4 a=inputbox(“请输入一个数:”,“数据输入”) sum=sum+a n=n+1 avg=sum/nnext iprint “和是:”,sumprint “平均值是:”,avg、编写程序,要求用户输入下列信息:姓名、年龄、通信地址、邮政编码、电话,然后将输入的数据
2、用适当的格式在窗体上显示出来。Dim a as variantFontsize=20a=inputbox(“请输入姓名:”,“数据输入”)print “姓名:”;aa=inputbox(“请输入年龄:”,“数据输入”)print “年龄:”;aa=inputbox(“请输入通信地址:”,“数据输入”)print “通信地址:”;aa=inputbox(“请输入邮政编码:”,“数据输入”)print “邮政编码:”;aa=inputbox(“请输入电话:”,“数据输入”)print “电话:”;a设a=5,b=,c=,编程序计算: y=(ab)/(a+bc)程序:Dim a as single,
3、b as single,c as singlea=5b=c=pi=y=(pi*a*b)/(a+b*c)print “结果是:”;y、输入以秒为单位表示的时间,编写程序,将其转换为几日几时几秒。Dim a as long,d as integer ,h as integer,s as integera=inputbox(“请输入秒数:”,“数据输入”)d=int(a/86400)h=int(a-d*86400)/3600)s=a-d*86400-h*3600print d;“日”;h;“时”;s;“秒”、自由落体位移公式为:s=gt2/2+v0t其中v0为初始速度,g为重力加速度,t为经历的时间
4、,编写程序,求位移量s。设v0=s,t=,g=s2,在程序中把g定义为符号常量,用inputbox函数输入v0和t两个变量的值。Dim v as single,t as single,s as singleg=v= inputbox(“请输入初始速度:”,“数据输入”)v=val(v)t=inputbox(“请输入经历的时间:”,“数据输入”)t=val(t)s=g*t*t/2+v*tprint “位移量是:”;s第七章编程计算并输出S的值:s=2+4+6+8+100dim i,s as integers=0for i=2 to 100 step 2s=s+inextprint s、我国现有人
5、口为13亿,设年增长率为1%,编写程序,计算多少年后增加到20亿。Private Sub Form_click()Dim p As DoubleDim r As SingleDim n As Integerp = 0r = n = 0Do While p = 0p = p * (1 + r)n = n + 1LoopPrint n; 年后; 中国人口增加到; pEnd Sub、给定三角形的3条边长,计算三角形的面积。编写程序:首先判断给出的3条边能否构成三角形,如可以构成,则计算并输出三角形的面积,否则要求重新输入。当输入-1时结束程序。Dim a as single;b as single;
6、c as singleStart:a = inputbox(“请输入第一条边长-1结束:”,”数据输入”)a=val(a)if a=-1 then endend ifb=inputbox(“请输入第二条边长”,“数据输入”)b=val(b)c=inputbox(“请输入第三条边长”,“数据输入”)c=val(c)if a+b=c or a+c=b or b+ciThenPrinta(2*i-j);ElsePrinta(j);EndIfNextjNextiEndSub勾股定理中三个数的关系是a*a+b*b=c*c。编写程序,输出30以内满足上述关系的整数组合。例如3,4,5就是一个满足要求的整数
7、组合Private Sub Command1_Click() Dim Max As Integer, I As Integer, J As Integer, K Max = 30 For I = 3 To Max - 2 For J = I + 1 To Max - 1 K = Sqr(I 2 + J 2) If K = Int(K) And K = Max Then Print I, J, K Next NextEnd Sub如果一个数的因子之和等于这个数的本身,则称这样的数为“完全数”。例如,整数28的因子为1,2,4,7,14,其和1+2+4+7+14=28,因此28是一个完全数,编写一
8、个程序,从键盘上输入整数M和N,求出M和N之间的所有的完全数form load()int i,j,m,n,summ =inputbox(输入最小正整数)n =inputbox (输入最大正整数)for j=m to nsum=0 for i=1 to j if (j mod i=0) and (i j ) then sum=sum i next if j=sum then print sum & 是完全数 next print 查找完毕beep end sub 从键盘上输入一个学生的学号和考试成绩,然后输出该学生的学号和考试成绩,并根据成绩按下面的规定输出对该学生的评语:成绩 80100 60
9、79 5059 4049 039评语 very good good fair poor fail Private Sub Form_Click() n = InputBox(请输入学号) s = InputBox(请输入分数) If s = 80 Then Print 学号:; n; ,; 分数:; s; ,; 学生评语:; Very Good ElseIf s = 60 And s = 50 And s = 40 And s = 0 And s = 39 Then Print 学号:; n; ,; 分数:; s; ,; 学生评语:; Fail End IfEnd Sub一个两位的正整数,如将
10、它的个位数字与十位数字对调,则产生另一个正整数,我们把后者叫做前者的对调数。如给定一个两位的正整数,请找到另一个两位的正整数,值得这两个整数之和等于他们各自的对调数之和,例如,12+32=21+23.编写程序,输入一个两位的正整数,把具有这种特征的每一对两位正整数都找出来PrivateSubCommand1_Click() DimaAsStringDimiAsLonga=InputBox(输入一个两位的正整数:) IfVal(a)=100ThenMsgBox输入不合法ExitSubEndIfFori=1To99 IfVal(a)+i=Val(getDuiTiao(a)+getDuiTiao(C
11、Str(i)Theni EndIfNextEndSubPrivateFunctiongetDuiTiao(ByValvStrAsString)AsStringDimstrTmpAsStringstrTmp=Right(CStr(vStr),1)&Left(CStr(vStr),1) getDuiTiao=strTmp EndFunction第八章.从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换第10个元素与第1个元素互换。分别输出数组原来各元素的值和对换后各元素的值。Option Base 1Pri
12、vate Sub Form_Click()arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)Print 原来数组:For i = 1 To 10 Print arr(i);Next iPrintFor i = 1 To 5 For j = 6 To 10 t = arr(i) arr(i) = arr(j) arr(j) = t Next jNext iPrint 对换后数组:For i = 1 To 10 Print arr(i);Next iEnd Sub.设有如下两组数据。(1)2,8,7,6,4,28,70,25(2)79,27,32,41,57,66
13、,78 ,80编写一个程序,把上面两组数据分别读入两个数组中,然后把两个数组中对应下标的元素相加,即2+79,8+27,25+80,并把相应的结果放入第三个数组中,最后输出第三个数组的值。Option Base 1Private Sub Form_Click()Dim A, B, C(8) As IntegerA = Array(2, 8, 7, 6, 4, 28, 70, 25)B = Array(79, 27, 32, 41, 57, 66,78,80)For i = 1 To 8 C(i) = A(i) + B(i)Next iPrint 第一个数组为:;For i = 1 To 8 P
14、rint A(i);Next iPrintPrint 第二个数组为:;For i = 1 To 8 Print B(i);Next iPrintPrint 第三个数组为:;For i = 1 To 8 Print C(i);Next iPrintEnd Sub编写程序,把下面的数据输入到一个二维数组中:25 36 78 1312 26 88 9375 18 22 3256 44 36 58然后执行以下操作:1) 输出矩阵两个对角线上的数;2) 分别输出各行和各列的和。 3) 交换第一行和第三行的位置。4) 交换第二行和第四行的位置。5) 输出处理后的数组。Dim a(4, 4), b(4, 4
15、) As IntegerFor i = 0 To 3 For j = 0 To 3 a(i, j) = Val(InputBox(请输入第 & i + 1 & 行第 & j + 1 & 列的数) Next jNext iPrint 原始数据For i = 0 To 3 Print a(i, 0) & & a(i, 1) & & a(i, 2) & & a(i, 3) & 和 & Val(a(i, 0) + a(i, 1) + a(i, 2) + a(i, 3)Next iPrint 和 和 和 和For j = 0 To 3 Print ; Val(a(0, j) + a(1, j) + a(
16、2, j) + a(3, j);Next jPrint对角线For i = 0 To 3 Print Tab(i * 2); a(i, i)Next iPrintFor i = 0 To 3 Print Tab(3 - i) * 2); a(i, 3 - i)Next iPrint调整For j = 0 To 3 b(2, j) = a(0, j) 第一行和第三行 b(0, j) = a(2, j) b(1, j) = a(3, j) b(3, j) = a(1, j)Next jPrint 调整后数据For i = 0 To 3 Print b(i, 0) & & b(i, 1) & & b
17、(i, 2) & & b(i, 3)Next i设有如下人员名册: 姓名 性别 年龄 文化程度 籍贯 张得功 男 24 大学本科 河北 李得胜 男 30 高中毕业 北京 王丽 女 25 研究生 山东 试编写一个程序,对该名册进行检索。程序运行后,只要在键盘上输入一个人名,就可以在屏幕上显示出这个人的情况。例如,输入“张得功”,则显示: 张得功 男 24 大学本科 河北要求:(1)使用动态数组,输入的人数可以根据实际情况改变。(2)当检索名册中不存在的人名时,输出相应的信息。(3)每次检索结束后,询问是否继续检索,根据输入的信息确定是否结束程序。dim arr() .单位开运动会,共有10人参加
18、男子100米短跑,运动员和成绩如下: 207号 秒 077号 秒 156号 秒 231号 秒 453号 秒 276号 秒 096号 秒 122号 秒 339号 秒 302号 秒编写程序,按成绩排出名次,并按如下格式输出: 名次 运动员 成绩 1 . . 2 . . 3 . . . . . 10 . .在Form1中加入一个Command控件,粘贴入以下代码:Dim i As Integer, j As IntegerDim n As Integer, m As IntegerDim w(9, 1) As DoublePrivate Sub Command1_Click()Dim a1 As D
19、ouble, a2 As Doublea1 = 0a2 = 0For i = 1 To 10 For j = 0 To 9 - i If w(j, 1) w(j + 1, 1) Then a1 = w(j, 0) a2 = w(j, 1) w(j, 0) = w(j + 1, 0) w(j, 1) = w(j + 1, 1) w(j + 1, 0) = a1 w(j + 1, 1) = a2 End If Next jNext iFor i = 0 To 9Print w(i, 0)NextPrint 名次 & 运动员 & 成绩For i = 0 To 9 Print & i + 1 & &
20、Format(w(i, 0), 000) & & w(i, 1)NextEnd SubPrivate Sub Form_Load()For i = 0 To 9 w(i, 0) = InputBox(请输入第 & i + 1 & 运动员的编号) w(i, 1) = InputBox(请输入第 & i + 1 & 运动员的成绩)Next = 名次排列End SubVB编写程序,建立并输出一个10*10的矩阵,该矩阵两条对角线元素为1,其余元素均为0Private Sub Form_Click() Dim a(1 To 10, 1 To 10) As Integer For i = 1 To 10
21、 For j = 1 To 10 a(i, j) = 0 If i = j Then a(i, j) = 1 If i + j = 11 Then a(i, j) = 1 Print a(i, j); ; Next j Print Next iEnd Sub.杨辉三角形每一行是(x+y)的n次方的展开式的各项系数。例如第一行系数是1;第二行1,1;第三行1,2,1请编写程序输出n=10的杨辉三角形Option Base 1Private Sub Command1_Click()Dim a() As Doublem = InputBox(请输入行数 , 输入, 0)ReDim a(m, m) As DoubleFor i = 1 To m a(i, 1) = 1 For j = 1 To m a(j, j) = 1 If j = 2 And j = j Then Print Tab(j * 4); Str(a(i, j); End If Next j PrintNext iEnd Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1