vb期末考试题库
一、单项选择题
1、与传统的程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
语言相比,Visual Basic最突出的特点是(C )。
A、结构化程序设计B、程序开发环境
C、事件驱动编程机制D、程序调试技术
2、赋值语句:a=123 & MID("123456",3,2)执行后,a变量中的值是(C)。
A、"12334"B、123C、12334D、157
3、保存一个工程至少应保存两个文件,这两个文件分别是( B)。
A、文本文件和工程文件B、窗体文件和工程文件 C、窗体文件和标准模块文件D、类模块文件和工程文件 4、以下能在窗体Form1的标题栏中显示"VisualBasic窗体"的语句是(C)。
A、Form1.Name="VisualBasic窗体"
B、Form1.Title="VisualBasic窗体"
C、Form1.Caption="VisualBasic窗体"
D、Form1.Text="VisualBasic窗体"
5、为了装入一个Visual Basic应用程序,应当(D ) A、只装入窗体文件(.frm)
B、只装入工程文件(.vbp)
C、分别装入工程文件和标准模块文件(.bas) D、分别装入工程文件、窗体文件和标准模块文件 6、赋给一个数组的数据类型一定要( A )。 A、相同B、不相同C、两可D、都不对
7、下面正确的赋值语句是(C)。
A、x+y=30B、y=π*r*rC、y=x+30D、3y=x
8、Visual Basic 6.0集成环境的主窗口中不包括(C)。 A、标题栏B、菜单栏C、状态栏D、工具栏
9、以下叙述中错误的是(C)。
A、Visual Basic 是事件驱动型可视化编程工具
B、Visual Basic应用程序不具有明显的开始和结束语句 C、Visual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性
D、Visual Basic中控件的某些属性只能在运行时设置 10、要使Print方法在Form_Load事件中起作用,要对窗体的( C)属性进行设置。
A、BackcolorB、ForeColor
C、AutoRedrawD、BackStyle
11、若要使命令按钮不可操作,要对(A)属性进行设制。 A、EnabledB、Visible
C、BackColorD、Caption
12、以下叙述中错误的是(B)。
A、一个工程中可以包含多个窗体文件
B、在一个窗体文件中用Private定义的通用过程能被其他窗体调用 C、在设计VB程序时,窗体、标准模块、类模块等需要分别保存为不同类型的磁盘文件。
D、一个工程默认的启动对象是Form1
13、Cls方法可以清除窗体或图片框中的(C )内容。
A、在设计阶段使用Picture设置的背景位图
B、在设计阶段放置的控件
C、在运行阶段产生的图形和文字
D、以上均可
14、设x=3,y=5,则以下
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达式值为真的是 C
A、(-3+5>x) And (y>0) B、(x<0) Eqv (y>0)
C、(x>y) Or (y>0)D、x>=y And y>10
15、为了防止用户随意将光标置于控件之上,应将进行(D )设置。 A、将控件的TabIndex属性设置为0
B、将控件的TabStop属性设置为True
C、将控件的TabStop属性设置为False
D、将控件的Enabled属性设置为False
16、要判断在文本框是否按了Enter键,应在文本框的( D)事件中判断。
A、ChangeB、KeyDownC、ClickD、KeyPress
17、以下关于焦点的叙述中,错误的是( )。
A、如果文本框的TabStop属性为False,则不能接收从键盘上输入的数据 B、当文本框失去焦点时,触发LostFocus事件
C、当文本框的Enabled属性为False时,其Tab顺序不起作用 D、可以用TabIndex属性改变Tab顺序
18、如果文本框的Enabled属性设为False,则( A)。
A、文本框的文本将变成灰色,并且此时用户不能将光标置于文本框上。 B、文本框的文本将变成灰色,用户仍然能将光标置于文本框上,但是不能改变文本框中的内容。
C、文本框的文本将变成灰色,用户仍然能改变文本框中的内容。 D、文本框的文本正常显示,用户能将光标置于文本框上,但是不能改变文本框中的内容。
19、程序运行后,在窗体上单击鼠标,此时窗体不会接收到的事件是(C )。 A、MouseDownB、MouseUp
C、LoadD、Click
20、图像框有一个属性,可以自动调整图形的大小,以适应图像框的尺寸,这个属性是( B)。
A、AutosizeB、Stretch
C、AutoRedrawD、Appearance
21、为了防止用户随意将光标置于控件之上,应设置的属性是(D )。 A、将控件的TabIndex属性设置为0
B、将控件的TabStop属性设置为True
C、将控件的TabStop属性设置为False
D、将控件的Enabled属性设置为False
22、不论何控件,共同具有的是( B)属性。
A、TextB、Name
C、ForeColorD、Caption
23、以下关于窗体的描述中,错误的是( A)。
A、执行Unload Form1语句后,窗体Form1消失,但仍在内存中 B、窗体的Load事件在加载窗体时发生
C、当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止
D、窗体的Height、Width属性用于设置窗体的高和宽 24、当运行程序时,系统自动执行窗体的( A)事件过程。 A、LoadB、Click
C、UnloadD、GotFocus
25、窗体设计器是用来设计( B)。
A、应用程序的代码段B、应用程序的界面
C、对象的属性D、对象的事件
26、Visual Basic是一种面向对象的可视化程序设计语言,采取了(A )的编程机制。
A、事件驱动B、按过程顺序执行
C、从主程序开始执行D、按模块顺序执行
27、确定一个控件在窗体上的位置的属性是(D )。 A、Width或HeightB、Width和Height
C、Top或LeftD、Top和 Left
28、如果要改变窗体的标题,则需要设置的属性是( A)。 A、CaptionB、Name
C、BackColorD、BorderStyle
29、以下叙述中错误的是( C)。
A、打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件
B、保存Visual Basic程序时,应分别保存窗体文件及工程文件 C、Visual Basic应用程序只能以解释方式执行 D、事件可以由用户引发,也可以由系统引发
30、以下叙述中错误的是(B )。
A、双击鼠标可以触发DblClick事件
B、窗体或控件的事件的名称可以由编程人员确定 C、移动鼠标时,会触发MouseMove事件
D、控件的名称可以由编程人员设定
31、在Visual Basic中最基本的对象是(C )。它是应用程序的基石,是其他控件的容器。
A、文本框B、命令按钮
C、窗体D、标签
32、以下叙述中正确的是(A )。
A、窗体的Name属性指定窗体的名称,用来标识一个窗体 B、窗体的Name属性的值是显示在窗体标题栏中的文本 C、可以在运行期间改变对象的Name属性的值
D、对象的Name属性值可以为空
33、在设计阶段,当双击窗体上的某个控件时,所打开的窗口是( C)。 A、工程资源管理器窗口B、工具箱窗口
C、代码窗口D、属性窗口
34、Visual Basic是一种面向对象的可视化程序设计语言,采取了的编程机制是(A )。
A、事件驱动B、按过程顺序执行
C、从主程序开始执行D、按模块顺序执行
35、用来设置粗体字的属性是( C)。
A、FontItalicB、FontName
C、FontBoldD、FontSize
36、如果一个工程含有多个窗体及标准模块,则以下叙述中错误的是(A )。
A、如果工程中含有Sub Main过程,则程序一定首先执行该过程 B、不能把标准模块设置为启动模块
C、用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体 D、任何时刻最多只有一个窗体是活动窗体
37、为了把焦点移到文本框,所使用的方法是( A)。 A、SetFocusB、Visible
C、RefreshD、GetFocus
38、INT(100*RND)产生的随机整数的闭区间是(A)。 A、[0,99] B、[1,100]
C、[0,100] D、[1,99]
39、如果要在命令按钮上显示图形文件,应设置命令按钮的( B)。 A、Style属性和Graphics属性B、Style属性和Picture属性 C、Caption属性D、Graphics属性
40、若要使命令按钮不可操作,要对( A)属性进行设制。
A、EnabledB、Visible
C、BackColorD、Caption
41、假定窗体的名称为Form1,则把窗体的标题设置为“VB_Test”的语句为(B )。
A、Form1=“VB_Test”B、Form1.Caption=“VB_Test” C、Form1.Text=“VB_Test”D、Form1.name=“VB_Test” 42、以下叙述中错误的是( A)。
A、在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件 B、以.BAS为扩展名的文件是标准模块文件
C、窗体文件包含该窗体及其控件的属性
D、一个工程中可以含有多个标准模块文件
43、要使文本框获得输入焦点,则应采用文本框控件的哪个方法( A)。 A、GotFocusB、LostFocus
C、KeyPressD、SetFocus
44、以下不能在“工程资源管理器”窗口中列出的文件类型是(B )。 A、.basB、.resC、.frmD、.ocx
45、刚建立一个新的标准EXE工程后,不在工具箱中出现的控件是( C)。 A、单选按钮B、图片框C、通用对话框D、文本框
46、以下叙述中错误的是(B)。
A、双击鼠标可以触发DblClick事件
B、窗体或控件的事件的名称可以由编程人员确定
C、移动鼠标时,会触发MouseMove事件
D、控件的名称可以由编程人员设定
47、以下能够触发文本框Change事件的操作是(D )。 A、文本框失去焦点B、文本框获得焦点
C、设置文本框的焦点D、改变文本框的内容
48、以下叙述中错误的是(C )。
A、一个工程中只能有一个Sub Main过程
B、窗体的Show方法的作用是将指定的窗体装入内存并显示该窗体 C、窗体的Hide方法和Unload方法的作用完全相同
D、若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体 49、语句Print Abs(-6^2)+Int(-6^2)的输出结果是( A)。 A、0B、1C、-1D、-72
50、如果将布尔常量值TRUE赋值给一个整型变量,则整型变量的值为( B)。 A、0B、-1C、TRUED、FALSE
51、函数String(n, "str")的功能是( B)。
A、把数值型数据转换为字符串
B、返回由n个字符组成的字符串
C、从字符串中取出n个字符
D、从字符串中第n个字符的位置开始取子字符串
52、语句Print Format(“Hello World”,“>”)的输出结果是( C)。 A、hello WORLDB、hello world
C、HELLO WORLDD、HELLO world
53、声明符号常量应该用关键字(B )。
A、StaticB、ConstC、PrivateD、Variant
54、要强制显示声明变量,可在窗体模块或标准模块的声明段中加入语句(B )。 A、Option Base 0B、Option Explicit
C、Option Base 1D、Option Compare
55、下列可作为Visual Basic变量名的是(D )。
A、A#AB、4AC、?xyD、constA
56、设a=10,b=5,c=1,执行语句Print a > b > c后,窗体上显示的是( B)。 A、TrueB、FalseC、1D、出错信息
57、执行x$=String(6, "124abc")后,x的值是( B)。
A、124abcB、111111C、124D、abc
58、设a=6,则执行 x=IIf(a>5,-1,0)后,x 的值为( D ) A、5B、6 C、0 D、-1
59、执行语句:c$=“Glad”& Mid$(“Nice to meet you”,5,3),则变量c$的值为(C )。
A、Nice to meet youB、Glad Nice to meet you
C、Glad toD、Glad
60、下面( D)是合法的字符常数。
A、ABC$B、" ABC"C、' ABC'D、ABC
61、对于语句If x=1 Then y=1,下列说法正确的是(C)。 A、x=1 和 y=1 均为赋值语句
B、x=1 和 y=1 均为关系表达式
C、x=1 为关系表达式, y=1 为赋值语句
D、x=1 为赋值语句, y=1 为关系表达式
62、设有声明:Dim X As Integer,如果Sgn(X) 的值为-1,则X的值是( D)。
A、任何整数B、0C、等于0的整数D、小于0的数
63、在一行内写多条语句时,每个语句之间用( B)符号分隔。 A、,B、:C、、D、;
64、从键盘上输入两个字符串,分别保存在变量str1、str2中。确定第二个字符串在第一个字符串中起始位置的函数是(D )。
A、LeftB、MidC、StringD、Instr
65、设S="中华人民共和国",表达式Left(S,1)+Right(S,1)+Mid(S,3,2)的值为( B )
A、"中华民国"B、"中国人民"
C、"中共人民" D、"人民共和"
66、下列可作为 Visual Basic中的变量名的是(A )。 A、FilenameB、A(A+B)C、254DD、Print
67、下面(A )是合法的变量名。
A、X_yzB、123abcC、IntegerD、X-Y
68、以下变量命名非法的是(C)。
A、xyz123B、printaaC、booleanD、Bernald
69、设有变量声明:Dim TestDate As Date,为变量TestDate正确赋值的表达方式是( A)。
A、TextDate=#1/1/2002#
B、TestDate=#“1/1/2002”#
C、TextDate=date(“1/1/2002”)
D、TestDate=Format(“m/d/yy”,“1/1/2002”)
70、设a=2,b=3,c=4,d=5,表达式a>b AND c<=d的值是(B )。
A、TrueB、False C、-1D、1
71、表达式6*8 Mod 9的值是( B)。
A、4 B、3C、6D、7
72、 假设变量bool_x是一个布尔型(逻辑型)的变量,则下面正确的赋值语句是( D ) A、bool_x = "False" B、bool_x = .False.
C、bool_x = #False# D、bool_x = False
73、设a=“Visual Basic”,下面使b=“Basic”的语句是( B)。 A、b=Left(a,8,12)B、b=Mid(a,8,5)
C、b=Rigth(a,5,5)D、b=Left(a,8,5)
74、语句Print Format$(32548.5,“###,###.###”)的输出结果是( B )。 A、32548.5B、32,548.5C、032,548.50D、32,548.50
75、以下声明语句中错误的是(B )。
A、Const var1=123 B、Dim var2 = 'ABC'
C、Dim x_y_z%D、Static var3 As Integer
76、可以同时删除字符串前导和尾部空白的函数是( C)。
A、LtrimB、RtrimC、TrimD、Mid
77、下列可为合法变量名的是( D)。
A、Integer B、FalseC、publicD、thanksgiving
78、变量未赋值时,数值型变量的值为( A)。
A、0B、空C、1D、无任何值
79、表达式16/4-2^5*8/4 Mod 5\2的值为( B)。
A、14B、4C、20D、2
80、下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是(D)。
A、If sex="男"And age<40 And (duty="教授"Or duty="副教授") Then n=n+1 B、If sex="男"And age<40 And InStr(duty,"教授")>0 Then n=n+1 C、If sex="男"And age<40 And Right(duty,2)= "教授" Then n=n+1 D、If sex="男"And age<40 And duty="教授"And duty="副教授" Then n=n+1 81、设a=3,b=5,则以下表达式值为真的是(B )。
A、a>=b And b>10
B、(a>b)Or(b>0)
C、(a<0)or(b<0)
D、(-3+5>a)And(b>0)
82、执行语句a=InputBox("Today","Tomorrow","Yesterday",,,"Day before yesterday",5), 将显示一个输入对
话框,在对话框的输入区中显示的信息是(A )。
A、Today
B、Tomorrow
C、Yesterday
D、Day before Yesterday
83、VB提供了结构化程序设计的3种基本结构,这3种基本结构是(B)。 A、递归结构,分支结构,循环结构
B、选择结构,循环结构,顺序结构
C、过程结构,输入、输出结构,转向结构
D、分支结构,循环结构,顺序结构
84、下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是(D)。
A、If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 B、If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 C、If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 D、If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 85、当语句w=IIf(4>10,”Red”,“Green”)执行后,变量w中的值是(C)。 A、Null
B、“Red”
C、“Green”
D、-1
86、赋值语句:a=123+MID(“123456”,3,2)执行后,a变量中的值是(D)。 A、“12334”
B、123
C、12334
D、157
87、设有语句x=InputBox(“AAAA”,“BBBB”,“”),程序运行后,所产生的对话框的标题应为( C)。
A、AAAA
B、空
C、BBBB
D、出错,不能产生对话框
88、下面正确的赋值语句是(C)。 A、x+y=30
B、y=π*r*r
C、y=x+30
D、3y=x
89、VB提供了结构化程序设计的三种基本结构,三种基本结构是( D)。
A、递归结构、选择结构、循环结构
B、选择结构、过程结构、顺序结构
C、过程结构、输入输出结构、转向结构 D、选择结构、循环结构、顺序结构
90、下面程序段求两个数中的大数,不正确的是(D)。
A、Max=IIf(x>y,x,y)
B、If x>y Then Max=x Else Max=y C、Max=x:If y>=x Then Max=y
D、If y>x Then Max=y :Max=x
91、下列程序段: Dim x If x Then Print x Else Print x+1 运行后,显示的结果是(A)。
A、1
B、0
C、-1
D、出错
92、以下不属于vb的三种基本结构的是(C)? A、顺序结构
B、选择结构
C、递归结构
D、循环结构
93、语句If x=1 Then y=1,下列说法正确的是(C)。
A、x=1和y=1均为赋值语句
B、x=1和y=1均为关系表达式
C、x=1为关系表达式,y=1为赋值语句 D、x=1为赋值语句, y=1为关系表达式 94、赋值语句:a=123 & MID(“123456”,3,2)执行后,a变量中的值是(C)。
A、“12334”
B、123
C、12334
D、157
95、下面程序段显示的结果是(A)。 Dim x
x=Int(Rnd)+5
Select Case x
Case 5
“优秀”
Case 4
Print“良好”
Case 3
Print“通过”
Case Else
Print“不通过”
End Select
A、优秀
B、良好
C、通过
D、不通过
96、为了给x,y,z这3个变量赋初值1,下面正确的赋值语句是(A)。
A、x=1:y=1:z=1
B、x=1,y=1,z=1
C、x=y=z=1
D、xyz=1
97、下列语句正确的是(C)
A、If A?B Then Print "A不等于B" B、If A<>B Then Printf A不等于B C、If A<>B Then Print "A不等于B" D、If A?B Print "A不等于B"
98、设有语句x$=InputBox(“输入数值”,“0”,“示例”),程序运行后,如果从键盘上输入数值10并按回车
键,则下列叙述中正确的是( D)。 A、变量X的值是数值10
B、在InputBox对话框标题栏中显示的是“示例” C、0是默认值
D、变量X的值是字符串“10”
99、运行下列程序段后,显示的结果为( B) J1=4: J2=9 If J1
2
1、求100以内的素数。
Private Sub Command1_Click()
Dim i As Integer, m As Integer, tag As Boolean
j = 0
For m = 2 To 100
tag = True:For i = 2 To m - 1
If (m Mod i) = 0 Then tag = False
Next i
If tag Then
Print m; " ";
j = j + 1
If j = 10 Then j = 0: Print
End If:Next m
End Sub
2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
Private Sub Command1_Click()
Dim a$, I%, c$, d$, n%
a = InputBox("输入字符串")
n = Len(a)
For I = 1 To Int(n / 2)
c = Mid(a, I, 1)
Mid(a, I, 1) = Mid(a, n - I + 1, 1) Mid(a, n - I + 1, 1) = c
Next I
Print a
End Sub
3、计算0~200之间所有能被11或5整除的数之和
、Private Sub Form_click()
Dim i%, sum%
Print
For i = 0 To 200
If i Mod 5 = 0 Or i Mod 11 = 0 Then sum = sum + i
Next i
Print "0~200之间所有能被5或100整除的数之和为:", sum
End Sub
4、输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,
或者能被400整除)
Private Sub Command2_Click()
Dim y%
y = Year(Now)
If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 Then
MsgBox (y & "年是闰年")
Else: MsgBox (y & "年是平年") End If
End Sub
5.输入x y z三个数,按从大到小显示。 Private Sub Command1_Click()
Dim x!, y!, z!
x = InputBox("input x")
y = InputBox("input y")
z = InputBox("input z")
Print " x y z" Print "排序前"; x; " "; y; " "; z
If x < y Then t = x: x = y: y = t: If x < z Then t = x: x = z: z = t: If y < z Then t = y: y = z: z = t: Print "排序后" & x & " " & y & " " & z End Sub
6、求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围是[1,9]的整数,n的范围是[5,10]。
如a=3,n=6,则
s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
Private Sub Command1_Click()
Dim s!, t!, i!, a%, n%
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 5)
t = 0: s = 0
Print "a="; a, "n="; n
For i = 1 To n
t = t * 10 + a
s = s + t
Print t;
Next i
Print
Print "s="; s
End Sub
9、找出被3、5、7除,余数为1的最小的5个正整数。 Private Sub Command1_Click()
Dim countn%, n%
countn = 0
n = 1
Do
n = n + 1
If n Mod 3 = 0 And n Mod 5 = 0 And n Mod 7 = 0 Then
Print n
countn = countn + 1
End If
Loop Until countn = 5 '或 while countn<5 End Sub
10、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。 Private Sub Command1_Click()
Dim mark!, aver!, i%, max1!, min1! aver = 0
For i = 1 To 7
mark = InputBox("输入第" & i & "位评为打得分") If i = 1 Then
max1 = mark: min1 = mark
Else
If mark < min1 Then
min1 = mark
ElseIf mark > max1 Then
max1 = mark
End If
End If
aver = aver + mark
Next i
aver = (aver - mark1 - min1) / 5 Print aver
End Sub
11、编程显示100~500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身)
程序:Private Sub Command1_Click() Dim i%, j%, k%, sxh, m!
m = 0
For i = 1 To 4
For j = 1 To 9
For k = 0 To 9
sxh = i * 100 + j * 10 + k If sxh = i ^ 3 + j ^ 3 + k ^ 3 Then m = sxh + m
End If
Next k
Next j
Next i
Print "m ="; m
End Sub
13、从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。
Private Sub Command1_Click() Dim x%, y%, z%
x = Val(InputBox("inputx")) y = Val(InputBox("inputx")) z = Val(InputBox("inputx")) If x + y > z And x + z > y And z + y > x Then
MsgBox ("能构成三角形")
If x = y And y = z Then
MsgBox ("是等边三角形")
ElseIf x = y Or y = z Or z = x Then MsgBox ("是等腰三角形")
ElseIf Sqr(x * x + y * y) = z Or Sqr(y * y + z * z) = x Or Sqr(x * x + z * z) = y Then
MsgBox ("是直角三角形")
Else: MsgBox ("是其他三角形") End If
Else: MsgBox ("不能构成三角形"): End If
End Sub
14、已知数组a(),编程删除a中第5个元素。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
Private Sub Form_Click()
Dim a(), i%, n%
a = Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
n = UBound(a)
For i = 0 To n
Print a(i);
Next i
Print
For i = 5 To n
a(i - 1) = a(i)
Next i
n = n - 1
ReDim Preserve a(n)
For i = 0 To n
Print a(i);
Next i
Print
End
21、随机产生10个[30,100]内的整数,求最大值、最小值和平均值
。程序代码如下:
Private Sub Form_Click()
Dim a(1 To 10) As Integer, i%, maxa%, mina%, avera!
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30) Next i
mina = a(1)
maxa = a(1)
avera = a(1)
For i = 2 To 10
If a(i) > maxa Then maxa = a(i) If a(i) < mina Then mina = a(i) avera = avera + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print
Print "max="; maxa, "min="; mina, "aver="; avera / 10
End Sub
22、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~
200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。
Private Sub Form_Click() Dim a%(1 To 4, 1 To 4), b%(1 To 4, 1 To 4), c%(1 To 4, 1 To 4)
Print "数组A"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1) Print Tab(j * 4); a(i, j);
Next j
Print
Next i
Print "数组B"
For i = 1 To 4
For j = 1 To 4
b(i, j) = Int(Rnd * 100 + 100) Print Tab(j * 6); b(i, j);
Next j
Print
Next i
'Print "数组C";
'For i = 1 To 4
'For j = 1 To 4
'c(i, j) = b(i, j) * a(i, j) 'Print Tab(j * 4); c(i, j);
'Next j
'Print
'Next i
Print "数组C";
For i = 1 To 4
For j = 1 To 4
c(i, j) = b(i, j) + a(i, j) Print Tab(j * 6); c(i, j);
Next j
Print
Next i
End Sub
30、编程输出n行杨辉三角图形,n由键盘输入。
程序代码如下:
Sub Command1_Click()
Dim n%, i%, j%
n = Val(Text1)
Dim a%(1 To 1000, 1 To 1000) For i = 1 To n
a(i, 1) = 1
Next i
For i = 1 To n
a(i, i) = 1
Next i
For j = 2 To i - 1
For i = 3 To n
a(i, j) = a(i - 1, j - 1) + a(i - 1, j) Next i
Picture1.Print ;
Next j
Picture1.Print Tab(j * n); a(i, j) For i = 1 To n
For j = 1 To i
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
End Sub
33、编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。
调用该过程。(提示:只能被1和自身整除的自然数称为素数。)
Function sushu%(ByVal x%)
Dim m%, Tag As Boolean, i%
m = Val(x)
Tag = True
For i = 2 To m - 1
If (m Mod i) = 0 Then Tag = False
Next i
If Tag Then sushu = x
End Function
Private Sub Command1_Click() Dim i%, k%
For i = 100 To 1000
If sushu(i) Then List1.AddItem i Next i
Sum = 0
For k = 0 To List1.ListCount - 1
Sum = Sum + Val(List1.List(k))
Next k
Label1 = "[100,1000]内所有素数和为:" & Sum
End Sub
35、已知一维数组a()中的元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数
组a,并使a依然有序。
程序代码如下:
Private Sub Form_load()
Dim a(), i%, k%, x%, n%
a = Array(1, 4, 7, 9, 12, 14, 23, 56) n = UBound(a)
For i = 0 To n
List1.AddItem a(i)
Next i
End Sub
Private Sub command1_Click() x = Val(Text1)
For k = 0 To List1.ListCount - 1 If x < Val(List1.List(k)) Then Exit For
Next k
List1.AddItem x, k
End Sub
41、编一个冒泡排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
Sub Sort1(a())
Dim iMin%, i%, j%, t%
For i = 0 To UBound(a) - 1
For j = 0 To UBound(a) - 1 - i
If a(j) > a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next j
Next i
For i = 0 To UBound(a)
Print a(i);
Next i
Print
End Sub
Private Sub Form_Click()
Dim b()
Print "排序前"
b = Array(56, 32, 79, 21, 5, 69, 98, 14, 3, 15)
For i = 0 To UBound(b)
Print b(i);
Next i
Print
Print "排序后"
Call Sort1(b())
End Sub
42、编一个选择排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
Sub Sort1(a())
Dim iMin%, i%, j%, t%
For i = 0 To UBound(a) - 1
iMin = i
For j = i + 1 To UBound(a)
If a(j) < a(iMin) Then iMin = j
Next j
t = a(i): a(i) = a(iMin): a(iMin) = t
Next i
For i = 0 To UBound(a)
Print a(i);
Next i
Print
End Sub
Private Sub Form_Click()
Dim b(), i%
Print "排序前"
b = Array(56, 32, 79, 21, 5, 69, 98, 14, 3, 15) For i = 0 To UBound(b)
Print b(i);
Next i
Print
Print "排序后"
Call Sort1(b())
End Sub
43、编一个选择排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
Private Sub Command1_Click()
Dim iA(1 To 10)
n = 6
iA(1) = 8: iA(2) = 6: iA(3) = 9: iA(4) = 3: iA(5) = 2: iA(6) = 7
For i = 1 To n - 1 ' 进行n-1遍比较
iMin = i ' 对第i遍比较时,初始假定第i个元素最小
For j = i + 1 To n ' 在数组 i~n个元素中选最小元素的下标
If iA(j) < iA(iMin) Then iMin = j
Next j
t = iA(i) 'i~n个元素中选出的最小元素与第i个元素交换
iA(i) = iA(iMin)
iA(iMin) = t
For k = 1 To n
Print iA(k);
Next k
Print
Next i
44、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
Private Sub Command1_Click()
Dim iA(1 To 10)
n = 6
iA(1) = 8: iA(2) = 6: iA(3) = 9: iA(4) = 3: iA(5) = 2: iA(6) = 7
Print "冒泡法排序数据变化过程"
Print " 8, 6, 9, 3, 2, 7"
Print "-----------------------------"
For i = 1 To n - 1 ' 进行n-1遍比较
' 对第i遍比较时,初始假定第i个元素最小
For j = n To i + 1 Step -1 ' 在数组 i~n个元素中选最小元素的下标
If iA(j) < iA(j - 1) Then
t = iA(j)
iA(j) = iA(j - 1)
iA(j - 1) = t
End If
Next j
Print "i="; i; Spc(i * 3 - 3);
For k = i To n
Print iA(k);
Next k
Print
Next i
End Sub
31、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行
和第3行对应元素交换。
Private Sub Form_Click()
Dim a%(1 To 4, 1 To 4), i%, j%
Print "排序前"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1)
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
Print "排序后"
For j = 1 To 4
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 1 To 4
For j = 1 To 4
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
End Sub
38、随机产生10个[30,100]内的整数,求最小值及所对应的下标。
21.随机产生30~100(包括30、100)中的十个正整数,求最大值、最小值、平均值,并显示整个数组的值和结
果。
Private Sub Form_Click()
Dim a(1 To 10) As Integer, i%, maxa%, mina%, avera!
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Next i
mina = a(1)
maxa = a(1)
avera = a(1)
For i = 2 To 10
If a(i) > maxa Then maxa = a(i)
If a(i) < mina Then mina = a(i)
avera = avera + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print
Print "max="; maxa, "min="; mina, "aver="; avera / 10
End Sub
15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。
28、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。(下三角、全部元素)
Dim a%(4, 4), i%, j%
Private Sub Form_load()
For i = 0 To 4
For j = 0 To 4
a(i, j) = Int(Rnd * 11 + 10)
Next j
Next i
End Sub
Private Sub Command1_Click()
Picture1.Cls
For i = 0 To 4
For j = 0 To 4
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
End Sub
Private Sub Command2_Click()
Picture2.Cls
For i = 0 To 4
For j = i To 4
Picture2.Print a(i, j); "";
Next j
Picture2.Print
Next i
End Sub
Private Sub Command3_Click()
Picture3.Cls
For i = 0 To 4
For j = 0 To i
Picture3.Print a(i, j); "";
Next j
Picture3.Print
Next i
End Sub
29、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)
10、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个
最低分的计算办法,求出该参赛者的平均得分。 Private Sub Form_Click()
Dim a(6) As Integer, i%, t%, s!, max%, min%, imin%, imax%
Randomize
For i = 0 To 6
a(i) = InputBox("输入评委所打的分数") '也可以用随机数产生
'a(i) = Int(Rnd * 31 + 70)
Next i
For i = 0 To 6
Print a(i);
Next i
Print
imax = 0: max = a(0)
For i = 1 To 6
If a(i) >= max Then max = a(i): imax = i Next i
t = a(0): a(0) = a(imax): a(imax) = t imin = 6: min = a(6)
For i = 0 To 5
If a(i) <= min Then min = a(i): imin = i Next i
t = a(6): a(6) = a(imin): a(imin) = t
Print "除去最高分和最低分之后的分数" For i = 1 To 5
Print a(i);
Next i
For i = 1 To 5
s = s + a(i)
Next i
Print
Print "该参赛者的平均得分为"; s / 5 End Sub
12、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。
Private Sub Command1_Click() Text1 = Int(Rnd * 900 + 100) End Sub
Private Sub Command2_Click() Dim x%, x1%, x2%, x3%
x = Val(Text1)
x1 = x Mod 10
x2 = (x Mod 100) \ 10
x3 = x \ 100
Text2 = x1 * 100 + x2 * 10 + x3 End Sub
27、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最小值及所对应的下标。
Dim a%(3, 3), i%, j%, imin% Private Sub Command1_Click()
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 21 + 40)
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
imax = 0
For i = 0 To 3
For j = 0 To 3
If a(i, imin) > a(i, j) Then
imin = j
End If
Next j
Picture2.Print "第"; i + 1; "行"; "最小值为"; a(i, imin); "下标为"; "("; i; imin; ")"
Next i
End Sub
39、编写一个判断素数的通用过程(函数或子程序)。调用该过程,计算并输出区间[1000,1100]内所有素数的
和。(提示:只能被1和自身整除的自然数称为素数。)
10.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现)。调用该过程。(提示:只能被1 和自身整除的自然数成为素数)
Function sushu%(ByVal x%)
Dim m%, Tag As Boolean, i%
m = Val(x)
Tag = True
For i = 2 To m - 1
If (m Mod i) = 0 Then Tag = False
Next i
If Tag Then sushu = x
End Function
Private Sub Command1_Click()
Dim i%, k%
For i = 100 To 1000
If sushu(i) Then List1.AddItem i
Next i
Sum = 0
For k = 0 To List1.ListCount - 1
Sum = Sum + Val(List1.List(k))
Next k
Label1 = "[100,1000]内所有素数和为:" & Sum End Sub
23、随机产生15个小写字母,放在字符数组中。提示:c=chr(int(rnd*26+97))
.Private Sub Command1_Click()
Cls
Dim a%(14), b$(14), i%, j%
For i = 0 To 14
a(i) = Int(Rnd * 26 + 97)
b(i) = Chr(a(i))
Print b(i);
Next i
End Sub
25、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~
200,数组C是A和B相加得到的。请编程生成并输出A,B,C。 Private Sub Form_Click()
Dim a%(1 To 4, 1 To 4), b%(1 To 4, 1 To 4), c%(1 To 4, 1 To 4)
Print "数组A"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1)
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
Print "数组B"
For i = 1 To 4
For j = 1 To 4
b(i, j) = Int(Rnd * 100 + 100) Print Tab(j * 6); b(i, j);
Next j
Print
Next i
'Print "数组C";
'For i = 1 To 4
'For j = 1 To 4
'c(i, j) = b(i, j) * a(i, j) 'Print Tab(j * 4); c(i, j);
'Next j
'Print
'Next i
Print "数组C";
For i = 1 To 4
For j = 1 To 4
c(i, j) = b(i, j) + a(i, j) Print Tab(j * 6); c(i, j);
Next j
Print
Next i
End Sub
16、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出每行中的最大值和下标。
Dim a%(3, 3), i%, j%, imax% Private Sub Command1_Click()
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 31 + 20)
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
imax = 0
For i = 0 To 3
For j = 0 To 3
If a(i, imax) < a(i, j) Then
imax = j
End If
Next j
Picture2.Print "第"; i + 1; "行"; "最大值为"; a(i, imax); "下标为"; "("; i; imax; ")"
Next i
End Sub
20、输入一系列字符串,将字符串按递减次序排列。请编程实现 Dim a() As String, n%, i%, j%
Private Sub Command1_Click()
n = Text1
ReDim a(1 To n) As String
For i = LBound(a) To UBound(a)
a(i) = InputBox("请输入字符串")
Picture1.Print a(i); Spc(1);
Next i
End Sub
Private Sub Command2_Click()
For i = 1 To n
For j = 1 To n - i
If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t
Next j
Next i
For i = 1 To n
Picture2.Print a(i); Spc(1);
Next i
End Sub
Private Sub Form_Load()
Text1 = ""
End Sub
7、计算100~300之间所有能被3和7整除的数之和。
8、编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)
34、随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
26、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,求它的两条对角线上元素之和。
37、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第2行
和第4行对应元素交换。、
17、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最大值及所对应的下标。
18、输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序 。
19、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
24、随机产生10个[30,100]内的整数,求最大值及所对应的下标 32、随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65))
老师没有给的编程题
7.随机产生50—100范围内的20个数,显示最值和平均值: Private Sub Command1_Click()
Dim i%, min%, max%, avg%, x%
min = 100
max = 50
avg = 0
For i = 1 To 20
x = Int(Rnd * 51 + 50)
Print x;
If x > max Then max = x
If x < min Then min = x
avg = avg + x
Next i: Print
Print "最小值="; min, "最大值="; max, "平均值="; avg / 20 End Sub
15.编一子过程Procmin(a(),amin),求一维数组中a的最小值amin. (随机产生10个200-400之间的数,并显示数组各元素;调用子函数,显示最小值)
程序代码:
Private Sub Form_Click()
Dim a(1 To 10), amin, i%
For i = 1 To 10
a(i) = Int(Rnd * 200 + 200)
Print a(i);
Next i
Call s(a(), amin)
Print
Print "min="; amin
End Sub
Sub s(b(), min)
Dim i%
min = b(LBound(b))
For i = LBound(b) + 1 To UBound(b)
If b(i) < min Then min = b(i)
Next i
End Sub
31、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行
和第3行对应元素交换。
Private Sub Form_Click()
Dim a%(1 To 4, 1 To 4), i%, j%
Print "排序前"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1)
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
Print "排序后"
For j = 1 To 4
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 1 To 4
For j = 1 To 4
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
End Sub
5.已制X、Y、Z3个变量中存放了3个不同的数,比较它们的大小并进行调整,使X〈Y〈Z
Private Sub Command1_Click()
x = Val(Text1)
y = Val(Text2)
z = Val(Text3)
If y < x Then
t = y: y = x: x = t ' y与x交换
End If ' 使得y>x
If z < y Then
t = z: z = y: y = t ' z与y交换使得z>y
If y < x Then ' 此时的x,y已不是原x,y的值
t = y: y = x: x = t
End If
End If
Print "X="; x, "Y="; y, "Z="; z End Sub
40.编一子过程Procmin(a(),amin),求一维数组中a的最小值amin.
(随机产生10个200-400之间的数,并显示数组各元素;调用子函数,显示最小值)
Private Sub Form_Click()
Dim a(1 To 10), amin, i%
For i = 1 To 10
a(i) = Int(Rnd * 200 + 200)
Print a(i);
Next i
Call s(a(), amin)
Print
Print "min="; amin
End Sub
Sub s(b(), min)
Dim i%
min = b(LBound(b))
For i = LBound(b) + 1 To UBound(b) If b(i) < min Then min = b(i) Next i
End Sub
6、求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围是[1,9]的整数,n的范围是[5,10]。
如a=3,n=6,则s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
Private Sub Form_click() Dim s!, t!, i!, a%, n%
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 5)
t = 0: s = 0
Print "a="; a, "n="; n
For i = 1 To n
t = t * 10 + a
s = s + t
Print t
Next i
Print
Print "s="; s
End Sub
3 0到200 被5 或11 整除的数的和 Private Sub Command1_Click() Dim i%
For i = 0 To 200
If i Mod 11 = 0 Or i Mod 5 = 0 Then
Print i;
Sum = Sum + i
End If
Next i
Print
Print "总和是"; Sum
End Sub
30.已知一维数组a中元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数组,
使a仍保持有序。
Private Sub Form_load()
Dim a(), i%, k%, x%, n%
a = Array(1, 4, 7, 9, 12, 14, 23, 56)
n = UBound(a)
For i = 0 To n
List1.AddItem a(i)
Next i
End Sub
Private Sub command1_Click() x = Val(Text1)
For k = 0 To List1.ListCount - 1 If x < Val(List1.List(k)) Then Exit For
Next k
List1.AddItem x, k
End Sub
9找出被3、5、7除,余数 均为1的最小的5个正整数。
Private Sub Command1_Click() Dim countN%, n%
countN = 0
n = 1
Do
n = n + 1
If n Mod 3 = 1 And n Mod 5 = 1 And n Mod 7 = 1 Then
Print n
countN = countN + 1
End If
Loop Until countN = 5
End Sub