VB程序设计练习题

  • 格式:docx
  • 大小:15.89 KB
  • 文档页数:19

VB程序设计练习题目录文章目录前言内容一、明文密文转换。

二、大小写互相转换。

三、三角形的综合问题。

五、标签左右移动。

六、相邻数加起来为素数。

七、通项分母(累加).八、判断降序数。

九、产生数组,求最大数。

十、奇偶排序。

总结:前言这是我备考技能考的一些VB练习题。

(难度稍微有点大哦)想要更多VB练习题点击我的头像,看我发表我文章就可以看到了。

答案是边肖自己写的,可能有错误。

内容一、明文密文转换。

在上面的文本框中输入的英文字母(称为”明文")加密,加密结果(称为"密文")显示在下面的文本框中。

加密的方法是:选中一个单选按钮,单击“加密”按钮后,根据选中的单选按钮后面的数字n,把明文中的每个字母改为它们后面第n个字母("z"后面的字母认为是"a","Z"后面的字母认为是"A"),如图所示。

答案:Private Sub Command1_Click()For i = 1 ToLen(Text1.Text)If Option1.Value = True Thena =Mid(Text1.Text, i, 1)b = Asc(a) + 1End IfIfOption2.Value = True Thena = Mid(Text1.Text, i, 1)b = Asc(a) + 3End IfIf Option3.Value = True Thena =Mid(Text1.Text, i, 1)b = Asc(a) + 5End IfIf b > 122 Thenb = b - 26End IfIf b > 90 And b < 97 Thenb = b - 26End IfText2.Text = Text2.Text & Chr(b)NextEnd Sub二、大小写互相转换。

如图所示创建界面(一个文本框,一个按钮),程序运行后,单击“转换”按钮,可以text1中的大写字母转换为小写,把小写字母转换为大写。

答案:Private Sub C1_Click()For i = 1 To Len(Text1.Text)a = Mid(Text1.Text, i,1) ‘一个一个选择text1中的字符For j = 97 To122If a = Chr(j)Then ‘判断是不是小写字母f =‘是的话f=0ExitFor‘并且要停止循环,不然会一直循环下去导致f=1。

Else‘否则f=1,也就是大写字母f = 1EndIfNextIf f = 0Then ‘如果是f=0(也就是字母为小写的情况)a =UCase(a)‘就转大写EndIf‘结束If f = 1Then‘如果f=1(也就是大写的情况)a =LCase(a)‘就转小写End Ifb = b &a‘全部a都赋值给bNextText1.Text =b ‘te xt1输出bEnd Sub三、三角形的综合问题。

根据给定的图形的三边的边长来判断图形的类型。

若为三角形则同时计算出何种三角形,及三角形的周长和面积。

要求完成”判断并计算”按钮的如下功能:1、判断输入的条件是否为三角形,若是三角形则在Text1中显示“是三角形”;在Text2中显示是何种三角形。

2、单击“清除重来”按钮可以将所有的显示框清空,且按钮本身变为不可选取状态。

当单击“判断并计算”之后重新恢复为可选状态。

提示:1。

三角形存在的条件是任意一边不为0,任意两边之和大于第三边。

2.若一边具有a^2+b^2=c^2,则为直角三角形;若所有边具有a^2+b^2>c^2,则为锐角三角形;若一边具有a^2+b^2<c^2,则为钝角三角形。

3、三角形的面积公式.已知三角形三边a,b,c,则(海伦公式)(p=(a+b+c)/2)S=sqrt[p(p-a)(p-b)(p-c)]答案:Private Sub Command1_Click()a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)Command2.Enabled = TrueIf a + b > c And a + c > b And c + b > a ThenText4.Text = "是三角形"ElseText4.Text = "不是三角形"End IfIf Text4.Text = "是三角形" ThenIf a ^ 2 + b ^ 2 = c ^ 2 Or a ^ 2 + c ^ 2 = b ^ 2 Or b ^ 2 + c ^ 2 = a ^ 2 ThenText5.Text = "直角三角形"End IfIf a ^ 2 + b ^ 2 > c ^ 2 And a ^ 2 + c ^ 2 > b ^ 2 And b ^ 2 + c ^ 2 > a ^ 2 ThenText5.Text = "锐角三角形"End IfIf a ^ 2 + b ^ 2 < c ^ 2 Or a ^ 2 + c ^ 2 < b ^ 2 Or b ^ 2 + c ^ 2 < a ^ 2 ThenText5.Text = "钝角三角形"End IfText6.Text = a + b + cText7.Text = (1 / 4) * Sqr((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a))End IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""End SubPrivate Sub Command3_Click()EndEnd Sub四、杨辉三角形。

编写适当的事件过程,在窗体上输出相对应行数的杨辉三角形,点击窗体弹出inputbox对话框,在对话框中输入行数,打印出如下图所示的杨辉三角形能做这道题说明二维数组的输出掌握的很好。

答案:Private Sub Form_Click()Dim i As Integer, j As IntegerDim a As Integera = Val(InputBox("请输入行数"))Dim c(9, 9) As IntegerIf a > 0 ThenFor i = 1 To aPrint Space(3 * a - 3 * i);For j = 1 To iIf i = 1 Or j = i Then ‘当为三角形两边的时候,输出1c(i, j) = 1End IfIf i = 2 Or j = i - 1Then ‘当为三角形的两边里面一个的时候输出行数-1c(i, j) = i - 1End IfIf i > 2 And j < i - 1Then ‘否则都以自身上面一行对角线两个数的和。

c(i, j) = c(i - 1, j - 1) + c(i - 1, j)End IfPrint c(i, j) &" ";‘输出NextPrintNextEnd IfEnd Sub五、标签左右移动。

点击开始按钮,标签右移动,到达右边则向左移动,到达左边则向右移动,点击停止按钮则停止移动答案:Dim aPrivate Sub Command1_Click()Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Form_Load()Timer1.Enabled = Falsea = 0End SubPrivate Sub Timer1_Timer()If Label1.Left >= Val(Form1.Width) - Val(Label1.Width) Thena = 1End IfIf Label1.Left <= 0 Thena = 0End IfIf a = 1 ThenLabel1.Left = Label1.Left - 100End IfIf a = 0 ThenLabel1.Left = Label1.Left + 100End IfEnd Sub六、相邻数加起来为素数。

本程序用于求1~10中相邻数之和是素数的所有自然数对。

例如:1和2为相邻数并且1+2=3,3为素数,则输出1和2.答案:Private Sub Form_Click()Dim i As IntegerFor i = 1 To 10f = 0For j = 2 To i - 1If (i + (i + 1)) Mod j = 0 Thenf = 1Exit ForElsef = 0End IfNextIf f = 0 ThenPrint i; i + 1End IfNextEnd Sub七、通项分母(累加).下面程序的功能是计算,若通项分母的值>=200,停止计算(正确答案是S=1.409524)S=1+1/1*3 + 1/1*3*5 +1/1*3*5*7…..答案:Private Sub Form_Click()Dim i As IntegerDim n As Integeri = 1n = 1DoIf n > 200 ThenExit DoElsePrint iSum = Sum + (1 / n) End Ifi = i + 2n = n * iLoopPrint SumEnd Sub第二种:Private Sub Form_Click()Dim i As IntegerDim n As Integeri = 1n = 1Do While n <= 200Sum = Sum + (1 / n)i = i + 2n = n * iLoopPrint SumEnd Sub八、判断降序数。

在文本框中输入一个整数,以确定它是否是一个降序数字。

(降序数是指高位数大于低位数,按降序排列,如321,654,9876等。