890 likes | 1.1k Views
全国计算机等级考试 二级 VB 交流会. 韩 天. NOIP 全国计算机奥林匹克竞赛二等奖 2006 年 4 月通过全国计算机等级考试三级网络技术. 全国计算机等级考试 二级 VB 交流会. 考试时间. 笔试: 4 月 12 日上午 请大家注意:二级 VB 考试笔试与上机时间 均为 90 分钟. 2008 年的 VB 新考试大纲的改动. 1 、旧大纲中的“枚举类型”不再考; 2 、旧大纲中的“默认类型”,在新大纲中改为“缺省类型”。这一改变其实是“换汤不换药”,考点的本质没有改变。
E N D
韩天 • NOIP全国计算机奥林匹克竞赛二等奖 • 2006年4月通过全国计算机等级考试三级网络技术
考试时间 • 笔试:4月12日上午 • 请大家注意:二级VB考试笔试与上机时间均为90分钟
2008年的VB新考试大纲的改动 • 1、旧大纲中的“枚举类型”不再考; • 2、旧大纲中的“默认类型”,在新大纲中改为“缺省类型”。这一改变其实是“换汤不换药”,考点的本质没有改变。 • 3、旧大纲中的“GOTO型控制”不再考。GOTO语句现在编程时就基本上不用了,所以这一改变与现实联系的比较紧密。 新旧大纲的不同之处就以上三处,其实给同学们在复习中带来的变化并不大。同学们只要认真扎实的复习,还是非常有希望通过考试!
考前再次明确一下:究竟要考什么? • 一:笔试部分 • 笔试分为选择题35道和填空题15个空,其中VB占70%,公共基础占30%。 • 公共基础,虽然看的时候比较难懂,但考得比较简单,仔细看书后做下题应该没问题。
公共基础知识-数据结构与算法 • 本章的知识用于提高程序的效率以及对较复杂的问题进行求解。学习本章的内容必须进行理解,死记硬背是无效的。 • 重点、难点:二叉树 • 考核形式主要为 • 二叉树的遍历问题(如给图求遍历序列, 给前序、中序遍历求后序遍历等) • 二叉树的结点问题(如给出一些条件然后求叶子结点个数); • 排序和查找。排序主要以计算时间复杂度的形式考核,查找主要以计算最佳/最坏比较次数的方式考核。 • 其余的知识点主要以概念的形式考察,考生需要仔细看书并理解。
树、图论的考察 • (05年4月) 用树形结构表示实体之间联系的模型是______ A) 关系模型 B) 网状模型 C) 层次模型 D) 以上三个都是 答案:C
答案:63个 公式:2 -1 n 树、图论的考察 • 一棵二叉树第六层(根结点为第一层)的结点数最多为 ____ 个
树、图论的考察 • 设一棵完全二叉树共有500个结点,则在该二叉树中有____个叶子结点。 • 答 案:250 • 知识点:完全二叉树的概念评 析:所谓完全二叉树是指除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。具有n个结点的完全二叉树,其父结点数为int(n/2),而叶子结点数等于总结点数减去父结点数。本题n=500,故父结点数等于int(500/2)=250,叶子结点数等于500-250=250。
树、图论的考察:树的遍历 • 1. 中序遍历: (1)遍历左子树; (2)访问根结点; (3)遍历右子树。 2.前序遍历: (1) 访问根结点; (2) 遍历左子树; (3) 遍历右子树。 3.后序遍历: (1)遍历左子树; (2)遍历右子树; (3)访问根结点。
树、图论的考察:树的遍历 F • 进行中序遍历的结果是_____ 。 A) ACBDFEG B) ACBDFGE C) ABDCGEF D) FCADBEG C E G A D B 答案:A
经典的树、图论题 • 已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A) acbed B) decab C) deabc D) cedba • 答案:D
经典的树、图论题 c e d b a
公共基础知识-数据结构与算法 • 对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。 A) 冒泡排序为n/2 B) 冒泡排序为n C) 快速排序为n D) 快速排序为n(n-1)/2 答案:D
公共基础知识-数据结构与算法 • 对于长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。 A) log2n B) n/2 C) n D) n+1 答案:C
公共基础知识-栈 • 入栈运算 在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。 • 退栈运算 取出栈项元素并赋给一个指定的变量。这个运算有两个基本操作:首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针退一(即top减1)。 • 读栈顶元素 将栈顶元素赋给一个指定的变量。这个运算不删除栈顶元素,只是将它的值赋给一个变量。
公共基础知识-栈 • 栈的基本运算有三种:入栈、退栈和 ______。 • 答 案:读栈顶元素 • 知识点:对栈的操作。评 析:栈的基本运算有三种:入栈、退栈和读栈顶元素
公共基础知识-程序设计基础 • 下列叙述中,不符合良好程序设计风格要求的是 A)程序的效率第一,清晰第二 B)程序的可读性好 C)程序中要有必要的注释 D)输入数据前要有提示信息 答案:A. 语句结构清晰第一、效率第二
公共基础知识-程序设计基础 在面向对象方法中,实现信息隐蔽是依靠: (07.9) A)对象的继承 B)对象的多态 C)对象的封装 D)对象的分类 答案:C
从工程管理角度,软件设计一般分为两步完成,它们是 A )概要设计与详细设计 B)数据设计与接口设计 C)软件结构设计与数据设计 D)过程设计与数据设计 公共基础知识-软件工程基础 • 答案:C
公共基础知识-数据库应用 • 在数据库系统中,用户所见的数据模式为 _____ 。 A) 概念模式 B)外模式 C)内模式 D)物理模式 答案:B 解析:外模式是用户的数据视图,就是用户所见到的数据模式。
公共基础知识-数据库应用 • 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 _____ 。 A )编码设计 B)测试阶段 C)运行阶段 D)物理设计 答案:B 解析:书上原话。。。
公共基础知识-数据库应用 (07.9)下列叙述中正确的是 A)数据库系统是一个独立的系统,不需要操作系统的支持 B)数据库技术的根本目标是要解决数据的共享问题 C)数据库管理系统就是数据库系统 D)以上三种说法都不对 答案:B
公共基础知识-数据库应用 • 数据库管理系统(DBMS):是数据库的机构。他使一种系统软件。负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。数据库管理系统是数据库的核心 。 • 数据库系统(DBS):由如下几部分组成:数据库、数据库管理系统、数据库管理人员、硬件平台、软件平台5部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。
选择: VB相关基础知识 • 以下叙述中正确的是 _____ 。 (06年9月)A) 窗体的 Name 属性指定窗体的名称,用来标识一个窗体 B) 窗体的 Name 属性值是显示在窗体标题栏中文本 C) 可以在运行期间改变窗体的 Name 属性的值 D) 窗体的 Name 属性值可以为空 A 解析:窗体的 Caption 属性值是显示在窗体标题栏中的文本;窗体的 Name 属性是只读属性,即只可以通过属性窗口改变属性值,在运行时能改变; Name 属性值不能为空。
选择 : VB相关基础知识 • 下列各控件不包含滚动条的控件是A) ListBox B) ComboBoxC) TextBox D) LabelBox • 答案:D
选择 : VB相关基础知识 • 定在图片框Picture1中装入了一个图形,为了清除该图形(不删除图片框),应采用的正确方法是: A)选择图片框,然后按Del键 B)执行:Picture1.Picture=LoadPicture(“”) C)执行语句Picture1.Picture=”” D)选择图片框,在属性窗口中选择Picture属 性,然后按回车键 答案:B
控制结构 • 控制结构是计算机考试的重中之重,它的由浅入深,语句简洁,但应用广泛、功能强大,组成了算法的核心部分. • 重点:while 、 for语句 • 难点:多种循环的综合应用。
控制结构 • (a)单行结构:if ……then……[else……]end if 块结构:if……then …… [elseif……then ……] else…… end if 这个没什么好说的,就是“如果……就…… • IIf函数,他是if ……then……else……end if的简写 格式:s=IIf(条件,true部分,false部分)意思是如果条件为真,则返回true部分,为假则返回false部分
(b)多分支控制结构 例:k=text1.text select case k case k……(1)'k的条件 执行命令(1) case k……(2) 执行命令(2) …… end select (c)当循环:当条件为真时执行语句块 格式:while 条件 [语句块] wend 这里要说的是它只执行第一个符合条件的命令,对于后面也符合条件的命令不执行,还右就是k的条件的写法,这个看下书就好了 控制结构
控制结构(循环) • 在窗体上面画一个命令按钮和一个标签,其名称分别为 Commandl 和 Labell ,然后编写如下事件过程: Private Sub Commandl_Click() Counter=0 For i=1 To 4 For j=6 To 1 Step -2 Counter=Counter+1 Nextj Nexti Labell.Caption=Str(Counter) End Sub 程序运行后,单击命令按钮,标签中显示的内容是 A) 11 B) 12 C) 16 D) 20
控制结构(循环) • B 解析:此题考察的是循环的嵌套, Counter 的初始值为 0 , • 当 i=1 时,进入内层循环,内层循环语句执行完毕后, Counter 的值为 3 ; • 当 i=2 时,进入内层循环时, Counter 的值仍为 3 ,内层循环语句执行完毕后, Counter 的值为 6 ;以此类推,程序全部执行完毕, Counter 的值为 12 。
控制结构(循环) • 读程序写结果: • Dim i,j,k as integer for i=1 to 3 do for j=1 to I do for k=1 to j do a=a+1 next k next j next i print a End sub 答案:14
看程序写结果 • 在窗体上画一个名称为 Commandl 的命令按钮,然后编写如下程序: Private Sub Commandl Click() Dim i As Integer, j As Integer Dim a (10,10)As Integer For i=1 To 3 For j= i To 3 a(i,j)=(i-1)*3+j Print a (i,j); Next j Print Next i End Sub 程序运行后,单击命令按钮,窗体上显示的是 _____ A 1 2 3 B 1 2 3 C 1 2 3 D 1 2 3 2 4 6 3 4 5 2 5 8 4 5 6 3 6 9 4 5 6 3 6 9 7 8 9 答案:D
控制结构 • (d)do 循环控制结构:有两种格式 (I)Do [语句块] loop[while|until 循环条件] 执行完语句块后当循环条件为真时继续循环,直到条件为假时结束循环; 执行完语句块后直到当循环条件为真时结束循环 开始 开始 执行循环体 执行循环体 计算“条件”真值 计算“条件”真值 YES NO 条件为真吗 条件为真吗 NO YES Do…loop Until循环逻辑框图 Do…loop While循环逻辑框图 结束 结束
例1: i=1 do i=i+2 loop until i>17 这里执行了9次,当i=17时还要执行多一次使i=19,这时i才大于17结束循环 例2: i=1 do i=1+2 loop while i<17 这里执行了8次,当i=15时执行循环使i=17,此时i不小于17所以不再执行循环 控制结构
控制结构 • (II)Do [while|until 循环条件] ←难点 [语句块] loop 意思分别是当循环条件为真时执行语句块直到条件为假时结束循环;直到循环条件为真时结束循环。 • 这个要注意的是他执行循环的次数和执行语句块后的语句块里定义的参数的值,要考率最后还有没多执行多一次循环。 开始 开始 计算“条件”真值 计算“条件”真值 NO YES 条件为真吗 条件为真吗 YES NO 执行循环体 执行循环体 Do While …loop循环逻辑框图 Do Until …loop循环逻辑框图 结束 结束
下列各种形式的循环中,输出“*"的个数最少的循环是_____(C)下列各种形式的循环中,输出“*"的个数最少的循环是_____(C) A) a=5 : b=8 Do Print "*" a=a+1 Loop While a < b B) a=5 : b=8 Do Print "*" a=a+1 Loop Until a < b C) a=5 : b=8 Do Until a > b Print "*" b=b+1 Loop D) a=5: b=8 Do while a < b Print "*" a=a + 1 Loop 控制结构 3 4 1 3
Dim a(-1 To 5) As Boolean Dim flag As Boolean flag = False Dim i ,j,k As Integer Do Until flag = True For i = -1 To 5 j = j + 1 If a(i) = False Then a(i) = True Exit For End If If i = 5 Then flag = True End If Next Loop Print j 左方程序运行的结果是? A 21 B 28 C 35 D 42 好脑子不如烂笔头,请大家拿笔演算一下 控制结构
在窗体上画一个文本框和一个计时器控件,名称分别为Text1和Timer1,在属性窗口中把计时器的Interval属性设置为1000,Enabled属性设置为False,程序运行后,如果单击命令按钮,则每隔一秒钟在文本框中显示一次当前的时间。以下是实现上述操作的程序在窗体上画一个文本框和一个计时器控件,名称分别为Text1和Timer1,在属性窗口中把计时器的Interval属性设置为1000,Enabled属性设置为False,程序运行后,如果单击命令按钮,则每隔一秒钟在文本框中显示一次当前的时间。以下是实现上述操作的程序 Private Sub Command1_Click() Timer1._________ End Sub Private Sub Timer1_Timer() Text1.Text = Time End Sub 在______处应填入的内容( )。 A)Enabled=True B)Enabled=False C)Visible=True D)Visible=False 补完程序 答案:A
VB应用-控制结构(循环) • (2004年04月考题)在窗体上画一个名称为List1的列表框,为了对列表框中的每个项目都能进行处理,应使用的循环语句为A) For i=0 to List1.ListCount-l ………. NextB) For i=0 to List1.Count-l ………. NextC) For i=1 to List1.ListCount ………. NextD) For i=0 to List1.Count……….Next • 【答案】A【分析】从每个选项的第一行我们可以发现只有选项C的循环初值是从1开始,其它都从0开始,所以C错,由于错误的题目中一般会包含正确的信息,从中我们可以推理得到正确的答案是A。
(2003年09月考题)设有如下通用过程,在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Dim x As Integer x = 10 y = 5 y = f(x) Print x; yEnd SubPublic Function f(x As Integer) Dim y As Integer x = 20 y = 2 f = x * yEnd Function 程序运行后,如果单击命令按钮,则在窗体上显示的内容是A)10 5 B)20 5 C)20 40 D)10 40 解题技巧 【答案】C【分析】对于传值和传地址的题目,解题时我们可以运用适当的排除技巧,如针对上面的题目我们可以进行分析后直接得出结果:本题中,X初值是10,Y初值是5。但由于X传地址,所以要互相影响,故在主程序调用函数F(X)后,打印语句中X不可能是原来的10,因此可以马上排除答案A和D;而Y是靠函数本身传递值,故在函数过程中F得到新值40后就如同传地址一样把结果传给了Y。故本题的答案是C。
解题技巧——排除法 【答案】B【分析】本题中的X是窗体级变量,所以X在过程之间传递参数时相当于传地址,互相要影响。同时,过程之间本身有A和B要与X和Y传值。由于本题中的X原先是5,则程序执行后X应该改变,故先排除答案A和D。另外,B和Y传的是值,它们互不影响,故又可以排除答案C。因此最终答案是B。 • (2003年04月考题)在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,代码:Private X As IntegerPrivate Sub Command1_Click() X=5:Y=3 Call proc(X,Y) Label1.Caption=X Label2.Caption=YEnd SubPrivate Sub proc(ByVal a As Integer, ByVal b As Integer) X=a* a Y=b+bEnd Sub程序运行后,单击命令按钮,则两个标签中显示的内容分别是A)5 和 3 B)25 和 3 • C)25 和 6 D)5 和 6
For i=I to len(Cstr(N)) • Redim preserve A(i) • A(i)=N mod 10 • N=N\10 • Sum =sum+A(i) • Next i