一、考试时间
江苏省计算机等级考试的春季考试一般安排在3月中旬的周末,一般要连续占用两个周末,所有的笔试均安排在第一个周六的上午,上机考试在笔试之后。二级考试中,不同的语种上机日期安排不同,一般是安排在第一个周日、第二个周六、周日。
VB笔试:考试时间为120分钟。
VB上机:每场考试时间为70分钟。
二、考试形式
笔试部分:
共60分,基础知识的单选题20分(所有语种相同,每题1分),VB知识的单选题10分(每题1分),VB知识的填空题30分(每空1分)。这里特别提醒大家:VB以前的单选题是15分,从02年秋天开始改为10分,以便和二级其它语种同步,这多出来的5分将以阅读理解程序的形式出现在填空题中。
答题要求:
单选题的答案必须涂划在专用答题卡上(注意考试时,请带好铅笔用于涂黑);填空题的答案必须写在专用答题纸上(填空时注意:每个空要按标号顺序填,一空占一行,不是一题一行,因为有的题目一题包含多个空)。
上机部分:
共40分,各场次的考试内容不同,但题型和知识点类似,都是考两道题,一道改错题,占17分,一道编程题,占23分。
答题步骤:
先从资源管理器中运行A盘上的“上机考试”程序,输入自己的准考证号、姓名和试卷代号,确认并退出该界面。然后从开始菜单中启动VB应用程序,按要求做题,考试结束时要确保把考试结果文件已经保存到软盘上之后,再退出VB系统,取出软盘,贴上标签上交,标签上需要填写学校名称、自己的姓名和准考证号、考试的语种及场次代号。
三、合格标准
VB二级考试最终的合格线是按全省平均分划定的(每次公布的成绩都是经过系数处理过的),合格的考生要求笔试和上机都达到合格线(一般并没有达到各自的60%),合格线每次考试都有所不同,当遇到上机考试异常时,不同场次也有所不同,以往就有考生总分超过了合格线,但因笔试或上机分不够而定为不合格的。在VB考试中,我校就有很多考生总分超过了合格线却没有通过的,其中有一半人因为上机分不够或因为笔试分不够。这显然是非常可惜的事情,希望大家在复习时注意平衡发展。
优秀的考生则要求两部分都必须达到优秀,即总分85分以上(含85分)且两部分都达到了优秀标准,而不是两部分加起来达到85分以上即可。
四、应试策略
1.关于上机(占40分)
VB上机考试的试题及评分标准:
(1)改错题:
题目中都是设3个错误点,一般分别是语法错误(如数组的声明、重复定义等略有难度的语法错误)、运行错误、逻辑错误等,这些错误基本上都是平时编程时比较容易犯的错误,错误点不重复。
评分标准:录入原题:2分,改错:5分/个,根据改错点给分,新错误不扣分。
(2)编程题:
按照题目要求的功能,根据参考界面编程,程序中都涉及一定难度的算法。
评分标准:界面设计:根据界面元素的复杂程度,给5—8分,每个元素得一定的分数;清除按钮:2分;退出按钮:1分;含算法的按钮:根据代码多少按步骤给分。编程时注意:首先应该进行变量的说明,然后按输入——处理——输出的顺序来设计程序的逻辑结构。写程序时一定要记住采用规范的书写方法,增加必要的注释语句说明已实现的功能代码段,这样既不容易出错,又能轻松地拿到基本分。即根据逻辑关系采用缩进的形式来写,注意层次感,让人一看一目了然。需要用到程序控制结构时,先把前后配套的代码
(如for i=……
next i)写出来,然后再在其中添加其它代码。
从历年的考试情况看,VB的上机部分虽然只考两题,试题类型和知识点也基本固定,但并不容易拿分,很多同学只能得基本分。建议多做针对性训练,熟练掌握以往上机考试题中涉及到的各类算法题目,第1题争取能改对2个错误,第2题除设计出程序界面、清除及退出按钮外,争取把含算法按钮的基本代码(如变量的定义、基本算法结构、基本输入/输出语句等)写出来,这样就可以拿到25分以上了,上机也就一定合格啦!
另外,上机考试时一个最重要的操作就是正确地保存文件,请特别注意以下三点:
(1)文件名一定要符合要求:项目文件和窗体文件要分别取名保存,两道题目的文件名不同,不可随意取名,千万不能在保存第2题时因文件重名把第1题给覆盖掉了,上次期末考试时就发现有少数同学犯了这种错误!
(2)保存位置一定要正确:直接保存在软盘的根目录下,不要试图往软盘其它文件夹下放,平时很多同学保存位置都错了!
(3)为防止考试过程中因死机造成文件丢失,白白浪费时间,可以先保存在D盘上,做好后再分别将工程文件及窗体文件保存到软盘上,注意:工程及窗体都要“保存”哦!!
2. 笔试的基础知识部分(占20分)
这部分二级各语种考题完全一样,知识点基本固定,包括计算机软、硬件的基本概念、病毒、网络、信息编码、信息媒体、软件工程的基本概念等,建议先仔细看看《新编计算机应用基础》前六章,以往有些试题考的几乎就是教程中的原话;但应用部分(Windows 、Word、Excel)考的是些操作经验和技巧,只看教材收效似乎不明显,最好是多做以往的试题,关键是把握考试知识点,理解相关概念。这部分一般有1-2分反映最新知识的超纲题目,拿高分较难,应该争取拿12-16分。Excel是新加的部分,建议找些题目看看。
特别提醒大家注意:在2001秋季和2002年春季的考试中,这部分试题虽然都是教材上的内容,但知识点考得较偏,普遍考得很差,一般都只拿到6-7分,好的才拿10分左右。希望大家复习时仔细阅读前六章教材。
另外提醒:从03年秋天的基础知识题看,新加的内容很多,原因是根据省考试中心要求,从05年春基础知识将采用全新的教材《大学计算机信息技术教程》(张福炎、孙志挥编),现在已经出题开始朝此教材靠拢,有条件的同学可以看看此书前几章。
3. 笔试的单选题(占10分)
这部分相对简单些,知识点比较固定,一般都是考察对VB程序设计的基本概念的理解及常用函数的应用,今年会涉及到1—2分的数据库方面的知识。建议多做VB学习指导和以往试卷中的题目,在做题的过程中理解并掌握VB的相关概念和常用函数。这部分比较容易得分,应该争取拿8分以上。
4. 笔试的填空题(占30分)
这部分包括阅读理解(即填写程序的输出结果,难度略低)和完形填空(即把题目中空的程序代码行补齐,难度较大)VB源程序,其中必考的内容有循环结构、分支结构、数组的定义与使用、变量的传递方式等。建议先多看教材中的示例程序,熟练掌握VB程序设计中的常用算法,如:累加、累乘、求素数、穷举法、递推法、求最大/小数;有关数组的处理、数制转换、查找、插入、删除;过程(特别是形参与实参、参数传递、变量的作用域与生存期的概念)、递归算法、文件操作等,再做些练习,重在理解。这部分较难得高分,应该争取得15-18分以上。
5. 考试注意事项
1)上机考试:
最忌讳紧张,应该沉着。一般应该首先把第1道改错题按原样输入进去,输入时一定要细心,别自己制造新错误,输入完毕应先按文件名要求保存,再试着运行看看系统报什么错误,不要先急于运行,以免死循环造成前功尽弃(死循环后需要重新启动VB,这样先前还没有保存的文件就丢失了!),最后根据报错或试运行结果来判断出错原因,进行修改。记住:实在改不出来的错误就算了,接着去做编程题,等做完编程题的基本部分后,再回过来看看能否改出来。
上机编程题是按步给分的,每项操作都有相应的分值,不要轻易放弃,即使不会编写完整的程序,也要把变量定义出来,并把可能的程序结构先写出来(如循环结构、分支结构等)。
上机考试容易发生因考生误操作而死机的情况,尤其是编写的程序中可能出现死循环时,为把损失降到最低,运行前都应该先保存一下文件。不幸遇到死机时要沉着应付:按Ctrl+Alt+Del一次,结束当前任务(有时机器反应慢,应该耐心等片刻,不要不停地按那三个键,那样会造成机器重新启动,又多耽误几分钟),关闭VB,然后再重新进入VB系统,接着做题,这时不需要再输入准考证号。
若遇到机器故障自己无法排除时,应及时报告监考老师协助解决或更换机器接着考试。
2)笔试:
最忌讳粗心,应该看清题意再下笔(特别是平时练习题做得多的同学更不要想当然的做,要留意题意与以往的练习题是否有什么差别),记住:遇到没有把握的就放放,先做有把握的;不要提前交卷,不要轻言放弃,不要空着任何一道题,实在不会就猜一个。
前面已经提到,合格线是按全省平均分划定的,水涨船高,面对较难的试卷不要灰心,面对简单的试卷也不要得意忘形。总之,学得差些的同学应该争取达到合格线,学得好些的同学就应争取拿优秀啦!
五、学习网站
https://www.doczj.com/doc/b76425244.html,/vbweb/test/index.htm
https://www.doczj.com/doc/b76425244.html,/
https://www.doczj.com/doc/b76425244.html,/
https://www.doczj.com/doc/b76425244.html,
https://www.doczj.com/doc/b76425244.html,
https://www.doczj.com/doc/b76425244.html,/
https://www.doczj.com/doc/b76425244.html,/
https://www.doczj.com/doc/b76425244.html,/
https://www.doczj.com/doc/b76425244.html,
东方教育网
六、参考用书
80%的VB
1.学校教材
2.二级考试试卷汇编Visual Basic语言分册江苏省高等学校计算机等级考试中心编苏州大学出版社
(1998-2001年)、(2000-2003年)、(2002-2005年)
3.大纲和样题(历年考试)
4.《新编Visual Basic程序设计教程》牛又奇孙建国主编(有配套实验书)苏州大学出版社,2002
江苏省等级考试系列教材
20%的信息技术基础
5.一级考试试卷汇编分册江苏省高等学校计算机等级考试中心编苏州大学出版社
(1998-2001年)、(2000-2003年)、(2002-2005年)
6.《大学计算机信息技术教程》,张福炎、孙志挥主编,南京大学出版社,2003年
7.《大学计算机信息技术实验指导》,张明、王必友、蔡绍稷主编,南京大学出版社,2003年
七、江苏省Visual Basic二级考试大纲
1.Visual Basic的基本概念。
(1)面向对象的程序设计的基本概念:对象、属性、方法、事件及事件驱动。
(2)开发Visual Basic应用程序的一般步骤。
2.Visual Basic的界面设计。
(1)创建窗体。
①窗体的常用属性:Name、Caption、BordStyle、Enabled、Font、BackColor、ForeColor、Icon、Left、Top、Width、Height、Visible 。
②常用的窗体方法:Move、Show、Hide、Print、PrintForm、Refresh、Cls 。
③常用的窗体事件:Activate、Deactivate、Click、Load、Unload、Resize 。
④窗体的显示与隐藏、装载与卸载。
(2)基本控键的特性及应用。
①公用属性:Name、Caption、Enabled、Font、Left、Top、Width、Height、Index、TapStop、Visible 。
②公用方法:Move、Refresh、SetFocus 。
③公用事件:Click、DblClick、LostFocus 。
④文本框(TextBox):Text、PasswordChar、Alignment、MaxLength、Multiline属性;Change、LostFocus事件。
⑤标签(Label):Alignment、AutoSize属性。
⑥命令按纽(CommandButton):Cancel、Default属性。
⑦单选按纽(OptionButton)、复选框(CheckBox)及框架(Frame):Alignment、Value属性。
⑧列表框(ListBox):List、ListCount、ListIndex、Text、Columns、Sorted属性;AddItem、Clear、RemoveItem 方法。
⑨组合框(ComboBox):Style、Text属性;AddItem、Clear、RemoveItem方法。
图片框(PictureBox)与图象(Image)控件:AutoSize、Image、Picture属性;Cls、Circle方法;DragDrop事件。⑾定时器(Timer):Interval属性。
(3)定制窗体菜单:创建下拉菜单和弹出式菜单。
3.Visual Basic语言基础。
(1)程序代码的组织方式:过程(事件过程、通用过程)与模块(窗体模块、标准模块及类模块)。
(2)次序代码的书写规则。
(3)数制与数据类型。
(4)不同类型常量的表示方法、系统内置常量、用户定义常量的定义方法。
(5)变量:变量命名及说明;全局变量、局部变量和静态变量的说明;变量作用域。
(6)数组:数组命名及说明;数组类型、数组结构;数组元素;静态数组与动态数组;数组重定义。
(7)运算符与表达式:算术运算、关系运算、逻辑运算与字符串运算;各种运算的优先级。
4.Visual Basic的基本语句。
(1) Option语句:Option Explicit、Option Base 。
(2) 顺序结构语句。
①赋值语句:相同类型与不同类型数据之间的赋值。
②Print方法、Cls方法。
(3) 分枝结构语句:If—Then结构语句、Select Case结构语句。
(4) 循环结构语句:Do—Loop结构语句、For—Next结构语句。
5.公共函数。
( 1 ) 算术函数:Abs、Sin、Cos、Atn、Exp、Log、Rnd、Sgn、Sqr、Tan 。
( 2 ) 字符串函数:Asc、Chr、Lcase、Ucase、Left、Len、Trim、Mid、Right、Space、String、Instr 。
( 3 ) 日期及时间函数:Time、Date、Now、DateValue、Day、Month、Year、WeekDay 。
( 4 ) 转换函数:Str、Val、Chr、Asc、Cint、Fix、Int、CBool、Cbyte、CDate、Cdbl、Cstr 。
( 5 ) 用户交互函数:InputBox函数与MsgBox函数。
( 6 ) 数组函数:Array、Ubound、Lbound。
6.过程设计。
( 1 ) Sub过程(事件Sub过程及通用Sub过程)的定义及调用。
( 2 ) Function过程的定义及调用。
( 3 ) 过程调用时的数据传递:按值传递、按地址传递、简单变量参数、数组参数、对象参数的传递。
( 4 ) 静态变量与静态过程。
( 5 ) 递归过程。
( 6 ) 模块级变量及全局变量的应用。
( 7 ) 多窗体工程的设计。
7.文件操作。
( 1 ) 文件的基本概念:文件的存取方式及文件类型、文件的基本操作步骤(打开、读/写及关闭)。
( 2 ) 基本文件操作控件:驱动器列表控件、文件夹列表课件与文件列表控件。
( 3 ) 常用文件操作语句(Open、Close、Reset、Lock、Unlock、Seek)及文件操作函数(Eof、FileAttr、FileLen、FreeFile、Lof、Loc、Seek);顺序文件、随机文件及二进制文件的打开、读/写及关闭。
8.鼠标方法、文本、图形及多媒体处理。
( 1 ) 常用鼠标方法(MouseDown、MouseUp、MouseMove)
( 2 ) 数据输出的格式化处理(Format函数)。
( 3 ) 图形控件Line、Shape使用及多媒体处理。
9.数据库操作。
( 1 ) 数据库的基本概念:库、表、记录和字段。
( 2 ) 创建Access数据库。
( 3 ) SQL查询的基本概念及子句。
( 4 ) 使用数据库控件访问数据库:记录的增、删、改。
( 5 ) 数据访问对象(DAO):DAO对象模型、使用DAO进行数据操作。
( 6 ) 报表设计与输出。
( 7 ) 远程数据访问与基于Internet的数据库应用。
1999年~2005秋历年试题主要知识点:
一、笔试部分
VB的特点★
工程文件包含的内容★
不同类型过程定义的位置、调用的方法以及参数、变量声明要求★★★
多窗体情况,启动窗体的设置★
对象、属性、事件、方法的概念理解、方法的调用★★★★★★
常量、变量(定长字符串)、数组定义声明的格式、位置与注意点★★★★★★
VB常量的区分(不同类型的区分、表示数据范围★★★★、科学记数法★)
变量的命名规则
Boolean变量和常量的使用★★★
表达式的计算和类型确定★★★★★★★★★、数学式与VB表达式之间的正确转换表达★★★★★★★★
1.运算符(+、&★★★★★★★★★★★★的区别★★、Mod★★★★★★、\★★★、^★、/)注意运算
结果的类型★
2.运算优先级★★
3.函数(Val★★、Mid★★★★★★★★★★★★★★★★★★、Chr★★★★★★★、Asc★★★★★★
★★★、Len★★★★★★★★★★★★★★(注意对非字符串操作的含义)、Cstr★★★★、Str★★(注意与Cstr的区别★)、Left★★★★★、Right★★★★★★、Instr★★★★★★★、Int(利用其实现四舍五入)★★★、CInt★、Sqr★、LoadPicture、Ucase★★★、Lcase★★★、MsgBox★★、InputBox ★)
4.Int、CInt、Fix、Round、Format★★★、赋值自动取整之间的区别★
条件表达式的构造★★★★★★★★★★★★★★
赋值语句的注意点(赋值相容)★★★★★★★★★★★
赋值等号与判等号的区分(赋值语句与关系表达式的区分)★
常用对象的功能特点:
1.窗体的作用
2.容器对象:窗体、图片框、框架(分组作用)★
3.仅响应一个事件的控件:Timer时钟
常用对象的常用方法:
1.Me的含义和使用
2.常用对象的匹配方法的调用★(列表框Clear、窗体Cls、组合框Clear、图片框Cls)
3.常用方法的功能(Circle、Line、Cls★★)
4.常用方法的调用★(注意格式)(列表框的AddItem★★★★★、Print★★★★★★★★★★、Line★★
5.焦点的获取、设置和次序★★
常用对象的常用属性
1.注意总结公共属性★★★★★★★Caption:窗体、标签、框架、单选按钮、复选框;★★★Value属性:
选项按钮、复选框、滚动条、命令按钮;Text属性★:文本框、列表框、组合框;Picture属性(注意代码修改方式):窗体、命令按钮、选项按钮、复选框、图片框、图像框;字体属性
2.Caption与Name属性的区别★★
3.属性设置的方法(属性窗口、代码设计器窗口)
4.属性的分类(设计态、运行态)★(ListCount★、Index、Path、Visible)
5.文本框(MultiLine、Vbcrlf、Chr(13)+Chr(10)、“”)★★★★、图片框(Print、Cls)、列表框和组
合框(AddItem★、RemoveItem★、Clear★)多行信息的显示与清除
6.时钟控件Interval
4.文本框的PassWordChar、Alignment
5.Shape控件的Shape属性
6.命令按钮的Value、Visible、Default、Enabled属性的区别★
7.滚动条Max、Min、LargeChange、SmallChange对Value的影响
8.列表框(List1.AddItem "ABC", List1.ListIndex、List1.Text = "ABC"、List1.List(List1.ListIndex) = "ABC"
的作用是否等价,List1.Text与List1.List(List1.ListIndex)的等价关系★:可以将列表框List1中当前选定的列表项的值替换成"ABC")
9.属性与对象之间的关联情况
10.属性之间的相互关联和限制:DrawStyle与DrawWidth
11.文件管理控件的常用属性(Path、Drive、FileName、ListIndex)和事件(Change)之间的关联、同步设
置★
12.菜单的设置(热键、组合键、有效性、动态菜单、弹出菜单)★
常用对象的常用事件的触发时机和顺序
1.窗体(Initialize、Load、Activate、GotFocus、LostFocus、Unload★)★
2.事件过程名的构成特点★
注意区分事件和方法(GotFocus、SetFocus)★
条件语句的格式★★、流程★★★(Case测试项取值的构造格式★★)
Do循环语句执行流程★★★★★★★★(Exit Do)
For循环的语句执行流程★★★★★★★★★★★★★★★(初值、终值、步长为变量或表达式的情况处理★★★★、步长为负数的情况★★★★)(Exit For★)
数组
1.静态和动态数组的声明与使用(Redim★★★★★★★)★★★★★★★,注意声明的前缀★★、声明与
使用的放置位置★★★、下标与类型的要求★★★★
2.数组的访问(一维、二维)★★★★★★★★★★★★★★★★★★★
3.数组的常用函数和语句(Ubound★★★★、Erase)
4.控件数组的特点★
过程
1.过程调用的流程★★★★★★★★★★★★★★★★★★★★★★★(Exit Sub、Exit Function★)
2.本模块/非本模块的过程调用格式(注意实参的设置要求)★★★★★★★★★★★★★★
3.过程的定义格式(形参的设置★★★★、注意不能嵌套定义)
4.形参是数组和字符串的注意点★★★★★★★★、对应实参的要求★★★
5.地址传递、按值传递(注意:实参是常量、表达式、(变量)★★的情况)★★★★★★★★★★★★★
★★★★★★★★★★★★★★
6.嵌套调用★★★★★
7.变量的作用域、同名变量★★★★★★★★★★★★
8.递归调用(Sub、Function)★★★★★★★★
9.静态变量★★★★★★★★★★★
文件
1.文件访问的类型
2.Close语句、Unlock语句、ChDrive、Chdir语句的正确使用和注意特点★★★
3.同时打开一个文件多次的注意点★★★
4.顺序文件(Append、Input、OutPut模式打开文件的特点★★★★★★★★★、顺序文件的读写★★★★
★★★★★、常用函数(Eof、Input)★★★★)
5.随机文件的访问(Len的确定)★★★
图形坐标
数据库
1.数据绑定控件★★
2.数据控件(Data)通过Connect属性对那些类型数据库进行访问★
调试工具的使用
1.立即窗口(Debug.Print)★
2.Ctrl+Break的作用
3.中断程序执行的方法
常用算法:
1.穷举算法★★★★★★★
2.最大公约数★★
3.不同进制数间的转换★
4.素数的算法★★
5.累加★★★★、累乘算法★★
6.回文数★★
7.逆序★
8.数据内容交换★★★
9.排序★★★
10.最值问题
11.约瑟夫环
二、上机部分
改错
一般2~5个错,平均3个错
注意:
1)不得增加或删除语句,有些允许调整语句位置
2)操作时,必须先细心、完整、快速地输入改错程序原代码,保证正确不能引入错误,及时正确地保存3)改错时,建议使用注释’语句进行改错,这样可避免由于考虑不周造成原代码的重复录入
4)依据题目提供的功能和界面,分析清楚代码中各变量的含义与作用(建议从输入和输出入手)
5)熟练掌握调试工具的使用(单步调试,找出错误)
6)熟练掌握常见的算法
常见出错点:
1)数据初值设置错误
2)实参设置错误
3)数据类型定义错误
4)语句使用错误(程序流程)
5)函数使用错误
6)数据变量变化规律错误
7)运算符使用错误
8)数据定义位置错误
9)形参传递类型设置错误
10)数据处理边界点错误
11)访问对象数据错误
编程
操作要点:
1)界面设计:标签、命令按钮、图片框、列表框、文本框、框架、选项按钮、输入输出函数等的使用
2)数组的访问
3)过程的定义与调用(包括递归)
4)文件操作
5)常用算法(穷举、素数、多项式求和、极值问题、求因子、最大公约数、累加、累乘、取每位数字、最小公倍数、升降序数的判断、逆序、阶乘、平方数的判断、子串查找、有序插入、反序数、回文数的判断、排序、无重复数列的生成、进制之间转化算法
VB常见错误和难点分析
1.在选择结构中缺少配对的结束语句
对多行式的If块语句中,应有配对的End If语句结束。否则,在运行时系统会显示"块 If没有End If"的编译错误。同样对Select Case语句也应有与其相对应的End Select语句。
2.多边选择ElseIf关键字的书写和条件表达式的表示
多边选择ElseIf子句的关键字ElseIf之间不能写有空格,即不能写成Else If。
在多个条件表达式的表示时,应从最小或最大的条件依次表示,以避免条件的过滤。例如,已知输入某课程的百分制成绩mark,要求显示对应五级制的评定,评定条件如下:有以下几种表示方式,语法上都没有错,但执行后结果有所不同,请分析哪些正确? 哪些错误?
下面给出的答案中,方法一、二、五正确,其余错误,请分析各自的原因。
方法一:
If mark>=90Then Print"优"
ElseIf mark>=80Then Print"良"
ElseIf mark>=70Then Print"中" ElseIfmark>-60Then Print"及格"
Else
Print"及格"
End If
方法二:
If mark<60Then
Print"不及格"
ElseIf mark<70Then
Print"及格"
ElseIf mark<80Then
Print"中"
ElseIf mark<90Then
Print"良"
Else
Print"优"
End If
方法三:
If mark>=60Then Print"及格"
ElseIf mark>=70Then Print"中"
Elselfmark>=80Then
Print"良"
Elselfmark>=90Then
Print"优"
Else
Print"不及格"
End If
方法四:
If mark>=90Then Print"优"
ElseIf 80<=mark<90 Then Print"良"
ElseIf 70<=mark<80 Then Print"中"
ElseIf 60<=mark<70 Then Print"及格"
Else
Print"不及格"
End If 方法五:
If mark>=90Then
Print"优"
ElseIf 80<=mark And mark<90 Then Print"良"
ElseIf 70<=mark And mark<80Then Print"中"
ElseIf 60<=mark And mark<70Then Print"及格"
Else
Print"不及格"
End If
3.Select Case语句的使用
(1) "表达式列表i" 中不能使用"变量或表达式"中出现的变量。
例如,上述多边选择的例子改为Select Case语句实现,方法一Case子句中出现变量mark,运行时不管mark的值多少,始终执行Case Else子句,运行结果不正确;方法二、方法三正确。
方法一:
Select Case mark Case mark>=90
Print"优"
Case mark>=80
Print"良"
Case mark>=70 Print"中"
Case mark>=60
Print"及格" Case Else
Print"不及格" End Select
方法二:
Select Case mark Case Is>=90
Print"优"
Case Is>=80
Print"良"
Case Is>=70
Print"中"
Case Is>=60
Prim"及格" Case Else
Print"不及格" End Select
方法三:
Select Case mark Case Is>=90
Print"优"
Case 80 To 89 Print"良"
Case 70 To 79
Print"中"
Case 60 TO 69 Print"及格" Case Else
Print"不及格" End Select
(2) 在"变量或表达式"中不能出现多个变量。
实验三第5题对三门课程奖学金的判断,只能用If语句的多边选择,而不能用Select Case语句实现。例如,有人用如下语句表示:
Select Case markl,mark2,mark3
Case (markl+mark2+mark3)/3>=95
Print"一等奖"
End Select
这样就会在 "Select Case markl,mark2,mark3" 语句行出现编辑错误, 同时
Case (markl+mark2 +mark3)/3>=95书写也错误。
第四章常见错误和难点分析
1.不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。
例如,以下循环语句不执行循环体:
For i=10 To 20 Step-1 ' 步长为负,初值必须大于等于终值,才能循环
For i=20 To10 ' 步长为正,初值必须小于等于终值,才能循环
Do While False ' 循环条件永远不满足,不循环
例如,以下循环语句死循环:
For i=10 To 20 Step 0 ' 步长为零,死循环
Do While 1 ' 循环条件永远满足,死循环
2.循环结构中缺少配对的结束语句
For…Next语句没有配对的Next语句;Do语句没有一个终结的Loop语句等。
3.循环嵌套时,内外循环交*
For I=1 to 4
For j=1 to 5
…
Next i
Next j
上述循环的交*运行时显示"无效的Next控制变量引用"。
4.累加、连乘时,存放累加、连乘结果的变量赋初值问题
(1) 一重循环
在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。
例如,求1~100的3的倍数和,结果放入Sum变量中,如下程序段,输出结果如何?应作如何改进?
Private SubForm_Click()
For i=3 To 100 Step 3
Sum=0
Sum=Sum+i
Next i
Print Sum
End Sub
(2) 多重循环
在多重循环中,存放累加、连乘结果的变量初值设置放在外循环语句前,还是内循环语句前,这要视具体问题分别对待。
例如,期末30位学生参加三门课程的考试,求每个学生的三门课程的平均成绩如下程序能否实现?
aver=0
For i=1 To 30
For j=1 To 3
m=InputBox("输入第"&j&"门课的成绩")
aver=aver+m
Next j
aver=aver/3
Print aver
Next I
第五章数组
5.1 知识要点
1.数组的概念
数组:存放具有相同性质的一组数据,也就是数组中的数据必须是同一个类型和性质。
数组元素:数组中的某一个数据项。数组元素的使用同简单变量的使用。
2.静态数组的声明
静态数组:在声明时已确定了数组元素个数。
声明形式:Dim数组名([下界To]上界[,[下界To]上界[,…]])As 类型
此语句声明了数组名、数组维数、数组大小、数组类型。
[注意] 下界、上界必须为常数,不能为表达式或变量:省略下界,默认为0,也可用Option Base语句重新设置下界的值。
3.动态数组的声明
声明形式: Dim数组名 ()
ReDim [Preserve]数组名([下界To]上界[,[下界To]上界[,…]])
[注意]
此时的上界、下界可以是赋了值的变量或表达式。若有Preserve关键字,表示当改变原有数组最末尾的大小时,使用此关键字可以保持数组中原来的数据。
4.控件数组
即相同类型的控件组成的数组。
控件数组的建立:在设计时的窗体上,通过对某控件的复制和粘贴操作:在程序运行时通过Load方法实现。
控件数组元素:由控件的Index属性值表示数组的F标。
5.数组的操作
应掌握的基本操作有:数组初始化、数组输入、数组输出、求数组中的最大(最小)元素及下标、求和、平均值、排序和查找等。
5.2 常见错误和难点分析
1.Dim数组声明
有时用户为了程序的通用性,声明数组的上界用变量来表示,如下程序段:
n=InputBox("输入数组的上界")
Dim a(1 To n) As Integer
程序运行时将在Dim语句处显示"要求常数表达式"的出错信息。即Dim语句中声明的数组上,下界必须是常数,不能是变量。
解决程序通用的问题,一是将数组声明的很大,这样浪费一些存储空间;二是利用动态数组,将上例改变如下: Dim a() As Integer
n=InputBox ("输入数组的上界")
ReDim a(1 To n)As Integer
2.数组下标越界
引用了不存在的数组元素,即下标比数组声明时的下标范围大或小即为越界。例如,要形成有如下30项的斐波那契数列:
1,1,2,3,5,8,13,21,34,…,317811,514229,832040
正确的程序段如下:
Dim a(1 To 30) As Long, i%
若将For i=3 To 30改为For i=1 To 30,程序运行时会显示"下标越界"的出错信息,因为开始循环时i=l,执行到循环体语句a(i)=a(i-2)+a(i-1),数组下标i-2、i-1均小于下界1。
同样若将上例:a(i)+a(i-2)+a(i-1) 语句改为:a(i+2)=a(i)+a(i+1)
程序运行时也会显示"下标越界"的出错信息,这时是数组下标大于上界30。
3.数组维数错
数组声明时的维数与引用数组元素时的维数不一致。例如,下程序段为形成和显示3×5的矩阵:
Dim a(3,5) As Long
For i=1 To 3
For j=1 To 5
a(i)=i*j
Print a(i);"";
Next j
Next i
程序运行到a(i)=i*j语句时出现"维数错误"的信息,因为在Dim声明时是二维数组,引用时的一个下标。4.Array函数使用问题
Array函数可方便地对数组整体赋值,但此时只能声明Variant的变量或仅由括号括起的动态数组。赋值后的数组大小由赋值的个数决定。
例如,要将1,2,3,4,5,6,7这些值赋值给数组a,下表列出了三种错误及相应正确的赋值方法。
Array函数表示方法
错误的Array函数赋值,
Dim a(1 To 8) a=Array(1,2,3,4,5,6,7,8) Dim a As Integer a=Array(1,2,3,4,5,6,7) Dim a a()=Array(1,2,3,4,5,6,7) 改正的Array函数赋值
Dim a( ) a=Array(1,2,3,4,5,6,7) Dim a a=Array(1,2,3,4,5,6,7) Dim a a=Array(1,2,3,4,5,6,7)
5.如何获得数组的上界、下界
Array函数可方便地对数组整体赋值,但在程序中如何获得数组的-上界、下界,以保证访问的数组元素在合法的范围内,可使用UBound和LBound函数来决定数组访问。
在上例中,若要打印a数组的各个值,可通过下面程序段实现:
For i=Lbound(A) To Ubound(A)
Print a(i)
Next i
6.给数组赋值
VB6.0提供了可对数组整体赋值的新功能,方便了数组对数组的赋值操作。但真正使用不那么方便,有不少限制。数组赋值形式如下:数组名2=数组名1
这里的数组名2,实际上在前面的数组声明时,只能声明为Varian的变量,赋值后的数组2的大小、维数、类型同数组名1;否则,若声明成动态或静态的数组,例如:
Dim数组名2() 或Dim数组名2 (下标)
程序在运行到上述赋值语句时显示"不能给数组赋值"的出错信息。