vb理论第2次练习

发布 2021-05-09 03:02:28 阅读 9438

选择题。

1 用下面语句定义的数组元素个数是( )

option base 1

dim arr4(6,5) as integer

a)42 b)30 c)37 d)36

解答该题首先通过option base 1语句使数组的下标从1开始,所以数组定义语句dim arr4(6,5) as integer与语句dim arr4(1 to 6,1 to 5) as integer等价,不难算出该数组元素个数为30。

答案 b 2 可以用来清除数组内容或对数组重新定义的语句是()

a unload b cls c erase d free

解答数组一旦被定义,就在内存中分配了相应的存储空间,其大小是不能改变的但有时可能需要清除数组的内容或对其重新定义,这可以用 erase 语句来实现,其格式为 erase 数组名[, 数组名]…,该语句用来重新初始化静态数组的元素或者释放动态数组的存储空间,其中,数组名不带括号和下标。 unload 语句是从内存中卸载窗体或控件,当所占内存另有它用或需要重新设置窗体控件的属性值为初始值时,就有必要卸载窗体或控件,而 cls clear 都是 visual basic 中的方法。

本题正确答案为 c

3 下面能正确表示 visual basic 中数组 a 的元素的是()

a a[5] b a5 c a d a(5)

解答在visual basic 中使用数组元素时,必须把下标放在一对紧跟在数组名之后的括号不能写其他的形式,如要表示数组 s 中下标为 5 的元素必须写成 s(5) 。

答案为 d

4 下列数组定义中错误的是:其中 n 是一个变量

a dim a(7, 3 to 9) as string

b dim b(n) as intege

c dim c(1, 7, 9) as integer

d redim(n)

解答在使用 dim 定义一个数组时其上下标不能为变量,而在 redim 中就可以使用变量来改变数组的维数

答案为 b

5 使用语句 dim a() as integer 声明数组 a 之后,以下说法正确的是:

a a 数组中的所有元素值为 0

b a 数组中的所有元素值不确定

c a 数组中的所有元素值为 empty

d 执行 erase a 后 a 数组中的所有元素值为 0

解答所谓数组就是能够保存具有数据类型的多个数值的存储空间,当声明一个数组后,在没有给它赋值前,数组中的所有元素值为0, 因此可知选项 a 是正确的,b ,c选项都是错误的,在选项 d **现了 erase 语句,使用 erase 语句将释放动态数组所占的内存空间,而题中语句 dim a as integer 正好是声明动态数组 a 的,所以选项 d 的说法不正确。

正确答案为 a

6 计算下列定义的语句中数组所占有的空间为()

option base 1

dim snglp(3, 2 to 5) as single

a 80 字节 b 48 字节 c 60 字节 d 96 字节

解答首先使用了 option base 1 将数组的下标定位为 1,所以数组 snglp 的定义实际是 dim snglp(1 to 3, 2 to 5) as single,又因为 single 单精度类型的所占空间为 4个字节,因此所占空间=(3-1+1)*(5-2+1)*4=48 字节。

正确答案为 b

7 有下列程序:

private sub command1_click()

dim myweek, myday

myweek=array("mon","tue","wed","fri","sat","sun")

myday= myweek(2)

myday= myweek(4)

msgbox myday

end sub

程序运行后,弹出的消息窗口显示( )

a)sat b)tue c)wed d)thu

解答由于数组下界从0开始,所以myweek(4)中存放的是数组中的第5个字符, 故消息窗口中显示的是sat。

答案 a 8 程序**如下,当单击窗体上的command1控件时, 窗体上显示的结果是( )

option base 1

private sub command1_click()

dim i as integer

for i=1 to 3

for j=1 to 3

x(i,j)=(i-j)*3+j

next j

next i

for i=1 to 3

print x(i,4-i)

next i

end sub

a)1 5 9 b)1 4 7 c)3 5 7 d)3 6 9

解答本题首先通过一个双重for循环给一个3行3列的数组x的每个元素赋值,赋值规律是每个元素的值是它的行下标减1乘3加上列下标;然后通过一个for循环输出3个元素:x(1,3)、 x(2,2)和x(3,1),它们的值分别为:x(1,3)=(1-1)× 3+3=3、 x(2,2)=(2-1)× 3+2=5、x(3,1)=(3-1)×3+1=7。

答案 c 填空题。

1 用语句dim a(-2 to 3) as integer 所定义的数组元素的个数是。

解析:下界为-2,上界为3。

数组中有a(-2),a(-1),a(0),a(1),a(2),a(3),共6个元素。

2 在程序中, 若关于数组的说明语句只有一条dim a (100), 则数组a包括了个元素,数组的下界为。

