二级vb上机考试题

2024-08-26

二级vb上机考试题(通用5篇)

1.二级vb上机考试题 篇一

上机操作练习题

1.某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。

Option explicit Dim a(1 to 20)as integer, I as integer, j as integer, t as integer Private Sub Form_Load()Show Print “原始数组是:” Randomize For i = 1 To 20

a(i)= Int(Rnd * 90)+ 10

Print a(i);If i Mod 10 = 0 Then Print Next i Print Print “现在数组是:” For i = 1 To 10

j = 211

a(k)= a(k + 1)

Next k

ReDim Preserve a(UBound(a)1 End If i = i + 1 Loop While(i <= UBound(a))If flag = False Then MsgBox n & “不在该数组中” Else Print “删除” & n & “后的数组是:” For i = 0 To UBound(a)Print a(i);Next i End If End Sub 3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。

注意:要求利用动态数组,能够实现多次插入 Private Sub Form_Load()Show n = 8: ReDim a(n)a = Array(5, 15, 23, 52, 68, 88, 90, 99)n = n + 1: ReDim Preserve a(n)m = InputBox(“请输入要插入的数据:”)For i = 1 To n1)Next k a(k)= m For i = 1 To n

Print a(i);Next i Print End Sub 4.6个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。

如:

歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分

/ 19

Option Base 1

Private Type geshou

xuhao As String

fenshu(6)As Integer

score As Integer

pingjun As Integer End Type Dim singer(1 To 4)As geshou Private Sub Command1_Click()For i = 1 To 4 For j = 1 To 6

singer(i).fenshu(j)= Int(Rnd * 100)

singer(i).xuhao = “歌手” & i Next Next Call paixu End Sub

Private Sub paixu()Dim p As geshou For i = 1 To 4

For j = 1 To 5

For k = j To 6

If singer(i).fenshu(j)> singer(i).fenshu(k)Then

t = singer(i).fenshu(j)

singer(i).fenshu(j)= singer(i).fenshu(k)

singer(i).fenshu(k)= t

End If

Next

Next Next For i = 1 To 4 For j = 2 To 5

singer(i).score = singer(i).score + singer(i).fenshu(j)Next singer(i).pingjun = singer(i).score / 4 Next

For i = 1 To 3 For j = i To 4

If singer(i).score < singer(j).score Then

p = singer(i): singer(i)= singer(j): singer(j)= p

End If Next

/ 19

Next For i = 1 To 4 Print singer(i).xuhao & “得分:” & singer(i).pingjun Next End Sub Private Sub Form_Load()End Sub 10个评委给10个选手打分 Private Sub Form_Load()Show n = UBound(b)For i = 1 To 10

For j = 1 To 10

a(i, j)= Val(InputBox(“请第” & j & “位评委给第” & i & “位选手打分:”))Next j Next i For i = 1 To 10

max = a(i, 1): sum = 0

min = a(i, 1): ave = 0

For j = 1 To 10

If a(i, j)> max Then max = a(i, j)

If a(i, j)< min Then min = a(i, j)

sum = sum + a(i, j)

Next j

ave =(summin)/(n1

For j = i + 1 To n

If b(i)< b(j)Then

t = b(i): b(i)= b(j): b(j)= t

End If

Next j Next i Print “选手的得分由高到低为:” For i = 1 To 10

Print b(i);Next i End Sub 5.编写函数求一元二次方程ax2+bx+c=0的解。

注意:要求考虑方程有两相等实根、两不等实根和两个虚根的情况。Dim a As Single, b As Single, c As Single Dim s As Single a = InputBox(“请输入a”)

/ 19

b = InputBox(“请输入b”)c = InputBox(“请输入c”)s = b ^ 2Sqr(s))/ 2 * a End If End Sub 6.任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。

Call tongji(a, n, m, o)Print “数字:” & n & Chr(13)& “小写:” & m & Chr(13)& “大写:” & o End Sub Private Sub tongji(a As String, n As Integer, m As Integer, p As Integer)For i = 1 To Len(a)If Asc(Mid(a, i, 1))> 47 And Asc(Mid(a, i, 1))< 58 Then

n = n + 1 ElseIf Asc(Mid(a, i, 1))> 96 And Asc(Mid(a, i, 1))< 123 Then

m = m + 1 ElseIf Asc(Mid(a, i, 1))> 64 And Asc(Mid(a, i, 1))< 91 Then

p = p + 1 End If Next End Sub 7.随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。

Option Base 1 Private Sub Form_Load()Dim a(5, 5)As Integer Dim s As Integer For i = 1 To 5 For j = 1 To 5

