三步逐过程法”解二级VisualBasic上机考试改错题
- 格式:doc
- 大小:76.00 KB
- 文档页数:5
湖南省计算机二级VB程序改错部分题库9、Visual Basic程序改错1.程序功能:求s=1+3+5+7+...直到s>2000为止。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(2025)Private Sub Form_Click()Dim i As Integer, s As Longs = 0 : i = 1Do Until s < 2000s = s + ii = i + 1LoopPrint sEnd Sub答案:s>2000 ; i+22.程序功能:计算s=2!+4!+8!。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(40346) Private Sub Command1_Click()Dim k As Integer, i As IntegerDim s As Long, t As Longs = 0i = 1Do While i <= 3t = 1k = 1While k <= 2*it = t * kk = k + 1Wends = s + twendPrint sEnd Sub答案:k<=2^i ; loop3.程序功能:计算s=2!+4!+6!+8!。
程序中有错误。
改正错误,使它能输出正确的结果。
(41066)Private Sub Command1_Click()Dim k As Integer, i As IntegerDim s As Long, t As Longs = 0 : i = 1Do While i <= 4t = 1k = 1While k <= 2^it = t * kk = k + 1Wends = s + ti = i + 1wendPrint sEnd Sub答案:k<=2*i ; loop4.程序功能:求200到400间,能被3整除但不能被7整除的数的个数。
程序中有两行有错误。
计算机二级上机考试程序修改题常见应试技巧
计算机二级上机考试,题库每年都有,如果你的记忆力足够好,再加上那么一点
点运气的话,把每年的100题目全部都背下来,还是可以顺利通过上机考试的(或者
说是应付…)。
但是,一百套题,背着背着就会混淆,所以光背是远远不够的,所以,本人在这里把最容易拿分的程序修改题的应试技巧总结下来,分享给大家。
上机之后,针对程序修改题,首先单击F7,进行Build操作。
步骤如下:
1、单击“F7”
2、出现这个对话框后单击“是”
3、程序最下方会出现这样的显示:MODI1.exe - 1 error(s), 0 warning(s)。
当
提示“MODI1.exe - 1 error(s)”中“”error(s)不为零时,即为程序有
错误,无法执行。
在这个框中我们向上看出现错误的信息。
4、在程序修改题中,题目中所有的错误都出现在
“/************found************/”的下方,换句话说,就是
有几个“/************found************/“,其下方就有几处
错误。
5、各种错误信息的出现形式、修改方法参见下表:
上面介绍的是C语言上机考试程序修改题目中最常见的错误类型,总结出来供大家参考,希望对大家有所帮助,谢谢!。
程序编程题目1、第一大类(交换类)共7道心之所向,所向披靡2. 程序修改(第3套)给定程序中函数fun 的功能是:通过某种方式实现两个变量的交换,规定不允许增加语句和表达式。
例如变量a中的值原为8,b中的值原为3,程序运行后a中值为3,b 中的值为8./**found**/t=*x; *x=y;/**found**/return(t);2. 程序修改(第60套)给定程序中函数fun的功能是:实现两个整数的交换。
例如给a和b分别输入60和65,输出为:a=65 b=60 /**found**/void fun(int *a,int *b)/**found**/t=*b;*b=*a;*a=t;2. 程序修改(第88套)给定程序中函数fun的功能是:将主函数中两个变量的值进行交换。
例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
/**found**/void fun(int *x, int *y)/**found**/t=*x,*x=*y,*y=t;2、第二大类(计算类)共22道2. 程序修改(第1套)给定程序中函数fun的功能是:求出以下分数序列的前n 项之和。
2/1+3/2+5/3+8/5+13/8+21/13+……和值通过函数值返回main函数。
例如n=5,则应输出:8.391667。
/**found**/double fun(int n)/**found**/s=s+(double)a/b;2. 程序修改(第6套)给定程序中函数fun的功能是:用递归算法计算列中第n 项的值。
从第一项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……/**found**/switch(g)/**found**/case 1:case 2:return 1;2. 程序修改(第13套)给定程序中函数fun的功能是:求s=aa…aa—…—aaa—aa—a(此处aa…aa表示n个a,a和n的值在1至9之间)。
国家二级VB机试(上机操作)模拟试卷5(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
在标题为”文本框”、名称为Forml的窗体上画一个名称为Textl的文本框,无初始内容,其高、宽分别为2000、1800,可显示多行,有水平滚动条,并通过属性窗口把文本框的字体样式设置为”斜体”(如图2.49所示)。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjtl.vbp,窗体文件名为sjtl.frm。
正确答案:步骤1:新建一个”标准。
EXE”工程,如表3-26在窗体中画出控件并设置其相关属性。
步骤2:按要求将文件保存至考生文件夹中。
2.在名称为Forml的窗体上画一个名称为Listl的列表框,通过属性窗口输入4个列表项:”数学”、”物理”、”化学”、”语文”,如图2-50所示。
请编写适当的事件过程,使得在装入窗体时,把最后一个列表项自动改为”英语”;单击窗体时,则删除最后一个列表项。
注意:要求程序中不得使用变量,每个事件过程中只能写一条语句。
存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。
正确答案:步骤1:新建一个”标准EXE”工程,在窗体Forml中加入一个列表框,在属性设置窗口中将其Name属性设置为Listl,在其List属性中添加四个项目,依次为”数学”、”物理”、”化学”和”语文”。
注意:每输入完一项后按<Ctrl+Enter>键换行再输入下一项。
步骤2:打开代码编辑窗口,编写相应的事件过程:参考代码:Private Sub Form_Click( )Listl.RemoveItem Listl.ListCount_1Enld SubPrivate Sub Form_Load( )Listl.List(Listl.ListCount-1)=“英语”End Sub步骤3:按要求将文件保存至考生文件夹中。
计算机二级VisualBasic考试题及答案2017计算机二级Visual Basic考试题及答案考生们在备考计算机考试科目时,除了复习教材以外,还要结合试题加深对知识点的理解和巩固,以下是店铺搜索整理的一份2017计算机二级Visual Basic考试题及答案,供参考练习,预祝考生们考出自己理想的成绩!想了解更多相关信息请持续关注我们店铺!1.窗体中有一个名称为txtSpeed的文本框,一个名称为hsbSpeed的滚动条。
以下程序:Private Sub hsbSpeed_Change( )txtSpeeD.Text = hsbSpeeD.ValueEnd Sub当单击滚动条hsbSpeed右端的箭头时,以下说法不正确的是(B) (单)A.此时会触发change事件B.此时不会触发change事件C.在文本框中显示了滚动条滑块所在位置的值D.此时不会触发scroll事件2.利用窗体中的滚动条HScroll1改变窗体的背景色,可以这样编写代码:Private Sub HScroll1_Change( )R= HScroll1.Valueform1.BackColor = RGB(R,int(Rnd*256),int(Rnd*256))End Sub以下说法不正确的是(C) (单)A.窗体的背景色是一个随机的颜色B.RGB函数取得到的颜色有256*256*256种C.表达式int(Rnd*256)取得随机数的范围为0-256之间的整数D.表达式int(Rnd*256)取得随机数的范围为0-255之间的整数3.窗体中有一个名称为Slider1的可选择性刻度滑块控件,一个名称为text1的`文本框,如下程序:Private Sub Slider1_change( )Text1.FontSize =【Slider1.value】End Sub当拖动滑块时,以上程序实现用Slider控件设置文本框中的字体大小的功能。
文本框 PassWordChar 改为 *功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单,否则重新输入用户名和口令。
&&**********Error**********************if thisform.text1 = thisform.text2 改为 if thisform.text1.value=thisform.text2.valuewait "欢迎使用……" window timeout 1&&**********Error**********************thisform.close 改为 thisform.releaseelsewait "用户名或口令不对,请重新输入……" window timeout 1endif*检索选课门数大于或等于3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,*并按平均成绩降序排序,将结果存储到表TEST1中.以下程序有三处错误,请改正SET TALK OFFSET SAFETY OFFSELECT STUDENT.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数,院系院系;FROM STUDENT, SCORE;WHERE STUDENT.学号 = SCORE.学号;GROUP BY STUDENT.学号 HAVING SUM(课程编号) >= 3; &&*Error* 将sum改为count其他不变ORDER BY 平均成绩 ; &&*********Error******* 改为 order by 平均成绩 descINTO TEST1 SDF &&*********Error******* 改为 into table test1RETURN*检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,*并按平均成绩降序排序.SET TALK OFFSET SAFETY OFFUSE DATABASE SDB &&****Error***修改本行的语法错误,不许注释掉本行或删除本行将use改为openCREATE VIEW VS1SELECT STUDENT2.学号, 姓名, AVG(成绩) 平均成绩, MIN(成绩) 最低分, COUNT(*) 选课门数, 院系编号;FROM STUDENT2, COURSE2; &&*************Error************* 改为 from student2,scWHERE STUDENT2.学号 = SC.学号 ;GROUP BY SC.学号 HAVING COUNT(课程号) > 3;ORDER BY 成绩 &&*************Error************* 改为 order by 平均成绩 descCLOSE DATABASERETURN*检索同时选修课程号c1和c2的学生的学号*以下程序有三处错误,请改正SELECT 学号;FROM SC ;WHERE 课程号 = 'c1' AND 学号 = ; &&*****Error******* 改为 where 课程号="c1" and 学号 in( SELECT * FROM SC ; &&************Error************改为 (select 学号 from sc;WHERE 学号 = 'c2' ) &&************Error************改为 where 课程号="c2")CLOSE DATABASE检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的,学号,姓名,性别,平均成绩,最低分和选课门数,并将结果存储到表NEW_TEST中.*以下程序有三处错误,请改正OPEN DATABASE SDBSELECT STUDENT.学号,姓名,性别,AVG(成绩) 平均成绩,MIN(成绩) 最低分,COUNT(*) 选课门数;FROM STUDENT,SC;WHILE STUDENT.学号 = SC.学号 AND 成绩 >= 70 ; &&*******Error******** 将While 改为 where 其他不变GROUP BY STUDENT.学号 HAVING SUM(课程号) >= 3; &&*******Error******** 将sum 改为 count 其他不变TO NEW_TEST &&**********Error********** 改为 into table NEW_TESTCLOSE ALLThisForm.标题 = "商品销售数据输入" 改为 thisform.caption="商品销售数据输入"DO sellcomm 改为DO Form sellcommDO print1 TO PREVIEW 改为 report Form print1 PREVIEWSELECT FORM DEPT 改为 SELECT * FROM DEPTDELETE THISFORM 改为 THISFORM.release&&所有器件的单价增加5元UPDATE order_detail1 SET 单价 WITH 单价+ 5 改为 UPDATE order_detail1 SET 单价=单价+ 5&&计算每种器件的平均单价SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1 ORDER BY 器件号 INTO CURSOR lsb 将 order by 改为 group by 其他不变&&查询平均价小于500的记录SELECT * FROM lsb FOR 平均价 < 500 改为SELECT * FROM lsb where 平均价 < 500UPDATE ALL 日期 WITH DATE() 改为 UPDATE 雇员 set 日期 = DATE()RELEASE THISFORM 改为 thisform.releaseSELECT COUNT((现价-买入价)*持有数量) ; 将count 改为 sum 其他不变FROM stock_sl ;WHERE 股票代码 ;= ; 改为 in(SELECT 股票代码 FROM stock_name ;WHERE "银行" LIKE 股票简称) 将like 改为 $ 其他不变CLOSE ALLOPEN DATABASE 成绩管理USE 选课 IN 0USE 学生 EXCL IN 0***********Error***********MODIFY TABLE 学生 ADD 平均成绩 N(6,2) 改为 alter table 学生 ADD 平均成绩 N(6,2)SELECT 学生***********Error***********DO WHILE EOF() 改为 do while not eof()SELECT AVG(成绩) FROM 选课 WHERE 学号=学生.学号 INTO ARRAY cj***********Error***********REPLACE 平均成绩 = cj[1] 改为 replace 平均成绩 with cj[1]cj[1]=0SKIPENDDOCLOSE DATABASE下面的程序在第2行、第3行、第4行、第5行有错误,请直接在错误处修改。
一、基本操作题下面出现的“考生文件夹”均为c:\wexam\20060001。
请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
1.在窗体上建立一个二级菜单,该菜单含有“文件”和“帮助”两个主菜单项(名称分别为vbFile和vbHelp),其中“文件”菜单包括“打开”、“关闭”和“退出”三个子菜单项(名称分别为vbOpen、vbClose和vbExit)。
只建立菜单,不必定义其事件过程。
注意:保存时必须存放在考生文件夹下,窗体文件名为kt1.frm,工程文件名为kt1.vbp。
2.在名称为Form1的窗体上建立两个名称分别为Cmd1和Cmd2、标题分别为“喜欢”和“不喜欢”的命令按钮。
编写适当的事件过程,要求程序运行后,如果单击“喜欢”命令按钮,则在窗体上显示“数理化”;如果单击“不喜欢”命令按钮,则在窗体上显示“政史地”。
程序中不能使用任何变量,直接显示字符串。
注意:保存时必须存放在考生文件夹下,窗体文件名为kt2.frm,工程文件名为kt2.vbp。
一、基本操作题答案1.【解题步骤】(1)打开“菜单编辑器”。
(2)菜单设计见表4-1。
表4-1标题名称内缩符号文件vbFile 0打开vbOpen 1关闭vbClose 1退出vbExit 1帮助vbHelp 0(3)按要求设计含有“文件”和“帮助”的菜单栏。
(4)为“文件”菜单设计“打开”、“关闭”和“退出”三个子菜单项。
(5)设计完成之后,按规定方式存盘。
2.【解题步骤】(1)建立界面和控件并设置控件属性。
程序中用到的控件及其属性见表4-2。
表4-2控件属性设置值按钮Name Cmd1Caption 喜欢按钮Name Cmd2Caption 不喜欢(2)编写程序代码。
参考代码:Private Sub Cmd1_Click()Print"数理化"End SubPrivate Sub Cmd2_Click()Print"政史地"End Sub(3)调试并运行程序。
国家二级VB机试(上机操作)模拟试卷488(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计Visual Basic应用程序(包括界面和代码)。
(1)在名称为Form1的窗体上画一个名称为CmdChange、标题为“改变颜色”的命令按钮,窗体标题为“设置窗体背景色”。
编写程序,使得单击命令按钮时,将窗体的背景颜色改为红色(&HFF&)。
运行程序后的窗体如图3-142所示。
要求:程序中不得使用变量,每个事件过程中只能写一条语句。
存盘时必须存放在考生文件夹下,工程文件名为vbsj1.vbp,窗体文件名为vbsj1.frm。
(2)在名称为Form1的窗体上画一个命令按钮和一个垂直滚动条,其名称分别为Cmd1(标题为“设置”)和Vsb1,编写适当的事件过程。
程序运行后,如果单击命令按钮,则按如下要求设置垂直滚动条的属性:Max=窗体高度Min =0 LargeChange=50 SmallChange=10 如果移动垂直滚动条的滚动框,则在窗体上显示滚动框的位置值。
程序的运行情况如图3—143所示。
要求:不得使用任何变量。
注意:存盘时必须存放在考生文件夹下,工程文件名为vbsj2.vbp,窗体文件名为vbsj2.frm。
正确答案:第1小题【操作步骤】步骤1:新建一个“标准EXE”工程,在窗体Form1中画一个命令按钮,设置相关属性,其属性及值如表4-83所示。
步骤2:打开代码编辑窗口,编写按钮的Click事件过程中。
参考代码:Private Sub cmdChange_Click( ) BackColor=&HFF &End Sub 步骤3:按要求将文件保存至考生文件夹中。
第2小题【操作步骤】步骤1:新建一个“标准EXE”工程,按表4-84在窗体中画出控件并设置其相关属性。
步骤2:打开代码编辑窗口,编写水平滚动条的Change事件过程。
计算机二级VB考试上机题型与解题技巧计算机二级VB考试上机题型与解题技巧VB(Visual Basic)是一种由微软公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言,是计算机二级语言的一种,为了帮助同学们顺利通过考试,下面店铺为大家搜索整理的关于二级VB考试上机题型与解题技巧,欢迎参考借鉴,预祝您考试成功!想了解更多相关信息请持续关注我们店铺!一、上机题型(1)基本操作题(2小题、每小题15分,共计30分)(2)简单应用题(2小题、每小题20分,共计40分)(3)综合应用题(1小题,共计30分)二、上机考点(1)对象及其操作:控件的画法、基本操作及控件值。
(2)数据类型及其运算:涉及到关系运算符、算术运算符、逻辑运算符及常用内部函数等知识点。
(3)数据输入、输出:窗体输出与Print方法,使用InputBox函数。
(4)常用标准控件:文本框、列表框、图形框、复选框、计时器、滚动条等控件的属性、事件和方法。
(5)控制结构:选择控制结构(If...End If、Select Case...End Select)、循环控制结构(Do...Loop、For...Next)。
(6)数组:数组的定义与引用。
(7)菜单与对话框:用菜单编辑器建立菜单。
(8)键盘与鼠标事件过程:键盘事件(KeyPress、KeyDown与KeyUp)、鼠标事件(MouseDown、MouseUp与MouseMove)与拖拉事件(DragOver、DragDown与)。
(9)数据文件:顺序文件的读操作、顺序文件的写操作。
三、常用算法熟练地掌握算法原理、编程思想和代码实现,就能够做到举一反三,轻松备考,顺利过关。
1.累加与连乘基本思想:设置初值,循环计算。
扩展:(1)计算指定范围内某一个数的倍数之和。
(2)计算某范围内所有数的乘积。
(3)求某一个数列的和。
2.生成N个不同的随机数基本思想:将生成的数送入一个数组,每生成一个数后与数组中已有的数比较,如相同则丢弃,重新生成可使用语句Exit For。
1.调试C程序时常见的错误类型分析一般情况下,错误主要分为两大类:一、语法错误。
对于这种错误,用编译器很容易解决。
所以,改错题的第一步是先编译,解决这类语法错误。
下面总结了二级C 语言上机改错题中常见的语法错误:(1)丢失分号,或分号误写成逗号。
(2)关键字拼写错误,如本来小写变成大写。
(3)语句格式错误,例如for语句中多写或者少写分号。
(4)表达式声明错误,例如:少了()(5)函数类型说明错误。
与main()函数中不一致。
(6)函数形参类型声明错误。
例如:少*等。
(7)运算符书写错误,例如:/写成了\。
二、逻辑错误,或者叫语义错误,这和实现程序功能紧密相关,一般不能用编译器发现。
对于逻辑错误可以按这样的步骤进行查找。
(1)先读试题,看清题目的功能要求。
(2)通读程序,看懂程序中算法的实现方法。
(3)细看程序,发现常见错误点。
2.改错题的改错方式总结,当然这些总结只能对大部分改错行有效。
1、若错误行是函数首部,可分为以下几种情况:A、该行最后若有分号则删除,中间若有分号则改成逗号B、形参类型不一致的问题,特别是指针类型,若后面用到某形参时有指针运算则该形参必为指针类型;若形参是二维数组或指向m个元素的指针变量,则第二维的长度必须与main中对应数组的第二维长度相同C、函数类型不一致的问题,若函数中没有return语句则函数类型为void,若有return语句则函数的类型必须与return 后变量的类型一致。
2、若错误行是if或while语句,则首先看有没有用小括号将整个表达式括起,若没有则加上小括号。
3、若错误行中有if、while、for则要特别注意条件表达式的错误问题:A、指针变量的应用,若表达式中有指针变量且没有指针运算符,则加上指针运算符B、若条件表达式中只有一个等于号,则改成两个等于号,若为其它比较运算符则一般是进行逆转或加一个等于号C、for中要用分号分隔表达式,而不是用逗号4、语法错误A、语句缺少分号,若错误行中有语句没有用分号结束,则加上分号。
二级C语言上机改错题做题方法和技巧总结一、改错题之方法步骤1.上机考试中改错题占18,一般有两个地方有错误,题型简单2.做改错题时先看出错的地方,分析语法错误,如果能用C语言的语法判断出错误,改之即可3.没有语法错误即分析逻辑错误,逻辑错误可以从几个方面分析:(1)从题目的要求中找到错误,例如:题目要求计算s=1+1/2+1/3+…+1/n,那么循环的范围就应该是for(i=0;i<=n;i++),但是考试中经常将其写为:for(i=0;i<n;i++) (2)根据题目中的关键字改错,例如:题目中要求从小到大排序,则“从小到大”就是关键字(3)重点注意函数的调用、函数的返回值类型,函数的形参,这个是上机考试中的重点(4)注意细节,请参考以下为考生总结的知识(5)多练习,多思考,多总结二、改错题之语法错误1.关键字出错(1)关键字出错,指的是C语言中的关键字出错。
C语言的关键字都是小写字母,并且在VC++6.0中以蓝色字体显示,如果常见的关键字是黑色字体,可以断定关键字出错;(2) if关键字出错/************found************/If(substr[k+1]=='\0')(3) double关键字出错/**********found**********/double fun(double a, dounle x0)(4) while关键字出错/**********found**********/wihle( q>p )(5) return关键字出错/************found************/Return(Value);2.格式出错(1) C语言中的语句、基本结构、函数等都有相应的规范格式,程序中将这些格式书写错误,将导致编译器无法识别程序,因此导致出错;(2)语句末尾少分号1)分号是语句结束的标志,每个语句都必须以分号结尾2)举例:3) /**********found**********/q=p+i(3) for结构格式出错1)for结构的格式:for(表达式1;表达式2;表达式3){ 循环体语句 },for结构体中表达式必须以分号隔开,改错题中经常出现将for结构中分号错写为逗号的情况;2)举例:/************found************/for( i = 100, i <= m, i += 100 )(4) if结构格式出错1)if结构的格式:if(表达式),if后面必须加上小括号2)举例:/************found************/if n = = 0(5)数组格式出错1)一维数组的定义形式:类型名数组名[常量表达式],谨记[]是数组的独有特征2)举例:/**********found**********/t(k)=b(j);3)举例2:(二维数组不能省略列下标)/************found************/int fun(int n, int xx[][])(6)函数格式出错1)记住函数名后面一定是花括号,不能是方括号,方括号只有在数组下标中用到2)举例:/**********found**********/n=strlen[ aa ];3)scanf(输入控制,输入数据列表),scanf函数中输入数据列表要求为变量的地址4)举例2:/*********found**********/scanf("%d",a[i][j]);(7)命令行格式错误1)#include “stdio.h”,include和define前面都必须有#2)举例:/************found************/include (stdio.a)3.使用了未定义的变量:变量必须先定义后执行(1)0(零)和o(字母欧)的区别1)区别:零像鸡蛋,字母欧像乒乓球2)举例:/************found************/a2=k/1o;(2)P(大)和p(小)的区别1)区别:一般在定义时候p为小写,但是在使用的时候变为大写P,做题时候一定要细心2)举例:fun(int *a,int n,int x){ int p=0,i;a[n]=x;while( x!=a[p] )p=p+1;/**********found**********/if(P==n) return -1;(3)普通变量大小写的区别1)定义时候和使用时候变量的大小写不一致,违背了变量必须“先定义后执行”的原则2)举例:int fun ( float *s, int n, float *aver ){ float ave, t = 0.0 ;int count = 0, k, i ;for ( k = 0 ; k < n ; k++ )/**************found**************/t = s[k] ;ave = t / n ;for ( i = 0 ; i < n ; i++ )if ( s[ i ] < ave ) count++ ;/**************found**************/*aver = Ave ;/*分析:定义时候float ave, t = 0.0 ;ave为小写,但是此时使用时候却是Ave大写,因此出错*/return count ;}三、改错题之逻辑错误1.运算符号出错:(1)C语言中除号是“/”不是“\”(2)赋值号(=)和等号(= =)混淆1)记住在if语句中出现赋值号(=)一般是讲它改为等号(= =)。
计算机二级VB上机操作练习题及答案计算机二级VB上机操作练习题及答案Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,下面店铺为为大家带来计算机二级VB上机操作练习题及答案,希望大家喜欢!一、基本操作题(1)在名称为Forml、标题为“球类项目”且没有最大化和最小化按钮的窗体上画1个名称为Combol的组合框。
组合框中的文本内容为空,表项内容有“乒乓球”、“羽毛球”和“网球”3项。
运行后的窗体如图所示。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjtl.vbp,窗体文件名为sjtl.frm。
(2)在名称为Forml、标题为“转换”的窗体上,画1个名称为Shapel、边框宽度为3的形状。
再画两个标题分别为“椭圆”和“圆”的命令按钮。
如下图所示。
要求:编写适当的事件过程,使得单击“椭圆”按钮时,Shapel 的形状变换为椭圆;单击“圆”按钮时,Shapel的形状变换为圆。
程序中不得使用变量,每个事件过程中只能写一条语句。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjr2.vbp,窗体文件名为sjr2.frm。
二、简单应用题(1)考生文件夹中有工程文件sjt3.vbv。
窗体上显示有一个列表框和一个文本框,且列表框中已有若干列表项。
程序的功能是,程序运行时,当用户在列表框中单击并选中某个列表项时,该项的内容将显示到文本框中,用户可以在文本框中对相关内容进行编辑,按回车键后,能够用编辑好的内容替换被选中的列表项,并自动清空文本框;当双击某个列表项时,则从列表框中删除该列表项;当用户直接在文本框中键入文本并按回车键后,则把该文本添加为列表框的一个新列表项,添加完成后,将文本框清空。
运行窗体如图所示。
要求:程序已经给出,但不完整,请将其中的注释符去掉,把“?”改为正确的内容,以实现上述程序功能。
注意:考生不得修改窗体文件中已经存在的控件和程序。
最后程序按原文件名存盘。
江苏计算机二级VB上机改错攻略赋值错共有以下几种类型:位置错 2005年(春)02卷赋值数错误 2004年(秋)06卷赋值数组元素不对应 2003(秋)05卷/2003年(春)08卷其中2003(秋)与2003(春)相似被赋值数组元素不对应 2005年(春)07卷/2004年(春)02卷/2003年(秋)04卷/2003年(春)04卷其中2005(春)与2003(春)相似③、结构错结构错共有以下几种类型:Do-loop结构错 2003年(春)01卷/2003年(春)03卷2003年(春)04卷/ 2003年(春)05卷2003年(春)06卷退出语句错 2004年(秋)05卷/2004年(春)01卷2003年(春)01卷/ 2003年(春)02卷2003年(春)07卷For循环语句缺少step-1 2003年(秋)02卷④、定义错定义错共有以下几种类型:调用过程变量定义错 2005年(春)03卷/2002年(秋)02卷调用函数名定义错 2004年(秋)04卷重新定义数组元素不对应 2004年(春)04卷/2004年(春)06卷2004年(春)08卷缺少重新定义数组错 2004年(秋)07卷重新定义缺少 Preserve 2004年(春)05卷定义静态变量 2004年(秋)08卷变量定义类型错 2003年(秋)06卷⑤、循环语句错循环语句错共有以下几种类型:循环上界错 2005年(春)02卷/2004年(秋)02卷2004年(春)05卷/2002年(秋)04卷其中2004年(秋)卷与2004年(春)卷相似循环下界错 2004年(秋)01卷/2002年(秋)03卷⑥、比较问题:比较问题共有以下几种类型:If条件 2005年(春)05卷/2004年(春)07卷2003年(秋)01卷/2003年(秋)03卷2002年(秋)02卷/2002年(秋)06卷Do-while条件 2002年(秋)08卷⑦、函数错函数错共有以下几种类型:Mid函数错 2005年(春)02卷/2004年(春)02卷2003年(春)08卷说明:2004年(春)中Mid只与Cstr函数连用整除与Mod函数 2005年(春)04卷Right与Len函数错 2005年(春)05卷/2004年(秋)03卷Right函数错 2003年(秋)02卷Chr 函数错 2003年(秋)07卷缺少Val函数 2002年(秋)05卷Cstr与str用错 2005年(春)04卷/2003年(春)03卷2002年(秋)05卷⑧、调用问题调用错误共有以下几种类型:调用实参错 2002年(秋)01卷/2002年(秋)08卷调用表达式错 2003年(春)06卷调用形参形式错 2004年(秋)01卷/2004年(秋)02卷2004年(秋)07卷/2003年(秋)05卷2003年(秋)06卷/2002年(秋)06卷循环体I按数值传递 2005年(春)03卷/2005年(春)04卷⑨、数组问题数组问题共有以下几种类型:数组元素错 2005年(春)06卷/2003年(秋)04卷数组名称没有写 2004年(秋)05卷⑩、语句错Else语句不全 2005年(春)08卷If 语句不全 2004年(秋)08卷缺少If语句 2003年(春)05卷⑾、其它问题共有以下几种类型:逻辑词用错 2004年(春)03卷/2002年(秋)05卷List.listCount语句 2003年(秋)02卷资料如有不足之处,敬请读者不吝指正。
四、程序调试改错题(两小题,共10分,每处2分)1.改错题1答案:Dim s As Double, i As Integer, n As Single, m As SingleLabel11 lable1.Caption = "" ‘ ****n = 2m = 1s = 0 ‘****For i = 1 To 12Label1 = Label1 & n & "/" & m & ", "s = s +n /m ‘******t = m + nm = nn = tIf i Mod 4 = 0 Then ' 每行显示4项,vbCrLf回车换行Label1.Caption = Label1.Caption & vbCrLfEnd IfNext iLabel1.Caption = Label1.Caption & "s=" & Format(s, "###.####")2.改错题2答案:' 本程序段求AB集合的交集,A集合元素由数组初始化赋值,B集合元素随机产生。
' 程序中有2个错误,请调试改正。
Dim a(), b() As Integer, i%, j%, n%a() = Array(1, 3, 6, 8, 11, 13, 17, 18) ' A集合Picture2.ClsPicture2.Print "A集合元素:8个"For i = 1 To 7 ‘********Picture2.Print a(i);Next in = Int(Rnd * 9) ' 随机产生B集合大小,无错误ReDim b(n)Picture2.Print vbCrLf; "B集合元素:" & (n + 1) & "个" 'vbCrLf回车换行For i = 0 To nb(i) = Int(Rnd * 30 + 1) ' 随机产生B集合元素,无错误Picture2.Print b(i);Next iPicture2.Print vbCrLf; "AB交集元素:";For i = 0 To UBound(a)For j = 0 To nIf b(j) = a(j) Then Picture2.Print b(j); ' ******Next jNext i五、编程题(36分)程序参考代码:窗体1Private Sub List1_Click()If List2.ListCount >= List1.ListCount ThenList2.ListIndex = List1.ListIndexEnd IfEnd SubPrivate Sub menu11_Click()List2.ClearOpen App.Path + "\pj.txt" For Input As #1Do While Not EOF(1)Input #1, djList2.AddItem djLoopClose #1End SubPrivate Sub menu13_Click()EndEnd Sub窗体2Private Sub Command1_Click()s1 = Val(Text1) * Val(List2.Text)l = 4If Len(List1.Text) = 5 Then l = 6Text2 = Text2 & List1.Text & Space(l) & Text1 & "张,计" & s1 & "元" & vbCrLf End SubPrivate Sub menu2_Click()Form2.ShowForm1.HideEnd SubDim sPrivate Sub Command1_Click()Timer1.Interval = 100 '开始计时Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Form1.ShowForm2.HideEnd SubPrivate Sub Command3_Click()Timer1.Enabled = FalseLabel2.Caption = "累计进场人数: " & s End SubPrivate Sub Timer1_Timer()n = Int(Rnd * 20)Label1 = ns = s + nEnd Sub。
国家二级VB机试(上机操作)模拟试卷105(题后含答案及解析) 全部题型 2. 基本操作题 3. 简单应用题 4. 综合应用题基本操作题1.请根据以下各小题的要求设计visual Basic应用程序(包括界面和代码)。
(1)在名称为Forml的窗体上画一个名称checkl的复选框数组(Index属性从0开始),含三个复选框,其标题分别为“语文”、“数学”、“体育”,利用属性窗口设置适当的属性,使“语文”未选,“数学”被选中,“体育”为灰色,再把窗体的标题设置为“选课”,如图3—178所示。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjtl.vbp,窗体文件名为sjtl.frm。
(2)在名称为Forml的窗体上画两个文本框,名称分别为Text1、Text2,再画两个命令按钮,名称分别为Command1、Command2,标题分别为“复制”、“删除”。
程序运行时,在Textl 中输入一串字符,并用鼠标拖拽的方法选择几个字符,然后单击“复制”按钮,则被选中的字符被复制到Text2中(如图3—179所示)。
若单击“删除”按钮,则被选择的字符从Textl中被删除。
请编写两个命令按钮的C1ick过程完成上述功能。
注意:要求程序中不得使用变量,事件过程巾只能写一条语句。
存盘时必须存放在考生文件夹下,工程文件名为sit2.vbp,窗体文件名为sjt2.frm。
正确答案:第1小题【操作步骤】步骤1:新建一个“标准EXE”工程。
步骤2:在窗体Forml中加入一个复选框,并用“复制”和“粘贴”的方法,生成包含三个元素的复选框数组。
步骤3:按要求分别设置窗体和复选框数组中各元素的相关属性。
步骤4:按要求将文件保存至考生文件夹中。
第2小题【操作步骤】步骤1:新建一个“标准EXE”工程,按要求画出控件并设置属性。
步骤2:在代码编辑窗口,分别编写“复制”和“删除”按钮的单击事件过程。
参考代码:Private Sub Commandl Click( )Text2=Text 1.SelTextEnd SubPrivate Sub Command2 Click( )Forml.Text1.SelText=“”End Sub步骤3:按要求将文件保存至考生文件夹中。
2008年4月国家二级(VisualBasic)笔试真题试卷(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.程序流程图中带有箭头的线段表示的是( )。
A.图元关系B.数据流C.控制流D.调用关系正确答案:C解析:程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。
其中,用带箭头的线段表示控制流,用柜形表示加工步骤,用菱形表示逻辑条件。
2.结构化程序设计的基本原则不包括( )。
A.多态性B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。
3.软件设计中模块划分应遵循的准则是( )。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合正确答案:B解析:耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。
软件设计应该遵循高内聚低耦合的准则。
4.在软件开发中,需求分析阶段产生的主要文档是( )。
A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划正确答案:B解析:需求分析的最终结果是生成软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标的确认,又可以作为控制软件开发进程的依据。
5.算法的有穷性是指( )。
A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用正确答案:A解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序正确答案:D解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)。
三步逐过程法”解二级VisualBasic上机考试改错题
一、改错题解法现状
许多同学为了掌握解决改错题的技巧和方法,一方面着重熟练VB集成开发环境中调试工具的使用,另一方面归纳总结了近几年来二级考试改错题中涉及到的错误类型。
这些对于提高应试能力无疑是有帮助的。
但是在实际考试中,他们也发现,解答改错题的方法沦为逐一去猜测错误类型,然后按模式来套解。
毫无疑问,这一解法效率慢,正确率不高,而且即便正确解答出来,也有一种侥幸的感觉。
之所以如此,根本的原因在于没有抓住具体题目算法逻辑特征这一主线,因而单纯的总结错误类型的意义也就不大了。
为此,我们可以采用一种比较完善的改错题解法——“三步逐过程法”。
二、“三步逐过程法”解法说明
“三步逐过程法”核心是把握题目算法逻辑特征,按照“从整体到部分,再由部分到整体”的思路排查错误,调试程序,具体步骤可分为三步:步骤一:把握题意,泛读程序,分析程序组成和各过程的功能;
步骤二:从通用过程入手, 逐过程输入并逐过程调试;
步骤三:输入并调试事件过程,完成对各通用过程调用和组装。
下面,我们结合一道改错题来具体说明每个步骤中的方法和技巧。
三、“三步逐过程法”解改错题举例
以江苏省二级VB上机考试中的一道考题为例。
已知下面程序的功能是找出2000以内这样的正整数N: 它的不同值的因子(包括1和N在内)之和是一个素数. 例如: 16: 1+2+4+8+16=31(下图为程序正确执行时的画面).
含有错误的源程序如下:
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim I As Integer, K As Integer, Sum As Integer
Sum = 0
For I = 2 To 2000
Call Fctor(I, Sum)
If Prime(Sum) Then
K = K + 1
Text1 = Text1.Text & Str(I) & " "
If K Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10) End If
Next I
End Sub
Private Sub Fctor(N As Integer, S As Integer)
Dim I As Integer, J As Integer
Do While I < N
If N Mod I = 0 Then
S = S + I
End If
I = I + 1
Loop
End Sub
Private Function Prime(N As Integer) As Boolean
Dim m As Integer
For m = 2 To Sqr(N)
If N Mod m = 0 Then Exit Sub
Next m
Prime = True
End Function
“三步逐过程法”解题步骤:
步骤一:把握题意,泛读程序,分析程序组成和各过程的功能;
显然,该程序的组成如下图所示:
那么,我们如何分析出各个过程的功能呢?
核心技巧是从输出语句着手, 逆向推导, 分析各变量的含义, 进而根据过程的输入参数及其输出或
者反馈, 分析出此过程的功能。
1.标记出输出语句
输出语句有两句:
(1)、Text1 = Text1.Text & Str(I) & " "
(2)、If K Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10)
2.逆向推导,分析各变量的含义
对于输出语句(1),显然是将符合条件的数I显示到文本框。
而根据题意,符合条件的数必须满足:2000以内和因子和为素数两个条件,因此,我们从语句(1)逆向推导,我们知道I是由2到2000的循环变量,并且只有满足Prime(S um)为True的才能显示到文本框,因此,我们知道Sum应该是I的因子和;对于输出语句(2),后半句的功能是为了实现回车和换行,结合K Mod 5=0以及逆向找出的K=K+1,我们知道,K的功能是为了控制输出按照每5个换行进行。
3.分析过程功能
对于语句Call Fctor(I,Sum),由于此时的I为2到2000的循环变量,Sum 为I的因子和,因此我们可以判定Fctor的功能是求I的因子和,并将该和赋给S um变量;根据Prime(Sum),我们可以判定Prime的功能是对Sum值进行是否是素数的判定,如果是,则返回True,否则返回False。
步骤二: 从通用过程入手, 逐过程输入并逐过程调试.
核心技巧是将通用过程输入后, 根据步骤一中分析出的各过程的功能,用含有具体参数值的过程调用语句来调试过程, 即: 给定确定的输入, 看有无准确的输出或者反馈。
那么如何构造含有具体参数值的过程调用语句呢?
对于Function过程,由于有输入参数和返回值,因此比较好构造调用调试语句。
譬如,对于Prime过程,由步骤一中我们已经知道其作用是用于判断输入参数是否为素数,如果为素数则返回True,否则返回False。
因此我们可以构造:Print Prime(7);Prime(10)
为此,我们只要在窗体上放置一个按钮Command1,在Command1_Click中输入Print Prime(7);Prime(10)即可,若输出为“True False”,则该过程正确。
如此操作,调试结果为:
由此,我们将Exit Sub修改为Exit Function,运行正确。
对于Sub过程,其没有返回值,因此该过程的反馈信息将可以通过两种方式得到,一种是直接在Sub中使用输出语句显示运行结果;一种是利用按地址传递的参数将反馈信息由被改变的实参带出。
对于Fctor(N,S)过程,根据步骤一,知其功能是,求N的因子和并由S带出。
为此,首先,我们根据给定的可以设定N为16。
1.输入Prime过程, 用print prime(7),prime(10)来调试;
2.输入fctor过程, 用
dim s as integer
call fctor(16,s)
print s
来调试.
步骤三: 对于事件过程, 若代码较长, 则逐程序块输入并调试(程序块通常以循环来区分)
核心技巧:在事件过程中, 将完成对通用过程的调用组装, 因此特别留意以下三点:
循环:注意循环变量的初值、终值和步长以及累积量的初值。
数组:元素从0开始还是从1开始。
过程:注意参数传递(Byval、ByRef),返回值类型,调用形式,具体的说包括:
1.实参与形参类型是否一致.
2.参数传递方法(ByVal与ByRef)是否正确
3.循环调用时, 同一变量调用前后值有无干涉,具体体现在: 前值没
有清空遗留在后值中或者动态数组元素未清空等, 此时错误表现在: 清空语句放置位置不对.
四、总结:
1.思维过程是微观到宏观
体现在: 由题意及变量含义推断过程作用; 逐过程输入调试后再进行事件工程中的调用和组装;
2.在调试通用过程时, 应用了数学中的特殊值法;
3.在组装事件过程时, 应用了工程中的经验法。