解答在visual basic中,如果不指明数组下标的下界,则默认数组下标的下界为0,因此,用dim a(100)说明数组a后,它共有101个数组元素。

答案 101 0

3 以下程序用随机数模拟掷骰子,统计掷60次骰子出现各点的次数,请在横线处上正确的内容。

option base 1

private sub command1_click()

dim d(6)

for i=1 to 60 nd(n

next i

for i = 1 to 6

print d(i)

next i

end sub

解答根据题意,第一空处应该填入由随机函数产生的模拟掷骰子的点数,该数值应控制在1~6之间,故可用表达式int(1+6*rnd)来实现;接下来对产生的点数进行计数,本题使用数组d来进行计数,并用产生的骰子点数作为数组下标,所以第二空处应该填入d(n)+1,以此统计各点数出现的次数。

答案 int(1+6*rnd) d(n)+1

4 下列程序运行时单击command1命令按钮,输出的结果是。

private sub command1_click()

dim a(10)

for k = 1 to 10

a(k) =11 - k

next k

print a(3 + a(6))

end sub

解析:此题根据“a(k) =11 – k”公式要先算出a(1)~a(10)的值,可得到的结果是:a(6)=5,a(8)=3;循环结束后在窗体上会输出的是a(8)的值为3。

5 下列程序运行时单击窗体,输出的结果是。

private sub form_click()

dim a(4)

a(4) =4

for i = 1 to 3

a(i) =a(i + 1) -1

next print a(1); a(2); a(3)

end sub

解析:数组声明的语句能对数组进行初始化,使得数值型数组的元素值初始化为0,字符型数组的元素值初始化为空。

编程题。1 设s = 1×2×3×…×n,求s不大于400000时最大的n,(**编写在命令按钮的click事件过程中,结果利用一个标签显示,提交窗体文件,保存名为f1)。

解答:本题是利用循环进行累乘运算。设计数器为n,累乘器s = s * n,由于不知道循环的次数,故使用do loop循环,其循环条件是s<=400000。

又由于求的是最大的n值,输出语句应在循环体外,且n-1的值才符合要求(因为出循环时s已超出400000,n也已经是最大的符合条件的n加了1之后的n,故要减去1)。

编写命令按钮的click事件**:

private sub command1_click()

dim n as integer, s as long

n = 1

s = 1

do while s <=400000

n = n + 1

s = s * n

print n, s ’ 通过本行可以看到循环过程

loop = "n = str(n-1)

end sub

2 编制程序,求出所有小于或等于100的自然数对。自然数对是指两个自然数的和与差都是平方数,如8与17的和8 + 17 = 25与其差17 -8=9都是平方数,则8和17称自然数对。(**编写在命令按钮的click事件过程中,结果输出在列表框中,提交窗体文件,保存名为f2)

解答:采用“穷举法”来检查100以内的所有自然数对。利用双重循环,外循环控制变量m从1~99;内循环控制变量n从m~100,用表达式sqr(s)=int(sqr(s)) and sqr(d)=int(sqr(d))来判断s和d是否是平方数。

编写命令按钮的click事件**:

private sub command1_click()

dim n as long, m as long

dim s as single, d as single

for m = 1 to 99

for n = m to 100

s = n + m

d = n - m

if sqr(s) =int(sqr(s)) and sqr(d) =int(sqr(d)) then

str(n) &str(m)

第2周第2次作业

第2周第2次家长签名 一 用递等式计算。二 填空。1 一个数加上 还得原数 一个数和0相乘,得 0除以一个的数,还得0 不能作除数。2 在计算147 251 51 时,第一步要先算再算。3 法 法 法和 法统称四则运算。减去40除以40的商,所得的差再剩以40,结果是。三 选择。1 计算24 24 ...

第2次作业

1.操作系统将os划分为若干层次,再将os的不同功能分别设置在不同的层次中。通常将一些与硬件紧密相关 各种常用设备的驱动程序以及频率较高的模块 如始终管理 进程调度和许多模块所公用的一些基本操作 都安排在紧靠硬件的软件层次中,将它们常驻内存,即os内核。支撑功能 中断处理 时钟管理 原语操作。资源管...

作业第2次

1 测试需求管理不包含 a 产品需求转换为测试需求 b 通过需求树定义被测软件所有需求 c 自动生成统计图表 d 定义测试目标和策略。2 测试需求管理包含 a 定义测试目标和策略 b 确定每个功能点的测试方法 c 自动生成统计图表 d 运行自动化测试。3 缺陷跟踪不包含 a 确定每个功能点的测试方法...