If i = j Or i = 6Asc(Mid(s1, i, 1))+ 64)ElseIf Asc(Mid(s1, i, 1))< 123 And Asc(Mid(s1, i, 1))> 96 Then convert = convert & Chr(1235: g = e

For j = 1 To n

If j > i Then

a(i, j)= 0

Else

If i = j Then

a(i, j)= 1

Else

a(i, j)= a(i1, ji + 1);String(2 *(i1)/ 2 To 1 Step(-1)

c = c + 1

s = Chr(64 + ii + c + 1);String(2 *(j1)/ 2 Else

x = x / 2 End If i = i + 1 Loop

ReDim Preserve a(UBound(a))If y < 0 Then For i = 1 To UBound(a)convert = convert & a(i)Next convert = “-” & convert Else For i = 1 To UBound(a)

/ 19

convert = convert & a(i)Next End If

End Function Private Sub Command1_Click()Dim y As Integer Text1.Text = “" y = InputBox(”请输入十进制数字“)Text1.Text = convert(y)

End Sub

Private Sub Form_Load()

End Sub 14.输入一个整数N,产生N个随机数(范围1—10*N),然后采用任何2种算法实现由小到大的排序。将排序前后的数据显示出来。

Option Base 1 Private Sub Command1_Click()Dim a()As Integer, n As Integer n = InputBox(”请输入数列项数“)ReDim a(n)For i = 1 To n

a(i)= Int(Rnd * 10 * n + 1)

Print a(i);Next Print ReDim Preserve a(n)For i = 1 To n1 For j = 1 To n2)+ fact(n2 s = s1 + s2: t = s2: s2 = s: s1 = t Next End Function

Private Sub Command2_Click()n = InputBox(”请输入n“)Print s(n)End Sub 17.编写2个函数,分别采用递归法和递推法求斐波纳契数列的第n个月的兔子数,n使用inputbox输入,调用函数的结果在窗体上显示。Private Sub Command1_Click()List1.Clear Dim i As Integer For i = Val(Text1.Text)To Val(Text2.Text)If isprime(i)= True Then

List1.AddItem(i)

c = c + 1

If i Mod 10 = 9 Then

/ 19

List1.Selected(c1 If n Mod i = 0 Then

isprime = False

Exit For End If Next End Function 18 Dim sum As Long Private Sub Command1_Click()

Dim i As Integer, j As Integer, a(40)As Long

a(1)= 1

a(2)= 1

For i = 3 To 40

a(i)= a(i2)

Next i

sum = 0

For j = 1 To 40

sum = sum + a(j)

Next j End Sub

Private Sub Command2_Click()

Open ”out18.txt“ For Output As #1

Print #1, ”数列1,1,2,3,5,8…的前四十项的之和是:“

Print #1, sum

Close #1 End Sub 1.百钱买百鸡

Option Explicit

Private Sub Command1_Click()Dim a As Integer, b As Integer For a = 1 To 34

For b = 1 To 20

If 3 * a + 5 * b +(100b)/ 3 = 100 Then

/ 19

Print a;

Print b;

Print 100b

End If

Next b Next a End Sub 2.分钱作业

Private Sub Command1_Click()Dim a As Single,b as single,c as single a = Text1.Text b = Fix(a / 100)Print ”100元:“;Print b c = ab * 50

b = Fix(c / 20)Print ”20元:“;Print b c = c0.05 * b b = Fix((c + 0.005)/ 0.02)Print ”0.02元:“;Print b c = c1

If a(i)= a(j)Then

GoTo aaa

End If

Next j

Next i For i = 1 To 10

Print a(i);Next i Print End Sub

Private Sub Command2_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9

For j = 1 + i To 10

If a(i)> a(j)Then

t = a(j)

a(j)= a(i)

a(i)= t

End If

Next j Next i For i = 1 To 10

Print a(i);Next i Print

End Sub

Private Sub Command3_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9

For j = 1 To 10c)> 10 ^(-5)i =(a + b)/ 2

If i ^ 2c = 0 Then

Exit Do

Else

a = i

End If Loop MsgBox(i)End Sub 7.闰年

Option Explicit

Private Sub 计算_Click()Dim i As Integer i = InputBox(”请输入一个年份“)If i Mod 4 = 0 And i Mod 400 = 0 Then

If i Mod 100 <> 0 Then

MsgBox ”NOT“

Else

MsgBox ”YES“

End If Else

MsgBox ”NOT“ End If

End Sub 8.三角

Option Explicit Private Sub Command1_Click()

/ 19

Dim a As Single Dim b As Single Dim c As Single Dim p As Single Dim s As Single

a = Text1.Text b = Text2.Text c = Text3.Text

p =(a + b + c)/ 2

s = Sqr((pb)* p +(p1

If n Mod i = 0 Then

MsgBox ”NOT“

Exit For

End If Next i If i = n Then

MsgBox ”YES“ End If End Sub

Private Sub Command2_Click()

Dim a As Boolean, n As Double, i As Double a = False n = InputBox(”请输入一个数:“)For i = 2 To n-1

If n Mod i = 0 Then

a = True

Exit For

End If Next i If a = True Then

/ 19

MsgBox ”NOT“ Else

MsgBox ”YES“ End If End Sub

Private Sub Command3_Click()Dim n As Double, i As Double n = InputBox(”请输入一个数:“)i = 2 Do While i < n

If n Mod i = 0 Then

MsgBox ”NOT“

Exit Do

End If i = i + 1 Loop If i = n Then

MsgBox ”YES“ End If End Sub

Private Sub Command4_Click()Dim n As Double, i As Double, sushu As Boolean n = InputBox(”请输入一个数:“)i = 2 sushu = True Do While i < n And sushu = True

If n Mod i = 0 Then

sushu = False

End If i = i + 1 Loop If sushu = True Then

MsgBox ”YES“ Else

MsgBox ”NOT" End If End Sub

/ 19

2.二级vb上机考试题 篇二

关键词:江苏计算机二级 (VC++) ,上机考试分析与策略

江苏计算机二级 (VC++) 上机考试, 主要是针对程序改错和类的编程进行考核, 程序改错考核的是学生对程序的理解和调试能力;而类的编程主要是考核学生对面向对象的编程能力。而这两类题的解答在笔者看来, 都有很多可以应对的技巧和策略, 可分别对其分析后, 进行归纳总结。

1 改错题

一般程序的错误分为两种, 一种是语法错误, 程序一开始编译时就能发现, 也比较容易改正;另一种是逻辑错误, 编译时不会报错, 但在运行时, 可能运行不出来, 或运行不出正确结果, 这时可以由运行的结果, 倒退回去找错, 看为什么会出现上述结果, 推算出错误之处予以改正。

1.1 改错题解题步骤

改错题首先要读题干, 读懂下面程序要实现什么功能。接下来读程序, 先别急着改错, 尽量弄懂程序如何实现上述功能, 各程序段分别做了哪些操作, 来实现以上功能。接下来才开始改程序, 看每个程序语句对完成上述功能所要完成的任务, 如果没有看懂的要再联系上下程序段看, 如果没有做到所要完成的任务, 再看应该怎么改, 改完整个程序后可以编译和运行, 也可以边改边编译或运行。

1.2 常见错误要点分析

1.2.1 预编译命令

(1) 包含库函数相应的头文件, 如果包含的头文件写错, 这时程序中头文件所在的相应库函数不能被识别而报错。

如:#i n c l u d e//改为#include

#include//改为#include

(2) 宏定义不正确, 这时编译出错不是在宏定义, 而是在宏代换后的程序行。因为宏定义是预编译处理, 在程序编译前中作代换不作语法检查, 代换后编译时才作语法检查。

如:#define pi 3.14;//改为#define pi 3.14

1.2.2 变量

变量定义是否正确, 变量是否有正确的初始值。变量定义的位置决定了变量的作用域。变量只在其作用域有效。变量定义后如要参与运算, 变量需要给出正确的初始值。

上面和变量s给出了定义, 但没赋初值, 无法正确对数组元素进行求和。

1.2.3 数组

定义一维数组时数组长度要求为正整型常量, 定义二维数组时列数不能省略。数组中元素下标是否超界, 是数组元素使用时经常忽略的问题, 在编译时也并不对数组元素下标超界作语法检查, 但在运行时会报错。

如:int a[5]={1, 2, 3, 4, 5}, i;

for (i=0;i<=5;i++)

cout<

上面数组元素下标超界, 5个长度的数组没有元素a[5]。

1.2.4 函数

函数的原型声明是否与函数的定义对应。函数的定义如有返回值, 函数定义是否有正确的返回类型, 返回的是否为正确的结果表达式。函数如没有返回值, 返回类型是否为void。函数调用与函数定义是否对应, 函数调用的实参与函数定义的形参进行参数传递时是否匹配。

1.2.5 流程结构

程序的流程控制中注意区分if语句与while语句及for语句, if语句只作一次选择判断, 而while语句及for语句是做循环判断, 如果判断为非0即真, 执行循环体, 一直到循环判断为0, 才退出循环。另外要区别循环体中continue与break, continue是结束本次循环, 而break是退出所在的循环。

1.2.6 判断表达式

要关注选择或循环的判断表达式是否正确。判断表达式中要注意区分赋值号 (=) 与关系相等运算符 (==) 是否混淆;逻辑判断表达式中, ==与!=是否混淆, !运算是加还是不加, &&与||是否混淆。

1.2.7 指针

指针就是地址, 包括常量地址和指针变量。常量地址主要是指数组名。数组名是常量地址不能被重新赋值或做自加运算。一维数组名是数组第0个元素的地址。而二维数组名表示的是第0行的行地址。

指针变量包括指向数据类型变量的指针变量和行指针变量。指向数据类型变量的指针变量, 是否用同类型的变量或元素的地址赋值, 在其前加*表示指针指向的变量或元素。另外要区分指针变量还是指针指向变量的自加与自减。如*p++和 (*p) ++的区别, 前者是指针变量作后置++, 后者是指针变量指向的变量作后置++。行指针变量, 是否用相同列数的行地址赋值, 行指针前加*表示同行第0列元素的地址, 元素地址前加*表示元素。反过去的转换加&运算符。当函数返回类型是指针时, 要求认清返回的是否为正确的地址。

1.2.8 逻辑错误

逻辑错误, 在编译时不能被发现, 在运行时可能运行不出来或运行结果不对。改逻辑错误前一定先看清题目, 理解程序要实现什么功能, 再看程序, 理解程序的算法, 即程序是如何实现题目所要实现的功能, 再分析每一行代码进行改错。

2 类的编程

类的编程主要来源于面向对象的程序设计思想。定义的一个类表示的是某一类事物, 包含描述其静态属性的数据成员和动作行为的成员函数。用这个类来具体定义一个特定事物就是对象。这种类的对象, 则拥有类所描述的所有静态属性和动作行为。

2.1 类定义的一般思路

(1) 类中先定义私有数据成员, 再定义公有的成员函数, 每一个成员函数用一对{}括起来, 整个类用一对花括号括起来加分号结束。

(2) 类中的成员函数主要包含构造函数, 输出成员函数及功能成员函数, 功能成员函数需要掌握相应类型的一些常用算法, 如:数值求阶乘、数字与数字字符转换、数位分离、求素数、水仙数等, 一维数组的选择排序、二分查找法, 求最大值最小值等, 二维数组的左移和右移、对角线、外围元素等, 字符串的遍历、逆序、插入, 删除和找子串等。另外对于指针成员, 类中还需定义析构函数来释放指针指向的动态空间等。

(3) 主函数中根据构造函数的形参, 准备相应实参, 定义类的对象, 再通过对象来调用类定义的成员函数, 而对象成员函数中所操作的成员就是当前对象的成员。

2.2 不同类型成员类的编程

对于等级考试中类的编程框架, 一般比较固定, 先定义一个类, 在主函数中定义类的对象, 并调用对象的成员函数进行类的测试。类的定义中, 先写私有的数据成员, 再写公有的成员函数。公有成员函数一般包括构造函数, 输出函数和一至两个功能成员函数或辅助函数。功能成员函数或辅助函数因不同的题目和算法而不同;而对于构造函数和输出成员函数, 则可根据其不同类型的数据成员进行如下归纳。

2.2.1 数值类型变量成员

数据类型成员, 是单个变量做数据成员, 构造函数中形参直接为变量赋值, 但不是所有成员变量都能直接由构造函数赋值, 有些成员变量的值需要进行相应运算和操作才能被求值, 这时通常会用功能成员函数来实现相应成员变量的赋值。

2.2.2 数值型数组成员

构造函数一般用循环赋值, 一维的用一重循环给一维数组成员的元素赋值, 二维的用两重循环给二维数组成员的元素赋值。还有一些数组不是直接由构造函数赋值, 而是派生生成的, 利用成员函数给派生数组元素赋值。输出函数, 一维的用一个循环将一维数组成员的元素一行输出, 再换行;二维的外行循环体包含内列循环和换行语句, 将二维数组成员的元素按行输出。

2.2.3 数值型指针成员

构造函数中一般先用new数值类型[数组长度], 返回数组的首地址给指针成员赋值, 再用循环给数组元素赋值。指针成员的赋值也可以在成员函数中做。析构函数用delete[]指针。输出函数利用循环将指针指向的数组元素按行输出。

2.2.4 字符类型数组成员

构造函数用拷贝函数将形参数组的字符串整体拷贝给字符数组成员, 输出函数直接输出字符数组名, 可以将字符数组成员指向的字符串作整体输出。

2.2.5 字符类型指针成员

构造函数一般是先用new char[形参指针指向字符串的字符个数+1], 定义一个动态字符数组, 返回动态字符数组的首地址给字符指针成员, 再将形参指向的字符串用拷贝函数拷到字符指针指向的字符数组, 析构函数用delete[]指针, 释放指针指向的动态内存空间, 输出函数直接输出字符指针成员指向的字符串。

3 总结

通过归纳计算机二级VC++上机考试改错题的各种类型错误, 并对各种类型的数据成员进行类的编程, 可以有针对性地作一些相应的练习来加强上机应考的能力, 本文中所提到的一些策略, 希望能对上机考试的复习起到抛砖引玉之功效。

参考文献

[1]凌翌.计算机等级考试与高校计算机基础教学改革[J].计算机教育, 2010, 11.

[2]李联宁.计算机等级考试的研究与思考[J].计算机教育, 2011, 10.

[3]高校计算机等级考试的教学与思考[J].中国科技信息, 2005, 2.

[4]黄霞.独立学012院计算机文化基础教学改革探索[J].无线互联科技, 2012, 10.

3.计算机二级上机试题模拟43 篇三

1.基本操作题

在考生文件夹下有一个数据库文件“samp1.mdb”和一个图像文件“photo.bmp”,在数据库文件中已经建立了一个表对象“tStud”。请按以下操作要求,完成各种操作:

(1)设置“ID”字段为主键;

(2)设置“党员否”字段的默认值属性为是;

(3)设置“年龄”字段的有效性规则和有效性文本,具体规则是:输入年龄必须大于等于15并且小于等于30,有效性文本内容为:输入的年龄不在范围内,请重新输入;

(4)将学号为“20011002”学生的“照片”字段值设置为考生文件夹下的“photo.bmp”图像文件(要求使用“由文件创建”方式);

(5)将冻结的“姓名”字段解冻;

(6)将“tStud”表中的数据导出到文本文件中,并以“tStud.txt”文件名保存到考生文件夹下。

2.简单应用题

在考生文件夹下有一个数据库文件“samp2.mdb”,里面已经设计好表对象“tTeacher”、“tStud”、“tCourse”和“tGrade”,请按以下要求完成设计:

(1)创建一个查询,查找并显示“教师姓名”、“职称”、“课程名称”和“上课日期”四个字段的内容,所建查询命名为“qT1”;

(2)创建一个查询,根据教师姓名查找某教师的授课情况,显示“教师姓名”、“课程名称”和“上课日期”3个字段的内容,所建查询命名为“qT2”,当运行该查询时,应显示参数提示信息“请输入教师姓名”;

(3)创建一个查询,查找学生的课程成绩大于等于80且小于等于100的学生情况,显示“学生姓名”、“课程名称”和“成绩”3个字段的内容,所建查询命名为“qT3”;

(4)创建一个查询,统计各个年级不同课程的平均成绩,显示“年级”、“课程名称”和“平均成绩”,并按“年级”降序排列,所建查询命名为“qT4”。(假设“学生ID”字段的前4位代表年级)

3.综合应用题

在考生文件夹下有一个数据库文件“samp3.mdb”,里面已经设计好表对象“tStud”,同时还设计出窗体对象“fStud”。请在此基础上按照以下要求补充“fStud”窗体的设计:

(1)在窗体的窗体页眉节区中距左边0.4厘米、距上边1.2厘米处添加一个直线控件,控件宽度为10.5厘米,控件命名为“tLine”;

(2)将窗体中名称为“lTalbel”的标签控件上的文字颜色改为“蓝色”(蓝色代码为

16711680)、字体名称改为“华文行楷”、字体大小改为22;

(3)将窗体边框改为“细边框”样式,取消窗体中的水平和垂直滚动条、记录选择器、导航按钮和分隔线,保留窗体的关闭按钮;

(4)假设在“tStud”表中,“学号”字段的第5位和第6位编码代表该学生的专业信息,当这两位编码为“10”时表示“信息”专业,为其他值时表示“管理”专业。设置窗体中名称为“tSub”的文本框控件的相应属性,使其根据“学号”字段的第5位和第6位编码显示对应的专业名称;

(5)在窗体中有一个“退出”命令按钮,名称为“CmdQuit”,其功能为关闭“fStud”窗体。请按照VBA代码中的指示将实现此功能的代码填入指定的位置中。1.基本操作题(1)【解题步骤】

步骤1:打开“samp1.mdb”数据库窗口,选中“表”对象,右键单击“tStud”选择【设计视图】。步骤2:右键单击“ID”行选择【主键】。

(2)【解题步骤】

步骤1:单击“党员否”字段行任一位置。

步骤2:在“默认值”行输入“Yes”。

(3)【解题步骤】

步骤1:单击“年龄”字段行任一位置,在“有效性规则”行输入“>=15 And <=30”。步骤2:在“有效性文本”行输入“输入的年龄不在范围内,请重新输入”。

步骤3:单击工具栏中“保存”按钮。

(4)【解题步骤】

步骤1:单击菜单栏【视图】|【数据表视图】。

步骤2:右键单击学号为“20011002”学生的“照片”列选择【插入对象】,选中“由文件创建”,单击“浏览”按钮,在“考生文件夹”内选中要插入的图像“photo.bmp”,连续两次单击“确定”按钮。

(5)【解题步骤】

步骤1:单击菜单栏【格式】|【取消对所有列的冻结】。

步骤2:单击工具栏中“保存”按钮,关闭数据表视图。

(6)【解题步骤】

步骤1:右键单击“tStud”表选择【导出】。

步骤2:在“保存位置”找到考生文件夹并打开。

步骤3:在“文件名”行输入“tStud”,在“保存类型”下拉列表中选中“文本文件”,单击“导出”按钮,单击“下一步”按钮,选中“第一行包含字段名称”,单击“下一步”按钮,单击“完成”按钮。

2.简单应用题(1)【解题步骤】

步骤1:打开“samp2.mdb”数据库窗口,选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框分别双击表“tTeacher”和“tCourse”,关闭“显示表”对话框。

步骤2:分别双击“教师姓名”、“职称”、“课程名称”、“上课日期”字段。

步骤3:单击工具栏中“保存”按钮,另存为“qT1”。关闭设计视图。

(2)【解题步骤】

步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框双击表“tTeacher”和“tCourse”,关闭“显示表”对话框。

步骤2:分别双击“教师姓名”、“课程名称”、“上课日期”字段。

步骤3:在“教师姓名”字段的“条件”行输入“[请输入教师姓名]”。

步骤4:单击工具栏中“保存”按钮,另存为“qT2”。关闭设计视图。

(3)【解题步骤】

步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框双击表“tStud”、“tCourse”和“tGrade”,关闭“显示表”对话框。

步骤2:分别双击“学生姓名”、“课程名称”、“成绩”字段。

步骤3:在“成绩”字段的“条件”行输入“>=80 And <=100”。

步骤4:单击工具栏中“保存”按钮,另存为“qT3”。关闭设计视图。

(4)【解题步骤】

步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框分别双击表“tStud”、“tCourse”和“tGrade”,关闭“显示表”对话框。

步骤2:在“字段”行第一列输入“年级:Left([tStud]![学生ID],4)”,在“排序”行下拉列表中选中“降序”,分别双击“课程名称”、“成绩”字段。

步骤3:单击菜单栏【视图】|【总计】,在“成绩”字段的“总计”行下拉列表中选中“平均值”,在“成绩”字段的“字段”行前面输入“平均成绩:”字样,在“年级”和“课程名称”字段的“总计”行下拉列表中选中“分组”。

步骤4:单击工具栏中“保存”按钮,另存为“qT4”。关闭设计视图。

3.综合应用题(1)【解题步骤】

步骤1:打开“samp3.mdb”数据库窗口,选中“窗体”对象,右键单击“fStud”选择【设计视图】。

步骤2:选中工具箱中“直线”控件,单击窗体页眉节区适当位置。

步骤3:右键单击“直线”控件选择【属性】,在“名称”行输入“tLine”,分别在“左边距”,“上边距”和“宽度”行输入“0.4cm”,“1.2cm”和“10.5cm”。关闭属性界面。

(2)【解题步骤】

步骤1:右键单击标签控件“lTalbel”选择【属性】,在“前景色”行输入“16711680”。步骤2:分别在“字体名称”和“字号”行右侧下拉列表中选中“华文行楷”和“22”。关闭属性界面。

(3)【解题步骤】

步骤1:右键单击“窗体选择器”选择【属性】。

步骤2:分别在“边框样式”、“滚动条”、“记录选择器”、“导航按钮”、“分隔线”、“关闭按钮”行右侧下拉列表中选中“细边框”、“两者均无”、“否”、“否”、“否”、“是”,关闭属性界面。

(4)【解题步骤】

步骤1:右键单击文本框“tSub”选择【属性】。

步骤2:在“控件来源”行输入“=IIf(Mid([学号],5,2)=“10”,“信息”,“管理”)”,关闭属性界面。

(5)【解题步骤】

步骤1:右键单击“退出”命令按钮选择【事件生成器】,在空行内输入代码:*****Add*****

DoCmd.Close

*****Add*****

步骤2:关闭界面。

4.二级vb上机考试题 篇四

1.基本操作题

在考生文件夹下,“samp1.mdb”数据库文件中已建立表对象“tStud”。试按以下操作要求,完成表的编辑修改:

(1)将“编号”字段改名为“学号”,并设置为主键;

(2)设置“入校时间”字段的有效性规则为2005年之前的时间(不含2005年);

(3)删除表结构中的“照片”字段;

(4)删除表中学号为“000003”和“000011”的两条记录;

(5)设置“年龄”字段的默认值为23;

(6)完成上述操作后,将考生文件夹下文本文件“tStud.txt”中的数据导入并追加保存在表“tStud”中。参考答案:

1.基本操作题

【考点分析】本题考点:设置主键;字段的有效性规则、默认值等字段属性的设置;删除字段;删除记录;导入表。

(1)【解题步骤】

步骤1:打开“samp1.mdb”数据库窗口,选中“表”对象,右键单击“tStud”选择【设计视图】。

步骤2:将“字段名称”列的“编号”改为“学号”。

步骤3:右键单击“学号”行选择【主键】。

(2)【解题步骤】

步骤1:单击“入校时间”字段行任一点。

步骤2:在“有效性规则”行输入“<#2005-1-1#”。

(3)【解题步骤】

步骤1:右键单击“照片”字段选择【删除行】,在弹出的对话框中单击“是”按钮。

步骤2:单击工具栏中“保存”按钮。

(4)【解题步骤】

步骤1:单击菜单栏【视图】|【数据表视图】。

步骤2:选中学号为“000003”的数据行,右键单击该行选择【删除记录】,在弹出对话框中单击“是”按钮。步骤3:选中学号为“000011”的数据行,右键单击该行选择【删除记录】,在弹出对话框中单击“是”按钮。步骤4:单击工具栏中“保存”按钮。

(5)【解题步骤】

步骤1:单击菜单栏【视图】|【设计视图】。

步骤2:单击“年龄”字段行任一点,在“默认值”行输入“23”。

步骤3:单击工具栏中“保存”按钮,关闭设计视图。

(6)【解题步骤】

步骤1:单击菜单栏【文件】|【获取外部数据】|【导入】,找到并打开“考生文件夹”,在“文件类型”下拉列表中选中“文本文件”,选中“tStud.txt”文件,单击“导入”按钮。

步骤2:单击“下一步”按钮,选中“第一行包含字段名称”复选框,单击“下一步”,选中“现有的表中”单选按钮,在右侧下拉列表中选中“tStud”,单击“下一步”按钮,单击“完成”按钮。[page]

2.简单应用题

考生文件夹下存在一个数据库文件“samp2.mdb”,里面已经设计好三个关联表对象“tStud”、“tCourse”和“tScore”。此外,还提供了窗体“fTest”和宏“mTest”,试按以下要求完成设计:

(1)在创建一个选择查询,查找年龄大于25的学生的“姓名”、“课程名”和“成绩”三个字段内容,所建查询命名为“qT1”;

(2)创建生成表查询,组成字段是没有书法爱好学生的“学号”、“姓名”和“入校年”三列内容(其中“入校年”考试吧:一个神奇的考试网站。

数据由“入校时间”字段计算得到,显示为四位数字年的形式),生成的数据表命名为“tTemp”,所建查询命名为“qT2”;

(3)补充窗体“fTest”上“test1”按钮(名为“bt1”)的单击事件代码,实现以下功能:

打开窗体,在文本框“tText”中输入一段文字,然后单击窗体“fTest”上“test1”按钮(名为“bt1”),补充代码设置窗体上标签“bTitle”的标题为文本框“tText”输入内容与文本串“等级考试测试”的连接并消除连接串的前导和尾随空白字符。

注意:不允许修改窗体对象“fTest”中未涉及的控件和属性;只允许在“*****Add1*****”与“*****Add1*****”之间的空行内补充语句、完成设计。

(4)设置窗体“fTest”上“test2”按钮(名为“bt2”)的单击事件为宏对象“mTest”。

参考答案:

2.简单应用题

【考点分析】

本题考点:创建选择查询、生成表查询;窗体中命令按钮控件属性的设置。

(1)【解题步骤】

步骤1:打开“samp2.mdb”数据库窗口,选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框中双击表“tStud”、“tCourse”、“tScore”,关闭“显示表”对话框。

步骤2:分别双击“姓名”、“课程名”、“成绩”、“年龄”字段。

步骤3:在“年龄”字段的“条件”行输入“>25”,单击“显示”行取消该字段的显示。

步骤4:单击工具栏中“保存”按钮,另存为“qT1”。关闭设计视图。

(2)【解题步骤】

步骤1:选中“查询”对象,单击“新建”按钮,选中“设计视图”,单击“确定”按钮。在“显示表”对话框双击表“tStud”,关闭“显示表”对话框。

步骤2:单击菜单栏【查询】|【生成表查询】,在弹出的对话框中输入“tTemp”,单击“确定”按钮。步骤3:分别双击“学号”、“姓名”字段将其添加到“字段”行。

步骤4:在“字段”行的下一列输入“入校年:Year([入校时间])”。

步骤5:双击“简历”字段将其添加到“字段”行,在“简历”字段的“条件”行输入“not like “*书法*””,单击“显示”行取消“简历”字段的显示。

步骤6:单击工具栏中“保存”按钮,另存为“qT2”,如图8所示。关闭设计视图。

图8

(3)【解题步骤】

步骤1:选中“窗体”对象,右键单击“fTest”选择【设计视图】。

步骤2:右键单击“test1”选择【事件生成器】,空行内输入代码:

*****Add1*****

bTitle.Caption=Trim(me!tText+“等级考试测试”)

*****Add1*****

(4)【解题步骤】

步骤1:右键单击“test2”选择【属性】。

步骤2:单击“事件”选项卡,在“单击”行右侧下拉列表中选中“mTest”,关闭属性界面。

步骤3:单击工具栏中“保存”按钮,关闭设计视图。[page]

3.综合应用题

考生文件夹下存在一个数据库文件“samp3.mdb”,里面已经设计好表对象“tEmployee”和查询对象“qEmployee”,同时还设计出以“qEmployee”为数据源的报表对象“rEmployee”。试在此基础上按照以下要求补充报表设计:

(1)在报表的报表页眉节区位置添加一个标签控件,其标题显示为“职员基本信息表”,并命名为“bTitle”;

(2)将报表主体节区中名为“tDate”的文本框显示内容设置为“聘用时间”字段值;

(3)在报表的页面页脚区添加一个计算控件,以输出页码。计算控件放置在距上边0.25厘米、距左侧14厘米位置,并命名为“tPage”。规定页码显示格式为“当前页/总页数”,如1/20、2/20、…、20/20等。

注意:不允许修改数据库中的表对象“tEmployee”和查询对象“qEmployee”;不允许修改报表对象“rEmployee”中未涉及的控件和属性。

参考答案:

3.综合应用题

【考点分析】

本题考点:在报表中添加标签、文本框控件及其控件属性的设置。

(1)【解题步骤】

步骤1:打开“samp3.mdb”数据库窗口,选中“报表”对象,右键单击“rEmployee”选择【设计视图】。步骤2:选中工具箱中“标签”控件按钮,单击报表页眉节区适当位置,然后输入“职工基本信息表”,单击报表任一点。

步骤3:右键单击“职工基本信息表”标签选择【属性】,在“名称”行输入“bTitle”,关闭属性界面。

(2)【解题步骤】

步骤1:右键单击“tDate”文本框选择【属性】。

步骤2:在“控件来源”行右侧下拉列表中选中“聘用时间”字段,关闭属性界面。

(3)【解题步骤】

步骤1:选中工具箱中“文本框”控件,单击报表页面页脚节区任一点,弹出“Text”标签和“未绑定”文本框,选中“Text”标签,然后按下“Del”键将“Text”标签删除。

步骤2:右键单击“未绑定”文本框选择【属性】,弹出属性对话框。选中“全部”选项卡,在“名称”行输入“tPage”,分别在“上边距”和“左边距”输入“0.25cm”和“14cm”。单击“控件来源”行输入“=[Page]&“/”&[Pages]”,关闭属性界面。

5.计算机二级VB考试题及答案 篇五

计算机二级VB考试题及答案

1.设有如下程序段:

x=2

For c=1 To 4 Step 2

x=x+c

Next c

运行以上程序后,x的值是(A)(单)

A.6

B.7

C.8

D.9

2.以下叙述中错误的是(A)(单)

A.在KeyPress事件过程中不能识别键盘键的按下与释放

B.在KeyPress事件过程中不能识别回车键

C.在KeyDown和KeyUp事件过程中,从键盘输入的字母“A”和字母“a”对应的KeyCode视作相同的字母

D.在KeyDown和KeyUp事件过程中,从大键盘上输入的“1”和从右侧小键盘上输入的“1”被视作不同的字符

3.执行如下两条语句,窗体上显示的是(C)(单)

A=9.8596

Print Format(a,“000.00”)

A.0,009.86

B.9.86

C.009.86

D.0,009.86

4.在窗体上画一个名称为CommandDialog1 的通用对话框,一个名称为Command1的命令按钮。然后编写如下事件过程:

Private Sub Command1_Click( )

CommonDialog1.FileName =“”

CommonDialog1.Filter=“All file|*.*|(*.Doc)|*.Doc|(*.Txt)|*.Txt”

CommonDialog1.FilterIndex=1

CommonDialog1.DialogTitle=“VBTest”

CommonDialog1.Action=1

End Sub

对于这个程序,以下叙述中错误的是(D)(单)

A.该对话框被设置为“打开”对话框

B.在该对话框中指定的文件名为空

C.该对话框的标题为VBTest

D.在该对话框中指定的默认文件类型为文本文件(*.Txt)

5.设一个工程由两个窗体组成,其名称分别为Form1和Form2,在Form1上有一个名称为Command1的命令按钮。窗体Form1的程序代码如下:

Private Sub Command1_Click( )

Dim a As Integer

a=10

Call g(Form2,a)

End Sub

Private Sub g(f As Form,x As Integer)

y=Iif(x>10,100,-100)

f.Show

f.Caption=y

End Sub

运行以上程序,正确的结果是(B)(单)

A.Form1的Caption属性值为100

B.Form2的Caption属性值为-100

C.Form1的Caption属性值为-100

D.Form2的Caption属性值为100

6.在窗体上画一个名称为Command1的命令按钮,并编写如下程序:

Private Sub Command1_Click( )

Dim x As Integer

Static y As Integer

x=10

y=5

Call f1(x,y)

Print x,y

End Sub

Private Sub f1(ByRef x1 As Integer, y1 As Integer)

x1=x1+2

y1=y1+2

End Sub

程序运行后,单击命令按钮,在窗体上显示的内容是(D)(单)

A.10 5

B.12 5

C.10 7

D.12 7

7.Option Base 1

Private Sub Command1_Click( )

Dim a(10) As Integer

Dim n As Integer

n=3

If n<10 Then

Call GetArray(a,n)

End If

End Sub

Private Sub GetArray(b( ) As Integer,n As Integer)

Dim c(10) As Integer

j=0

For t=1 To n

b(t)=Rnd*100

If b(t)/2=b(t)2 Then

j=j+1

c(j)=b(t)

End If

Next t

Print j

End Sub

以下叙述中错误的是(C)(单)

A.数组b中的数范围为0-100

B.c数组下标的下界从1开始

C.GetArray过程的参数n是按值传送的

D.语句If b(t)/2=b(t)2 Then 是判断数组b中元素的值是否为整数

8.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Option Base 1

Private Sub Command1_Click( )

Dim a

a= Array(1,2,3,4,5)

For c=1 To Ubound(a)

a(c) = a(c)+c-1

Next c

Print a(3)

End Sub

程序运行后,单击命令按钮,则在窗体上显示的内容是(B)(单)

A.4

B.5

C.6

D.7

9.阅读程序:

Option Base 1

Private Sub Form_Click( )

Dim arr

Dim Sum%

Sum = 0

arr = Array(1, 3, 5, 7, 9)

For t = 1 To 5

Sum = Sum + arr(t)

Next t

Print Sum

End Sub

程序运行后,单击窗体,输入结果为(B)(单)

A.5

B.9

C.25

D.15

10.在窗体上画一个名称为File1的文件列表框,并编写如下程序:

Private Sub File1_DblClick( )

x=Shell(File1.FileName,1)

End Sub

以下关于该程序的叙述中,错误的是(A)(单)

A.x没有实际作用,因此可以将该语句写为:Call Shell(File1,FileName,1)

B.双击文件列表框中的文件,将触发该事件过程

C.要执行的文件的名字通过File1.FileName指定

D.File1中显示的是当前驱动器、当前目录下的文件

11.在窗体上画一个名称为Label1、标题为“VisualBasic考试”的标签,两个名称分别为Command1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为Timer1的.计时器控件,并把其Interval属性设置为500。编写如下程序:

Private Sub Form_Load( )

Timer1.Enabled=False

End Sub

Private Sub Command1_Click( )

Timer1.Enabled=True

End Sub

Private Sub Timer1_Timer( )

If Label1.Left< Form1.Width Then

Label1.Left = Label1.Left + 20

Else

Label1.Left=0

End If

End Sub

程序运行后,单击“开始”按钮,标签在窗体中移动。 对于这个程序,以下叙述中错误的是(A)(单)

A.标签的移动方向为自右向左

B.单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动

C.当标签全部移出窗体后,将从窗体的另一端出现并重新移动

D.标签按指定的时间时隔移动

12.规范地说,VB是一种(A)的开发工具(单)

A.面向对象

B.面向用户

C.面向屏幕

D.面向窗体

13.VB6设计界面包含多个视窗,控制这些视窗显示或关闭的命令包含在(D)下拉菜单中(单)

A.文件

B.工程

C.编辑

D.视图

14下面(D)操作不是激活或显示属性列表框的操作(单)

A.按快捷键F4

B.点击工具栏中的“属性列表框”按钮

C.选择“视图”下拉菜单的“属性窗口”项

D.双击窗体中的某一对象

15.Visual Basic程序中分隔各语句的字符是(B)(单)

A.′

B.:

C.

D._

16.假定窗体的名称(Name属性)为Form1,则把窗体的标题设置为“VB Test”的语句为(B)(单)

A.Form1 = “VB Test”

B.Caption =“VB Test”

C.Form1.Text = “VB Test”

D.Form1.Name =“VB Test”

17.下列不能打开代码窗口的操作是(D)(单)

A.双击窗体上的某个控件双击

B.双击窗体

C.按F7键

D.单击窗体或控件

18.Visual Basic程序中语句行的续行符是(D)(单)

A.′

B.:

C.

D. _

19.Visual Basic程序中的注释所使用的字符是(A)(单)

A.′

B.:

C.

D._

20.下列说法中正确的是:为了保存一个Visual Basic应用程序,应当(D)(单)

A.只保存窗体模块文件(.frm)

B.只保存工程文件(.vbp)

C.分别保存工程文件和标准模块文件(.bas)

上一篇:学习英模韦寿增心得体会下一篇:五(下)美术教案