专升本VB上机编程作业

发布 2022-07-18 09:09:28 阅读 7137

专升本visual basic上机编程作业(二)

一、字符串处理问题:

例1: 统计键盘输入的一个字符串中包含字母e的个数,并输统计出结果。

dim x as string, i %,k%

x=inputbox(“请输入字符串x:”)

k=0for i=1 to len(x)

if mid(x,i,1))=e” then k=k+1

next i

pirnt “字符串:”;x;”中包含e的个数为:”;k

请参考以上程序,完成下列编程。

1、编写程序,运行时接收用户键盘输入的一个长字符串,统计其中包含字母a的个数(不区分大小写),并在屏幕上输出统计结果。

2、编写窗体form的click事件过程,完成如下功能:

1)键盘输入一个字符串;

2)将字符串逆序,如输入字符串“abcd”,逆序后变成“dcba”;

3)输出逆序后的字符串。

解:private sub form_click()

dim s1 as string ,s2 as string

s1=inputbox(“请输入一个字符串”)

print “输入的字符串为:”;s1

for i=1 to len(s1)

s2=mid(s1,i,1) &s2

next i

print “逆序后的字符串为:”;s2

end sub

3、有5个英文单词,分别为:word,excel,powrpoint,type,angle,要求设计出如下程序:

1)在键盘输入n个数(本例输入5),把英文单词放入名为x的数组中;

2)显示x数组中英文单词;

3)对数组中的英语单词从小到大排序;

4)显示出排序后x数组中英文单词。

dim x( )as string ,i%,n%

n=val(inputbox(“请输入单词个数n的值:”)

redim x(n)

for i=1 to n

x(i)=inputbox(“输入单词”)

print x(i);space(2);

next i

for i = 1 to n-1

for j = i + 1 to n

if x(i) >x(j) then

t = x(i): x(i) =x(j): x(j) =t '交换位置。

end if

next j

next i

print

print "排序结果:"

for i = 1 to n

print x(i); space(2);

next i

二、数组。一)找最大值、最小值及位置问题:

例1:随机产生20 个两位整数存放在一维数组中,找出其中的最大值、最小值。

解:dim a%(20),i%,min%,max%,kmin%,kmax

for i=1 to 20

randomize

a(i)=int(rnd*90)+10 int(rnd*(上限-下限+1))+下限。

print a(i);

next i

min=a(1)

max=a(1)

for i=2 to 20

if a(i) if a(i)>max then max=a(i) :kmax=i

next i

print min ,max

若要求:(1)该数组的平均数,该如何实现?

(2)找出大于平均数的数并输出,该如何实现?

(3)找出最大数(或最小数)的位置,该如何实现?

p138编程第(6)题可参考该程序**。

例2:找矩阵中最大值及其位置:

随机产生30个3位整数,形成6行5列的二维数组,然后指出其中的最大数及其所在的行、列的位置。

dim a(6, 5) as integer

s = 0: m = 0: n = 0

for i = 1 to 6

for j = 1 to 5

a(i, j) =int(rnd * 999 - 100 + 1) +100)

print a(i, j);

if a(i, j) >s then s = a(i, j) :m = i: n = j

next j

printnext i

print "最大的数=";s

print "最大的数所在的行=";m

print "最大的数所在的列=";n

二)数组元素的排序问题。

例1:随机产生10个两位整数,并按从小到大的顺序显示出来。

选择法排序:

dim a(10) as integer, i%,j%,t%

for i=1 to 10

a(i)=int(rnd*90)+10

print a(i);

next i

for i=1 to 9

for j=i+1 to 10

if a(i)>a(j) then t=a(i) :a(i)=a(j) :a(j)=t

next j

next i

print

print “排序后:”

for i=1 to 10

print a(i);

next i

冒泡法排序:

dim a(10) as integer, i%,j%,t%

for i=1 to 10

a(i)=int(rnd*90)+10

print a(i);

next i

for i=1 to 9

for j=1 to 10-i

if a(j)>a(j+1) then t=a(j) :a(j)=a(j+1) :a(j+1)=t

next j

next i

print

print “排序后:”

for i=1 to 10

print a(i);

next i

若要求从大到小排序输出,则程序如何实现?

1、有5个人的学习成绩,分别为:58,87,99,71,68,要求设计出如下程序:

1)在键盘上输入n个成绩值(例输入5个),放入名为x的数组中;

2)显示x数组成绩的值;

3)对数组中的成绩值从大到小排序;

4)显示出排序后x数组中成绩的值。

提示:可参考上面第5小题程序**。

2.输入10个数,将它们按照从大到小的顺序排列并显示出来。

三)数组元素的逆序输出。

例:有10个三位整数,要求输出后对其进行逆序。

dim a(10) as integer, i%,j%,t%

for i=1 to 10

a(i)=int(rnd*900)+100

print a(i);

next i

for i =1 to 10\2

t=a(i) :a(i)=a(10-i+1) :a(10-i+1)=t

next i

print

print “排序后:”

for i=1 to 10

print a(i);

next i

p137编程第(1)题可参考此题**。

四)矩阵的输出问题。

例1:矩阵的转置:将一个由10×10的两位随机整数组成的矩阵输出后,行与列互换(即转置)后输出。

dim a(10, 10), i%, j%, b(10, 10) as integer

for i = 1 to 10

for j = 1 to 10

a(i, j) =int(rnd * 99 - 10 + 1)) 10

print a(i, j);

next j

printnext i

printfor i = 1 to 10

for j = 1 to 10

b(j, i) =a(i, j)

next j

next i

print "变化后的:"

for i = 1 to 10

for j = 1 to 10

print b(i, j);

next j

printnext i

求原矩阵与转置矩阵的和:

for i = 1 to 10

for j = 1 to 10

c(i,j)=b(i, j) +a(i, j)

next j

next i

p137编程第(2)题可参考上题**,建立一个3×4的(两位整数组成)二维数组,并按3行4列的方式直接显示在窗体上。再将其行与列的元素转置成4×3的矩阵后输出。

例2:输出一个5×5的矩阵,其对角线元素均为1,其他元素为0

private sub form_click()

dim a%(5, 5), i%, j%

for i = 1 to 5

for j = 1 to 5

if i = j or j = 5 - i + 1 then a(i, j) =1 else a(i, j) =0

print a(i, j);

next j

printnext i

end sub

p138编程第(5)题可参考此题**。

例3: 二分法找数问题:在由100个四位整数组成的a数组中,用二分法查找一个由键盘输入的数据,将查找的结果(找到或没有到)在窗体上输出。

dim a(100) as integer, i%, j%, t%, x%

dim f as boolean, mid%, index%

dim h%, l%

for i = 1 to 100给数组元素赋值并10个一行输出。

a(i) =int(rnd * 9999 - 1000 + 1) +1000)

print a(i);

if i mod 10 = 0 then print

next i

for i = 1 to 99先对数组进行排序。

for j = i + 1 to 100

if a(i) >a(j) then

t = a(i): a(i) =a(j): a(j) =t

end if

next j, i

print "排序后:"

for i = 1 to 100

print a(i);

if i mod 10 = 0 then print

next i

h = ubound(a): l = lbound(a用二分法查找输入的数。

x = val(inputbox("请输入查找的数据x:")

《VB》上机作业

上机作业。第3章结构化程序设计与数组。一 分支结构 1 旧教材 p82 新教材 p87 程序设计题 1。2 旧教材 p83 新教材 p87 程序设计题 2。3 输入一个字符,判断该字符是否为字母 数字 空格还是其它符号。请分别用块if结构和情况选择语句来实现。二 循环结构 一 1 旧教材 p83 新...

VB上机作业

选择题。自测练习,提供参 及解答 1.自测练习,提供参 及解答 下列关于函数的说法正确的是 a 函数名在过程中只能被赋值一次 b 如果在函数体内没有给函数名赋值,则该函数无返回值 c 如果在定义函数时没有说明函数的类型,则该函数是无类型的 d 利用exit function语句可以强制退出函数 解答...

信息技术 VB 上机编程模拟题

2009信息技术会考vb上机编程模拟题。说明 下列练习题是模拟系统中的一部分,要求学生平时练习时为每道题建一个专用文件夹,文件夹的名称可与窗体的caption属性相同。会考时共有四道编程题,其中a类题 b类题 c类题 d类题各一题。a类 每题8分 说明 a类题以顺序结构的解析算法为主,解决学生在数学...