目录I目录第1章可视化编程应用基础.1
vb基础教程 时间:2021-04-05 阅读:(
)
1.
1学习要点与必备知识.
11.
2习题精选.
21.
2.
1题目.
21.
2.
2答案与分析121.
3上机实习.
151.
3.
1题目.
151.
3.
2编程提示17第2章VB语言基础.
192.
1学习要点与必备知识.
192.
2习题精选.
222.
2.
1题目.
222.
2.
2答案与分析622.
3上机实习.
702.
3.
1题目.
702.
3.
2编程提示81第3章函数与过程.
853.
1学习要点与必备知识.
853.
2习题精选.
873.
2.
1题目.
873.
2.
2答案与分析1053.
3上机实习.
1083.
3.
1题目.
1083.
3.
2编程提示115第4章常用控件与窗体.
1204.
1学习要点与必备知识.
1204.
2习题精选.
1224.
2.
1题目.
1224.
2.
2答案与分析1394.
3上机实习.
1434.
3.
1题目.
1434.
3.
2编程提示150第5章菜单与工具栏154VisualBasic学习辅导与上机实习II5.
1学习要点与必备知识.
1545.
2习题精选.
1545.
2.
1题目.
1545.
2.
2答案与分析1595.
3上机实习.
1605.
3.
1题目.
1605.
3.
2编程提示163第6章文件.
1656.
1学习要点与必备知识.
1656.
2习题精选.
1656.
2.
1题目.
1656.
2.
2答案与分析1756.
3上机实习.
1776.
3.
1题目.
1776.
3.
2编程提示183第7章数据库管理.
1877.
1学习要点与必备知识.
1877.
2习题精选.
1877.
2.
1题目.
1877.
2.
2答案与分析1917.
3上机实习.
1927.
3.
1题目.
1927.
3.
2编程提示195第8章VB的其他应用.
1978.
1学习要点与必备知识.
1978.
2习题精选.
1978.
2.
1题目.
1978.
2.
2答案与分析2028.
3上机实习.
2038.
3.
1题目.
2038.
3.
2编程提示205第9章二级考试环境2079.
1上机考试要求.
2079.
2上机考试环境简介.
2079.
2.
1上机考试系统的软硬件环境.
2079.
2.
2上机考试系统的启动和考生登录2079.
2.
3查看试题和答题.
2089.
2.
4交卷.
210目录III9.
3上机考试注意要点.
210第10章模拟试卷.
21110.
1笔试模拟试卷及参考答案.
21110.
1.
1模拟试卷1及参考答案.
21110.
1.
2模拟试卷2及参考答案.
22110.
1.
3模拟试卷3及参考答案.
23110.
1.
4模拟试卷4及参考答案.
24210.
2上机考试模拟试题.
25310.
2.
1模拟试题125310.
2.
2模拟试题2255第1章可视化编程应用基础1第1章可视化编程应用基础1.
1学习要点与必备知识学习要点可视化编程的基本概念VB开发环境的认识与使用VB应用程序的开发过程控件应用基础基本控件的使用必备知识1面向对象的基本概念类对象属性方法事件驱动事件与事件过程2VB中的对象3版本与特点学习版专业版企业版功能特点4开发环境窗体设计器控件工具箱属性窗口工程资源管理器代码编辑器等5程序开发过程界面的设计属性的设置代码的编写运行与调试6应用程序的开发模式设计模式运行模式中断模式程序运行的方式进入中断的方式7工程管理概念工程及其组成工程相应的文件工程的管理启动窗体的设置8帮助的应用联机帮助网上资源9控件基础控件与焦点控件的种类控件的常用属性及使用(BackColorBorderStyleCaptionEnabledForeColorHeightWidthIconMaxButtonMinButtonNamePictureTopLeftVisible)控件的格式化10基本控件使用标签(显示内容大小与文本的相互适应)文本框属性(TextMultiLineScrollBarsPasswordCharLocked)文本内容的选择(SeltextSelLengthSelStart)文本框的事件与方法(焦点的控制Change,Validate)命令按钮属性(CancelDefaultStylePictureDownPictureDisabledPicture)命令按VisualBasic学习辅导与上机实习2钮的单击事件1.
2习题精选1.
2.
1题目一选择题1VisualBasic是一种面向()的程序设计语言A过程B用户C方法D对象2VisualBasic是用于开发()环境下的应用程序的工具ALinuxBWindowsCNetwareDUNIX3VB6.
0不能开发基于()的应用程序也不能在这种环境下运行AWindows98BWindows2000CWindowsNTDUNIX4与传统的程序设计语言相比VB最突出的特点是()A结构化程序设计B程序开发环境C事件驱动编程机制D程序调试技术5VB具有除()之外的版本A学习版B专业版C企业版D网络版6从功能上说VB的3种版本()A学习版>专业版>企业版B企业版>专业版>学习版C专业版>企业版>学习版D专业版100thenBeepScore.
Text=______Score.
ElseTotal=xEndifEndSub1.
2.
2答案与分析一选择题(打*答案有分析)答案1D2C3D4C5D6B7D*8C9D10C11D12D13B14D15B16A17D18A*19D20B21C22D23D*24C*25D26A27C28C29A30B31C32C33A34C*35A36B37B38A39B40D41A42B43D44B*45C46D47C48A49A50D*51A52B53A54D55C56C57D58B59D60A61B62A63B64A*65C66B67B*68C*69A70D71C72A73C74D*75B第1章可视化编程应用基础1376C77A78B79B80B81C82D*83A84D*85C*86B87C88D89A90A91C92B93A94B95B*96A97A98A*99D*100D101A102B103B104A105D106D107B分析7Windows应用程序均可以不同的方式来启动VB也不例外如双击某一个窗体文件尽管也能启动VB但却不能打开相应的工程所以一般不推荐通过打开窗体文件的方法来启动VB18对象是具有特殊属性(数据)和行为方式(方法)的实体23在VB中所有的控件对象都有一个默认事件但默认事件并不一定是Click有些控件根本没有Click事件24VB中的控件有3类默认在工具箱内出现的是VB的内部控件这些控件不能被用户删除而其他加入的控件都是可以删除的34根据缺省规定所有VisualBasic的移动调整大小和图形绘制语句都使用缇为单位缇是打印机的1磅的1/20(1440缇等于1英寸567缇等于1cm)44VB程序可能包括多个窗体只能首先有一个窗体先运行默认情况下是设计时的第一个窗体通过改变启动窗体可以将其他窗体变为启动窗体甚至可以将一个Main()过程作为启动对象50GetFocus方法指一个控件获得焦点后而引发所以它并不是获得焦点的方法64多选控件的方法除了用Shift键以外还可以使用Ctrl键67TabStop属性决定了程序在运行时用户是否可以通过Tab键将焦点移到相应的对象上如某对象的该属性设置为True,表示允许使用Tab键否则不能用Tab键将焦点移至该对象上该属性不影响鼠标的操作68要使标签在垂直方向上自动适应不仅要设置标签的WordWrap属性为True而且还要使AutoSize属性也为True74当有动作作用于某控件时可能会触发若干个事件当使用鼠标单击某个控件时不仅会引发Click事件而且也会触发MouseDownMouseUpDblClick等事件但由于一般不对这些事件编程因此不会执行操作82按钮控件的Cancel属性用于设置是否响应Esc键如某按钮该属性为True则当程序运行时用户按Esc键相当于用鼠标单击该按钮与此类似的属性还有一个Default它用于设置是否响应回车键84制作图形按钮有两种方法一种是在属性窗口将图片填充到按钮的Picture属性中另一种方法是使用代码在运行时设置85当同时选择了多个控件后控件四周会出现尺寸柄能作为基准的控件的尺寸柄为实心方块VisualBasic学习辅导与上机实习1495文本框的Locked属性决定了该文本框运行时用户是否能修改文本框中的内容但不能阻止利用代码对文本框内容的修改98文本框的Enabled属性与Locked属性不同当前者设置为False后文本框呈灰色且不能获得焦点后者设置为True后文本框显示正常也能获得焦点但不能修改其内容99当文本框的内容发生变化(用户输入代码设置等)时均会触发Change事件二填空题1Basic2面向对象程序设计3窗体4字母分类5类6设计界面7单击运行按钮按F5键81与一般的应用程序不同在VB中每次只能打开一个工程9MSDNMicroSoftDeveloperNetwork10焦点11属性窗口程序代码12内部控件(标准控件)ActiveX控件可插入对象13Command214事件15网格网格的大小及是否起作用可通过工具|选项菜单下的通用选项卡来设置16AutoSizeTrue17基准控件基准控件是进行多个控件同时格式化的基准18Ctrl19窗体模块标准模块类模块20021TrueAutoSize22前者的内容可以被编辑而后者则不行23文本框中被选中的文本内容与文本选择相关的属性有3个SelStartSelTextSelLength24525Click26Picture27Alt+O28属性Text29你好30Text2.
TextVal(Text3.
Text)Caption31隐藏Text1文本框显示Text1并在其上显示VB程序设计第1章可视化编程应用基础1532""SetFocus先清除文本框Score中的内容然后将焦点重置于文本框中1.
3上机实习1.
3.
1题目总体编程要求(下同)请按题目中给出的界面图来设计界面对没有界面要求的自行决定对相关属性的设置凡题目中有要求的按要求来设计否则自行决定1VB6.
0开发环境的熟悉与使用(1)用不同的方法启动VB比较几种启动方法的区别(2)熟悉VB开发环境的主界面各组成部分及含义(重点在窗体设计器控件工具箱属性窗口工程资源管理窗口)(3)熟悉MSDN帮助的使用方法(4)通过因特网查找相关的VB资源2简单程序的设计与控件的使用编程要求(1)程序运行后的界面如图1-1所示(2)在设计界面时两个标签在水平方向要足够宽可贯穿整个窗体垂直方向可根据字体大小来设置上一个标签设为隶书粗体三号蓝色下一个标签设为楷体粗体二号红色两标签均取居中对齐(3)界面上设置4个命令按钮按钮标题如图1-1所示要求程序运行时用户单击前3个按钮中的任一个上面两个标签能随之改变位置单击退出按钮时程序结束(4)程序设计完成后保存在D:\VBsj下工程名称为VBsj文件名自行决定下同3接上题在窗体上删除欢迎进入标签和前两个按钮增加两个标签和一个文本框将窗体做成一个登录窗口编程要求(1)程序运行后的界面图1-2所示图1-1图1-2VisualBasic学习辅导与上机实习16(2)如用户在文本框中输入了口令(可以是任意字符)单击确定后则在下面的标签显示你所输入的口令为和所输入的口令在输入口令时文本框内显示*(3)在表1-1中填写相关属性表1-1控件属性名称属性值控件属性名称属性值标签1CaptionFontForColor文本框名称TextPasswordChartxtPass""标签2CaptionFontForColor命令按钮3名称CaptioncmdOK标签3名称CaptionlblProm命令按钮4名称CaptioncmdExit4编一程序要求程序运行时输入3种商品的价格购买数量计算并输出所用的总金额程序运行后的界面如图1-3所示要求将计算按钮作为默认按钮退出按钮为取消按钮其他相关控件的属性自行确定5按图1-4所示界面设计一个留言簿要求单击提交按钮后将上面文本框的内容显示在下面文本框中且下面文本框中的内容不可修改单击清除按钮则清除两个文本框的内容图1-3图1-46按图1-5所示程序界面设计一个加法器7在窗体上画一个文本框和两个命令按钮然后执行如下操作(1)单击第一个按钮时文本框消失单击第二个按钮时文本框重新出现并在文本框中显示VB程序设计显示的字体为黑体蓝色大小为16(2)运行该程序(3)退出VB(4)重新启动VB装入上面建立的程序并在窗体上增加一个命令按钮单击该按钮时结束程序运行保存所作的修改第1章可视化编程应用基础178设计一个学生基本情况调查表界面如图1-6所示要求单击提交按钮将上面文本框中输入的信息逐行显示在下方的文本框中同时在中间显示动态信息**同学的信息为其中**根据输入而定单击清除则清除所有信息图1-5图1-61.
3.
2编程提示2窗体上的控件属性设置如表1-2表1-2控件属性名称属性值控件属性名称属性值标签1CaptionFontForColorAlignmentVB学习指导隶书蓝色2命令按钮2名称CaptioncmdCent居中标签2CaptionFontForColorAlignment欢迎进入楷体红色2命令按钮3名称CaptioncmdRight右对齐命令按钮1名称CaptioncmdLeft左对齐命令按钮4名称CaptioncmdExit退出3所需属性设置如表1-3表1-3控件属性名称属性值控件属性名称属性值标签1CaptionFontForColorVB学习指导隶书蓝色文本框名称TextPasswordChartxtPass空*标签2CaptionFont请输入口令楷体命令按钮3名称CaptioncmdOK确定标签3名称CaptionlblProm空命令按钮4名称CaptioncmdExit退出VisualBasic学习辅导与上机实习18确定按钮的事件过程代码如下PrivateSubcmdOK_Click()lblProm.
Caption="你输入的口令为"&txtPass.
TextEndSub退出按钮的命令代码一般只有一句UnloadMe或者End4窗体及控件的属性设置略计算按钮的事件过程是要计算所购商品的总金额其值显然等于每种商品的数量与价格的乘积之和参考代码如下PrivateSubCommand1_Click()Text7.
Text=Text1.
Text*Text4.
Text+Text2.
Text*Text5.
Text_+Text3.
Text*Text6.
TextEndSub程序中Text1.
Text等是将文本框Text1中的内容取出文本框中的数据类型一般都是字符串型因此严格来说应该使用Val函数将其转化为数值即Val(Text1.
Text)但VB本身也可以识别上述的表达方法5本题中上文本框的属性在设置时要注意MultiLine属性值为True以便能输入多行文本下文本框的属性设置除多行以外还应将Locked属性设置为True即该文本框只用于显示内容而不允许用户编辑两个按钮的事件过程非常简单故省略6界面设计略为了在单击相加按钮后能将两个文本框内容的和送到和文本框中在该按钮的事件过程中可使用如下代码Text3.
Text=Text1.
Text+Text2.
Text对于清除按钮事件过程的任务是将所有文本框的内容清空清空文本框的方法是Text1.
Text=""7本题有3个方面的问题(1)文本框的消失与重现利用文本框的Visible属性当其值为True时可见反之隐藏因此只要在相应命令按钮的事件代码中对该属性进行设置即可(2)在文本框中显示指定的内容(3)设置显示内容的字体特性可以利用文本框的FontNameForeColorFontSize等属性例如设置文本框的文字大小为16Text1.
FontSize=168界面设计中下方的大文本框设置时注意其多行带垂直滚动条不可编辑等标签内容的动态显示lblXs.
Caption=txtXm.
Text&"同学的信息为"文本框多行内容的送入txtInf.
Text=txtInf.
Text+txtXh.
Text+vbCrLf+txtXm.
Text+vbCrLf+…第2章VB语言基础19第2章VB语言基础2.
1学习要点与必备知识学习要点常量变量与数据类型运算符与表达式数组概念基本操作常用标准函数人机对话函数编程基础与程序流程控制顺序结构选择结构循环结构基本程序的编制与算法必备知识1数据运算基础数据类型(种类表示范围自定义数据类型)常量(文字常量符号常量)变量(命名类型定义类型符)运算符与表达式(算术运算关系及逻辑运算运算优先顺序)2标准函数转换函数数学函数时间与日期函数字符串处理函数算术函数(AbsSin/Cos/Atn/TanExp/LogRnd/RandomizeSgnSqr)字符串函数(Lcase/UcaseLeft/RightLenLtrim/Rtrim/TrimMidSpaceStringInStr)日期及时间函数(Time/DateNowDateValueDay/Month/Year/WeekDay)转换函数(Str/ValChr/AscFix/IntCint/Cbool/Cbyte/Cdate/Cdbl/Cstr)由于VB的函数众多为了学好函数的使用可以通过立即窗口立即窗口是VB提供的交互执行窗口在立即窗口中可以输入命令命令行解释程序对输入的命令进行解释并立即响应3数据的输入与输出InputBox函数MsgBox函数Print方法(1)字体的控制在VB的应用程序中可以输入或显示各种英文字体和汉字字体字体具有类型大小字形等属性这些属性可以通过属性窗口进行静态设置亦可通过代码进行动态设置使用代码动态设置的方法如下字体的类型object.
FontName[=font]object能够接收字符的对象名可以是窗体文本框标签打印机等其中font是系统字体的合法名称其名称可以通过Fonts属性得到如省略则使用系统默认字体为宋体字体大小object.
FontSize[=points]object与上同points是指所设置字体的点数在默认情况下系统使用最小的字体点数为9VisualBasic学习辅导与上机实习20字体的字形在VB中能够像Word那样对字体的字形进行设置主要的属性有粗体FontBold斜体FontItalic删除线FontStrinkthru下划线FontUnderline这几个属性的值均为Boolean型有两个值True与False如取True则表示加上这些属性否则取消这些属性(2)格式输出函数当使用Print方法输出指定信息时尽管可以使用该方法提供的格式来规定输出信息的输出形式但这种输出的形式还不够丰富为此VB专门提供了一个格式输出函数Format用来指定数值或日期的格式输出其格式为Format(expression[,format])该函数的功能是按格式字符串format指定的格式输出表达式expression的值一般情况下它总用于数值表达式若省略格式字符串其与Str函数相似所不同的是当输出一个正数时Str函数会在输出值前产生一个空格而Format函数则不会使用该函数主要需确定格式字符串格式字符串及其用法如表2-1所示表2-1格式字符串及用法字符作用及用法#0.
,%$+,-E+,E-数字#的个数决定了显示的长度如数值位数小于指定的长度数值左对齐多余位不补0否则数值原样显示数字功能与#相同只是在多余的位补0小数点与#或0结合使用根据其位置小数部分多余的数字将按四舍五入处理千分位分隔符从小数点开始向左每3位一个逗号该符号可以放在格式串小数点左边的任何位置但一般不要放在开始或紧靠小数点的位置百分比符号放在格式串的尾部用来输出%美元符号放在格式串的起始在所显示的数值前加上一个$正负号指定输出的数值带+号或-号指数符号以指数的形式显示数值例如在立即窗口试验以下函数format("1223.
456"1,223.
46format("1223.
456","000,00.
0000")01,223.
4560format(".
456","#0.
0%")45.
6%format("123.
45","$000.
0")$123.
5format("123.
45","-000.
0")-123.
5format("123.
45","+000.
0")+123.
5第2章VB语言基础21format("12345.
67","0.
00E+00")1.
23E+04format(".
00012345","0.
00E+00")1.
23E-044数组数组的定义静态数组与动态数组数组的输入输出复制与初始化控件数组为了便于对数组进行操作VB提供了以下3个主要的数组函数Array()函数语法格式为Array(arglist)该函数的作用是对数组赋值使用方法是数组名=Array(数组元素值列表)例如给一个数组赋初值12345DimarrNasVariantArrN=Array(1,2,3,4,5)使用该函数为数组赋值时要注意(1)数组在定义时不能指定维数及上下标值(2)数组在定义时只能使用Variant类型Ubound()/Lbound()函数语法格式为Ubound/Lbound(arrayname[,dimension])功能为返回指定数组arrayname指定维dimension的上/下界值如省略维则返回第1维的上下界值5程序流程控制单行选择结构块选择结构多分支选择结构For循环结构当型循环结构直到型循环结构多重循环结构无条件转移语句GoTo命令的使用GoTo语句可以改变程序的执行次序因此既可以构成选择结构也可以构成循环结构由于该语句的执行是无条件的过多使用会影响程序的质量违反了结构化程序设计的基本原则因此一般并不推荐使用GoTo语句的语法是GoTolineline参数可以是一个标号或一个行号标号是一个以冒号结尾的标识符如Start:行号则是一个整形数尾部不加冒号如100程序在执行到GoTo语句时将无条件转移到line参数指定的标号或行号所在程序行执行Iif()函数Iif()函数用来进行简单条件判断其语法为Iif(expr,truepart,falsepart)执行时先判断逻辑表达式expr的值若值为True,则返回truepart的值否则返回falsepart部分的值该函数的执行过程与If…then…else的执行过程相似而且效率更高例如输出xy中的大值用If语句Ifx>yThenVisualBasic学习辅导与上机实习22PrintxElsePrintyEndIf用Iif函数PrintIif(x>y,x,y)2.
2习题精选2.
2.
1题目一选择题1Variant是一种特殊的数据类型除了()以外它可以包含任一种数据A固定长度字符串B可变长度字符串C整形D自定义型2下列符号中只有()是合法的VB变量名Axy23B23xyCSubDxy8[1]3下列符号中只有()不能用作VB的变量名AIntXB2logCtxtSmDtxt4函数Int(Rnd(0)*10)+1是下列()范围内的整数A(0100)B(1,100)C(0,10)D(1,10)5下列常量中()不是字符串常量A"北京"B""C"True"D#False#6数学表达式Sin30写成VB表达式是()ASin30BSin(30)CSin(30)DSin(30*3.
14/180)7在VB的逻辑运算中级别最高的是()AXorBAndCOrDNot8表达式a=1是()A算术表达式B关系表达式C字符串表达式D非法表达式9判断任意3条线段abc能否构成三角形的表达式为()Aa+b>=cOra+c>=bOrb+c>=aBNot(a+bcAnda+c>bAndb+c>a10以下常量中不合法的是()A10^2B100C100.
0D10E+111以下常量中不合法的是()第2章VB语言基础23ATrueB#1999-12-1#C1999-12-01DFalse12下列叙述中不正确的是()A变量名的长度不能超过255个字符B变量名的第一个字符必须是字母C变量名不能使用VB的关键字D变量名可以包含内嵌的类型声明符13不能正确表示两个整形变量a与b之一为0但不同时为0的表达式是()Aa*b=0AndabB(a=0Orb=0)AndabCNot(a=0Andb=0)And(a=0Orb=0)Da*b=0And(a=0Orb=0)14设b的值为7一表达式为x=b=7则运算后x为()ATrueBb=7C7Db15在表达式54+3*12^2-Sin(x+1)/2中最先进行运算的是()A12^2B3*12Cx+1DSin()16x+y小于10且x-y大于0的逻辑表达式是______Ax+y0B(x+y0Cx+y0Dx+y017代数表达式1π2||e++++yxyx对应VisualBasic表达式是______AE^(x+y)+|x+y|^1/2/2π+1BExp(x+y)+Sqr(Abs(x+y))/2*3.
14159+1C(Exp(x+y)+Sqr(Abs(x+y)))/(2*3.
14159+1)D(Exp(x+y)+Sqr(Abs(x+y)))/2*π+118代数表达式yxx++3πsineln对应的VisualBasic表达式为()ALog(Abs((Exp(3.
14159)+Sin(x)^3)/(x+y)))BLn(Abs((Exp(3.
14159)+Sin(x)^3)/(x+y)))CLog(Abs(Exp(3.
14159)+Sin(x)^3)/(x+y))DLog|Abs(Exp(3.
14159)+Sin(x)^3)/(x+y)|19下面表达式的值为真的是()AMid("VisualBasic",1,12)=Right("ProgrammingLanguageVisualBasic",12)B"ABCRG">"abcde"CInt(134.
69)>=Cint(134.
69)D78.
9/32.
77-4.
98VisualBasic学习辅导与上机实习2420下面说法不正确的是()AVB允许将一个数字字符串赋值给一个数值型的变量BVB允许使用未经说明的变量其类型都是Variant类型CCls只清除运行时在窗体或图形框中显示的文本或图形D事件过程既可建在窗体模块中也可建在标准模块中21假定变量Logic的类型是Boolean下面赋值语句()是正确的Alogic="True"Blogic=.
True.
Clogic=#True#Dlogic=30B1D=034要使用Rnd函数来模拟方形骰子投掷应使用()表达式AInt(6*Rnd(1))BInt(1+6*Rnd(1))CInt(6*Rnd(1)-1)DInt(7*Rnd(1)-1)第2章VB语言基础2535以下函数中不属于算术函数的是()ASin()BStr()CAbs()DExp()36能够返回字符代码的函数为()AChr()BMid()CInStr()DAsc()37删除字符串前导与尾随空格的函数是()ALtrim()BRtrim()CTrim()DLcase()38能实现字符ANSI编码方式与Unicode方式转换的函数是()AStrBStrconvCTrimDMid39Double类型的数据由()个字节组成A2B4C16D840获得系统日期的函数为()AData$BTime$CDate$DGetTime$41执行以下程序后变量c$的值为()a$="VisualBasicProgramming"b$="C++"c$=Ucase(left$(a$,7))&b$&Right$(a$,12)AVisualBasicProgrammingBVISUALC++ProgrammingCVisualC++ProgrammingDVISUALBASICProgramming42下列各组变量声明正确的是()ADimabcasinteger,numassingleBDimI%,N$asintegerCDimA%,b%,c%,a$DPublicDimn%43字符串的连接运算符为()A@B$C&D*44下列选项中为十六进制数的是()A123B&123C&O123D&H12345要声明一个长度为20个字符的定长字符串下列只有()是正确的ADimstrasstringBDimstrasstring(20)CDimstrasstring[20]DDimstrasstring*2046下列表达式不合法的是()A"123"+"abc"B123&"abc"C1+2\3D[3*(4+5)-6]/747下列逻辑运算结果为True的是()AfalseornottrueBfalseandnottrueCtrueornottrueDtrueandnottrue48Single类型的数据由()字节组成A1B2C4D849日期型常量必须用()括起来A"B'C()D#VisualBasic学习辅导与上机实习2650设a=2,b=3,c=4,d=5表达式a>bAndcc的值为()A-1B1CTrueDFalse51用InputBox函数可以生成()A消息框B保存对话框C简单输入框D颜色对话框52执行下列语句在用户输入并按确定后st$变量的内容为()st$=InputBox("请输入字符串","字符串对话框","字符串")A字符串B请输入字符串C字符串对话框D用户输入的内容53已知变量xy为整形量且x=4,y=12,s="a",lblok为标签下列修改标签文字语句合法的是()Ax=lblok.
captionBlblok.
caption=Str(x)Cx*y=3Dy=x*s54下列各赋值语句中不正确的是()Ax+y=5BiNumber=15Clblsj="Time"DsLength=x+y55如果想在程序中反复使用一个日期数据2002/8/21为了避免在编写程序时反复输入这个数据也为了能一次修改所有用到这个数据的语句可以采用()A将这个数据声明为字符常量用一个常量标识符代表它B将这个数据声明为字符变量用一个变量标识符代表它C将这个数据声明为日期型常量用一个常量标识符代表它D将这个数据声明为日期型变量用一个变量标识符代表它56执行语句PrintFormat(5456.
678,"##,##0.
00"),正确的输出是()A5456.
68B5,456.
68C5,456.
678D5,456.
6757执行语句PrintFormat$(54567,"00000000")正确的输出是()A54567B54567000C00054567D0545670058对于InputBox函数下列说法不正确的是()A每执行一次InputBox函数只能输入一个值BInputBox函数输入的是数值型CInputBox函数中的提示参数能省略D函数值必须赋于一个变量否则用户的输入就会丢失59Boolean型数据只有两种取值它们是()A0和1BYes和NoC"是"和"不是"DTrue和False60在InputBox函数的参数中必选的参数为()A输出信息B提示信息C定义无输入时的缺省值D定义输入框的位置61下列调用错误的是()Ax%=inputbox("请输入数据")BInputbox("请输入数据")第2章VB语言基础27Cx=Msgbox("是否继续查询")DMsgbox("是否继续查询")62下列输出语句中错误的是()Ax,yBPrintx,yCform.
printx,yDprintformatx,y63若要强制变量先声明后使用应该用()语句来说明APublicconstBOptionExplicitCExplicitDOptionBase64如果有图片框Picture1与文本框Text1,下列不正确的语句是()APrint25BPicture1.
Print25CText1.
Print25DDebug.
Print2565在立即窗口中以下语句的输出结果为()(为空格下同)a=27b=65Printa;bA2765B2765C2765D276566在立即窗口中以下语句的输出结果为()a="Beijing"b="ShangHai"Printa;bABeijingShangHaiBBeijingShangHaiCBeijingShangHaiDBeijingShangHai67语句Print5*5\5/5的输出结果为()A25B5C1D068语句PrintSgn(-4^2)+Abs(-4^2)+Int(-4^2)的输出结果是()A-16B-32C-1D169执行以下语句后的输出结果是()a=Sql(3)PrintFormat(a,A$1.
732B$$1.
732C$1732D$$0001.
73270InputBox函数的返回值是()A数值B字符串C变体D视输入而定71一命令按钮的Click事件过程为Dima,basIntegera=InputBox("请输入第一个数")b=InputBox("请输入第二个数")Printb+a程序运行时单击该按钮并分别输入456和123则输出的结果为()A579B123C456D123456VisualBasic学习辅导与上机实习2872以下4个运算符中()运算级别最高A+BModC\D-73执行下面的语句后所产生的信息框标题为()a=MsgBox("AAAA","BBBB","",5)AAAAABBBBBC出错不能产生信息框D空74MsgBox函数的参数中只有()是不能省略的ApromptBbuttonsCtitleDhelpfile75MsgBox函数中的buttons参数具有控制对话框内除()之外的作用A按钮的种类B图标的种类C按钮的数量D对话框的标题76执行以下命令所产生的对话框为()MsgBox"继续查询吗",vbYesNoCancel+vbQuestion,"提问"ABCD77MsgBox函数的返回值是()A字符型B整形C布尔型D不一定78假设程序中有如下语句answer=MsgBox("string1",,"string2","string3",2)执行该语句后将显示一信息框此时如果单击确定按钮则answer的值为()Astring1Bstring2Cstring3D179在VB中可以对字体除()以外的属性进行设置A粗体B斜体C下划线D空心80使用Print方法可以将信息输出到除()以外的对象上A窗体B文本框C打印机D立即窗口81数组定义时的上下界只能用()来表示A数值B变量C字符D大于等于0的整数变量或整数数值常量82定义了一个数组变量为A(-2to4)则该数组包含了()个元素A7B6C-2D483下列关于数组说法正确的是()A一个数组中只能包含相同类型的数据B数组只能在模块中定义不能在过程中定义C在有些情况下数组同普通变量一样也可以不定义先使用第2章VB语言基础29D定义数组时数组的每一维元素的个数必须是常数不能是变量或表达式84用下面的语句所定义的数组的元素个数为()DimarrA(3to5,-2to2)A20B12C15D2485执行以下代码后输出结果为()OptionBase0Dimaa=Array("a","b","c","d","e","f","g","h")Printa(1);a(3);a(5)AabcBbdfCaceD出错86数组x中合法的数组元素表示为()Ax9Bx[9]Cx(i+1)Dx{6}87定义了一个a(5)的数组现将数组的最后一个元素赋给变量b正确的是()Ab=a(5)Bb=a[5]Cb=a(4)Db=a[4]88下列数组声明的语句中()是正确的ADimA[3,4]AsIntegerBDimA(3,4)AsIntegerCDimA[3;4]AsIntegerDDimA(3;4)AsInteger89有变量定义语句DimaAsInteger变量a的类型和初值是()AInteger,0BVariant,空值CString,""DLong,090下列语句中()语句可以用来正确地声明一个动态数组APrivateA(n)AsIntegerBDimA()AsIntegerCDimA(,)AsIntegerDDimA(1Ton)91在Form_Click事件中执行如下语句的正确结果是()PrintFormat(1236.
54,0.
0%")A123456B+123,654.
0%C+123,6.
54%D+123,65492在窗体上用复制粘贴的方法建立了一个命令按钮数组数组名为arrM设窗体Form1的标题为"Myform1"双击控件数组中的第三个按钮打开代码编辑器输入以下代码PrivateSubarrM_Click(IndexAsInteger)Form1.
Caption="Myform2"EndSub运行时单击按钮数组中的第一个按钮窗体的标题为()AForm1BarrMCMyform1DMyform293一个具有4个按钮的控件数组运行时为了判断用户单击了哪一个按钮可以通过检查()来获得A按钮的标题B按钮的名称C事件过程中的Index参数值D按钮的序号94使用复制粘贴的方法建立了命令按钮数组Command1以下对该数组的说法错误的是()VisualBasic学习辅导与上机实习30A命令按钮的所有Caption属性都是Command1B在代码中访问任意一个命令按钮只需要使用名称Command1C命令按钮的大小都是相同的D命令按钮共享相同的事件过程95以下说法不正确的是()A使用ReDim语句可以改变数组的维数B使用ReDim语句可以改变数组的类型C使用ReDim语句可以改变数组的每一维大小D使用ReDim语句可以对数组中所有的元素进行初始化96在控件数组的事件过程中有一个参数Index,它表示的是()A数组中控件个数B控件数组的名称C数组中的控件编号D控件的位置97以下关于建立控件数组的说法中()是错误的A可以通过复制粘贴的方法建立B对已创建好的控件不能再建立控件数组C不同的控件不能建立控件数组D对同类控件可以将其名称修改为相同来建立控件数组98下列程序段的执行结果为()x=5y=-20IfNotx>0Thenx=y-3Elsey=x+3Printx-y;y-xA-33B5-8C3-3D25-2599下列语句正确的是()AIfxyTheny=x^3BIfxyTheny=x3CIfxyTheny=x^3-2DIfxyTheny=x**3100能够实现以下分段函数的程序段是()=0Theny=1+xBIfx0Theny=1+xy=1-xElsey=1-xEndIfCIfx>0Theny=1+xDIfxb,则输出a否则输出b第2章VB语言基础31AIfab,Printa,Printb)PrintbIfA>BThenPrintaElsePrintbEndIfCIfabThenPrintaElsePrintbEndIf102下列程序段执行的结果为()x=3y=2Ifx*y0ATrueBFalseC-1D1103下列程序段的执行结果为()A="abcd"B="bcde"E=Right(A,3)F=Mid(B,2,3)IfE1Theny=2BIfx>1Theny=2Ifx>=0Theny=1Ifx=0Theny=1Elsey=2EndIfDIfx>=1Theny=2ElseIfx>=0Theny=1Elsey=0EndIfVisualBasic学习辅导与上机实习32105以下语句正确的是()ASelectCaseaCase"A"b=1Case"B"b=2CaseElseb=3EndSelectBSelectCaseaCase"A"b=1Case"B"b=2CaseDefaultb=3EndSelectCSwitchaCase"A"b=1Case"B"b=2CaseElseb=3EndSwitchDSwitchaCase"A"b=1Case"B"b=2CaseDefaultb=3EndSwitch106下列程序执行后变量x的值为()Dima,b,c,dAsSingleDimxAsSinglea=100b=20c=1000Ifb>aThend=a:a=b:b=dEndIfIfb>cThenx=bElseIfa>cThenx=cElsex=aEndIfA100B20C1000D0107执行下列程序后整形变量c的值为()a=24b=328SelectCaseb\10第2章VB语言基础33Case0c=a*10+bCase1to9c=a*100+bCase10to99c=a*1000+bEndSelectA537B2427C24328D240328108程序的基本控制结构是()A顺序结构多分支结构与单分支结构BForNext结构DoLoop结构和SelectCase结构C顺序结构选择结构与循环结构D单行结构与多行结构109若整形变量a=2,b=3则下面的程序段执行后整形变量c的值为()Ifa>5ThenIfb3Thenc=a*bElsec=amodbEndIfA2B-1C1D6110执行下列程序段后变量a的值为()Dima,b,c,dAsSinglea=100b=20c=1000Ifb>aThend=a:a=b:b=dEndIfIfc>aThend=a:a=c:c=dEndIfIfc>bThend=b:b=c:c=dEndIfA0B1000C100D20111窗体上有3个文本框Text1Text2Text3和一个命令按钮Command1如果在Text1中输入200在Text2中输入150则执行下列程序后Text3的值为()PrivateSubCommand1_Click()VisualBasic学习辅导与上机实习34Dimm,n,tAsIntegerm=Val(Text1.
Text)n=Val(Text2.
Text)Ifn*m=0ThenExitSubEndIfIfm0Text3.
Text=mEndSubA200B50C100D150112关于多行结构的条件语句的执行过程正确的是()A各个条件所对应的语句序列中一定有一个语句序列被执行B找到条件为True的第一个入口便从此开始执行其后所有的语句序列C若有多个条件都为True则它们对应的语句序列都被执行D多行结构中的语句序列有可能任何一个语句序列都不被执行113下列块结构条件语句中正确的是()AIfx>10ThenPrint"a"Elseifx>5ThenPrint"b"Elseifx10ThenPrint"a"Elseifx>5Print"b"ElsePrint"c"EndIfCIfx>10ThenPrint"a"Elseifx>5ThenPrint"b"Elsex10ThenPrint"a"Elseifx>5ThenPrint"b"ElsePrint"c"EndIf第2章VB语言基础35114当条件为510ThenIfa>=5ThenPrint"A"ElsePrint"B"ElseIfa>=5ThenPrint"C"ElsePrint"D"EndIfAABBCCDD118在下面程序中如输入15其运行结果为()DimaAsIntegera=InputBox("请输入A的值")SelectCaseaCase1To4Print"D"Case5To10Print"C"CaseIs=15Print"B"CaseElsePrint"A"EndSelectVisualBasic学习辅导与上机实习36ADBCCBDA119下列程序段的执行的结果为()Dima,b,cAsIntegera=5:b=9:c=14:a=a+b:c=c-bIfa-c>b-cThena=b+cIfa-b>b-cThenb=a-cPrinta,b,cA369B204060C801414D1495120多分支结构执行哪一个分支的根据是()ASelectCase语句的测试表达式与Case语句中的变量值列表同为FalseBSelectCase语句的测试表达式与Case语句中的变量值列表同为TrueCSelectCase语句的测试表达式与Case语句中的变量值列表相匹配DSelectCase语句的测试表达式与Case语句中的变量值列表完全相等121假设x的值为5则在执行以下语句时其输出结果为Result的SelectCase语句是()ASelectCasexCase10to1Print"Result"EndSelectBSelectCasexCaseIs>5,Is5,1,3to10Print"Result"EndSelectDSelectCasexCase1,3,Is>5Print"Result"EndSelect122下列程序段的运行结果为()DimxAsIntegerx=Int(Rnd*3)SelectCasexCase5Print"优秀"Case4Print"良好"Case3Print"通过"CaseElsePrint"不通过"EndSelectA优秀B良好C通过D不通过第2章VB语言基础37123以下正确的叙述是()ASelectCase语句中的测试表达式可以是任何形式的表达式BSelectCase语句中的测试表达式只能是数值或字符串表达式C在执行SelectCase语句时所有Case子句均按出现的次序被顺序执行D如下的SelectCase语句中的Case表达式是错误的SelectCasexCase1to10EndSelect124语句Fori=n1Ton2Stepn3的循环体内有下列4条语句其中语句()会影响循环执行的次数nl=nl+in2=n2+n3i=i+n3n3=2*n3ABCD125对DoUntil…Loop循环正确的是()A如果循环条件为常数0则一次循环也不执行B如果循环条件为常数0则至少执行一次循环C如果循环条件是不为0的常数则至少执行一次循环D无论循环条件是否为"True"则至少执行一次循环126要在Do…Loop循环中退出循环应使用()语句AExitBExitDoCContinueDStopLoop127以下循环结构中VB不支持的是()AFor…NextBForEach…NextCDo…LoopDDo…EndDo128要在For…Next循环中退出循环应使用()语句AExitBExitForCContinueDStopLoop129下列关于For循环的说法中正确的是()A循环变量初值终值和步长都必须是数值型BStep后的值必须为正数C初值必须小于终值D初值必须大于终值130下列关于Do…Loop语句叙述不正确的是()ADo…Loop语句采用逻辑表达式来控制循环体执行的次数BDoWhile…Loop语句与DoUntil…Loop语句中While与Until后的表达式值为True或非零时循环继续CDo…LoopWhile与Do…LoopUntil语句都至少执行一次循环DDoWhile…Loop语句与DoUntil…Loop语句可能不执行循环131如下循环程序执行时将()VisualBasic学习辅导与上机实习38Fori=1to10Step0k=k+2NextiA形成无限循环B仅循环一次C语法错误D一次也不循环132对ExitFor,叙述正确的是()AExitFor语句可以退出任何类型的循环B一个循环只能有一条ExitFor语句CExitFor表示返回到For语句执行D一个For循环可以有多条ExitFor语句133对For循环中的初值终值与步长下列说法正确的是()A只能是具体的数值B只能是表达式C可以是数值表达式D可以是任何类型的表达式134要使循环至少执行一次应使用()循环AFor…NextBWhile…EndCDo…Loopwhile|untilDDo[while|until]…Loop135有如下的程序段该程序段执行完毕后共循环了()次Fori=1To2Forj=1ToiFork=1TojPrint"a"NextkNextjNextIA4B5C6D7136执行完下面的程序段后循环执行了()次Fori=1.
7To5.
9Step0.
9a=a+1PrintaNextIA3B4C5D6137以下程序段的循环次数为()Fori=1To3Forj=5To1Step-1Printi*jNextj,iA15B16C17D18138执行以下程序后x的值为()第2章VB语言基础39x=5Fori=1To20Step2x=x+i\5NextiA24B23C22D21139一命令按钮的事件过程如下程序运行后单击该命令按钮输出结果为()Fori=1To4x=4Forj=1To3x=x+6NextjNextiPrintxA72B22C4D7140以下三重循环的程序运行后A的值为()Fori=1To3Forj=1ToiFork=jTo3a=a+1NextkNextjNextIA3B9C14D21141窗体上有一文本框Text1对应窗体的Click事件过程如下程序运行单击窗体后其结果是()PrivateSubForm_Click()Text1.
Text=""Text1.
SetFocusFori=1To10Sum=Sum+iNextiText1.
Text=SumEndSubA在文本框Text1中输出55B在文本框Text1中输出0C出错D在文本框Text1中输出不定值142在窗体上有一命令按钮和一个标签其名称分别为Command和Label1然后编写如下事件过程PrivateSubCommand1_Click()VisualBasic学习辅导与上机实习40Counter=0Fori=1To4Forj=6To1Step-2Counter=Counter+1NextjNextiLabel1.
Caption=Str(Counter)EndSub程序运行后单击命令按钮标签中显示的内容是()A11B12C13D14143下列程序中第一个Do语句共执行了()次循环DimiAsInteger,jAsIntegeri=1Doj=1DoSum=Sum+jj=j+2Printj;LoopUntilj>3i=i+2LoopUntili>10PrintSumA10B20C5D7144一命令按钮的事件过程如下程序运行后单击该按钮其输出结果为()PrivateSubCommand1_Click()Fori=1To4Ifi=1Thenx=iIfi0Dimod20155下列程序共循环了()次Fori=1To10Step2Forj=1To5Step2intsum=intsum+jNextjIfintsum>10ThenExitForNextiA15B5C3D6156窗体上有一个文本框Text1和一个命令按钮Command1则执行下列事件过程后文本框的输出为()Fori=1To4Ifx>12ThenExitForForj=1To3Fork=1To2x=x+3NextkNextjNextiText1.
Text=Str(x)A6B12C18D21157下列程序段的执行结果为()Fori=5To1Step-1第2章VB语言基础45Forj=1To6-iPrintTab(j+5);"*";NextjPrintNextIA***************B***************C***************D****************158下列程序段的执行结果为()n=0j=1DoUntiln>2n=n+1j=j+n*(n+1)LoopPrintn;jA01B37C321D313159下列程序段的执行结果是()x=0:y=1Dox=x+yy=y+1LoopWhilex=8Bx=7Dx=5第2章VB语言基础47x=x+2k=k-1LoopA12B8C4D2165如下程序段执行完该程序后共循环()次DoUntilk>=3x=x+2k=k+1LoopA2B4C3D5166以下程序的运行结果为()DimxAsInteger,iAsIntegerx=1DoUntilx>10IfxMod30Theni=i+xEndIfx=x+1LoopPrintiA55B37C18D25167下列程序运行时输入的值分别为10010则执行结果为()DimmAsInteger,nAsIntegerm=InputBox("输入第一个数")n=InputBox("输入第二个数")Ifn*m=0ThenMsgBox"两数都不能为0"EndIfIfm0PrintmA100B250C50D10VisualBasic学习辅导与上机实习48二填空题1常量可分为普通常量与_______常量2数学表达式xyyx)(e+的VB表达式为_3与下列式子对应的VB表达式为_yxxyx133++4要表示一个日期常量必须用____符号括起来5双精度数由____和_____两部分构成中间用_____字母隔开6表达式9\5*3的值为______7以下程序将3个数从小到大进行排序试填空完成程序Ifa>bThend=a:a=b:b=dIf______Thend=a:a=c:c=dIfb>cThend=b:b=c:c=d8在SelectCase语句中至少应有一个_______子句9表达式"1234""12345"&"Abc"的值为______10使程序停止运行的命令是______11面向对象的程序设计方法是把程序和____封装起来作为一个对象并为每个对象设置所需要的_____12逻辑常量的值为______或_______13判断三条边abc能否构成三角形的逻辑表达式为_14要想在窗体上显示文字可使用______方法15一组具有相同名称不同下标的下标变量称为______16定义动态数组需要分两步进行首先在模块级或过程级定义一个没有下标的数组然后在______使用________语句定义数组的实际元素个数17某个程序要使用一个二维数组要求数组名A类型为字符型第一维下标为1~5第二维为下标-2~6则相应的数组声明语句为________18一般情况下数组定义时其默认的下标下界为_____但可以使用_语句来改变默认的下界19能够使用变量作为下标定维的数组只能是_______20用ReDim语句只能用来改变数组的_______21在启动VB6.
0时其默认的工程类型为_______22TrueXorFalse的值为______237mod3+3^3/4\5的值为______24字符型数据的类型标识符为_____25xy均小于z的表达式为______26在For…Next循环中其循环次数由循环变量的初值终值与步长决定计算公式为第2章VB语言基础4927在Do…Loop循环中如省略While或Until子句则会形成________28表达式4+=505/5aaababan第2章VB语言基础51用下面的程序试补全程序PrivateSubCommand1_Click()a=Val(Text1.
Text)b=Val(Text2.
Text)SelectCaseaCasen=a+bCase5n=b/aCase_n=0EndSelectText3.
Text=nEndSub54以下程序根据文本框中输入的成绩x进行处理试补充以下程序x90打印成绩优秀90>x80打印成绩良好80>x70打印成绩中等70>x60打印成绩合格x=90Print"成绩优秀"Case_Print"成绩良好"CaseIs>=70Print"成绩中等"CaseIs>=60Print"成绩合格"CaseVisualBasic学习辅导与上机实习52Print"成绩不合格"EndSelectEndSub55在窗体上画一个标签和一个命令按钮其名称分别为Label1和Command1然后编写以下事件过程PrivateSubCommand1_Click()Dima(10)AsIntegerFori=1To5a(i)=i*inum=a(i)NextLabel1.
Caption=numEndSub程序运行后单击命令按钮在标签中显示的结果是_____56在下面的程序中要求循环体执行4次试填空PrivateSubCommand1_Click()x=1DoWhile_______x=x+2LoopEndSub57在窗体上画一个命令按钮然后编写事件过程PrivateSubCommand1_Click()Dima(1To10)Dimp(1To3)k=5Fori=1To10a(i)=iNextiFori=1To3p(i)=a(i*i)NextiFori=1To3k=k+p(i)*2NextiPrintkEndSub程序运行后输出的值是_第2章VB语言基础5358运行下面的程序单击窗体后在窗体上显示的第一行结果是______第二行结果是_____第三行结果是____PrivateSubForm_Click()DimiAsInteger,sAsIntegerFori=1To10s=s+iIfs>10ThenPrintss=0EndIfNextiEndSub59运行下面的程序单击窗体后在窗体上显示的内容是______若将程序中的A语句与B语句的位置互换再次执行程序单击窗体后在窗体上显示的内容是_____PrivateSubForm_Click()DimaAsInteger,bAsIntegera=0:b=0DoWhilea-1x=Val(InputBox("请输入数据x"))y=Val(InputBox("请输入数据y"))Ifx*y5Thenk=k+4:ExitFork=k+1NextjPrinti,kIfi>8ThenExitForNextiEndSub64下列程序段的输出结果是________p=0s=0Do第2章VB语言基础55p=p+2s=s+pLoopWhilep0,这显然是输出一个逻辑值所以排除了C与D根据前面的选择结构不难确定正确的是B104在块形式的选择结构中ElseIf可以有多个实际上它构成了嵌套的选择结构另外在该题中还要注意条件判断的顺序如C的判断次序就不对正确的是D105此题主要是测试Select…Case的语法结构不难回答106对于嵌套的或并列的选择结构程序的分析方法根据给定变量的初始值与条件确定程序的执行流程根据执行流程逐句执行记录每一句执行后相关变量的值(最好以列表的形式)尤其是变量改变后的值流程执行完成后程序的运行结果自然就出来了107该程序的作用实际上是将变量ab进行数值上的拼接其中b不超过3位数(因为程序只有3个分支要求b整除10后不超过99)以形成a在高位b在低位的一个数110该程序用来比较3个变量abc的大小将这3个数从小到大排序前两个选择将3个数中的最大数选择出来存在变量a中后一个选择显然是比较开始初始化b>aab交换c>ac>bca交换cb交换结束图2-4VisualBasic学习辅导与上机实习66余下的两个数的大小程序的执行流程如图2-4所示111该程序代码是用辗转相除法求两个数mn的最大公约数分析该代码时要注意3个方面从文本框取数据时需使用Val函数将其转化为数值型(因文本框的值一般为字符串)对原始数据的处理要求两个数均不能为0且m应大于n,如果小于则将两个数交换求最大公约数使用了Do循环进行辗转相除直到余数为0因此正确答案是B113此题关键是要熟悉多行选择结构的语法不难得出正确的答案116VB中Select语句中的Case语句与其他语言不同它不能出现关系表达式而只能使用特殊的表示方法详见教材中的说明122该程序是根据x的值来决定输出的内容而x的值由随机函数来产生产生的范围显然在0~2之间因此该程序在运行后只能输出不通过124从For循环的循环次数计算公式可以看出似乎IN1N2N3对循环次数都有影响实际上For循环语句在执行时N1N2与N3都已经赋值一旦进入循环这3个变量的值已经保存在一个特定的区域其值与名称已经脱离因此在循环体内再改变这3个变量中的任何一个都不会影响循环次数但循环变量I却不同它是通过与终值N3比较来确定是否继续循环的因此在循环体内一旦改变它的值将直接影响循环的次数125从DoUntil循环的执行过程及常数0的含义可以看出正确答案为B134VB提供的Do循环共有4种不同的形式可分为两类一类为当型循环另一类为直到型循环显然直到型循环至少能循环一次135在分析多重循环的程序时一定要注意循环变量的变化情况与变化范围本题中当i的值为1时只循环了1次而当i的值为2时第二层循环有2次再分析第三层的变化可以得出共循环了4次136当For循环中的初值终值与步长均为小数时循环的执行流程是相同的循环次数的计算方法与整数的相同139本题的循环次数尽管仍然是432=24次但x最后的值并不等于累加24个6而是在初值3的基础上累加了2个6循环结束后x的值为3+6+6=15因为在每次第二层循环与第三层循环开始前x均分别被重置为4和3144该题循环体内的两个单行选择结构中只有第二个才起作用因为第一个选择条件包含在第二个之内所以正确答案为B145分析该程序主要在于其打印的格式控制通常对一个二维数组的输出要用二重循环外层循环控制行内层循环控制列输出元素的Print语句不换行而在内外循环之间进行换行146该程序是将一个具有4个10以内的整数元素的数组转变成一个4位数其数字顺序与数组元素的顺序相同转换方法为S=a(1)103+a(2)102+a(3)10+a(4)正确答案为D151此程序通过取余运算求369的和152一般情况下在For循环中只要步长的值为负数循环变量的初值通常要大于终值因此排除了B与D备选答案中A具有一定的干扰但这是计算偶数的和正确答案为C153利用GoTo语句也可以构成循环结构由于循环结束的条件为k>10,而且是先计算后判断因此循环结束时k的值为11也就是说该程序计算的是1~11的累加和155由于在程序的循环体内有ExitFor语句这样循环的次数就不仅取决于循环变量的第2章VB语言基础673个要素而且还取决于满足ExitFor的条件intsum>10,所以当到第6次循环时intsum的值已经是18了自然循环就强行退出了157利用循环与Print语句及输出的格式控制函数Tab()可以输出各种不同的字符图形图形的输出通常使用二重循环外层循环控制图形的行数内层循环控制每行图形中字符的数目与位置在内外层循环之间总要有一个空输出语句用于换行162由于Do循环结构不能自动修改循环变量因此在循环体内必须具有修改循环变量的语句使循环能满足正常结束的条件n=1对n的修改是通过一个选择结构来完成的163Do循环结构中While与Until的后面都有逻辑表达式其主要区别在于While是当其后的逻辑表达式的值为真时循环继续而Until是当其后的逻辑表达式的值为真时循环结束由此B与D均不对A与C两个答案的主要不同在于条件的具体值这就要分析程序要求程序能循环3次所以A是正确的二填空题1符号2Exp(x+y)*Sqr(x*y)3x^3+3*x*y/(x+1/y)4#5尾数指数D60该题要注意运算符的优先次序整除的级别低于乘7a>c8Case9True10End该命令与UnloadMe命令不同它是结束VB应用程序返回系统而后者只是卸载当前窗体11数据方法12TrueFalse13a+b>cAnda+c>bAndb+c>a或者Not(a+b=zory>=z)26Int((终值-初值)/步长)+1或者Int((终值-初值)/步长+1)27无限循环或者死循环当然这也不是绝对的如果在循环体内利用条件判断结合ExitDo亦可退出循环28False29False这个表达式实际上是嵌套比较表达式由于4=3的值显然为False而a的值为True所以结果为False30双引号或者""31-1321.
41001.
4133Variant或者变体34出错VisualBasic6当不同类型的数据放在同一个Print语句中输出时必须使用&连接而不能使用+35101112361Day函数是输出指定日期的日数字值Now函数返回当前日期37字符但如果x是已经过定义的数值型变量则x也为数值型38123.
46在VB中有一个四舍五入函数Round该语句也可以实现这个功能39字母数字405abcdefghijklIntStr函数是返回指定字符串在给定字符中的位置如不存在则返回0418由于VB采用的是Unicode编码因此一个汉字与一个西文字符的长度是一样的42属性窗口程序代码由于控件的名称属性是用来标识一个控件的也是作为程序代码中引用控件对象的名称所以必须在代码编写前决定控件的名称或采用控件的默认名称433sin2352Axx44456123由于在没有事先声明的情况下VB将由InputBox函数输入数据作为字符来处理因此在输出a+b时并不是将两个变量的数值相加而是将两个变量中的字符连接起来45"请输入半径""输入对话框"103个参数的含义分别为输入框提示信息输入框名称与默认的输入值46(1)(intyearmod4=0andintyearmod1000)orintyearmod400=0(2)a0andb*b-4ac>=0(3)partyandteach>3andteaching>=240andteaching5Is100Len(Text1.
Text)Is>=80Is=62–3818–156309318本程序要注意内外两层循环的ExitFor语句的使用它会影响到循环的次数进而影响程序的输出结果64S=4265n>Maxnx\2或者x/2Int(x/2)kMod4=069n>y(i)i+1i+1该程序有3个方面需要注意(1)存放原始数据的数组必须先扩展且必须保持原有的数据这可以通过Preserve关键字实现(2)插入的算法从原数组的最后一个元素开始逐个与插入的数进行比较如比插入的元素小该位置的后一个位置(第i+1的值显然与第i+2上的值相同)即为插入位置将输入的数据插入然后循环结束否则将当前位置的数据后移一个位置继续循环VisualBasic学习辅导与上机实习70(3)如果循环结束仍然没有插入则表示输入的数比原数组中任何一个数都要小即应插入在数组的头部70a(i,j)=1a(i,j)=0a(i,j);71Dimx()x(1to20)72000001214161820该程序主要是提高对动态数组的认识与理解7311-2074121314751Result*x7665577BAABCCBAABC该程序分析时要注意字符串的相关函数MidLeftLen的使用78Mid(txtInput.
Text,i,1)"0"To"9"CaseElsetxtOutput.
Text=s对字符串进行分类统计通常要将使用循环与多分支结构相结合本题中将输入框中的字符串的长度作为循环变量的终值循环体内将该字符串中每一个字符串取出通过3种情况进行判断并分类循环结束后得出的3个变量n1n2n3即为字母个数数字个数与其他字符个数79验证口令请输入口令*验证803-1881thisisabook.
ThisIsABook.
程序在第二次转换时使用了标志变量Flag,用来判断取出的字符是否为空格如为空格则将其后的一个字母转换为大写否则不变8245665432183i2)是否为素数在窗体上有一命令按钮cmdJuge其对应的代码如下上机验证并修改其中的错误PrivateSubCmdJuge_Click()DimnAsIntegern=InputBox("请输入一个大于2的正整数")k=n^2Fori=2TonIfn\i=Int(n/i)ThenExitForNextiIfi=a(j)Thentmp=a(j)a(i)=a(i)a(j)=tmpEndIfNextjNextiFori=1To10Printa(i);NextiEndSub10计算表达式1,32132>++++=xxnxxxxxSnΛ要求计算精度为第n项的值小于10-5程序的运行界面如图2-23所示计算按钮的事件过程如下所示试补充完整PrivateSubcmdJS_Click()图2-23VisualBasic学习辅导与上机实习80DimxAsInteger,nAsIntegerDimsAsSingle,tAsSingles=1x=Val(txtX.
Text)n=1Don=_______t=n*x/x^nIf________LooptxtY=sEndSub11密码翻译程序程序运行界面如图2-24所示要求输入的原码一律转换为大写字母进行译码若出现字母以外的其他字符显示出错信息译码规则为原码(输入码)ABCDEXYZ译码(输出码)GHIJKDEF上机验证并改正以下代码PrivateSubcmdTran_Click()DimxAsString,yAsStringDimiAsInteger,tAsIntegerx=UCase(txtInput.
Text)I=1DoWhileI>=Len(x)t=Mid(x,i,1)Ift>90Andt90Thent=t-26Elset=t+6EndIfEndIf图2-24第2章VB语言基础81y=Chr(t)I=I+1LooptxtOutput.
Text=yEndSub2.
3.
2编程提示一编程2按钮的单击事件过程如下PrivateSubCommand1_Click()IfText1.
Text="PassWord"ThenMsgBox"密码正确欢迎进入系统"UnloadMeElseMsgBox"密码错误请重新输入"Text1.
SelStart=0Text1.
SelLength=Len(Text1.
Text)Text1.
SetFocusEndIfEndSub5编程要点(1)从3个输入框中取出原始数据时应使用Val函数进行转换(2)对3个数进行排序只需3次比较即可比较过程中如发生了数据的交换将中间变量的值送入相应的文本框排序最后的结果送到原始数据下方的3个数据框中6本程序较为简单在界面设计及属性设置完成后在命令按钮的事件过程中只要取出在成绩框中输入的成绩采用多分支结构即可7编程要点如下(1)由于分数的输入与计算在两个按钮的事件过程中因此对输入的学生人数及各个学生的成绩数据必须存放在窗体级变量中可以在窗体的声明段中做如下定义Dimxscj()AsSingleDimxsxAsInteger(2)为了能动态地显示标签内容可在输出字符串中使用&运算符连接变量即可实现如Label1.
Caption="本次共有"&xsx&"个学生参加考试"(3)及格人数与不及格人数可以使用一个选择结构来进行分类并同时进行分数的累加8编程要点(1)对字符的分类可以使用两种方法一种是直接比较字符另一种是比较字符的ASCII码的值(2)分类统计可以通过一个循环实现循环次数由输入到文本框中的字符串长度来控制VisualBasic学习辅导与上机实习82(3)为防止用户在使用时不输入字符即进行统计在程序中要判断文本框中的字符长度如长度为0则给出相应的提示信息同时将光标置于输入文本框中(4)统计的结果通过标签的动态提示实现9本题编程较为简单通过一个循环即可实现在编程中主要注意两点输出位置的确定这可以通过输出语句中使用Tab函数来定位数据类型的定义由于数据较大在定义数据类型时要注意不能发生数据溢出10编程要点(1)在界面设计中两个输出文本框的属性要设置成多行带滚动条并禁止修改输出正负数和的两个标签初始为空(2)10个原始数据的输入通过循环结构来实现(3)对输入数据的处理可以在输入时同时进行亦可在输入后再进行处理数据的处理较为简单但处理后向输出文本框输出时每输出一个数据要加上换行符(可使用VB的内部常数vbCrLf)(4)所有程序代码放在输入并统计按钮的Click事件过程中11程序代码主要以二重循环构成但在内层循环中循环控制变量的终值等于外层循环的循环变量值12这是一个对动态数组进行控制的程序因此在定义时应将数组声明成动态数组当用户输入了每一维的值后再对其用ReDim语句进行重新定义13该题与上一题类似也是一个动态数组的处理问题所不同的是对数组元素的处理要找出最大元素所在的位置及其值必须先定义3个变量分别存放最大值所在的行列与值数组元素通过循环与随机函数结合生成后可以先假设第一个元素为最大值然后逐个进行比较如比假设的大将所在的行列与值送入相关的变量中直到循环结束循环结束后将结果送入3个文本框14根据所给定的界面显然要对两个命令按钮的事件进行编程主要事件过程代码如下PrivateSubcmdSc_Click()'生成按钮的事件Fori=1To6Forj=1To4a(i,j)=Int(197*Rnd)+3picA.
PrintTab(5*(j-1)+1);'picA,picB为两个图片框picA.
Printa(i,j);NextjPrintNextiEndSubPrivateSubcmdZz_Click()'转置按钮事件过程Fori=1To4Forj=1To6第2章VB语言基础83picB.
PrintTab(5*(j-1)+1);picB.
Printa(j,i);NextjPrintNextiEndSub15程序的编制可参考可视化编程应用VisualBasic教材第31页例3-3中的代码16主要按钮的事件过程代码如下Dima(1To15)AsIntegerPrivateSubCommand1_Click()'得分显示按钮事件过程DimiAsIntegerRandomizeFori=1To15a(i)=Int((99-80+1)*Rnd)+80Text1.
Text=Text1.
Text+Str(a(i))+vbCrLfNextiEndSubPrivateSubCommand2_Click()'计算最后得分按钮事件过程DimiAsInteger,maxAsInteger,minAsIntegerDimmaxiAsInteger,miniAsIntegerDimsumAsIntegermax=a(1):min=a(1):maxi=1:mini=1Fori=2To15IfmaxmaxiAndiminiThensum=sum+a(i)NextiText2.
Text=Str(sum/13)EndSub二改错或填充125+(x-500)*0.
1175+(x-2000)*0.
15k6PrintTab(10)应为PrintTab(10-i)Printj;应为PrintTrim(Str(j));Forj=iTo1应为Forj=i-1to1Step–1PrintStr(j);应为PrintTrim(Str(j));730ii*i+j*j=k*k81933i*5+j*3+(100-(j+i))/3=100100-i-j9a(i)=Int(100*Rnd)应为a(i)=Int(91*Rnd)+10Ifa(i)>=a(j)Then应为Ifa(i)90Andt90Ort0remi=xModyx=yy=remiLoopVisualBasic学习辅导与上机实习92gys=xEndFunction程序运行的结果是()A0B25C50D10028如下程序PrivateSubCommand1_Click()DimaAsIntegera=2Fori=1To3Printf(a)NextiEndSubFunctionf(aAsInteger)b=0Staticcb=b+1c=c+1f=a+b+cEndFunction运行后单击命令按钮其输出结果为()A444B456C468D481629阅读程序PrivateSubCommand1_Click()Dima(1To4)AsIntegera(1)=1:a(2)=2:a(3)=3:a(4)=4subPa()Fori=1To4Printa(i)NextiEndSubSubsubP(b()AsInteger)Fori=1To4b(i)=2*iNexti第3章函数与过程93EndSub程序运行单击命令按钮后输出结果为()A1234B5678C2468D出错30有如下函数与调用过程PrivateSubCommand1_Click()i=Val(InputBox("请输入一个数"))a=fact((i))PrintaEndSubFunctionfact(xAsInteger)AsLongDimpAsLong,iAsIntegerp=1Fori=1Toxp=p*iNextifact=pEndFunction程序运行后若输入5则运行结果为()A120B60C80D10031有一函数Functiontotal(xAsInteger)AsLongDimssAsLong,iAsIntegerss=0Fori=1Toxss=ss+iNextitotal=ssEndFunction调用它的事件过程如下PrivateSubCommand1_Click()DimiAsInteger,sumAsLongFori=1To5sum=sum+total(i)NextiVisualBasic学习辅导与上机实习94Print"和数为";sumEndSub该程序的运行结果为()A55B15C5D3532有一过程如下SubCmax(x,y,max)max=Iif(x>y,x,y)EndSub调用过程如下PrivateSubCommand1_Click()i=Val(InputBox("请输入第一个数"))j=Val(InputBox("请输入第二个数"))Cmaxi,j,aPrintaEndSub程序运行后分别输入1256后结果为()A12B56C24D11233单击窗体时下列程序的执行结果为()SubProc1(xAsInteger,ByValyAsInteger,zAsInteger)x=3*zy=2*zz=x+yPrintx;y;zEndSubPrivateSubForm_Click()DimxAsInteger,yAsInteger,zAsIntegerx=1:y=2:z=3CallProc1(x,x,z)CallProc1(x,y,y)EndSub如果在定义过程时在y前加上ByVal关键字则运行结果会变为()A661261010B96561010C9656410D910109101534单击命令按钮时下列程序代码的执行结果为()DimaAsInteger,bAsInteger,cAsIntegerPrivateSubCommand1_Click()a=2:b=4:c=6第3章函数与过程95CallProc1(a,b)Print"a=";a;"b=";b;"c=";cCallProc2(a,b)Print"a=";a;"b=";b;"c=";cEndSubPublicSubProc1(xAsInteger,yAsInteger)DimcAsIntegerx=2*x:y=y+2:z=x+yEndSubPublicSubProc2(xAsInteger,ByValyAsInteger)DimcAsIntegerx=2*x:y=y+2:z=x+yEndSubAa=2b=4c=6a=4b=6c=10Ba=4b=6c=10a=8b=8c=16Ca=4b=6c=6a=8b=6c=6Da=4b=6c=14a=8b=8c=635在窗体模块的通用声明处用下面的语句声明变量数组正确语句有()个Publica(5)AsIntegerPublicnAsIntegerPublicstAsStringPublicb()AsIntegerA2B3C4D136运行程序产生死循环时按______键可以终止程序运行ACtrl+CBCtrl+ZCCtrl+BreakD单击停止运行按钮37在语句PublicSubSort(iAsInteger)中i是一个按()传递的参数A地址B值C常量D变量38假定有以下两个过程Subs1(ByValxAsInteger,ByValyAsInteger)DimtAsIntegert=xx=yy=tEndSubSubs2(xAsInteger,yAsInteger)DimtAsIntegert=xVisualBasic学习辅导与上机实习96x=yy=tEndSub则以下说法中正确的是()As1可以实现交换两个变量的操作s2不能Bs2可以实现交换两个变量的操作s1不能Cs1和s2均可以实现交换两个变量的操作Ds1与s2都不能实现交换两个变量的操作39以下几种方法中只有()不能进入中断模式A使用单步调试方式运行程序B在程序运行时按Ctrl+BreakC单击运行按钮D程序中设置了断点当程序运行到断点处时40要跟踪程序代码的运行可采用()以外的任一种方法A单步执行B设置断点C设置监视表达式D观察程序的运行结果41窗体上有一个文本框Text1有如下的事件过程PrivateSubText1_KeyPress(KeyAsciiAsInteger)Dimstr1AsStringstr1=Chr(KeyAscii)KeyAscii=Asc(Ucase(str1))Text1.
Text=String(2,KeyAscii)EndSub程序运行后在文本框中输入字母b则在文本框中显示的是()AbbbBBBBCBBDbb42有一个鼠标事件过程如下程序运行后为了能在文本框内得到Hello应在窗体上执行()操作PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,_xAsSingle,yAsSingle)IfShift=1AndButton=2ThenText1.
Text="Hello"EndIfEndSubA同时按下Shift键与鼠标左键B同时按下Shift键与鼠标右键C同时按下Ctrl+Alt键与鼠标左键D同时按下Ctrl+Alt键与鼠标右键43如果窗体有如下的事件过程则程序运行后为了能在窗体上输出Ok必须()第3章函数与过程97PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,_xAsSingle,yAsSingle)IfButton=2ThenPrint"Ok"EndIfEndSubA只能按左键并拖动B只能按右键并拖动C同时按下鼠标左右键并拖动D按鼠标左或右键并拖动二填空题1在过程定义中出现的变量名叫做_______参数而在调用过程时传送给过程的____或________叫做实际参数2静态变量只能在_____中声明和使用3在用PublicPrivateDimStatic4种关键字声明的变量中_______声明的变量作用域最大4在VB开发环境中标题栏中可以指出当前正处在______模式______模式和调试模式5模块级变量声明使用关键字Dim或________6根据变量的定义位置和所使用的定义语句的不同VB中的变量可以分为3类即______和全局变量7在过程的定义中如想使用按值传递的参数传递方式则必须在相应形参前加上______关键字8在调用过程时如果不用Call命令则在调用命令中必须省略加在实际参数前后的_______9为了能在过程调用结束后仍然能保存过程中某个变量的值则应将该变量声明成变量10在程序输入或编译时没有出现错误而只在运行时出现的错误称为_错误11为了调试VB应用程序VB设置了多种跟踪程序运行的工具其中最主要的有______两种12有一Sub过程如下Subs(xAsSingle,yAsSingle)t=xx=t/yy=tModyEndSub调用的事件过程如下PrivateSubCommand1_Click()DimaAsSingle,bAsSinglea=5b=4VisualBasic学习辅导与上机实习98sa,bPrinta,bEndSub则程序运行后单击命令按钮时输出为_13有如下的Sub过程与调用过程PrivateSubCommand1_Click()ind2EndSubSubind(aAsInteger)StaticxAsIntegerx=x+aPrintx;EndSub程序运行单击命令按钮3次后其输出结果为_14下列过程的功能是在对多个文本框进行输入时对第一个文本框(Text1)输入完毕后用回车键使焦点跳到第二个文本框中而不是用Tab键切换试补充以下程序PrivateSub________KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode____ThenText2.
_______EndIfEndSub15以下程序用来计算1至指定数(由调用程序传入)之间所有奇数的和将程序补充完整Functionmult(______)DimSumAsIntegerSum=0DimiAsIntegerFori=1To____IfiMod2_____Then_______Nextimult=SumEndFunction若要计算并输出100之内所有奇数的和则正确的调用语句是_16运行下面的程序单击窗体后在窗体上显示的第一行结果是_____第二行结果是_____PrivateFunctionDigit(nAsInteger,kAsInteger)AsIntegerDigit=0DoWhilek>0Digit=nMod10第3章函数与过程99n=n\10k=k-1LoopEndFunctionPrivateSubForm_Click()PrintDigit(1234,2)PrintDigit(1234,3)EndSub17运行下面的程序单击窗体后在窗体上显示的第一行结果是____第三行结果是_____PrivateSubTest(xAsInteger)DimiAsIntegerIfx0ThenCallTest(x-1)Fori=1ToxPrintx;NextiPrintEndIfEndSubPrivateSubForm_Click()Test3EndSub18执行下面的程序第一行输出结果是______第三行输出结果是______PrivateSubForm_Click()DimaAsInteger,iAsIntegera=2Fori=1To9CallSub1(i,a)Printi,aNextiEndSubPrivateSubSub1(ByValxAsInteger,yAsInteger)Fori=3To1Step–1y=y+xx=x–1VisualBasic学习辅导与上机实习100NextiEndSub19执行下面的程序第一行输出结果是______第二行输出结果是______OptionExplicitPrivateSubForm_Click()DimiAsInteger,jAsIntegeri=1:j=2CallTest(i,j)Printi,jCallTest(i,j)Printi,jEndSubPrivateSubTest(mAsInteger,nAsInteger)StaticstaAsIntegerm=m+nn=n+m+stasta=sta+mEndSub20下面程序的功能是当循环次数一定时统计生成互不相同的1100之间的随机整数的个数填空完成程序OptionExplicitOptionBase1PrivateSubForm_Click()DimData()AsIntegeriAsIntegeridxAsIntegerDimnAsIntegertempAsIntegerflgAsBooleann=InputBox("输入循环次数")ReDimData(1)idx=1Data(1)=Int(100*Rnd(1))+1Fori=2Tontemp=Int(100*Rnd(1))+1CallCompare(Data,Temp,Flg)Ifflg=TrueThenidx=idx+1Data(idx)=temp第3章函数与过程101EndIfNextiPrint"生成"idx;"个不相同的整数"Fori=1ToidxPrintData(i)IfiMod10=0ThenPrintNextiEndSubPrivateSubCompare(Array1()AsInteger,kAsInteger,logicAsBoolean)DimubAsIntegeriAsIntegerFori=1ToubIfArray1(i)=kThenEndIfNextilogic=TrueEndSub21执行下面的程序第一行输出结果是______第二行输出结果是______(UBound函数返回指定数组维的维上界)PrivateSubForm_Click()DimiAsInteger,jAsIntegerDimmAsInteger,nAsIntegerDima()AsIntegerCallArry(a)n=Ubound(a,1):m=Ubound(a,2)Fori=1TomForj=1TonPrintA(i,j);NextjPrintNextiEndSubPrivateSubArry(b()AsInteger)DimiAsInteger,jAsInteger,kAsIntegerReDimb(3,3)VisualBasic学习辅导与上机实习102Fori=1To3Forj=1To3b(i,j)=i*10+jNextjNextiEndSub22执行下面程序后输出的第一行结果是______第二行结果是______PrivateSubForm_Click()DimaAsInteger,bAsIntegera=1b=2CallProc1(a,b)Printa,bEndSubPrivateSubProc1(cAsInteger,dAsInteger)DimaAsInteger,bAsIntegerc=a+bd=a-bPrintc,dEndSub若将Sub语句改为PrivateSubProc1(ByValcAsInteger,ByValdAsInteger)则执行后的第一行结果是______第二行结果是______23根据下面图形界面(图3-1)和程序填写表3-1中对象的相关属性和程序中的相关语句X表示对象无该属性表3-1对象名称(Name)标题(Caption)窗体Frm1标签Labl1文本框Text1X命令按钮PrivateSubCmdEnd_Click()______EndSubPrivateSubForm_ClickDimxAsIntegeryAsIntegersumAsInteger图3-1第3章函数与过程103x=1:y=2CallAddition(______)Text1.
Text=sumEndSubPrivateSubAddition(nAsInteger,mAsInteger,sumAsInteger)sum=n+mEndSub24执行下面的程序第一行输出结果是______第三行输出结果是______PrivateSubForm_Click()DimnAsInteger,iAsIntegern=2Fori=9To1Step-1CallSub2(i,n)Printi,nNextiEndSubPrivateSubSub2(xAsInteger,yAsInteger)StaticnAsIntegerDimiAsIntegerFori=3To1Step-1n=n+xx=x-1NextiEndSub25执行下面的程序第一行输出结果是______第二行输出结果是______PrivateSubForm_Click()DimaAsIntegera=2CallSub1(a)EndSubPrivateSubSub1(xAsInteger)x=x*2+1Ifx0Sum=Sum+imult(100)1632注意两次调用时第二个参数的不同第二个参数用来控制函数过程中的循环次数171333这是一个递归调用1812311193581620flag=FalseReDimPreServeData(Idx)ub=Ubound(Array1)ExitSub该程序较难分析如下(1)主程序由于程序功能要求在所生成的n个随机数中保留不同的随机数并统计其个数程序采用了动态数组逐步扩充的方法通过循环每生成一个随机数立即调用比较过程(Compare)判断该数在已生成的数组中是否存在(flag是否为False)如不存在将统计变量idx加1并重新定义数组将生成的数存入数组中如存在则重新生成在重新定义数组时必须要加上关键字PreServe以保留原有数组内容循环结束后将所生成的数组打印输出(2)比较过程Compare过程的功能是判断一个数在指定的数组中是否已经存在过程定义使用了3个形参Array1()数组参数源数组k待判断的数logic判断结果布尔型返回True表示不存在返回False表示已经存在判断方法采用了逐个比较法只要找到一个相同的即退出过程(logic=False)21111213212223这也是一个数组参数传递的程序主程序中数组a是动态的VisualBasic学习辅导与上机实习108在过程Arry中对数组进行了重新定义b(3,3)然后对每一个数组元素赋值最后将数组返回到调用过程并打印输出2200000012该程序中注意不同位置ab变量的作用域在过程中的ab定义成了局部变量仅在过程中有效主程序中的ab变量的值不会带入到过程中因此过程中的cd变量运算后的值始终是00在引用传递的情况下该cd的值会返回到调用过程的ab两个变量而如果采用了值传递就不会返回23属性填空略程序填空如下Unloadme或Endx,y,sum2462-2225112326x1=1y1=1x4=2y4=1此程序中的通用段中x被定义为模块级变量y被定义为全局变量在调用程序中分别对xy进行赋值然后输出显然其输出结果为11当调用Test过程后(Test为无参过程)在该过程中重新定义了y为局部变量接着输出x与y其值为1和0(此时y为局部变量还未赋值)在过程中分别对x和y赋值2和2后再输出当然是2与2返回到主程序后局部变量y的值放弃恢复全局变量y的值1但x由于是模块级变量所以值被带回27123当在多个过程中都定义了全局变量并对其进行了处理后一般是采取就近的原则即对于同名但作用域不同的变量在那个过程中定义处理即用于那个过程3.
3上机实习3.
3.
1题目一编程1分别编写一个Sub过程与函数过程以整型数为形参当该参数为奇数时输出False而当该参数为偶数时输出True编程要求(1)过程名自行确定(2)在窗体的Click事件中调用该过程整数的输入通过输入框函数判断结果的显示放在调用过程中(3)窗体界面自定2编写一个求3个数中最大值Max与最小值Min的过程然后用这个过程分别求3个数5个数7个数中的最大值与最小值编程要求第3章函数与过程109(1)两个过程使用Function过程可放在窗体模块中或标准模块中(2)7个数通过输入框函数由用户输入(3)计算结果放置在窗体上界面由用户自定3编写一个将不超过4位数字式的一个人民币整数转化为大写形式即输入123输出壹佰贰拾叁元编程要求(1)编写两个过程一个过程判断输入数据的合法性另一个过程用于转换(2)程序运行后的界面如图3-2所示(3)数据的输入与结果的输出均在命令按钮的事件过程中4编写程序求S=A!
+B!
+C!
编程要求(1)阶乘的计算分别用Sub过程和Function过程两种方法实现(2)ABC的值由InputBox函数输入(3)程序界面自行决定5设a为一整数如果能使a2=xxa则称a为守形数例如52=25252=625则称5和25为守形数试编写一个Function过程Autom,其形参为一正整数判断其是否为守形数然后用该过程查找11000内的所有守形数6编写求解一元二次方程ax2+bx+c=0根的过程编程要求(1)要求abc及解x1x2都以参数传送的方式与主程序交换数据输入abc和输出x1x2的操作放在主程序中(2)abc与x1x2均使用文本框在abc输入后要判断数据输入的合法性(即要求a不等于0)7Fibonacci(斐波那契)数列的第一项是0第二项是1以后各项都是前2项的和编写程序求斐波那契数列的第N项的值编程要求(1)可以使用Sub过程或Function过程过程中可以求出整个数列也可求出数列中的某一项(2)调用程序中(命令按钮或窗体的Click事件)输入所需要的项数(3)数列产生的结果显示在一个多行文本框中8编写一个过程用来计算并输出nS131211++++=Λ的值直到某项的绝对值小于10–59编写一个实现十进制与其他进制转换的函数过程调用该函数输出相应的二进制数十六进制数八进制数编程要求(1)程序的运行界面如图3-3所示图3-2VisualBasic学习辅导与上机实习110(2)十进制原始数据及转换后的进制由文本框输入并作为参数传递到转换过程转换后的结果显示在相应的文本框中结果文本框前的标签要求动态显示(3)转换的函数过程完成将指定的十进制数转换成相应进制的数图3-3图3-410编写程序实现英语字符串的加密/解密操作加密原则如是字母字符每个字符的ASCII码值加6加密后仍然是字母其他保持不变编程要求(1)程序的运行界面如图3-4所示(2)用两个通用过程实现加密与解密并由两个按钮的事件过程调用二改错或填充1一个判断奇偶数的Function过程与一个命令按钮的事件过程如下修改程序中的错误PrivateSubcmdRever_Click()DimnAsLongn=Val(text1.
Text)p=Iif(Even(),"偶数","奇数")Label1.
Caption=text1.
Text&"是"&pEndSubPrivateFunctionEven()IfxMod2=0ThenEven=TrueElseEven=FalseEndIfEndFunction2如下是一个求指定数组中最大值元素的Function过程补充空格部分并编写一个程序调用它PrivateFunctionFindMax(____AsInteger)DimstartAsInteger,finishAsInteger,iAsIntegerstart=Lbound(a)第3章函数与过程111finish=Ubound(a)Max=a(start)ForiIfa(i)>MaxThenMax=a(i)NextiEndFunction3以下程序实现输入一个4位整数将其按逆序输出(如输入1234则输出为4321)程序中cmdRever为逆序转换的命令按钮txtInput为输入文本框txtRever为逆序后的输出文本框上机调试该程序并改错PrivateSubcmdRever_Click()DimyAsString,sAsStringDimflagAsIntegers=txtInput.
TextCallJudge(s,flag)Ifflag=0ThenCallRevers,ytxtRever.
Text=yElseMsgBox"数据错误请重新输入"txtInput.
Text=""txtInput.
SetFocusEndIfEndSubPrivateSubJudge(sAsString,flagAsInteger)DimiAsIntegerflag=1Fori=1To4IfMid(s,i,1)>"9"OrMid(s,i,1)0remi=xModyx=yy=remiLoopgcd=yEndFunctionPrivateSubcommand1_Click()Dima(1To3)AsIntegerFori=1To3a(i)=InputBox("请输入一个整数")Nextic=gcd(a(1),a(2),a(3))PrintcEndSub5以下函数过程用于计算121171513114π1+++=nnΛ在事件过程中调用该过程计算π的近似值并输出当n=5000时的π的近似值试改正该程序FunctionPi()AsSinglePi=1Fori=2TonPi=Pi+1/(2*i-1)NextiPi=4/PiEndFunctionPrivateSubForm_Click()PrintPi(5000)EndSub6本程序用于求110中相邻两数之和是素数的所有自然数对(12)(23)(34)(56)(67)(89)(910)为符合和要求的数对试完成该程序OptionExplicitPrivateSubForm_Click()第3章函数与过程113Dima(10)AsInteger,Fori=1To10a(i)=iNextiFori=1To9Ifp(a(i)+a(i+1))=TrueThenPrinta(i),a(i+1)NextiEndSubPrivateFunctionp(xAsInteger)AsBooleanDimiAsIntegerp=FalseFori=2ToInt(Sqr(x))IfxModi=0Then________Nextip=TrueEndFunction7本程序的功能是用来统计二维数组A(1to4,1to4)的所有元素中09这10个数字出现的次数存入数组Times中并显示在窗体上试完成该程序OptionExplicitPrivateSubForm_Click()DimA(1to4,1to4)AsInteger,iAsInteger,jAsIntegerDimTimes(9)AsIntegerRandomizeFori=1To4Forj=1To4A(i,j)=Int(Rnd(1)*100)+1PrintFormat(A(i,j)NextjPrintNextiCallStat(A,Times)For_______Printi;"…";Times(i)NextiEndSubPrivateSubStat(A()AsInteger,T()AsInteger)DimiAsInteger,jAsInteger,cubAsInteger,kAsIntegerVisualBasic学习辅导与上机实习114DimrubAsInteger,charAsStringcub=Ubound(A,1):rub=Ubound(A,2)Fori=1TocubForj=1Torubchar=Ltrim(Str(A(i,j)))Fork=1To________NextKNextjNextiEndSub8本程序用于判断输入的正整数是否为降序数设正整数n=d1d2d3…dk如果满足di>=di+1(i=1,2,…k-1),则n就是一个降序数如432110433都是降序数试改正该程序OptionExplicitPrivateSubForm_Click()DimnAsIntegern=InputBox("Inputn:")CallConver(n)Ifflg=TrueThenPrintn;"是降序数"ElsePrintn;"不是降序数"EndIfEndSubPrivateSubConver(nAsInteger,flgAsBoolean)DimxAsString,iAsStringx=Str(n)FOri=1ToLen(x)IfMid(x,i,1)>Mid(x,i+1,1)ThenExitForNextiIfi=Len(x)Thenflg=FalseElseflg=TrueEndSub9下面程序功能是找出一个正整数的所有质因子例如48的质因子是2223试完成该程序OptionExplicitPrivateSubForm_Click()DimFac()AsInteger,N(3)AsInteger第3章函数与过程115DimiAsInteger,jsIntegerN(1)=48:N(2)=308:N(3)=1155Fori=1To3CallFactor(Fac,N(i))PrintN(i);"的质因子是";Forj=1ToUbound(Fac)PrinFac(j);NextjPrintReDimFac(1)NextiEndSubPrivateSubFactor(F()AsInteger,DimiAsInteger,jAsInteger,idxAsIntegerDimkAsIntegerK=2DoUntiln=1IfNModk=0ThenIdx=idx+1ReDim_______F(idx)=kn=n/kElse______EndIfLoopEndSub3.
3.
2编程提示一编程1本题较简单在编程时注意两个问题判断奇偶数的方法Sub过程与函数过程的不同调用方法及参数的传递具体程序略2过程本身的编程不难如求最大值的过程如下FunctionMax(ByValaAsInteger,ByValbAsInteger,ByValcAsInteger)AsIntegerm=Iif(a122ThenVisualBasic学习辅导与上机实习118t=t+6-26Elset=t+6EndIfCase65To90Ift+6>90Thent=t+6-26Elset=t+6EndIfEndSelectEncryp=Encryp+Chr(t)NextiEndFunction二改错或填充1本题有两个错误(主要是参数传递与过程定义)(1)p=Iif(Even(),"偶数","奇数")应为p=Iif(Even(n),"偶数","奇数")(2)PrivateFunctionEven()应为PrivateFunctionEven(xAsLong)AsBoolean2a()数组作为参数时只能以动态数组的形式startTofinishFindMax=Max3本题有4个错误(1)Ifflag=0Then应为Ifflag=1Thenflag标志是判断输入数据是否合法如为1则为合法(2)CallRevers,y应为CallRever(s,y)括号的省略只有在不用Call关键字时(3)Fori=4To1应为Fori=4To1Step–1(4)y=y+Left(s,i)应为y=y+Mid(s,i,1)4gcd=y应为gcd=xc=gcd(a(1),a(2),a(3))应为c=gcd(gcd(a(1),a(2)),a(3))5FunctionPi()AsSingle应为FunctionPi(nAsLong)AsSingle第3章函数与过程119Pi=Pi+1/(2*i-1)应为Pi=Pi+(-1)^(i-1)*(1/(2*i-1))Pi=4/Pi应为Pi=4*Pi6iAsIntegerExitFunction7i=0To9Len(Char)T(Val(Mid(Char,k,1)))=T(Val(Mid(Char,k,1)))+18CallConver(n)应为CallConver(n,flg)过程定义中有两个参数x=Str(n)应为x=Trim(Str(n))Str函数在转换数值时在数值前有一个符号位如正数即为空格这会影响判断结果必须去掉Ifi=Len(x)Thenflg=FalseElseflg=True应为Ifi=Len(x)Thenflg=TrueElseflg=False如果循环正常结束则x是降序数反之则是中途退出循环的也即不是降序数9ByValnAsIntegerPreserverF(idx)k=k+1VisualBasic学习辅导与上机实习120第4章常用控件与窗体4.
1学习要点与必备知识学习要点控件使用基础知识选择控件(单选钮复选钮列表框组合框)的使用其他常用控件(滚动条计时器框架)的使用窗体的主要属性方法和事件必备知识1控件使用的基础知识常用事件(ClickDblClickGotFocusLostFocusValidateKeyPressKeyDownKeyUpMouseDownMouseUpMouseMove)控件数组的创建与事件编程Tab键的顺序及设置键盘事件(1)KeyPress事件是在用户按动键盘上任何一个可打印的字符时发生的只有能接收键盘输入的控件才有KeyPress事件通过KeyPress事件参数KeyAscii来返回击键的ASCII码利用这个参数可以对所输入的字符进行格式转换例如用下面的语句即可实现将输入的文本全部转换为大写如PrivateSubText1_KeyPress(KeyAsciiAsInteger)Char=Chr(KeyAscii)KeyAscii=Asc(Ucase(Char))'Ucase()为大写转换函数EndSubKeyPress事件并不能识别功能键(F1~F12)和编辑键(如InsertHome等)的击键要捕获这些按键可以采用KeyDown和KeyUp事件过程(2)KeyDown和KeyUp事件这两个事件是当一个对象具有焦点并按下(KeyDown)或松开(KeyUp)一个键时触发(要解释ANSI字符应使用KeyPress事件)语法为:PrivateSubobject_KeyDown(KeyCodeAsInteger,ShiftAsInteger)KeyCode是一个键代码诸如vbKeyF1(F1键)或vbKeyHome(Home键)Shift参数提供事件发生时ShiftCtrl和Alt键的状态Shift参数为0表示ShiftCtrl和Alt3个键被未按下Shift参数为1(vbShiftMask)表示Shift键被按下Shift参数为2(VbCtrlMask)表示Ctrl键被按下Shift参数为4(VbAltMask)表示Alt键被按下如果Ctrl和Alt这两个键都被按下则Shift的值为6(VbCtrlMask+VbAltMask)鼠标事件第4章常用控件与窗体121(1)MouseDown和MouseUp事件这两个事件是当按下(MouseDown)或者释放(MouseUp)鼠标按钮时发生语法为PrivateSubobject_MouseDown(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)PrivateSubobject_MouseUp(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)其中Button返回一个整数用来标识该事件的产生是按下(MouseDown)或者释放(MouseUp)按钮引起的1左按钮2右按钮4中间按钮X,Y返回一个指定鼠标指针当前位置的坐标(2)MouseMove事件该事件在移动鼠标时发生语法为PrivateSubobject_MouseMove(ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)2单选钮(OptionButton)与复选钮(CheckBox)ValueStyleAlignment属性的意义与设置3列表框(ListBox)与组合框(ComboBox)主要属性(ColumnsListListCountListIndexMultiSelectSelectedSelCountSortedStyleText)的含义与设置主要事件(ClickDblClick)的应用主要方法(AddItemClearRemoveItem)的意义与使用组合框的形式4滚动条(HScrollBarVScrollBar)主要属性(MaxMinLargeChangeSmallChangeValue)的含义与设置主要事件(ScrollChange)滚动条的应用5计时器(Timer)主要属性事件(InterValTimer)及其应用6框架(Frame)使用场合框架与内部控件的关系7窗体(Form)主要属性方法和事件(LoadActivateUnLoadInitialize)8拖放(Drag)操作(1)DragMode属性与DragIcon属性DragMode属性用于确定拖放操作的方式是手动方式还是自动拖动方式0(vbManual)手动方式需调用源控件的Drag方法来启动拖放操作默认为手动方式1(vbAutomatic)自动方式DragIcon属性用于指定拖放时图标(2)DragOver事件它在拖放操作正在进行时发生可使用此事件对鼠标指针在一个有效目标上的进入离开或停顿等拖动状态进行监控该事件过程格式为PrivateSubobject_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsIntege)VisualBasic学习辅导与上机实习122Source指示正在被拖动的控件可用此参数在事件过程中引用该控件的各属性和方法State是一个整数它表示被拖动控件(源控件)在相关目标窗体或控件(目标控件)中拖动状态0=进入1=离去2=跨越(3)DragDrop事件在一个完整的拖放动作(即将一个控件拖动到一个对象上并释放鼠标按钮)完成或使用Drag方法并将其Action参数设置为2(Drop)时该事件发生语法PrivateSubobject_DragDrop(SourceAsControl,xAsSingle,yAsSingle)(4)Drag方法用于对部分控件执行开始拖动结束拖动或取消拖动的操作语法object.
Drag[Action]Drag方法的语法包含下列部分Action可选项是一个常数或数值0(vbCancel)取消拖动操作1(vbBeginDrag)开始拖动对象缺省值2(vbEndDrag)结束拖放对象4.
2习题精选4.
2.
1题目一选择题1若希望窗体在运行时显示固定边界窗体上显示标题栏控制框关闭按钮无最大化最小化按钮大小不可改变应将该窗体的BorderStyle属性设为()ANoneBFixedSingleCSizableDFixedDialog2一个窗体上可有()个缺省按钮A一B二C任意多D零3若希望在一窗体运行时按Esc键能自动单击某个按钮那么应将其()属性设为TrueAEnabledBVisibleCDefaultDCancel4VB设计环境中控件的Left属性的计量单位是()A英寸B取决于容器的坐标系统C像素D毫米5当一个窗体在运行时显示出来的过程中以下事件的触发次序是()ALoad-Activate-InitializeBInitialize-Load-ActivateCActivate-Load-InitializeDActivate-Initialize-Load6在窗体上有一个被禁止的控件点击这个控件的时候,有()A窗体产生Click事件控件则没有任何事件B窗体产生Click事件控件也产生Click事件C窗体没有任何事件控件则产生Click事件D两者都无任何事件产生第4章常用控件与窗体1237程序运行时,在窗体上单击鼠标以下()事件是窗体不会接收到的AMouseDownBMouseUpCLoadDClick8在VisualBasic中要将一个窗体加载到内存进行预处理但不显示应使用的语句是()AShowBLoadCHideDUnLoad9在VisualBasic中要将一个窗体从内存中释放应使用的语句为()AUnLoadBLoadCHideDShow10在VisualBasic中要使一个窗体不可见但不从内存中释放应使用的语句为()AUnLoadBHideCLoadDShow11关于模式窗体和非模式窗体下面的说法正确的是()A必须在模式对话框运行完毕以后才能将控制权交给程序B不必等到模式对话框运行完毕程序就能得到控制权C两者都要在对话框运行完毕以后才能将控制权交给程序D两者都不必等到对话框运行完毕程序就能得到控制权12选择正确的选项()ABorderStyle属性为vbNone时则窗体没有边框或者和边框有关的元素BBorderStyle属性缺省值为vbSizableToolWindowC窗体的BorderStyle属性只能在运行时起作用DBorderStyle属性为任何值时都会在Windows98的任务栏里面显示13当窗体获得焦点时首先触发()事件AActiveBGotFocusCInitialzeDOnFocus14当窗体失去焦点时触发的事件为()ADeActivateBLostFocusCLostDOutFocus15有代码PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)KeyAscii=0EndSub这一段代码的作用是()A所有对Combo1的输入都变成字符Chr(0)B没有影响C使得KeyPress事件不发生D使得不能对Combo1输入16如果要想在Form2里面执行Form1的Click事件所对应的代码则使用下面的代码()AForm1.
ClickBForm1.
Form_ClickCForm_Click(Form1)DClick_Form117要使窗体里面的控件的大小随着窗体的大小一起变化则()VisualBasic学习辅导与上机实习124A对Form_Load编写代码B对Form_UnLoad编写代码C对Form_Resize编写代码D对Form_Click编写代码18下列说法正确的是()A要使用Screen对象必须先声明B在窗体中编写代码时Me表示当前窗体C当CheckBox的值发生变化时产生Change事件DComboBox没有Change事件19给出下面的程序PrivateSubCommand1_Click()DimMyStringAsStringDimMyLenAsIntegerMyString="HelloWorld"MyLen=Len(MyString)MsgBoxMyLenEndSub程序最后弹出的消息对话框的内容是()AHelloWorldBHelloWorldC11D1020给出下面的程序PrivateSubForm_Load()DimPassword,PwordPassword="Swordfish"Pword=InputBox("typeinyourpassword")IfPwordPasswordThenMsgBox"Sorry,incorrectpassword"EndEndIfEndSub程序的作用是()A窗体运行时弹出消息对话框显示Sorry,incorrectpasswordB窗体运行时弹出输入对话框Typeinyourpassword再弹出消息对话框显示Sorry,incorrectpasswordC窗体运行时弹出输入对话框Typeinyourpassword输入密码后再弹出消息对话框显示Sorry,incorrectpasswordD窗体运行时弹出输入对话框Typeinyourpassword输入密码Swordfish后窗体显示如果输入的密码不是Swordfish则弹出消息对话框显示Sorry,incorrectpassword并退出程序21以下说法正确的是()第4章常用控件与窗体125A通过改变属性窗口中的Name属性来改变窗体的标题BPrivate表示此过程只可被本工程中的其他过程调用C在多文档应用中每次只能有一个活动的子窗体可以进行输入/编辑D列表框包含了组合框的功能22不能在运行期间设置窗体的()属性(多选)ACaptionBBorderStyleCIconDMaxButton23为了在运行时能显示窗体左上角的控制框(系统菜单)必须()A把窗体的Contro1Box属性设置为False,其他属性任意B把窗体的ControlBox属性设置为True,并且把BoderStyle属性设置为13C把窗体的ControlBox属性设置为False,同时把BoderStyle属性为非0值D把窗体的ControlBox属性设置为True,同时把BoderStyle属性设置为0值24当程序运行时系统自动执行启动窗体的()事件过程ALoadBClickCUnLoadDGotFocus25要使窗体在运行时不可改变窗体的大小和没有最大化和最小化按钮只要对下列()属性设置就有效AMaxButtonBBorderStyleCWidthDMinButton26如果希望运行时窗体以最大化方式显示则应设置窗体的()属性AMoveableBBorderStyleCControlBoxDWindowState27要判断在文本框中是否按了Enter键应对文本框的()事件进行判断AChangeBKeyDownCClickDKeyPress28若要使某文本框获得控制焦点可使用的方法是()ALostFocusBSetFocusCPrintDValue29为了把焦点移到某个指定的控件所用的方法是()ARefreshBSetFocusCVisibleDGotFocus30控件()属性的设置可使该控件不能通过Tab键得到焦点ATabStopBTabIndexCGotFocusDSetFocus31能够接受焦点的控件是()AFrameBCommandButtonCLabelDTimer32下面的()控件不具备Caption属性A标签框B文本框C命令按钮D单选按钮33命令按钮Command1的Caption属性为退出(x)要将命令按钮的快捷键设为Alt+x应修改Caption属性为()A在x前插入&B在x后插入&C在x前插入#D在x后插入#34下列控件中可自动设置滚动条的是()A复选框B框架C文本框D标签框VisualBasic学习辅导与上机实习12635下列各组控件都具有Caption属性的是()A窗体文本框B标签定时器C窗体标签D文本框定时器36下列各组控件具有相同默认事件的是()A窗体文本框B标签按钮C窗体标签D文本框按钮37若希望用代码改变控件的位置可以()A使用控件的Move方法B改变控件的Tag属性C改变控件的Width与Height属性D改变控件的Visible与Enabled属性38要将一组控件水平对齐除了()以外都可以A在属性窗体将Top属性设为相同值B在窗体编辑器中点顶边对齐按钮C在菜单中选择格式对齐顶边对齐D在菜单中选择格式对齐水平对齐39在应用程序运行时用户在一个控件上单击一个鼠标左键时以下事件中()事件不会被触发AClickBMouseDownCMouseUpDMouseMove40当用户将鼠标移到控件上时以悬浮窗口显示的用于描述该控件的文本内容应设置在其()属性中ACaptionBDescriptionCToolTipTextDText41控件数组中各元素必须满足()(多选)A类型相同B除Name和Index属性值不同外其他属性可以相同C每个控件各由一个独立的Index值D其Font属性必须相同42以下关于控件数组描述不正确的是()A控件数组可以在设计时创建B控件数组可以在设计时也可在运行时创建C控件数组可以用Load创建用UnLoad删除所有控件D控件数组可以用Load创建用UnLoad删除但不能删除设计时所建的控件43为了在运行时建立并显示控件数组应该按下面的方法进行()A先在设计时创建一个控件并将该控件的Index属性置为0然后在运行中用Load创建控件B在设计时先创建一个控件并将该控件的Index属性置为0然后在运行中用Load第4章常用控件与窗体127创建控件再修改新控件的VisibleTopLeft属性C在设计时先创建一个控件然后在运行中用Load创建控件再修改新控件的VisibleTopLeft属性D在设计时先创建一个控件并将该控件的Index属性置为0然后在运行中用Load创建控件再修改新控件的TopLeft属性44在窗体中添加一个命令按钮一个选择按钮(OptionButton设置该选项按钮的Index属性为0)以及一个CommonDialog控件编写如下代码PrivateSubForm_Paint()StaticFlagFormPaintedIfFlagFormPaintedTrueThenFori=1To2LoadOption1(i)Option1(i).
Top=Option1(I-1).
Top+350Option1(i).
Visible=TrueNextiOption1(1).
Caption="Color"Option1(2).
Caption="Font"Command1.
Caption="Showdialog"FlagFormPainted=TrueEndIfEndSubPrivateSubCommand1_Click()IfOption1(1).
ValueThenCommonDialog1.
ShowColorElseIfOption1(2).
ValueThenCommonDialog1.
Flags=cdlCFBothCommonDialog1.
ShowFontEndIfEndSub程序运行后分别选择两个选项确认后单击命令按钮显示()A选择Color后弹出通用颜色选择对话框选择Font后弹出通用字体选择对话框B选择Color后弹出通用对话框选择颜色选择Font后弹出通用对话框选择字体C选择Color后弹出文件选择对话框选择颜色文件选择Font后弹出文件选择对话框选择字体文件D选择Color后弹出256色供选择选择Font后弹出常用字体供选择45ListBox中若没有任何条目选中那么其ListIndex值为()VisualBasic学习辅导与上机实习128A–1B零C1D一定值46若允许ListBox中可有多个条目被选中其MultiSelect属性的值可以是()(多选)A0-NoneB1-SimpleC2-ExtendedD任意47使用ListBox时下面的说法正确的是()A当列表索引的值超过实际条数的范围时程序出错B当列表索引的值超过实际条数的范围时返回NULLC可以使用List属性来遍历所有的列表项目D可以使用ListItem属性来遍历所有的列表项目48在窗体上画一个列表框和一个文本框然后编写如下两个事件过程PrivateSubForm_Load()List1.
AddItem"357"List1.
AddItem"246"List1.
AddItem"123"Listl.
AddItem"456"Text1.
Text=""EndSubPrivateSubList1_DblClick()a=List1.
TextPrinta+Text1.
TextEndSub程序运行后在文本框中输入"789"然后双击列表框中的456则输出结果为()A1245B456789C789456D049若只允许用户从ComboBox选取已有的条目而不能输入新的文本那么应将Style属性设为()A0-DropDownB1-SimpleComboC2-DropDownListD任意50下列()方法是将项目添加到ComboBox控件中AListBListIndexCMoveDAddItem51当用户从组合列表框中选中某项目时将引发()事件AClickBChangeCScrollDDblClick52当用户修改组合列表框中的某项目时将引发()事件AClickBChangeCScrollDDblClick53下列控件中允许用户在其中输入文本的控件()ALabelBListBoxCCheckBoxDComboBox54将数据项APPLE添加到列表框(List1)中成为第一项应使用()语句AList1.
AddItem''APPLE'',0BList1.
AddItem"APPLE",1CList1.
AddItem0,"APPLE"DList1.
AddItem0,"APPLE"55引用列表框的最后一个数据项应使用()第4章常用控件与窗体129AList1.
List(List1.
ListCount)BList1.
List(List1.
ListCount-1)CList1.
List(ListCount)DList1.
List(ListCount-1)56若列表框(List1)中有4个数据项则把数据项APPLE添加到列表框的最后应使用()AList1.
AddItem"APPLE",3BList1.
AddItem3"APPLE"CList1.
AddItem"APPLE"List1.
ListCountDList1.
AddItem"APPLE",List1.
ListCount-157执行下面的程序后列表框中的数据项有()PrivateSubForm_Click()Fori=1To6List1.
AddItemiNextiFori=1To3List1.
RemoveItemiNextiEndSubA156B135C456D24658若列表框(List1)中没有被选定的项目则执行List1.
RemoveItem(List1.
ListIndex)语句的结果是()A移去第一项B移去最后一项C移去最后加入列表的一项D以上都不对59关于CheckBox控件和OptionButton控件的说法正确的是()A在一个组中能同时选中多个CheckBox控件而在任何时候则只能选择一个OptionButtonB在一个组中能同时选中多个OptionButton控件而在任何时候则只能选择一个CheckBoxC在一个组中能同时选中一个CheckBox控件在任何时候也只能选择一个OptionButtonD在一个组中能同时选中多个CheckBox控件同时也能选择多个OptionButton60下面关于CheckBox和OptionButton的说法正确的是()A两者的Vaule的缺省值都为vbUncheckedBCheckBox的Vaule属性的缺省值为vbUnchecked,OptionButton为FalseC两者的Vaule缺省值都为FalseD两者的Vaule缺省值都为True61当复选框的Value属性为1时表示()A复选框未被选中B复选框被选中C复选框内有灰色的勾D复选框操作有错误VisualBasic学习辅导与上机实习13062执行List1.
List(List1.
ListCount)="100"语句后结果为()A产生出错信息BList1列表框最后一个表项被改为100CList1列表框会增加一个100表项D指定List1列表框的表项数为100个63为了防止用户随意将光标置于控件之上应进行()设置A将控件的TabIndex属性设置为0B将控件的TabStop属性设置为TrueC将控件的TabStop属性设置为FalseD将控件的Enaled属性设置为False64CheckBox的Value属性可能的取值有()个A1B2C3D零65下列控件不能作为控件容器的是()AFrameB窗体CShapeDPictureBox66从窗体的其他部分将控件移入Frame的方法是()A拖动B剪切及粘贴C删除D复制67对于有缺省按钮的窗体将焦点从TextBox的一行移动到下一行用()键ACtrl+EnterBAlt+EnterCTabDShift+Enter68不能通过()来删除列表框中的选择项AList属性BText属性CClear方法DRemoveItem方法69在窗体上画一个文本框(其中Name属性为Text1)然后编写如下事件过程PrivateSubForm_Load()Text1.
Text=""Text1.
SetFocusFori=1To10Sum=Sum+iNextiText1.
Text=SumEndSub上述程序的运行结果是()A在文本框Text1中输出55B在文本框Text1中输出0C出错D在文本框Text1中输出不定值70下列控件中可用于接受用户输入文本又可用于显示文本的是()ALabel控件BTextBox控件CTimer控件DCommandButton控件71若要设置定时器控件的定时时间需设置的属性是()第4章常用控件与窗体131AIntervalBValueCEnabledDText72每当窗体失去焦点时会触发的事件是()AActiveBDeActivateCLostFocusDInitialize73以下关于控件的叙述中错误的是()AVisualBasic允许使用用户自己设计的控件B窗体中工具条工具不是工具箱中包含的常用控件C要使用系统提供的OCX控件应先把有关的控件添加到工具箱中D使用系统提供的OCX控件进行程序设计其编程的方法与工具箱中的常用控件的编程不同74在VisualBasic中下面的()控件可以包含其他控件AGridBCheckBoxCTextBoxDFrame75在窗体中添加一个列表框(ListBox)和一个命令按钮并编写如下代码PrivateSubCommand1_Click()Dimentry,i,msgmsg="ChooseOKtoand100itemstoyourlistbox.
"MsgBoxmsgFori=1To100Entry="Entry"&iList1.
AddItementryNextiEndSub程序完成的功能是()A本示例使用AddItem方法增加100项给一个列表框B本示例使用AddItem方法向一个列表框中添加的内容是1100的罗列C本示例使用AddItem方法一个列表框中添加的内容是1100的和D本示例使用AddItem方法增加101项给一个列表框76滚动条控件的()属性表示其滚动块的当前位置AValueBMinCMaxDScrollChange77在程序运行期间如果拖动滚动条上的滚动块则触发的滚动条事件是()AMoveBChangeCScrollDGotFocus78使用滚动条控件的时候下面的说法不正确的是()A使用Min和Max属性来定义滚动的范围B滚动条控件具有Scroll和Change事件C如果TextBox不够显示其内容可以在旁边加一个滚动条控件使得其能够显示所有的内容DMax属性支持的最大值为3276779在程序运行期间如果单击滚动条上的箭头则触发的滚动条事件是()AMoveBChangeCScrollDScroll和ChangeVisualBasic学习辅导与上机实习13280Timer控件的Interval属性计量单位是()A小时B分C秒D毫秒81为了暂时关闭计时器应把该计时器的某个属性设置为False这个属性是()AVisibleBTimerCEnabledDInterval82如果要求设置定时器时间间隔为0.
5s那么它的Interval属性值应该等于()A5000B500C50D583若定时器控件的Interval属性为1000Enabled属性为True,并且有下面的事件过程计算机将发出()次Beep响PrivateSubTimer1_Timer()Fori=1To10BeepNextiEndSubA1000次B10000次C10次D以上都不对84在设计一个计算器时必须要使用的控件是()A滚动条B图片框C文本框D单选框85若要设置定时器控件的定时时间需设置的属性是()AIntervalBValueCEnabledDText86在下列说法中正确的是()A通过适当的设置可以在程序运行期间让定时器控件显示在窗体上B在列表框中不能进行多项选择C在列表框中能够将项目按字母顺序从大到小排列D框架也有Click和DblClick事件87在程序中可以通过复选框和单选按钮的()属性值来判断它们的当前状态ACaptionBValueCCheckedDSelected88单选按钮(OptionButton)用于一组互斥的选项中若一个应用程序包含多组互斥条件可在不同的()中安排适当的单选按钮即可实现A框架控件(Frame)或图像控件(Image)B组合框(ComboBox)或图像控件(Image)C组合框(ComboBox)或图片框(PictureBox)D框架控件(Frame)或图片框(PictureBox)89当用户按下并释放一个键后会触发KeyPressKeyUp和KeyDown事件这3个事件发生的顺序是()AKeyPressKeyUpKeyDownBKeyDownKeyUpKeyPressCKeyPressKeyDownKeyUpDKeyDownKeyPressKeyUp90窗体的KeyPreview属性为True并且有下列程序当焦点在窗体上的文本框时按下x第4章常用控件与窗体133文本框接收到的字符是()PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)KeyCode=KeyCode+1EndSubAxByC空格D没有接收到字符91在下列关于键盘事件的说法中正确的是()A按下键盘上的任意一个键都会引发KeyPress事件B大键盘上的1键和数字键盘的1键的KeyCode码相同CKeyDown和KeyUp的事件过程中有KeyAscii参数D大键盘上的4键的上档字符是$当同时按下Shift和大键盘上的4键时KeyPress事件过程中的KeyAscii参数值是$"的ASCII值92在KeyDown或KeyUp的事件过程中能用来检查Ctrl和F3是否同时按下的表达式是()A(Button=vbCtrlMask)And(KeyCode=vbKeyF3)BKeyCode=vbKeyControl+vbKeyF3C(KeyCode=vbKeyF3)And(ShiftandvbCtrlMask)D(ShiftAndvbCtrlMask)And(KeyCodeandvbKeyF3)93确保文本框中输入的全部都是数字的最佳方法是()A在KeyDown或KeyUp事件过程中摒弃非数字输入B在Validate事件过程中利用IsNumericC在Change事件过程中利用IsNumericD在KeyPress事件过程中摒弃非数字输入94当用户将焦点移到另一个应用程序时当前应用程序的活动窗体将()A发生DeActivate事件B发生LostFocus事件C发生DeActivate和LostFocus事件DDeActivate和LostFocus事件都不会发生95以下关于窗体的描述正确的是()A只有用于启动的窗体可以有菜单B窗体事件和其中所有控件事件的代码都放在窗体文件中C窗体的名字和存盘的窗体文件名必须相同D开始运行时窗体的位置只能是设计阶段时显示的位置96若想要建立一个学生管理的输入界面其中要求选择学生的性别/政治面貌(党/团/群众)及选课情况(共有5门课可任选)应如何在窗体中利用单选钮和选择框来实现()A将5门课程用一组5个选择框来表示将性别和政治面貌用5个单选钮来表示B将5门课程用一组5个选择框来表示用两个框架分别将性别用2个单选钮政治面貌用3个单选钮来表示C将5门课程用一组5个单选钮来表示将性别和政治面貌用5个选择框来表示VisualBasic学习辅导与上机实习134D用一组10个选择框来表示课程性别和政治面貌97RGB函数通过红绿蓝3基色混合产生某种颜色其语法为RGB(红绿蓝)括号中的红绿蓝3基色成分使用0~255之间的整数若使用3个滚动条分别输入3种基色为保证输入数值有效则应设置()属性AValueBSmallChange和LargeChangeCScroll和ChangeDMax和Min98水平滚动条HScroll1的LargeChange属性值为100表示()为100A该滚动条值的最大值B拖动滚动框时滚动条值的变化量C单击滚动箭头和滚动框之间某位置时的滚动条值的变化量D单击滚动箭头时的滚动条值的变化量99在拖动滚动条的滚动块时在没有松开鼠标前会触发滚动条的()事件AChangeBKeyDownCDrageOverDScroll二填空题1要求改变窗体的标题时应当在属性窗口中改变的属性是2在Show方法中带参数0表示窗体_即用户可在多个窗体间切换3窗体的Height和ScaleHeight属性的区别是_4启动窗体时为了初始化该窗体中的各控件可选用窗体的____事件关闭窗体用____事件5对一个窗体对象其最先发生的事件是____事件最后发生的事件是____事件6窗体对象可以识别鼠标单击(Click)双击(DblClick)MouseUp和MouseDown事件而一次双击事件中会依次发生这几个事件它们的次序依次是和DblClick7窗体对象可以识别KeyPressKeyUp和KeyDown事件在按下某键时这3个事件发生的次序是8触发_____事件可以制作由鼠标右击弹出的快捷菜单9Show方法的作用是_Hide方法的作用是_10用Show方法后显示自定义对话框时如果Show方法后带______参数将窗体作为模式对话框显示11在用UnLoad方法把窗体从内存中卸载的过程中依次将发生_______UnLoad和_______事件12每当一个窗体成为活动窗口时触发_______事件当另一个窗体或应用程序被激活时在原活动窗体上产生_______事件13在VB中除了可以指定某个窗体作为启动对象之外还可以指定_______作为启动对象14在执行KeyPress事件过程时KeyAscii是所按键的____值对于有上档字符和下档字符的键当执行KeyDown事件过程时KeyCode是____字符的____值15在KeyDown和KeyUp事件过程中当参数Shift的值为_时分别代表_键第4章常用控件与窗体13516在MouseDown和MouseUp事件过程中当参数Button的值为_时分别代表鼠标的_键17当用户单击鼠标右键时MouseDownMouseUp和MouseMove事件过程中的Button参数值为______18当用户同时按下Ctrl和Shift键时单击鼠标MouseDownMouseUp和MouseMove事件过程中的Shift参数值为______19如果在程序的运行期间改变鼠标的形状必须先将MousePointer设置为vbCustom然后在程序中用LoadPicture函数将需要的图标文件(.
ico)或指针文件(.
cur)装入______属性中20只要将MousePointer属性设置为______鼠标指针就恢复原样21如果将的______属性设置为True则控件的KeyPress事件过程可以接收到在窗体的KeyPress过程中修改过的KeyAscii值22当源对象被拖动目标对象上方时在目标对象上将引发______事件释放时又会引发______事件23控件的______属性决定控件被拖动时显示的图标24为了执行自动拖放必须把____属性设置为____而为了执行手动拖放必须把该属性设置为____25在拖放事件过程中可以采用______函数判断源对象的控件类型供程序识别26有些控件如文本框图文框等完全支持自动OLE拖放这意味着无论是从控件拖出还是在控件内放入都不需要编程将源控件的______设为1(Automatic)和______设为2(Automatic)即可27为了定义自己的鼠标光标要把____属性设置为一个图标文件28写出下列控件的缺省英文名称及前缀单选按钮_列表框_组合框_垂直滚动条_复选框_29组合框有3种不同类型这3种类型是_分别通过把____属性设置为_来实现30在3种不同中类型的组合框中只能选择而不能输入数据的组合框是____31用______方法可以在列表框中插入列表项32把VB程序设计添加到列表框lstBooks的语句为________33设列表框具有多选功能采用______方法能判别出列表框中被选中的表项34列表框中项目的序号是从______开始的35列表框的______和______属性是数组36要使列表框控件中所有项目按字母数字升序排列应设置其______属性为True由______属性的值得到列表框中的项目数37______方法可清除列表框中的所有内容38列表框中增加表项和删除表项分别用列表框的_______方法和_______方法39组合框是组合了文本框和列表框的特性而形成的一种控件______风格的组合框不允许用户输入列表框中没有的项40控件数组的名字由____属性决定而数组中的每个元素由____属性决定VisualBasic学习辅导与上机实习13641复选框的______属性设置为2-Grayed时将变为灰色禁止用户选择42______属性设置为1单选按钮和复选框的标题显示在左边43______属性设置为1单选按钮和复选框以图形方式显示44在程序运行时如果将框架的______属性设为False则框架的标题呈灰色表示框架内的所有对象均被屏蔽不允许用户对其进行操作45使用Frame控件将其他控件分组时应先画_然后在其中画_46程序运行时单击水平滚动条右边的箭头时滚动条的Value属性值将变______47用户单击滚动条的空白处时滚块移动的增量值是由______属性决定48滚动条响应的重要事件有______和Change49滚动条产生Change事件是因为______值改变了50计时器事件之间的间隔通过____属性设置51有时需要暂时关闭计时器这可以通过____属性来实现52定时器控件可识别的事件是_______发生该事件的时间间隔由定时器的_______属性设置其单位是_______53如果要每隔15s产生一个定时器事件则Interval属性应设置为______54若命令按钮的名称为CmdExit程序要求单击该命令按扭时程序停止运行请对以下事件过程填空PrivateSubCmdExit________EndSub55图4-1是应用程序的窗体要求用户选中复选框ChkBold后文本框TxtDisplay中的文字以粗体显示选中复选框ChkItalic后文本框TxtDisplay中的文字以斜体显示单击关闭按钮CmdClose结束应用持续运行PrivateSubChkBold_Click()If____ThenTxtDisplay.
FontBold=TrueElseTxtDisplay.
FontBold=____EndIfEndSubPrivateSubChkItalic_Click()If____ThenTxtDisplay.
FontItalicd=FalseElseTxtDisplay.
FontItalic=TrueEndIfEndSubPrivateSubCmdClose_Click()图4-1第4章常用控件与窗体137____MeEndSub56数制转换按图4-2界面设计一个数制转换器要求运行时单击转换按钮Command1将输入的十进制数转换为八进制或十六进制八进制转换和十六进制转换函数分别为Oct(Number)和Hex(Number)补齐下面的程序Option1Option2Text1Text2图4-2PrivateSubCommand1_Click()IfThenText2.
Text=Oct(IfThenText2.
Text=Hex(EndSub57设在窗体上放置了两个定时器Timer1和Timer2以下程序用于每隔2min向窗体上输出当前的系统时间并打印一个(01)之间的随机数PrivateSubForm_Load()ShowPrintTime(),RndTimer1.
Interval=60000Timer2.
IntervalTimer1.
Enabled=TrueTimer2.
Enabled=FalseEndSubPrivateSubTimer1_Timer()Timer2.
EnabledTimer1.
EnabledEndSubPrivateSubTimer2_Timer()PrintTime(),RndTimer2.
EnabledTimer1.
EnabledEndSubVisualBasic学习辅导与上机实习13858下列程序实现在标签中自动依次显示南京常州无锡苏州上海PrivateSubForm_Load()Label1.
AutoSize=TrueLabel1.
FontSize=24Label1.
Caption=Timer1.
Interval=2000Timer1.
Enabled=TrueEndSubPrivateSubTimer1_Timer()SelectCaseLabel1.
CaptionCaseLabel1.
Caption="南京"CaseLabel1.
Caption="常州"CaseLabel1.
Caption="无锡"CaseElseLabel1.
Caption="苏州"EndSub59在窗体上放置一个水平滚动条一个标签和一个命令按钮(用于结束程序)要求单击滚动条左右箭头时标签上的字可以左右两边移动要求标签移动范围等于滚动条的范围PrivateSubcmdExit_Click()EndEndSubPrivateSubForm_Load()HScroll1.
Min=0HScroll1.
Max=Form1.
Width-Label1.
WidthLabel1.
Left=0EndSubPrivateSubHScroll1_Change()Label1.
Left=EndSubPrivateSubHScroll1_Scroll()Label1.
Left=EndSub第4章常用控件与窗体1394.
2.
2答案与分析一选择题(打*答案有分析)答案1B*2A3D4B5B*6A*7C8B*9A10B11A12C*13B*14B15D*16B*17C*18B*19C20D21C*22BD*23B24A25B26D*27D*28B29B30A31B32B33A34C35C36B*37A*38D39D40C41ABC42C43B44A45A46BC47C*48B*49C50D51A52B53D54A*55B56C57B*58D*59A60B61B62C63C64C65C66B67A68B69C*70B71A72C*73D74D75A76A77C78C79B80D81C82B83D84C85A86D87B88D89C90A91D92C93D94D95B96B97D98C99D分析1FixedSingle固定单边框可以包含控制菜单框标题栏最大化和最小化按钮不能改变尺寸FixedDialog则只可以包含控制菜单框和标题栏不能包含最大化和最小化按钮不能改变尺寸5当一个窗体装载时首先产生Initialize事件然后产生Load事件当它成为活动窗口时发生Activate事件6被禁止的控件不能接受任何事件但窗体仍能接受Click事件7Load事件是在一个窗体装载时发生8与窗体控件相关的语句或方法有Show方法显示窗体Load语句加载窗体Hide方法隐藏窗体UnLoad语句卸载(释放)窗体12窗体的BorderStyle属性缺省值为2(vbSizable)其属性常数为0(vbBSNone)(而不是vbNone)时窗体没有边框或者和边框有关的元素且仅在该属性值为1-FixedSingle和2-Sizable时才会在Windows98的任务栏里面显示13当窗体获得焦点时触发GotFocus事件失去焦点时触发LostFocus事件VisualBasic学习辅导与上机实习14015KeyPress事件过程中传递的参数KeyAscii用来获取用户的击键的ASCII码通过修改该参数可将某一键的ASCII码改为另一个键以屏蔽某键本题中将所有击键的ASCII值都改为0实际是禁止了对该控件的输入16在一个窗体模块代码中调用另一个窗体模块中的过程引用的格式是被引用的窗体名.
过程名故选择B17该问题要利用Form的Resize事件Resize事件在改变窗体的尺寸时发生相应的事件过程为Form_Resize18Screen对象是屏幕对象在VB中Screen对象不需申明即可使用CheckBox没有Change事件它的值的变化是通过单击改变的将引发Click事件而ComboBox有Change事件21Name属性是对象的名称用Private声明的变量或过程只能被该模块内的过程使用其他模块中不可使用22BorderStyle和MaxButton属性只在设计时有效Caption属性是窗体的标题Icon是指定窗体最小化时的图标运行时改变它可以用下列形式Form1.
Icon=LoadPicture("图标文件名")26WindowState属性决定窗体运行时的状态27要捕获Enter(回车键)可使用KeyPress事件并利用事件过程的参数KeyAscii判断按键的ASCII码值36窗体文本框标签命令按钮的默认事件分别为LoadChangeClick37用代码改变控件的位置可以使用控件的Move方法或改变决定控件位置的LeftTop属性38鼠标单击时产生ClickMouseDown事件释放时产生MouseUp事件不产生MouseMove事件47列表框和组合框的ListIndex代表用户选中的项目的序号其值从0开始最大值为ListCount-1若为-1则表示没有选中而ListCount则表示当前列表中的总项数48注意文本框和列表框中保存的是字符型数据+进行的是字符串连接运算54向列表框中添加数据项使用列表控件的AddItem方法格式为对象名.
AddItemItem[Index]其中Index可指定该项添加的位置57当使用列表控件的RemoveItem方法从列表框中删除项时该方法中的参数指定了被删除项的位置(索引值)其值从0开始即第1项对应的索引值为0且每删除一个项后面的其他项向前移动即如果用List1.
RemoveItem1后接着执行List1.
RemoveItem2时第2次被除的是原来索引值为3的项原来索引值为2的项已向前移动现在的索引值为1的位置上58没有项被选中时ListIndex值为-1执行该命令将引起错误69因窗体加载时窗体及其控件还不可见即它们没有焦点故执行Text1.
SetFocus将出错72当窗体被激活时触发Activate事件当它不再是活动窗口时触发DeActivate事件当一个控件失去焦点时则将引发LostFocus事件83因Interval设为1000即每隔1s产生一次定时中断每次扬声器响10次如此不断第4章常用控件与窗体141进行下去直到程序终止89当窗体的KeyPreview设置为True时在控件上的击键也可被窗体所接收在窗体的KeyDown事件中对KeyCode的修改不影响控件接收故文本框中的字符仍为x93DeActivate和LostFocus事件是在同一应用程序的不同窗体之间切换或控件之间切换时发生二填空题(打*答案有分析)答案1Caption2是非模式窗体3不包括窗体的外框图数据区高度4LoadUnload5InitializeUnload6MouseDownMouseUpClick7KeyDownKeyPressKeyUp8MouseDown或MouseUp9显示一个窗体隐藏一个窗体10111QueryUnloadTerminate12ActivateDeActivate13SubMain过程14ASCII输入键的扫描码15124ShiftCtrlAlt16124左右中172或(vbRightButton)183或vbShiftmask或vbCtrlMask19Icon200(Default)21KeyPreview22DragOverDragDrop23DragIcon24DragMode1025*TypeOf26OLEDragModeOLEDropMode27Icon28OptionButtonoptListBoxlstComboBoxcboVscrollBarvsbCheckBoxchk29下拉组合框简单组合框下拉列表框Style01230下拉列表框VisualBasic学习辅导与上机实习14231AddItem32lstBooks.
AddItem"VB程序设计"33Selected(ListIndex)属性34035ListSelected36SortedlListCount37Clear38AddItemRemoveItem39下拉列表框40NameIndex41Value42Alignment43Style44Enabled45框架控件46大47LargeChange48Scroll49Value50Interval51Enabled52TimerIntervalms531500054ClickUnloadMe55chkBoldValueFalseNotchkItalicValueUnload56Option1.
ValueVal(Text1.
Text)Option2.
ValueVal(Text1.
Text)576000TrueFalseFalseTure58"南京""苏州""南京""常州"EndSelect59HScroll1.
ValueHScroll1.
Value分析25判断控件的类型用TypeOf函数用法如下IfTypeOfSourceIsCommandButtonThenSource.
Caption="DragOver"'Source是源控件EndIf第4章常用控件与窗体1434.
3上机实习4.
3.
1题目一编程1设计一通信录程序编程要求(1)当用户在下拉列表框中选择某一人名后在电话号码文本框中显示出对应的电话号码(2)当用户选择或取消单位和住址复选框后将打开或关闭工作单位或家庭住址文本框如图4-3所示(a)(b)(c)图4-32按图4-4所示的界面设计一程序编程要求(1)当用户在左侧输入记录后单击输入命令按钮将输入的信息加入到右侧的列表框中(2)当用户在列表框中选择某项后单击删除按钮则将选中的该项删除图4-43设计一个倒计时程序运行效果如图4-5所示运行时单击设置按钮弹出InputBox输入框供用户输入倒计时的时间(以分钟为单位)单击开始按钮则在文本框内显示剩余的时VisualBasic学习辅导与上机实习144间数(以时:分:秒的格式)同时滚动条上的滚动块同步随时间自左向右移动图4-5图4-64设计一个模拟交通灯显示程序界面如图4-6所示要求红绿灯之间的转换时间通过滚动条控制所需的3种交通信号灯图片可从\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Icons\Traffic中获取5设计一个查找界面在一列表框中输入了一些单词并已经按字母顺序排序(设置Sorted属性为True)运行界面如图4-7所示图4-7图4-8编程要求(1)在文本框Text1中输入要查找的单词输入过程中将同时选中列表框中与当前内容接近(前几个字母与输入内容相同)或相同的单词按回车键结束输入并将当前列表框中选中的单词显示于图片框Picture1中(用该控件的Print方法)如果要查找的单词不存在不做任何处理(2)在文本框中输入要查找的内容后如果不按回车键而按确定按钮也将当前列表框中选中的单词显示于图片框Picture1中(3)击列表框中的项目也可以将该项内容显示于图片框Picture1中(4)单击取消按钮清除文本框Text1中的内容并取消当前列表框中的选择项6设计一个图4-8所示的应用程序要求当用户选定了计算机的基本配置并单击确定按钮后在右侧的列表框中显示所选择的配置信息7编写一程序在窗体上画一文本框当程序运行后如果按下键盘上的ABCD键则在文本框中显示EFDH8编写一程序当同时按下AltShift和F6键时在窗体上显示GoodBye!
并终止第4章常用控件与窗体145程序的运行9编写一个程序当按某个键时程序以十六进制和八进制形式输出该键的KeyCode10在窗体上画一个文本框一个图片框和一个命令按钮编写程序使得当光标位于不同的控件或窗体上时鼠标光标具有不同的形状此时如果按下鼠标右键则显示相应的信息例如当鼠标光标移到图片框上时如果按下鼠标右键则用一个信息框显示现在鼠标光标位于图片框中编程要求在文本框和窗体上的鼠标光标使用系统提供的光标形状而图片框和命令按钮上的鼠标光标使用自定义的形状11按图4-9所示的界面设计一个实现拖放操作的程序图中左右两个控件均为列表框要求当在左侧的控件中选中某项目时将它拖放到右侧的列表框中同时将左侧列表中的相应项目删除且拖动时的光标选自文件D:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Cursors\DRAGMOVE.
CUR12编写一个类似于回收站的程序用适当的图形作为回收站程序运行后把窗体上其他的对象拖到回收站上松开鼠标键后显示一个信息框询问是否确实要把该对象放入回收站此时单击是按钮即放入回收站对象从窗体上消失单击否按钮则对象仍回到原来位置13编程要求(1)成绩数据处理窗体上有3个按钮成绩输入成绩计算结束(2)单击成绩输入时弹出成绩输入窗体该窗体上放置几个文本框和标签用于输入各门课程的成绩课程名称自定其上还有一个返回按钮用于返回到成绩数据处理窗体(3)单击成绩计算时弹出成绩计算窗体在该窗体上显示学生的平均成绩与总成绩同样设置一个返回按钮二改错或填充1以下程序是利用一个文本框和一个列表框设计一个Style属性为1-SimpleCombo时的组合列表框功能请填空完成该程序PrivateSubForm_Load()List1.
AddItem"efficiency"List1.
AddItem"English"EndSubPrivateSubList1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)DimiAsIntegeri图4-9VisualBasic学习辅导与上机实习146Ifi>-1ThenList1.
List(i)List1.
Selected(i)EndIfEndSubPrivateSubText1_Change()DimlAsInteger,iAsInteger,strAsStringstr=Text1.
Textl=Len(str)Ifl>0ThenFori=0To________IfText1.
Text=Left(List1.
List(i),l)ThenList1.
Selected(i)=TrueList1.
Selected(i)ExitForEndIfNextiElseList1.
1EndIfEndSub2以下给定程序中的功能是通过在组合列表框中的选择不同的字体选项显示出不同的结果如图4-10所示试修改此程序完成指定功能DimiAsIntegerPrivateSubForm_Load()Fori=0ToScreen.
FontCountCombo1.
AddItemScreen.
Fonts(i)NextiIfCombo1.
ListCount>0ThenCombo1.
ListIndex=0EndIfEndSubPrivateSubCombo1_Change()i=Combo1.
ListIndexLabel1.
Font=Combo1.
List(i)EndSub3图4-11所示的窗体中包括2个列表框和4个命令按钮其中上方列表框List1内容要求以多列方式显示并允许用户以多种方式进行选择复制命令将上方列表框中所有选中内容复图4-10第4章常用控件与窗体147制到下方列表框List2中删除(删除某一列表项)和清除(清除整个列表框)操作都是针对下方列表进行给定的程序要实现上述功能试修改程序中的错误PrivateSubcmdClear_Click()List1.
ClearEndSubPrivateSubcmdCopy_Click()DimiAsIntegerFori=0ToList1.
ListCountIfList1.
List(i)ThenList2.
AddItemList1.
List(i)EndIfNextiEndSubPrivateSubcmdExit_Click()UnloadMeEndSubPrivateSubcmdRemove_Click()DimiAsIntegerFori=0ToList2.
ListCount-1IfList2.
Selected(i)ThenList2.
RemoveItemiEndIfNextiEndSubPrivateSubList1_Click()List2.
AddItemList1.
List(List1.
ListIndex)EndSub4以下是某一办公系统中选择发文单位的一个程序模块相应的用户界面如图4-12所示图中有两个列表框List1和List2分别为可选发文单位和已选发文单位当向已选发文单位列表框添加选中的发文单位时应从可选发文单位列表框中删除以免重复选择相应地从已选发文单位列表框移除多余的发文单位时也应从已选发文单位列表框中删除同时通过命令按钮或双击均可完成添加或移除操作修改此程序以满足要求(给出的程序中只有添加操作部分移除操作与之相同只是源对象和目标对象不同)PrivateSubcmdAdd_Click()DimiAsIntegerFori=0ToList1.
ListCount-1IfList1.
List(i)>0ThenList2.
AddItemList1.
List(i)图4-11VisualBasic学习辅导与上机实习148List1.
RemoveItemiEndIfNextiEndSubPrivateSubcmdAddAll_Click()DimiAsIntegerFori=0ToList1.
ListCount-1List2.
AddItemList1.
List(List1.
ListIndex)List1.
RemoveItemiNextiEndSubPrivateSubList1_DblClick()IfList1.
ListIndex>0ThenList2.
AddItemList1.
List(List1.
ListIndex)List1.
RemoveItemList1.
ListIndexEndIfEndSub5下列程序用于利用定时器实现字体的放大/缩小界面图4-13完成此程序OptionExplicitDimblnZoomAsBooleanPrivateSubForm_Load()WithLabel1.
Height=Height.
Width=Width.
FontName="楷体_GB2312"Timer1.
200TrueEndSubPrivateSubTimer1_Timer()IfblnZoomThenIfLabel1.
FontSize>100ThenElseLabel1.
FontSizeEndIfElseIfLabel1.
FontSize0ThenElseTimer1.
Enabled=FalseEndIfEndSub7下面的程序是一个成绩录入与统计界面(见图4-14)要求输入的数据必须是0~100间的数值型数据根据复选框中选定的课程进行合计计算试修改此程序PrivateSubCommand1_Click()s=0Fori=0To4IfCheck1.
Value=CheckedThens=s+Val(Text1(i))EndIfNextiLabel6=sEndSubPrivateSubForm_Load()Fori=0To4'清空文本框Text1(i).
Text=""NextiLabel6=""EndSubPrivateSubText1_LostFocus(IndexAsInteger)IfIsNumeric(Text1(Index).
Text)Then图4-14VisualBasic学习辅导与上机实习150a=Text1.
TextIfa>=0Anda0ThenFori=0TolstText.
ListCount-1IftxtFindText=Left(lstText.
List(i),l)ThenlstText.
Selected(i)=TrueExitForEndIfNextiElselstText.
ListIndex=-1EndIfEndSubPrivateSubtxtFind_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=13ThenIflstText.
ListIndex>-1ThenPicture1.
PrintlstText.
List(lstText.
ListIndex)EndIfEndIfEndSub7利用文本框的KeyPress事件修改KeyAscii值8利用KeyDown事件判断Shift和KeyCode参数值Alt和Shift键同时按下时Shift值为5F6的KeyCode为1179可在窗体的Load事件中修改窗体和文本框控件的MousePointer属性而对图片框和命令按钮控件则修改MouseIcon属性用LoadPicture("图标文件名")装入自定义图标文件图标第4章常用控件与窗体153文件位于X:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Cursors文件夹下11利用控件的拖放操作设计时修改DragIcon属性指定图标文件参考代码如下PrivateSubList1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)List1.
Drag1EndSubPrivateSubList2_DragDrop(SourceAsControl,XAsSingle,YAsSingle)IfSource.
Name="List1"AndList1.
ListIndex>-1ThenList2.
AddItemList1.
List(List1.
ListIndex)List1.
RemoveItemList1.
ListIndexEndIfEndSub二改错或填充1i=List1.
ListIndexText1.
TextTrueList1.
ListCount-1FalseListIndex2Screen.
FontCount应为Screen.
FontCount-1Fonts数组属性是从0开始的Combo1.
ListCount>0应为Combo1.
ListCount>=0Combo1_Change应为Combo1_Click3List1.
Clear应为List2.
ClearFori=0ToList1.
ListCount应为Fori=0ToList1.
ListCount-1IfList1.
List(i)Then应为IfList1.
Selected(i)ThenFori=0ToList2.
ListCount–1应为Fori=List2.
ListCount-1To0Step-1List1_Click()应为List1_DblClick()4Fori=0ToList1.
ListCount–1应为Fori=List1.
ListCount-1To0Step-1IfList1.
List(i)>0Then应为IfList1.
Selected(i)ThenFori=0ToList1.
ListCount–1应为Fori=List1.
ListCount-1To0Step-1List2.
AddItemList1.
List(List1.
ListIndex)应为List2.
AddItemList1.
List(i)IfList1.
ListIndex>0Then应为IfList1.
ListIndex>-1Then5EndWithIntervalblnZoomblnZoom=FalseLabel1.
FontSize+5Label1.
FontSize6Label1.
Caption=Val(Label1.
Capthon)–17IfCheck1.
Value=CheckedThen应为IfCheck1(i).
Value=CheckedThena=Text1.
Text应为a=Val(Text1(Index).
Text)Else应为EndIfEndIf应为Text1(Index).
SetFocusVisualBasic学习辅导与上机实习154第5章菜单与工具栏5.
1学习要点与必备知识学习要点用户菜单弹出式菜单的设计工具栏状态栏的设计MDI窗体的基本构成与设计必备知识1菜单菜单系统组成菜单控件属性(NameCaptionCheckedEnabledVisible)快捷键及访问键的设置菜单项间的分隔线设置菜单控件的事件(Click事件)利用控件数组动态创建菜单(菜单项用Load语句创建用UnLoad清除)2弹出式菜单弹出式菜单特点设计方法弹出式菜单的显示(PopupMenu方法的使用)3工具栏和状态栏图像列表控件ImageList的功能和使用工具栏ToolBar属性的设置工具栏按钮单击事件及代码设计状态栏StatusBar控件上的窗格(Panel对象)属性(样式StyleText对齐Align图片Picture等)4多文档界面MDI标准窗体MDI父窗体和MDI子窗体的概念常用的属性(ActiveFormActiveControlAutoShowChildrenMdiChild)常用的方法(Arrange方法)常用的事件(QueryUnload事件)及应用5.
2习题精选5.
2.
1题目一选择题1在菜单中放置分隔栏的方法是将该菜单项的Caption设为()A连字符(-)B下划线(__)C连接符(&)D两个连续的下划线(__)2以下陈述中正确的是()(多选)A分隔栏可以出现在顶级菜单项中第5章菜单与工具栏155B顶级菜单项的Checked属性不能为TrueC对同一个菜单项为其指定访问键后就不能再为其指定快捷键D菜单项的Enabled属性设为False后它会被灰化显示3菜单项数组必须满足()(多选)AName属性值可以不同B有相同的行首缩进C所有元素在菜单中可以不连续D各元素必有惟一索引值4为了响应工具栏上的多个按钮的单击事件可以通过按钮的()属性识别是由哪个按钮引发AButtonBKeyCIndexDB和C均可5在使用菜单编辑器创建菜单时可在菜单名称中某字母前插入()符号那么在运行程序时按Alt键和该字母键就可以打开该命令菜单A下划线B&C$D@6如果要在两个菜单命令项之间加一条分隔线可在标题文本框中键入()A–B+C&D#7在用菜单编辑器设计菜单时必须输入的项是()A快捷键B标题C索引D名称8菜单控件仅支持以下()事件AClickBMouseDownCKeyPressDLoad9在使用弹出菜单时下面说法不正确的情况是()A只能同时显示一个弹出菜单B使用PopupMenu方法来显示弹出菜单C在设计时应该将弹出菜单的顶层菜单项的Visible属性设为FalseD在显示弹出菜单以后将执行以后的代码10下列不能打开菜单编辑器的操作是()A按Ctrl+EB单击工具栏中的"菜单编辑器"按钮C执行"工具"菜单中的"菜单编辑器"命令D按Shift+Alt+M11假定有一个菜单项名为MenuItem为了在运行时使该菜单项失效(变灰)应使用的语句为()AMenuItem.
Enabled=FalseBMenuItem.
Enabled=TrueCMenuItem.
Visible=TrueDMenultem.
Visible=False12以下关于菜单编辑器中索引项的叙述中错误的是()A索引确定了菜单项显示的顺序B索引是控件数组的下标C使用索引时,可有一组菜单项具有相同的名字D使用索引后,在单击菜单项的事件过程中可以通过索引引用菜单项13用户通过设置菜单项的()属性值为False来使该菜单项不可见VisualBasic学习辅导与上机实习156AHideBCheckedCVisibleDEnabled14下列关于菜单的说法中错误的是()A每个菜单项都是一个控件与其他控件一样也有其属性和事件B除了Click事件之外菜单项不可以响应其他事件C菜单项的索引号可以不连续D菜单项的索引号必须从1开始15通常一个Windows应用程序的功能都能够通过菜单交互方式来进行下列关于菜单交互方式的选项中错误的是()A用户在一组多个可能的对象中进行选择B各种可能的选择以菜单项的形式分列显示C菜单项的分组设置一般不分类D每个菜单项被选取都会导致执行某一种操作16在下列程序中()不论使用鼠标右键还是左键弹出的菜单中的菜单项都响应鼠标单击APrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenuMenu_test,2EndIfEndSubBPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PopupMenuMenu_test,0EndSubCPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)PopupMenuMenu_testEndSubDPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)If(Button=vbLeftButton)Or(Button=vbRightButton)ThenPopupMenuMenu_testEndIfEndSub17以下有关由多个窗体和标准模块组成的应用程序设计方法的叙述中错误的是()A在缺省情况下设计时的第一个窗体被指定为启动窗体B通过人为设置可指定任一窗体为启动窗体C通过人为设置可指定标准模块中的Main()过程为启动过程D通过人为设置可指定窗体模块中的Main()过程为启动过程18以下陈述中正确的是()(多选)A一个应用程序中只能有一个MDI父窗体BMDI父窗体上可以放置任意控件第5章菜单与工具栏157C可以用Print方法在MDI父窗体上显示信息D一个MDI子窗体最小化后其图标显示在MDI父窗体中19要在工程中创建一个MDI父窗体只要()(多选)A在菜单中选择"工程""添加MDI窗体"B在工具栏的添加按钮的下拉菜单中选择"MDI窗体"C新建一个窗体其将MDIChild属性设为TrueD新建一个窗体其将MDIChild属性设为False20要使MDI子窗体在加载时就自动显示出来应()A将Scrollbars属性设为TrueB将Scrollbars属性设为FalseC将AutoShowChildren属性设为TrueD将AutoShowChildren属性设为False21使用MDI窗体时对于下面的说法选择正确的选项()A能在MDI窗体中打开多个文档界面B子窗体是模式窗口C子窗体的和父窗体能够同时显示自己的菜单D如果子窗体的BorderStyle属性为vbFixedToolWindow,其大小将不能改变22多窗体程序由多个窗体组成在缺省情况下VB在执行应用程序时总是把()指定为启动窗口A不包含任何控件的窗口B设计时的第一个窗体C命名为Frm1的窗体D包含控件最多的窗体23要使自定义的对话框Form1退出可以在该对话框的退出按钮的Click事件过程中使用以下()中的一个语句(多选)AForm1.
UnloadBUnloadForm1CForm1.
HideDUnloadMe24MDI窗体的QueryUnload事件将在()时候被触发(多选)A在代码中使用Unload语句B当前Windows操作结束C利用Windows任务管理器关闭应用程序DMDI窗体正在关闭E窗体的所有者正在关闭F双击窗体图标或选择控制菜单中的关闭命令二填空题1菜单编辑器的标题选项对应于菜单控件的_属性菜单编辑器的名称选项对应于菜单控件的_属性菜单编辑器的可见选项对应于菜单控件的_属性菜单编辑器的索引选项对应于菜单控件的_属性菜单编辑器的复选选项对应于菜单控件的_属性VisualBasic学习辅导与上机实习158菜单编辑器的有效选项对应于菜单控件的_属性2菜单分为______菜单和______菜单菜单总与_相关联设计菜单需要在______中设计3不可以给______级菜单设置快捷键4菜单中的分隔条是一种菜单控件但不响应_事件也不能被选中5为显示弹出式菜单可以使用_方法6如果菜单标题的某个字母前输入一个&符号那么该字母就成了热键字母如果在建立菜单时在标题文本框中输入一个______那么显示时形成一个分隔符7如果把菜单项的______属性设置为True则该菜单项成为一个选项8不管是在窗口顶部菜单条上显示的菜单还是隐藏的菜单都可以用______方法把它们作为菜单在程序运行期间显示出来9菜单设计中每一个菜单项是一个控件这些控件都只有一个______事件10为了能够通过键盘访问主菜单项可在菜单编辑器的标题选项中的某字母前插入_______符号运行时该字母会带有下划线按Alt键和该字母就可以访问相应的主菜单项11弹出式菜单在_中设计且一定要使其______级菜单不可见12要使用工具栏控件设计工具栏应先在部件对话框中选择_然后从工具箱中选_控件13设置工具栏控件的_属性可以改变工具栏在窗体上的位置14要给工具栏按钮添加图像应首先在_控件中添加所需要的图像然后在工具栏的属性页中选择与该控件相关联15运行时要使工具栏ToolBar1中索引值为5的按钮无效应使用语句16要使工具栏控件的某按钮呈菜单的式样可以在其属性页中设置其______选项为5-tbrDropDown17要使用状态栏控件设计状态栏应首先在部件对话框中选择_然后从工具箱中选择_控件18状态栏由多个窗格对象组成窗格对象的特征是通过状态栏的_____属性决定的19要在运行时给状态StstusBar1的第二个窗格添加一幅图片该图片由文件c:\windows\glass.
ico指定应使用语句20SDI指_界面MDI指_界面21要将某窗体定义为一个MDI子窗体需要将其_属性设置为True22在一个MDI应用程序中可以含有_这3类窗体23一个应用程序最多可以有_个MDI父窗体24在运行时MDI父窗体中的子窗体最小化时其图标将显示在_中第5章菜单与工具栏1595.
2.
2答案与分析一选择题(打*答案有分析)答案1A2BD3BD*4D5B6A7D8A*9D*10A11A12B13C14D15C16A*17C18AD19AB20C21A22B23DB24ABCDEF分析3菜单数组中各元素名称必须相同且在同一级菜单下菜单项必须连续(相邻)各元素的索引要惟一索引值可从任一数开始8在菜单中菜单项只支持Click事件9在显示弹出菜单后执行的代码是用户选择菜单项对应的Click事件过程16PopupMenu方法的语法为object.
PopupMenumenunameflags通过flags指定响应鼠标的方式0缺省值仅当使用鼠标左按钮时弹出式菜单中的项目才响应鼠标单击2不论使用鼠标右按钮还是左按钮弹出式菜单中的项目都响应鼠标单击二填空题答案1CaptionNameVisibleIndexCheckedEnabled2下拉式弹出式窗体菜单编辑器3顶4Click5PopupMenu6–7Checked8PopupMenu9Click10&11菜单编辑器顶12MicrosoftWindowsCommonControls6.
0ToolBar13Align14ImageList15ToolBar1.
Buttons(5).
Enabled=False16Style(式样)17MicrosoftWindowsCommonControls6.
0StatusBarVisualBasic学习辅导与上机实习16018Style(式样)19StatusBar1.
Panels(2).
Picture=LoadPicture("c:\windows\glass.
ico")20单文档多文档21MDIChild22普通窗体MDI父窗体MDI子窗体23一24MDI父窗体5.
3上机实习5.
3.
1题目一编程1设计两个窗体fstForm和sndForm以fstForm为启动窗体程序运行后单击窗体fstForm则卸载fstForm然后显示窗体sndForm若用户单击sndForm窗体则显示fstForm,然后卸除sndForm2设计一个图5-1所示的应用程序界面编程要求(1)按表5-1要求设计菜单和快捷按钮表5-1菜单级别标题名称快捷键状态工具栏按钮主菜单项文件(&F)mnuFile一级子菜单打开(&O)…mnuOpenCtrl+O有一级子菜单设置(&S)mnuSet二级子菜单字体(&F)…mnuFontCtrl+F有二级子菜单颜色(&C)…mnuColor有一级子菜单-mnuSpbar1一级子菜单退出(&X)mnuExitF4主菜单项编辑(&E)mnuEdit一级子菜单剪切(&T)mnuCutCtrl+X无效(灰色)有一级子菜单复制(&C)mnuCopyCtrl+C无效有一级子菜单粘贴(&P)mnuPasteCtrl+V无效有主菜单项帮助(&H)mnuHelp一级子菜单关于(&A)mnuAbout(2)工具栏上的快捷按钮与相应的菜单项的事件代码一致(3)当用户选中某菜单项或快捷按钮时进行操作时将该操作的状态显示在状态栏左侧的窗格上3设计一个图5-2所示的由一个MDI窗体和3个MDI子窗体组成的MDI应用程序界面第5章菜单与工具栏161图5-1图5-2编程要求(1)执行层叠平铺排列图标子菜单项时3个MDI子窗体分别按要求排列(2)单击分隔条下方的某MDI子窗体名称时该窗体名前出现同时该窗体被激活(3)单击某MDI子窗体的任意位置时该窗体被激活同时菜单中该窗体名前出现(要求只有一个菜单中MDI子窗体名称前出现的)4试设计一个窗体其上有两个多行文本框和一个结束按钮并为两个文本框设计弹出式菜单以完成在两个文本框之间完成剪切复制和粘贴5设计一个程序实现Windows系统的记事本的功能编程要求(1)程序中含有必要菜单(2)利用Windows的剪贴板对象Clipboard实现对Windows剪贴板的操作6修改上题程序要求(1)增加工具栏状态栏并为工具栏中的按钮编写事件代码(2)可同时编辑多个文件(3)可以改变窗口编辑框中的字体颜色可以排列窗口二改错或填充1在一个含有文本编辑框的编辑界面上要求当用户在文本框上右击鼠标时弹出图5-3所示的快捷菜单完成该程序PrivateSubText1_ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfThenmnuEditEndIfEndSub2在一个编辑菜单其中的剪切复制菜单对象名分别为submnuCut和submnuCopy而文本框对象名为Text1以下程序用来对剪切和复制菜单项的有效性进行控制试图5-3VisualBasic学习辅导与上机实习162填充完成PrivateSubText1_ButtonAsInteger,ShiftAsInteger,_XAsSingle,YAsSingle)IfText1.
SelLengthThensubmnuCut.
Enabled=TruesubmnuCopy.
Enabled=TrueElseEndIfEndSub3图5-4是一个演示MDI界面的程序MDI父窗体中含一个菜单菜单ChildForms(含有OpenChilds和CloseChilds菜单项)和Window执行OpenChilds将打开所有(10个)子窗体且以不同的颜色显示其窗口背景执行CloseChilds则关闭所有打开的子窗体执行Window菜单下的菜单项时按要求排列图标当某一子窗体被激活时该子窗体的标题显示I'vebeenactivated!
完成此程序改正其中的错误图5-4'父窗体的相关代码DimDocumentForms(10)AsNewChildFormPrivateSubFormsClose_Click()DimiAsIntegerFori=0To9UnloadDocumentForms(i)NextEndSub第5章菜单与工具栏163PrivateSubFormOpen_Click()DimiAsIntegerFori=0To9DocumentForms.
ShowDocumentForms.
ForeColor=QBColor(Rnd*14+1)'QBColor颜色函数DocumentForms.
Caption="Document"&Format(i)DocumentForms.
Tag=i'控件的Tag属性可用来存放运行时所需的数据NextEndSubPrivateSubWindowArrange_Click()MDIForm1.
ArrangevbArrangeIconsEndSubPrivateSubWindowCascade_Click()MDIForm1.
ArrangevbCascadeEndSubPrivateSubWindowTileH_Click()MDIForm1.
ArrangevbTileHorizontalEndSubPrivateSubWindowTileV_Click()MDIForm1.
ArrangevbTileVerticalEndSub'子窗体的相关代码PrivateSubForm_Load()Me.
Caption="I'vebeenactivated!
"EndSubPrivateSubForm_LostFocus()Me.
Caption="Document"&Format(i)EndSub5.
3.
2编程提示一编程1参考代码PrivateSubForm_Click()LoadsndFormsndForm.
ShowVisualBasic学习辅导与上机实习164UnloadMeEndSub2编程要点(1)将用户选择操作显示在窗格上可用以下形式StatusBar1.
Panels(1).
Text=mnuOpen.
Caption(2)利用工具栏按钮的Index属性将按钮的单击事件共享菜单的单击事件代码如PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLibButton)SelectCaseButton.
IndexCase1mnuOpen_Click3窗体的排列可利用MDI父窗体的Arrange方法在进行菜单设计时选中窗口菜单项的WindowList属性4通过菜单设计器设计两个一级菜单分别用于两个文本框的弹出式菜单它们的Enabled设为False在文本框的MouseDown或MouseUp事件中调用PopupMenu方法显示弹出式菜单5Clipboard对象用于操作剪贴板上的文本和图形它使用户能够复制剪切和粘贴应用程序中的文本和图形用SetData方法把位图以vbCFDIB格式放到Clipboard中用SetText方法以vbCFText格式将文本放到Clipboard中用GetText方法检索文本或用GetData方法检索图形二改错或填空1MouseDownButton=2PopupMenu2MouseUp>0submnuCut.
Enabled=FalsesubmnuCopy.
Enabled=False3主窗体中DocumentForms.
Show应为DocumentForms(i).
ShowDocumentForms.
ForeColor=QBColor(Rnd*14+1)应为DocumentForms(i).
ForeColor=QBColor(Rnd*14+1)DocumentForms.
Caption="Document"&Format(i)应为DocumentForms(i).
Caption="Document"&Format(i)DocumentForms.
Tag=i应为DocumentForms(i).
Tag=i子窗体中Form_Load()应为Form_GotFocusMe.
Caption="Document"&Format(i)应为Me.
Caption="Document"&Format(Me.
Tag)第6章文件165第6章文件6.
1学习要点与必备知识学习要点文件的基本概念文件的结构与分类文件管理控件的使用方法通用对话框的使用文件相关的操作命令与函数顺序文件与随机文件读写必备知识1文件及分类文件的基本概念文件的分类(文本文件与二进制文件顺序文件随机文件和二进制文件)2文件系统控件驱动器列表框(DriveListBox)控件的主要属性(Drive)和主要事件(Change)目录列表框(DirListBox)控件的主要属性(Path)和主要事件(Change)文件列表框(FileListBox)控件的主要属性(PathFileNamePattern)和主要事件(Click,DblClick)3通用对话框CommonDialog控件主要属性(ActionDialogTitleFilterInitDirFileNameFlagFontNameFontSizeFontBoldFontItalicCopiesFromPageToPage)主要方法(ShowOpenShowSaveShowColorShowFontShowPrintShowHelp)4文件操作文件的打开(Open)与关闭(Close)顺序文件的读(LineInput#Input#)和写(PrintWrite)记录类型的定义随机文件的读(Get)写(Put)随机文件的记录定位(Seek函数和Seek命令)5文件操作相关语句和函数CurDirChDriveChDirMkDir|RmDirDirFileCopyKillFileLenFreeFileLOFEOFLoc6.
2习题精选6.
2.
1题目一选择题1要用CommonDialog控件显示标准的"字体"对话框应调用其()方法AShowFontBShowColorCShowOpenDShowSaveasVisualBasic学习辅导与上机实习1662使用Commondialog控件要显示打开文件对话框则()A使用ShowOpen方法B使用ShowSave方法C使用Aboutbox方法D使用Show方法和适当的参数3对于Commondialog控件说法不正确的是()A能够使用Flags属性来控制其样式B能够将不同的flags值相加设置多种标志C打印对话框将要打印的数据送到打印机上面D可以使用FileName属性来得到选中的文件的名称4在DirList中如果选定了当前目录则()A这个目录的ListIndex值为0B这个目录的ListIndex值为1C这个目录的父目录的ListIndex值为0D这个目录的ListIndex值为–15下面的说法不正确的是()ADirlistbox的Listcount属性返回在控件中显示的所有目录的总和BDirlistbox的Listcount属性返回当前目录的子目录的总和C使用Dirlistbox的List属性可以访问父目录和子目录D如果目录不存在Dirlistbox的List属性返回""6设已经在窗体上添加了一个通用对话框控件CommonDialog1以下正确的语句是()ACommonDialog1.
Filter=ALLFiles|*.
*|Pictures(*.
Bmp)|*.
BmpBCommonDialog1.
Filter="ALLFiles"|*.
*|"Pictures(*.
Bmp)"|*.
BmpCCommonDialog1.
Filter="ALLFiles|*.
*|Pictures(*.
Bmp)|*.
Bmp"DCommonDialog1.
Filter={ALLFiles|*.
*|Pictures(*.
Bmp)|*.
Bmp}7使用通用对话框控件打开字体对话框时如果要在字体对话框中显示式样和颜色必须设置通用对话框的Flags属性为()A128B255C256D1278使用CommonDialog打开文件对话框的时候如果想一次打开多个文件则要()(多选)A设置Flags属性为cdlOFNAllowMultiselectB在单独使用cdlOFNAllowMultiselect时不支持长文件名C选出的多个文件使用空格来区分D不能同时打开多个文件9通用对话框CommonDialog中可以使用的6种方法为()AShowOpenShowFontBShowOpenShowFontShowSaveShowPrinterShowCloseShowPrinterShowColorShowHelpShowColorShowHelpCShowOpenShowFontDShowNewShowFontShowSaveAsShowPrinterShowSaveShowPrinter第6章文件167ShowColorShowHelpShowColorShowHelp10使用通用对话框控件打开字体对话框时如果要在字体对话框中列出可用的屏幕和打印机字体必须设置通用对话框的Flags属性为()A0B1C2D311使用CommonDialog控件的()方法可显示打印对话框AShowOpenBShowSaveCShowColorDShowPrinter12用InputBox函数可帮助生成()A消息框B保存对话框C简单输入框D颜色对话框13如果要显示VisualBasic中的预定义输入对话框,需要调用VisualBasic提供的()函数AMsgBoxBOpenCOutputDInputBox14使用驱动器列表框的()属性可以返回或设置磁盘驱动器的名称AChDriveBDriveCListDListlndex15下面叙述中不正确的是()A驱动器列表框是一种能显示系统中所有有效磁盘驱动器的列表框B驱动器列表框的Drive属性只能在运行时被设置C从驱动器列表框中选择驱动器能自动地变更系统当前的工作驱动器D要改变系统当前的工作驱动器需要使用ChDrive语句16改变驱动器列表框的Drive属性值将激活()事件AChangeBScrollCKeyDownDKeyUp17使用目录列表框的()属性可以返回或设置当前工作目录的完整路径(包括驱动器盘符)ADriveBPathCDirDListIndex18文件列表框中用于设置或返回所选文件的路径和文件名的属性是()AFileBFilePathCPathDFileName19改变目录列表框(DirListBox)控件Path属性的途径可以有()单击目录列表框某一项程序代码中改变目录列表框的Path属性值双击目录列表框某一项在程序中用ChDir命令设置当前工作目录ABCD20用DIR$(pathAttributes)函数返回C盘根目录下所有既是系统文件又是隐藏文件和只读文件的文件应使用以下代码()ADir$("C:\*.
*")BDir$("C:\*.
*",VbHidden)CDir$("C:\*.
*",VbHidden+Vbsystem)DDir$("C:\*.
*",VbHidden+Vbsystem+VbReadOnly)VisualBasic学习辅导与上机实习16821VB中创建一个新的文件夹的文件操作函数是()AFilecopyBKillCNameDMkDir22Kill语句在VB语言中的功能()A删除磁盘上的文件B清屏幕C清内存D清病毒23App.
Path在运行时返回值是()AWindows所在目录B主盘的根目录C应用程序所在目录DVB所在目录24在VisualBasic中文件访问的类型有()A顺序随机二进制B顺序随机字符C顺序十六进制随机D顺序记录字符25关于文件访问下面的说法正确的是()A使用顺序型来打开一个文件以后能够使用Get函数来输入B使用Append方式来打开一个文件时如果文件不存在将创建一个新的文件C使用Print#能够确保每一个数据域的完整性DWrite#可以在二进制方式下工作26文件号最大可取的值为()A25B511C512D25627下面叙述中不正确是()A顺序文件结构简单B能同时对顺序文件进行读写操作C对顺序文件中的数据的操作只能按一定的顺序执行D顺序文件的数据是以字符(ASCII码)的形式存储的28下面叙述中不正确的是()A随机文件中记录的长度不是固定不变的B可以同时对打开的随机文件进行读写操作C随机文件由若干条记录组成并按记录号引用各个记录D可以按任意顺序访问随机文件中的数据29要以追加顺序文本方式打开C盘根目录下的MyTextTxt文件正确的代码是()AOpen"C:\Mytext.
Txt"ForRandomAs#1BOpen"C:\Mytext.
Txt"ForInputAs#1COpen"C:\Mytext.
Txt"ForAppendAs#1DOpen"C:\Mytext.
Txt"ForOutputAs#130在顺序文件中()A按记录的某个关键数据项的排序顺序组织文件B记录按写入的先后顺序存放并按写入的先后顺序读出C每条记录的记录号按从小到大排序D每条记录的长度按从小到大排序第6章文件16931在随机文件中()A记录的内容是随机产生的B记录的长度是任意的C记录号是通过随机数产生的D可以通过记录号随机读取记录32要在C盘当前文件夹下建立一个名为StuData.
dat的顺序文件应先使用语句()AOpen"C:StuData.
dat"ForInputAs2BOpen"C:StuData.
dat"ForOutputAs2COpen"StuData.
dat"ForOutputAs2DOpen"StuData.
dat"ForInputAs233为了把一个记录型变量的内容写入文件中指定的位置所使用的语句格式为()AGet文件号记录号变量名BGet文件号变量名记录号CPut文件号变量名记录号DPut文件号记录号变量名34记录类型定义语句应出现在()A窗体模块B标准模块C窗体模块标准模块均不可以D窗体模块标准模块都可以35在下面向文件中写入数据的命令语句中不正确的是()APrint#文件号输出项列表BWrite#文件号Unsing输出项列表CWrite#文件号输出项列表DPrint#文件号Unsing输出项列表36若磁盘文件C:\Data1.
dat不存在下列打开文件语句中会产生错误的是()AOpen"C:\Data1.
dat"ForOutputAs#1BOpen"C:\Data1.
dat"ForInputAs#2COpen"C:\Data1.
dat"ForAppendAs#3DOpen"C:\Data1.
dat"ForBinaryAs#437下列()说法是不正确的A当程序正常结束时所有没用Close语句关闭的文件都会自动关闭B在关闭文件或程序结束之前可以不用Unlock语句对已锁定的记录解锁C可以用不同的文件号同时打开一个随机文件D用Output模式打开一个顺序文件即使不对它进行写操作原来内容也被清除38设有一个文件名为ABCD.
TXTDE的文件(文件名中有一个空格)则在Windows95/98环境下用某种高级语言编写程序打开该文件时应将文件名表述为()AABCD.
TXTBABCD.
TXTCAB~1.
TXTD"ABCD.
TXT"39执行语句Open"C:StuData.
dat"ForInputAs2后系统()A将内存数据存放在C盘当前文件夹下名为StuData.
dat的文件中B将某个磁盘文件的内容写入C盘当前文件夹下名为StuData.
dat的文件中C将C盘当前文件夹下名为StuData.
dat的文件的内容读入内存D在C盘当前文件夹下建立名为StuData.
dat的顺序文件40如果在C盘当前文件夹下已存在StuData.
dat的顺序文件那么执行语句OpenVisualBasic学习辅导与上机实习170"C:StuData.
dat"ForAppendAs1之后将()A保留文件中原有内容可在文件尾添加新内容B保留文件中原有内容在文件头开始添加新内容C删除文件中原有内容D以上均不对41下面能够正确打开文件的一组语句是()AOpen"data1"ForOutputAs#5,Open"data1"ForInputAs#5BOpen"data1"ForOutputAs#5,Open"data1"ForInputAs#6COpen"data1"ForInputAs#5,Open"data1"ForInputAs#6DOpen"data1"ForInputAs#5,Open"data1"ForRandomAs#642要对顺序文件进行写操作下列打开文件语句中正确的是()AOpen"file1.
txt"ForOutputAs#1BOpen"file1.
txt"ForInputAs#1COpen"file1.
txt"ForRandomAs#1DOpen"file1.
txt"ForBinaryAs#143下面叙述中不正确的是()A若使用Print语句将数据输出到文件则各数据项之间没有逗号分隔且字符串不加双引号B若使用Write语句将数据输出到文件则各数据项之间自动插入逗号并且将字符串加上双引号CWrite语句和Print语句建立的顺序文件格式完全一样DWrite语句和Print语句均实现向文件中写入数据44下面叙述中不正确的是()A在窗体模块中定义自定义类型时必须使用Private关键字B自定义类型中的元素类型可以是系统提供的基本数据类型或已声明的自定义类型C自定义类型必须在窗体模块或标准模块的通用声明段进行声明D自定义类型只能在窗体模块的通用声明段进行声明45随机文件使用()语句写数据使用()语句读数据AInputBWriteCPutDInputEGet46用Close语句来关闭一个不再使用的文件当该语句不使用任何参数时其功能是()A只能关闭一个打开的文件B只能关闭两个打开的文件C有语法错误一个文件也无法关闭D可以关闭任何已打开的文件47PrintlSTRI$中的Print是()A文件的写语句B在窗体上显示的方法第6章文件171C子程序名D以上均不是48为了建立一个随机文件其中每一条记录由多个不同数据类型的数据项组成应使用()A记录类型B数组C字符串类型D变体类型49读数据文件操作可通过()语句来实现AInput#和Read#BRead#和LineInput#CGet和LineInput#DInputLine#和Input#50当函数Eof()的返回值为–1时表示文件的指针指向()A开头B第一个记录C结尾D最后一个记录51语句Open"Q.
DAT"ForRandomAs#1Len=20表示文件Q.
DAT的每个记录长度等于()A20个字符B20个字节C或小于20个字符D或小于20个字节52要从磁盘上读入一个文件名为c:\test.
txt的顺序文件以下正确的是()AF="c:\test.
txt"BF="c:\test.
txt"OpenFForInputAs#1Open"F"ForInputAs#2COpen"c:\test.
txt"ForOutputAs#1DOpenc:\test.
txtForInputAs#153要建立一个学生成绩的随机文件如下定义了学生的记录类型由学号姓名3门课成绩组成以下程序段正确的是()ATypestudBTypestudNoAsIntegerNoAsIntegerNameAsStringNameAsString*10Grade(1to3)AsSingleGrade()AsSingleEndTypeEndTypeCTypestudDTypestudNoAsIntegerNoAsIntegerNameAsString*10NameAsString*10Grade(1to3)AsSingleGrade(1to3)AsStringeEndTypeEndType54要使用以上定义的记录类型对一个学生的各数据项通过赋值语句获得其值分别为2001宋大为987687以下程序段()正确ADimSAsstudstud.
No=2001stud.
Name="宋大为"stud.
Grade=98,76,87BDimSAsstudS.
No=2001S.
Name="宋大为"S.
Grade=98,76,87CDimSAsstudS.
No=2001DDimSAsstudS.
No=2001VisualBasic学习辅导与上机实习172S.
Name="宋大为"S(1).
Grade=98S(2).
Grade=76S(3).
Grade=87S.
Name="宋大为"S.
Grade(1)=98S.
Grade(2)=76S.
Grade(3)=8755要建立一个学生成绩的随机文件文件名为student.
dat该文件由上一题已赋值的记录组成以下程序段()是正确的AOpenstud.
datForRandomas#1Put#1,1,SClose#1BOpen"stud.
dat"ForRandomas#1Put#1,1,SClose#1COpen"stud.
dat"ForOutputas#1Put#1,1,SClose#1DOpen"stud.
dat"ForRandomas#1Put#1SClose#156设文件C:\test.
txt文件的内容是1245102550100给出下面的程序PrivateSubCommand1_Click()DimInputDataOpen"C:\test.
txt"ForInputAs#1DoWhileNotEOF(1)LineInput#1,InputDataLoopClose#1MsgBoxInputDataEndSub程序最后弹出的消息对话框的内容是()A什么也没有B1C100D文件的全部内容二填空题1在VB中用于返回当前目录的函数是_用于设置当前目录的语句是用于建立目录的语句是_用于删除目录的语句是_用于改变当前驱动器的语句是_用于文件复制的语句是_用于删除文件的语句是_用于设置文件属性的语句是_用于文件更名的语句是第6章文件173用于获取文件名或目录名的函数是_2在VB中用于文件系统控制管理的3个控件是3如果要获得用户在驱动器列表框中所选择的驱动器则应访问该对象的_属性如果要获得用户在目录列表框中所选择的目录路径则应访问该对象的_属性如果要获得的是当前目录的下级目录的个数则应访问该对象的_属性如果要在文件列表框中显示文件的类型则应访问该对象的_属性如果要获得文件列表框中选择的文件名则应访问该对象的_属性4程序中要求弹出打印对话窗口如果用通用对话框CommonDialog1来完成其语句为______5用通用对话框控件显示对话框可通过代码设置其______属性或调用其方法如______ShowSave______ShowFont等6假如有一个通用对话框控件Commondialog1除了用CommonDialog1.
Action=3显示颜色对话框之外还可以用______方法显示7在显示字体对话框之前必须设置______属性否则将发生不存在字体的错误8按照文件的访问方式可分为9在VisualBasic中顺序文件的读操作通过_语句或_____函数实现随机文件的读写操作分别通过______和______语句实现10把文字串Hello,World!
写入#1号文件然后把回车/换行写入文件的操作应是11为了获得当前未被使用的文件号可利用VB提供的_函数来实现12如果要在文件号1上以只读的方式打开顺序文件C:\Sample\Readme.
txt则实现的语句为_关闭它的语句是_如果要在文件号2上以随机方式打开随机文件C:\User\Xsda.
dat(假设每条记录长度为34)则实现的语句为_13删除随机文件记录的4个步骤为14有以下程序它的输出将是_PrivateSubForm_Click()Dimx(20)AsIntegerOpen"test.
dat"ForOutputAs#1Fori=2To6Forj=1ToiPrint#1,jNextjNextiClose#1Open"test.
dat"ForInputAs#2m=0VisualBasic学习辅导与上机实习174DoUntilEOF(2)m=m+1Input#2,x(m)LoopFori=2Tom/3Printx(i)NextiCloseEndSub15有以下程序它的输出将是_PrivateSubForm_Click()Dimmm(6)AsIntegerDimk%Open"c:\b1.
dat"ForOutputAs#1Fori=1To6j=i*i*iPrint#1,jNextiClose#1Open"c:\b1.
dat"ForInputAs#2k=0DoWhileNotEOF(2)k=k+1Input#2,mm(k)LoopClose#2Fori=kTok/2Step-1Form1.
Printmm(i)NextiEndSub16有以下程序它的功能是_PrivateSubForm_Click()Open"c:\test.
dat"ForInputAs#1Open"c:\test2.
dat"ForOutputAs#2DoWhileNotEOF(1)Input#1,a,bIfLeft(a,1)="王"Andb>=60ThenPrint#2,a,b第6章文件175EndIfLoopCloseEndSub6.
2.
2答案与分析一选择题(打*答案有分析)答案1A2A3C4D5A6C7C8AB9A10B11D12C13D14B15C16A17B18D19C20D21D22A23C*24A25B*26B27B*28A*29C*30B31D32B33D34D35B*36B*37B*38C*39C40A41C*42A43C44D*45CE46D47A48A49D50C*51B52A53C*54D55B56C*分析23App对象是通过关键字App访问的全局对象它指定如下信息应用程序的标题Title应用程序所在路径Path可执行文件名ExeName等25顺序文件的读可用Input#和LineInput#语句写用Print#或Write#随机文件的读用Get语句写用Put#语句Append方式用于向一个顺序文件中添加数据若打开的文件不存在则创建该文件27顺序文件中的数据按顺序存放对它的操作只能按一定的顺序进行28随机文件中记录的长度是固定不变的每个记录都有一个记录号可以通过记录号对打开的随机文件同时进行读/写操作29见25题35Print输出可以带格式36除了B之外其他语句在打开的文件不存在的情况下将自动创建该文件37在BinaryInput和Random方式下可以用不同的文件号打开同一文件而不必先将该文件关闭在Append和Output方式下如果要用不同的文件号打开同一文件则必须在打开文件之前先关闭该文件关闭文件之前用锁定的记录必须用Unlock解锁38在Windows95/98环境下高级语言(CPascal)访问文件时文件名的格式为8.
3格式41见37题VisualBasic学习辅导与上机实习17644自定义类型可以在窗体模块的通用声明段或标准模块中进行声明50当函数Eof()的返回值为-1时表示文件的指针指向结尾53随机文件的记录是固定长度的因此记录类型数据必须是定长的其成员若为字符型必须指示其长度56LineInput#1InputData是从指定的文件读入一行到变量InputData中因它处于循环体内故当循环结束时变量中保存的是最后一次读入的内容因而输出结果为100二填空题答案1CurDirChDirMkDirRmDirChDriveFileCopyKillSetAttrNameDir2DriveListBoxDirListBoxFileListBox3DrivePathListCountPatternFileName4CommonDialog1.
ShowPrinter5ActionShowOpenShowColor6CommonDialog1.
ShowColor7Flags8顺序文件随机文件二进制文件9Input#LineInput#InputGet,Put10Print#1,"Hello,World!
"11FreeFile12Open"C:\Sample\Readme.
txt"ForInputAs#1,Close#1Open"C:\Sample\Readme.
txt"ForInputAs#1Close#113建立新文件把有用的记录从原文件复制到新文件关闭原文件并用Kill语句删除原文件把新文件改名为原文件名142123115216125642716将文件c:\test.
dat中成绩及格的王姓的学生的信息提取后输出到文件c:\test2.
dat中第6章文件1776.
3上机实习6.
3.
1题目一编程1用文件管理控件设计一个文件打开对话框2修改第5章编程题6使文件打开字体颜色对话框都用通用对话框来实现3修改第5章编程题5加入新建文件和保存文件功能4在C盘当前文件夹下建立一个名为data.
txt的顺序文件要求用文本框输入若干英文单词每次按下回车键时写入一条记录并清除文本框中的内容直至在文本框中输入END时为止5在C盘当前文件夹下有一个已建立好的顺序文件alph.
txt文件内容为只含有字母的一个字符串(有双引号界定符)单击窗体打开alph.
txt文件读取字符串并显示在文本框Textl中然后调用StrSort过程将此字符串按ASCII码的顺序重新排列并显示在文本框Text2中最后将重新排列的字符串存入文件alphsort.
txt中(无双引号界定符)6假定在磁盘上已建立了一个通信录文件文件中的每个记录包括编号用户名电话号码和地址等4项内容试编写一个程序从文件中查找指定用户的编号并在文本框中输出其名字电话号码和地址7设磁盘文件c:\score.
dat是一个存放了某学期某课程成绩的顺序文件每个学生成绩包含学号和成绩试编写一程序从该文件中读出每个学生的成绩并统计该课程的平均成绩8设计一个程序在C:\Samples下建立一个Xscj.
dat随机文件每个记录包含学号姓名性别英语计算机和总分6个字段对该文件进行管理并实现记录的添加修改删除和查询功能9假定磁盘上有一个学生成绩文件存放着120个学生的情况包括学号姓名性别年龄和3门课的成绩试编写一个程序建立以下3个文件(1)男生情况的文件(2)按3门课程平均成绩高低排列的学生情况的文件(添加平均成绩一栏)(3)按3门课程及平均成绩的分数段(60分以下60~7071~8081~9090分以上)进行人数统计的文件二改错或填充1以下程序在C盘当前文件夹下建立一个名为StuData.
txt的顺序文件要求用InputBox函数输入5名学生的学号(StuNo)姓名(StuName)和英语成绩(StuEng)PrivateSubForm_Click()Fori=1To5StuNoInputBox("请输入学号")StuNameInputBox("请输入姓名")VisualBasic学习辅导与上机实习178StuEngVal(InputBox("请输入英语成绩")NextiEndSub2打开第1题建立的顺序文件StuDatatxt读取文件中的数据并将数据显示在窗体上PrivateSubForm_Click()DoWhilePrintStuNoTab(10)StuNameTab(20);StuEngLoopClose#1EndSub3C盘根目录下文件D1.
txt的内容是24681013579下面程序的功能是将文件后半部分的奇数分别按序插入到前半部分的适当位置得到的新数列是12345678910填充完成之(实现方法第一次调整后的数列是1268103579第二次调整后的数列是12346810579)OptionExplictPrivateSubForm_Click()Dima(10)AsInteger,iAsInteger,jAsIntegerOpen"c:\D1.
txt"ForInputAs#12Doj=j+1Input#12,a(j)LoopCallInsert(a)Fori=1To10Printa(i)NextiPrintClose#12EndSubPrivateSubInsert(a()AsInteger)DimiAsInteger,putpAsInteger,jAsIntegerDimgetpAsInteger,nAsInteger,temAsIntegerN=Ubound(A)/2putp=1第6章文件179getp=N+1Fori=1TonTem=a(getp)Forj=getpToputp+1Step-1Nextja(putp)=temgetp=getp+1putp=NextiEndSub4下面程序的功能是统计当前盘当前文件夹中的顺序文件data.
txt中共有多少个英文单词约定连续出现的英文字母定义为一个单词填空完成程序OptionExplicitPrivateSubForm_Click()DimChar()AsString,StAsString,TemAsStringDimIdxAsInteger,JsAsLong,FlenAsLongDimFAsBoolean,WAsString*1Flen=LOF(10)St=Input(Flen,#10)Js=1DoWhileJs="a"AndW="A"AndW0ThenData1.
Recordse.
DeleteData1.
RefreshEndIfVisualBasic学习辅导与上机实习194EndIfEndSubPrivateSubcmdEdit_Click()Frame1.
Caption="请编辑学生成绩"Frame1.
Enabled=TrueData1.
Recordse.
EditText1.
SetFocusEndSubPrivateSubcmdUpdate_Click()Frame1.
Caption=""Frame1.
Enabled=FalseData1.
UpdateData1.
RefreshEndSubPrivateSubData1_Reposition()Data1.
Caption="记录"&Data1.
Recordset.
AbsolutePosition+1&_"/"&Data1.
Recordset.
RecordCountEndSubPrivateSubForm_Load()Frame1.
Enabled=FalseEndSubPrivateSubText1_Change(IndexAsInteger,CancelAsBoolean)DimiAsIntegerSelectCaseIndexCase0To2IfText1(Index)=""ThenMsgBox("文本框不能为空!
")Text1(Index).
SetFocusEndIfCase3To5IfNotIsNumeric(Text1(Index).
Text)ThenMsgBox("成绩必须是数值数据!
")Text1(Index).
SetFocusEndIfText1(6).
Text=""Fori=3To5Text1(6).
Text=Text1(6).
Text+Text1(i).
TextNexti第7章数据库管理195EndSelectEndSub2利用ADO控件重写学生成绩管理程序在上题的基础上按图7-2的要求增加一个查询菜单含有按班级不及格学生两个子菜单项再添加一个DataGrid控件查询的结果同时出现在DataGrid中试改正其中的错误图7-2PrivateSubForm_Load()DataGrid1.
DataSource=Adodc1Frame1.
Enabled=FalseEndSubPrivateSubmnuClass_Click()'按班级查询DimstrAsStringstr=InputBox("请输入查找班级:Ifstr""ThenAdodc1.
Recordset.
Sort="班级like"&str&"*"EndIfDataGrid1.
Caption=str&"成绩表"EndSubPrivateSubmnuDisq_Click()'查询不及格学生Adodc1.
Recordset.
Sort="数学Form1.
HeightThenSnow(I,1)=0:Snow(I,2)=2+(Rnd*30)Snow(I,0)=Int(Rnd*Form1.
Width)EndIfCircle(Snow(I,0),Snow(I,1)),15*RndNextIForm1.
ClsNextLLoopEndSubPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)UnloadMeEndSub8.
3.
2编程提示一编程1设计时在控件的Picture属性中选装入一个图片在时钟的Timer事件过程中利用控件的Move方法将控件移到一个新的位置新位置的坐标由随机函数Rnd产生2编程要点(1)随机函数Rnd产生的值在(0,0.
5)与(0.
5,1)之间的分布是相同的(2)Rnd值在(0,0.
5)时相应有坐标(x,y)在第一象限否则坐标值取反这样可得到其他象限的坐标参考代码如下Scale(-320,240)-(320,-240)Fori=1To100x=320*Rndy=240*RndIfRndb+cDaB=C无先后之分D6VB语言中最简单的数据类型包括()A整型实型布尔型字符型B整型实型字符型C整型字符型逻辑型D实型逻辑型字符型7在VB中36&是()类型的常数A整数型B长整型数C字符常数D双精度数8InputBox函数返回值的类型为()A数值B字符串C变体D数值或字符串(视输入的数据而定)9下面()不是VB的控件A内部控件BActiveX控件C可插入的对象D窗体10表达式4+5\6*7/8Mod9的值是()A4B5C6D7VisualBasic学习辅导与上机实习21211在VB中默认的变量的类型是()AIntegerBSingleCVariantDBoolean12设x=4,则执行a=Iif(x>5,6,0)后a的值为()A5B6C0D–113可以删除字符串右边空格的函数是()ALtrimBRtrimCTrimDMid14下面程序运行时,内层循环的循环总次数是()Form=1TO3Forn=0TOm-1NextnNextmA6B5C3D415在窗体中画一个命令按钮然后编写以下事件过程PrivateSubCommand1_Click()j=1WhileJ=30Printnumber,sEndSub程序运行后输出的结果是()A01B3030C430D318229在窗体上画一个命令按钮然后编写如下事件过程OptionBase1PrivateSubCommand1_Click()Dima(5)AsInteger,b(3)AsIntegerk=2Fori=1To5a(i)=iNextiFori=1To3b(i)=2*a(i)NextiFori=1To3k=k+b(i)*2NextiPrintkEndSub程序的输出结果是()A33B26C30D3730在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()a=3IfaThenPrint3;EndIfIfaThenPrint4;EndIfIfaThenPrint5;第10章模拟试卷217EndIfIfaThenPrint6EndIfEndSub程序运行后输出的结果是()A1234B3456C3D531有如下程序FunctionFee(x)Ifx"a"B"THAT">"THE"C9>"H"D"b">"B"7在VB语言中求余运算符是()A%B/C*DMod8下面4个表达式中其值为0的是()A4/5B5Mod4C4\5D4Mod59可以删除字符串尾部空白的函数是()ALtrimBRtrimCTrimDMid10在VB中可以改变控件大小的操作是()AShift+CtrlBShift+方向箭头CCtrl+方向箭头DCtrl+空格键11某个指定的控件获得焦点所用的方法是()ALostFocusBVisibleCRefreshDSetFocus12下列()是VB中的合法变量名AAB7B7ABCIFDA713在窗体中画一个命令按钮然后编写以下事件过程PrivateSubCommand1_Click()Fori=1To4x=4Forj=1To3x=3Fork=1To2x=x+6NextkNextjNextiPrintxEndSub程序运行后单击命令按钮输出结果是()A7B15C157D53814某个指定的控件失去焦点时会触发()事件ASetFocusBVisibleCRefreshDLostFocus15下面程序运行时循环总次数是()Form=1To3Forn=0TO2第10章模拟试卷223NextnNextmA6B7C8D916用下面语句定义的数组的元素个数是()DimAA(–3To0)asIntegerA3B4C5D617假定有如下的Sub过程Subfun(xAsSingle,yAsSingle)t=xx=t\yy=tModyEndSub在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()DimaAsSingleDimbAsSinglea=6b=4Funa,bPrinta,bEndSubA54B12C1.
254D1.
5218当窗体被加载时运行,发生的事件是()ALoadBUnloadCResizeDPaint19变量定义语句DimIndex%与()等价ADimIndexAsLongBDimIndexAsIntegerCDimIndexAsSingleDDimIndexAsDouble20如下语句TypeAddressStreetAsStringZuoCodeAsStringPhoneAsStringEndTypeDimMyHomeAsAddressWithMyHome.
Street="北京路".
ZipCode="215037".
Phone="812345"VisualBasic学习辅导与上机实习224EndWithPrintMyHome.
Phone的结果是()A北京路B2150037C812345D234521如下语句SelectCasea%Case1Print"a=1"Case2Print"a=2"CaseElsePrint"adoesnotequalto1or2.
"SelectEnd当变量a的值为2时执行的结果为()Aa=1Ba=2C1D222下面程序运行后输出的结果是()PrivateSubCommand1_Click()k=0a=0Whilekm1Thenm1=a(i)m2=iEndIfNextiEndIfPrintm1Printm2EndSub程序运行后按回车键输出结果为()A48B237C498D498415427在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()FORm=1To3FORj=1TomFORk=jTo3n=n+1NextkNextjNextmEndSub程序运行后n的值为()A3B14C9D2128假定窗体上有一个标签名为Labell为了使该标签不可见则正确的属性设置为()ALabell.
Enabled=FalseBLabell.
Enabled=FalseCLabell.
Visible=TrueDLabell.
Visible=False29假定有如下的Sub过程SubSub1(kAsinteger,sAsinteger)S=1Form=1TOks=s*mNextmVisualBasic学习辅导与上机实习226EndSub在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()DimkAsIntegerDimkAsIntegerTotal=0Fork=2TO4CallSub1(k,s)Total=total+sNextkPrinttotalEndSub程序的输出结果是()A9B32C6D830在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()a=0Whilek0.
5Thena=1Elsea=–1IfRnd>0.
5Thenb=1Elseb=–1x=a*Int(Rnd*50+5):y=b*(Rnd*40+5)r=Int(Rnd*400+5):c=Int(Rnd*15+1)Circle(x0+x,y0+y)QBColor(c)NextjEndSub第10章模拟试卷227该程序要完成的功能是画出5个不同颜色不同大小不同位置的圆应在空白处加入正确的语句是()Ax0By0CRDA32在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()l$="X":m$="Y":n$="Z"Forj=1To2l$=m$:m$=n$:n$=l$NextjPrintl$+m$+n$EndSub程序运行后输出的结果是()AZXYBYZXCYZYDZYZ33下面程序是在键盘上输入任一二进制数即能转换为十进制数空白处应填入()PrivateSubCommand2_Click()a$=InputBox(0)m=Len(a$)Forj=1Tomdec=dec*2Mid$(a$,j,1))NextjPrint"Thisdecimalnumberis";decEndSubAAbsBIntCSgnDVal34有如下程序TypegoodsNumAsIntegerNamAsString*13EndTypeDimclothAsgoods该程序段定义了两个程序成分它们分别是()A记录类型和记录变量B记录类型和数组C显示类型和数组D记录变量和数组35对窗体编写如下事件过程PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPrint"*****"EndIfEndSubVisualBasic学习辅导与上机实习228PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Print"#####"EndSub程序运行后如果单击鼠标右键则输出结果为()A*****B#####C*****D#####二填空题(每空2分共30分)试将每一个空的正确答案写在答题卡1~15的横线上答在试卷上不得分1设有如下的VisualBasic表达式___1___它相当于代数式Sinx-(8e3y-1)x2执行下面的程序段后s的值为___2___s=5Fori=2.
6To4.
9Step0.
6s=s+1Nexti3下面的命令按钮(名称为Commandl)事件过程用来计算10的阶乘填空完成程序PrivateSubCommand1_Click()x=1result=__3__Whilex=121213-14Eof(1)15Text1.
Text或Text1或Whole或Whole$10.
1.
3模拟试卷3及参考答案模拟试卷3(考试时间90分钟满分100分)一选择题(每小题2分共70分)下列各题ABCD4个选项中只有一个选项是正确的将正确选项涂写在答题卡相应位置上答在试卷上不能得分1在VisualBasic中下列运算符中优先级最高的是()A*BCDNot2以下关系表达式中其值为假的是()A"XY""XYZ"B"VisulBasic""visualbasic"C"the""there"D"Integer""Int"3在窗体上画一个命令按钮(名称为Commandl)编写如下事件过程PrivateSubCommandl_Click()b5c6PrintabcEndSub程序运行后单击命令按钮输出结果是()Aa=11Ba=b+cC11DFalseVisualBasic学习辅导与上机实习2324用以下语句所定义的数组元素的个数是()Dima(–1to5)AsIntegerA5B6C7D85在窗体上画一个文本框其名称为Text1为了在程序运行后隐藏该文本框应使用的语句为()ATextl.
ClearBTextl.
VisibleFalseCTextl.
HideDTextl.
Enabled=False6在窗体上画一个命令按钮(名称为Commandl)然后编写如下事件过程PrivateSubCommandl_Click()DimbAsIntegerbblEndSub运行程序3次单击命令按钮后变量b的值是()A0B1C2D37执行下列语句后显示输入对话框此时如果单击确定按钮则变量strInput的内容是()strInput=InputBox("请输入字符串""字符串对话框""字符串")A"请输入字符串"B"字符串对话框"C"字符串"D空字符串8为了清除列表框中的所有内容应使用的方法是()AClsBClearCRemoveDRemoveItem9在C:\pic文件夹中有一个图形文件名为Welcomegif为了将该图形装入窗体Forml应使用的正确语句是()AForml.
Caption"Welcome.
gif"BForml.
Picturec:\pic\Welcome.
gifCForml.
Picture"c:\pic\Welcome.
gif"DForml.
PictureLoadPicture("c:\pic\Welcome.
gif")10在窗体上画一个文本框(其名称为Textl)和一个标签(其名称为Label1)要求程序运行后如果在文本框中输入字符则立即在标签中显示相同的内容以下可以实现上述操作的事件过程是()APrivateSubTextl_Change()BPrivateSubText1_Click()Label1.
CaptionTextl.
TextLabel1.
CaptionTextl.
TextEndSubEndSubCPrivateSublabel1_Change()DPrivateSublabel1_Click()Label1.
CaptionTextl.
TextLabel1.
CaptionTextl.
TextEndSubEndSub11设a=6则执行x=IIf(a>5,–1,0)后x的值为()A5B6C0D–1第10章模拟试卷23312在窗体上画一个通用对话框程序运行后通过ShowOpen方法打开对话框要求在该对话框的文件类型栏中只显示扩展名为DOC的文件则对通用对话框的Filter属性的正确设置是()A"(*.
DOC)*.
DOC"B"(*.
DOC)|(.
DOC)"C"(*.
DOC)||*.
DOC"D"(*.
DOC)|*.
DOC"13在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()Fori=1To4x=4Forj=1To3x=3Fork=1To2x=x+6NextkNextjNextiPrintxEndSub程序运行后单击命令按钮输出结果是()A7B15C157D53814在窗体上画一个文本框一个命令按钮和一个标签其名称分别为Text1Command1和Label1文本框的Text属性设置为空白然后编写如下事件过程PrivateSubCommand1_Click()x=Int(Val(Text1.
Text)+0.
5)Label1.
CaptionStr(x)EndSub程序运行后在文本框中输入78.
586单击命令按钮标签中显示的内容是A77B78C79D8015在窗体(Name属性为Form1)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1)然后编写如下两个事件过程PrivateSubCommand1_Click()a=Text1.
Text+Text2.
TextPrintaEndSubPrivateSubForm1_Load()Text1.
Text=""Text2.
Text=""EndsubVisualBasic学习辅导与上机实习234程序运行后在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和321然后单击命令按钮则输出结果为()A444B321123C123321D13223116阅读下面的程序段Fori=1To3Forj=1ToiFork=jTo3a=a+1NextkNextjNexti执行上面的三重循环后a的值为()A3B9C14D2117在窗体上画一个命令按钮(其名称为Command1)然后编写如下事件过程PrivateSubCommand1_Click()Dima(5,5)AsIntegerDimiAsInteger,jAsIntegerFori1To3Forj1To3A(i,j)=(i-1)*3+jPrinta(ij)NextjPrintNextiEndSub程序运行后单击命令按钮在窗体上的输出结果是()A147B123258456369789C123456789D没有输出18在窗体上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(其Name属性为Command1)然后编写如下事件过程PrivateSubCommand1_Click()x=0DoWhilexm1Thenm1=a(i)m2=iEndIfNextiEndIfPrintm1Printm2EndSub程序运行后按回车键输出结果为()A48B237C498D4984154二填空题(每空2分共30分)将每一个空的正确答案写在答题卡1~15的横线上答在试卷上不得分1表示条件10a(j)Then___10____NextjIfkiThenb=a(k)a(k)=a(i)a(i)=bEndIfNextiFork=1To10Printa(k)NextkEndSub7在窗体上画一命令按钮然后编写如下事件过程执行该过程后的输出结果是___11第10章模拟试卷241____PrivateSubCommand1_Click()Fora=1To4y=1Forb=1To4Forc=1To4y=y+1NextcNextbNextaPrint"y=";yEndSub8下面的程序是利用随机函数产生10个200~300之间(含200300)的随机数打印其中5的倍数的数并求出它们的总和试根据程序的需要在空白的地方填上正确的内容RandomizeTimerFora=1To10x=Int(Rnd*____12____)If____13____ThenPrintx;k=k+x___14___NextaPrintPrint"k=";k9下面的程序运行后输出的结果是____15___PrivateSubCommand1_Click()a$=12Forj=1To3st$=st$+Left$(a$,j)NextjPrintst$EndSub模拟试卷3参考答案一选择题1A2B3D4C5B6B7C8B9D10A11D12D13B14C15CVisualBasic学习辅导与上机实习24216C17B18B19D20A21D22D23D24A25A26D27B28C29A30B31C32D33A34B35C二填空题1(x>10Andx(是回车键下同)第10章模拟试卷243b=9printa>b则输出结果是()A–1B0CFalseDTrue7以下语句的输出结果是()PrintFormat$(32548.
5,"000,000.
00")A32548.
5B32,548.
5C032,548.
50D32,548.
508执行以下程序段后变量c$的值为()a$="VisualBasicPrograming"b$="Quick"c$=b$&Ucase(Mid(a$,7,6))&Right(a$,11)AVisualBASICProgramingBQuickBasicProgramingCQUICKBasicProgramingDQuickBASICPrograming9为了在按下回车键时执行某个命令按钮的事件过程需要把该命令按钮的一个属性设置为True这个属性是()AValueBDefaultCCancelDEnabled10为了把焦点移到某个指定的控件所使用的方法是()ASetFocusBVisibleCRefreshDGetFocus11设有函数=00002xxxxxy下面不能正确求该函数值的程序段是()ASelectCasexBIfx>0ThenCaseIs0EndIfy=x*xIfx0ThenEndIfy=x*xIfx0ThenElsey=x*xVisualBasic学习辅导与上机实习244y=0ElseEndIfy=0EndIf12执行下面的程序段后x的值为()x=5Fori=1To20Step2x=x+i\5NextiA21B22C23D2413以下正确的叙述是()ASelectCase语句中的测试表达式可以是任何形式的表达式BSelectCase语句中的测试表达式只能是数值表达式或字符串表达式C在执行SelectCase语句时所有Case子句均按出现的次序被顺序执行D如下SelectCase语句中的Case表达式是错误的SelectCasexCase1to10EndSelect14在窗体上画一个命令按钮然后编写如下事件过程PrivateSubCommand1_Click()x=0DoUntilx=-1a=InputBox("请输入A的值")a=Val(a)b=InputBox("请输入B的值")b=Val(b)x=InputBox("请输入x的值")x=Val(x)a=a+b+xLoopPrintaEndSub程序运行后单击命令按钮依次在输入对话框中输入54321–1则输出结果为()A2B3C14D1515在窗体上画一个命令按钮和一个标签其名称分别为Command1和Label1然后编写如下事件过程PrivateSubCommand1_Click()Counter=0第10章模拟试卷245Fori=1To4Forj=6ToiStep-2Counter=Counter+1NextjNextiLabel1.
Caption=Str(Counter)EndSub程序运行后单击命令按钮标签中显示的内容是A11B10C16D1216在窗体上画一个命令按钮其名称为Command1然后编写如下事件过程PrivateSubCommandl_Click()Fori1To4Ifi1ThenxiIfi0Thena=a+jNextjPrintaEnd7阅读下面程序该程序的作用是用随机函数Rnd(1)产生10个100~200之间(包含100和200)的随机整数打印其中7的整数倍的数并求其总和根据程序的需要在______处填上正确的内容Form=1To10x=___7____VisualBasic学习辅导与上机实习252Printx;If(___8___)ThenPrintx:k1=k1+xNextmPrint"K1="k18下面程序的作用是打开一个随机文件读入20个记录并将它们打印出来在_______处补充完整Dima(20),b(20),c(20)DimdAs___9____,rAsIntegerOpen"ABC.
DAT"ForRandomAs1Len=8r=1Form=1To20Get#1,r,d:a(m)=d:r=r+1Get#1,r,d:b(m)=d:r=r+1Get#1,r,d:c(m)=d:r=r+1Nextm____10____Form=1To20Printa(m),b(m),c(m)Nextm9D盘的当前目录下有一个名为GZ.
DAT的职工工资文件含有姓名基本工资奖金及补贴等内容现要求根据该文件的内容在此目录下建一个名为GZB.
DAT的文件含有职工姓名及应发工资试完成下列程序以实现以上要求PrivateSubCommand1_Click()Open"D:GZ.
DAT"ForInputAs#3Open"D:GZB.
DAT"For___11____As#2While____12____Input#3,XM$,JBGZ,JJ,BTWrite#2,XM$,(JBGZ+JJ+BT)WendClose#3,#2End10假定建立了一个工程该工程包括两个窗体其名称(Name属性)分别Form1和Form2启动窗体为Form1在Form1上画一个命令按钮Command1程序运行后要求当单击该命令按钮时Form1窗体消失显示Form2窗体试在_______处将程序补充完整PrivateSubCommand1_Click()_____13______Form2.
showEndSub11有一列数第一个数和第二个数分别为1和2其后每一个数均是前二个数之和下第10章模拟试卷253面的程序打印出此数列并使每个数都不超过32767程序不完整试在_______处补充完整PrivateSubCommand1_Click()a=1:b=2PrintaWhile___14__Printbc=a+b:a=bb=___15____WendEndSub模拟试卷4参考答案一选择题1C2D3B4C5B6C7C8D9B10A11D12A13B14A15B16B17C18C19D20A21D22D23C24B25B26B27A28B29A30D31A32C33B34B35C二填空题13*x+Atn(2*x)+Log(x)*Log(y)2x=43464afg5EndType6407Int(Rnd(1)*101)+101或Int(Rnd(1)*101+100)8xMod7=09String*810Close#111Output12NotEof(3)13UnloadMe14b<3276715c10.
2上机考试模拟试题10.
2.
1模拟试题1模拟试题1(考试时间90分钟满分100分)一基本操作(4小题其中第12题每题7分第34题每题8分共计30分)注意下面出现的考生文件夹均为C:\WEXAM\28080001VisualBasic学习辅导与上机实习254根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)(1)在名称为Form1的窗体上画一个名称为Cmd1标题为清除图片的命令按钮通过属性窗口在窗体上装入一个图形文件(文件名为pic.
gif在考生文件夹下)然后编写适当的事件过程要求程序运行后如果单击命令按钮则清除窗体上显示的图形注意保存时必须存放在考生文件夹下窗体文件名为jbt_1.
frm工程文件为jbt_1.
vbp(2)在考生文件夹中有工程文件jbt_2.
vbp及窗体文件jbt_2.
frm该程序是不完整的在有号的地方填入正确的内容然后删除及所有注释符号(即'号)但不能修改其他部分存盘时不得改变文件名和文件夹本题描述如下在窗体上建立一个名称为VS1Max属性为100Min属性为0的垂直滚动条和两个名称分别为C1和C2标题分别为顶端和居中的命令按钮编写适当的事件过程程序运行后如果单击顶端命令按钮则滚动框位于滚动条最顶端处如果单击居中命令按钮则滚动框位于中间处jbt_2.
frm的代码jbt_3.
frm中的代码标准模块mode.
basOptionExplicitPrivateSubC1_Click()'.
Value=0EndSubPrivateSubC2_Click()'.
Value=(VS1.
Max-VS1.
Min)/2EndSubOptionExplicitDima,bPrivateSubC1_Click()a=InputBox("EnterNumber1")b=InputBox("EnterNumber2")'a=(a)'b=(b)Print"A=";aPrint"B=";bEndSubPrivateSubC2_Click()'MsgBox(a+b)EndSubOptionExplicitSubputdata(t_FileNameAsString,t_StrAsVariant)DimsFileAsStringsFile="\"&t_FileNameOpenApp.
Path&sFileForOutputAs#1Print#1,t_StrClose#1EndSub(3)在考生文件夹中有工程文件jbt_3.
vbp及窗体文件jbt_3.
frm该程序是不完整的在有号的地方填入正确的内容然后删除及所有注释符号(即'号)但不能修改其他部分存盘时不得改变文件名和文件夹本题描述如下在窗体上建立两个名称分别为C1和C2标题分别为输入和计算的命令按钮要求程序运行后单击输入按钮可通过输入对话框输入两个数(分别为79和84)分别存入整型变量xy中如果单击计算按钮则对xy变量进行加法计算并把结果在消息框中显示出来(4)在窗体上画一个名称为Text1文本框和两个名称分别为Cmd1和Cmd2标题分别为录入和确认的命令按钮编写适当的事件过程要求程序运行后如果单击录入命令按钮则在文本框中显示字符串请输入学生信息如果单击确认命令按钮则文本框中显示字符串请确认录入的学生信息(要求不能使用任何变量直接显示字符串)第10章模拟试卷255注意保存时必须存放在考生文件夹下窗体文件名为jbt_4.
frm工程文件名为jbt_4.
vbp二简单应用(2小题每题20分共计40分)注意下面出现的考生文件夹均为C:\WEXAM\28080001(1)在窗体上建立一个名称为Text1的文本框然后建立两个主菜单标题分别为评分标准和帮助名称分别为vbMenu和vbHelp其中学分等级菜单包括等级A等级B等级C3个子菜单名称分别为vbMenu1vbMenu2vbMenu3要求程序运行后在评分标准的下拉菜单中选择等级A则在文本框显示85分以上如果选择等级B则在文本框内显示75分至85分如果选择等级C则在文本框内显示60分至75分(要求不能使用变量直接显示字符串)注意保存时必须存放在考生文件夹下窗体文件名为jbt_5.
frm工程文件名为jbt_5.
vbp(2)在考生文件夹中有文件jbt_6.
vbp及其窗体文件jbt_6.
frm该程序是不完整的在有号的地方填入正确内容然后删除及所有注释符(即'号)但不能修改其他部分存盘时不得改变文件夹和文件名本题描述如下窗体上有一名称为Text1的文本框两个复选框名称分别为Ch1和Ch2标题分别为计算机协会和工商管理协会一个名称为C1标题为确定的命令按钮要求程序运行后如果只选中Ch1单击确定命令按钮则文本框中显示报名参加计算机协会如果同时选中Ch1和Ch2然后单击确定按钮则在文本框中显示报名参加计算机协会和工商管理协会如果Ch1和Ch2都不选然后单击确定按钮则在文本框中什么也不显示三综合应用题(1小题计30分)注意下面出现的考生文件夹均为C:\WEXAM\28080001在名称为Form1的窗体上建立一个文本框(名称为Text1MultiLine属性为TrueScrollBars属性为2)和两个命令按钮(名称分别为Cmd1和Cmd2标题分别为读入数据和计算保存)要求程序运行后如果单击读入数据按钮则读入in.
txt文件中的100个整数放入一个数组中(数组的下界为1)同时在文本框中显示出来如果单击计算保存按钮则计算数组中最大值最小值并把结果在文本框Text1中显示出来同时把结果存入考生文件夹中的文件out.
txt中(在考生文件夹的目录下有标准模块mode.
bas其中的putdata过程可以把结果存入指定的文件考生可以把该模块文件添加到自己的工程中直接调用此过程)注意文件必须存放在考生文件夹下窗体文件名为jbt_7.
frm工程文件名为jbt_7.
vbp计算结果存入out.
txt文件否则没有成绩10.
2.
2模拟试题2模拟试题2(考试时间90分钟满分100分)一基本操作(4小题其中第12题每题7分第34题每题8分共计30分)注意下面出现的考生文件夹均为C:\WEXAM\58080001VisualBasic学习辅导与上机实习256根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)(1)在名为Form1的窗体中建立一个列表框利用属性窗口预设6个表项分别为ONETWOTHREEFOURFIVESIX再建立2个单选按钮名称分别为Opt1Opt2标题分别为可选1可选2并设置Opt2为选中状态注意保存时必须存放在考生文件夹下窗体文件名为jbt_1.
frm工程文件为jbt_1.
vbp(2)在考生文件夹中有工程文件jbt_2.
vbp及窗体文件jbt_2.
frm该程序是不完整的在有号的地方填入正确的内容然后删除及所有注释符号(即'号)但不能修改其他部分存盘时不得改变文件名和文件夹本题描述如下在窗体上有一名称为P1的图片框和二个名称分别为C1C2标题分别为显示清除的命令按钮程序运行后如果单击显示按钮则把考生文件夹中的图形文件pic1.
gif装入图片框中如果单击清除按钮则从图片框中清除该图片试填空(程序中的App.
pth用来指定当前应用程序目录)jbt_2.
frm的代码jbt_5.
frm的代码标准模块mode.
basOptionExplicitPrivateSubC1_Click()'P1.
Picture=(App.
Path+"\pic1.
Gif")EndSubPrivateSubC2_Click()'=LoadPicture()EndSubOptionExplicitPrivateSubC1_Click()IfOp1Then'Text1.
Font=Op1.
EndIfIfOp2Then'Text1.
="黑体"EndIfEndSubOptionExplicitSubputdata(t_FileNameAsString,t_StrAsVariant)DimsFileAsStringsFile="\"&t_FileNameOpenApp.
Path&sFileForOutputAs#1Print#1,t_StrClose#1EndSub(3)在名称为Form1的窗体中建立一个名称为Cmd1标题为显示的命令按钮要求在程序运行后如果单击显示按钮则执行语句Form1.
Print显示如果单击窗体则执行语句Form1.
Cls注意保存时必须存放在考生文件夹下窗体文件名为jbt_3.
frm工程文件名为jbt_3.
vbp(4)在名称为Form1的窗体中建立一个水平滚动条名称为HS1其最大值为100最小值为0要求程序运行后每次移动滚动条框时都执行语句Form1.
PrintHS1.
Value(程序中不能有其他变量)注意保存时必须存放在考生文件夹下窗体文件名为jbt_4.
frm工程文件名为jbt_4.
vbp二简单应用(2小题每题20分共计40分)注意下面出现的考生文件夹均为C:\WEXAM\58080001(1)在考生文件夹中有工程文件jbt_5.
vbp及窗体文件jbt_5.
frm该程序是不完整的在有号的地方填入正确的内容然后删除及所有注释符号(即'号)但不能修改其他部分存盘时不得改变文件名和文件夹第10章模拟试卷257本题描述如下在窗体上有两个单选框名称分别为Opt1和Opt2标题分别为宋体和黑体一个文本框名称为Text1字体为楷体_GB2312字号为4号还有一个命令按钮名称为C1标题为切换要求程序运行后在文本框中输入VB考试并选择一个单选按钮在单击切换按钮后会根据所选的单选按钮来切换文本框中所选汉字的字体(2)在名称为Form1的窗体中建立一个名称为Text1的文本框和一个名称为Cmd1标题为计算的命令按钮要求在程序运行后单击计算按钮通过输入对话框输入整数12放入整型变量s中然后计算s!
结果(提示运算结果应放入Long型变量中)在文本框中显示并把计算结果存入文件out.
txt中在考生文件夹的目录下有标准模块mode.
bas该模块中提供了保存文件的过程考生可以直接调用注意保存时必须存放在考生文件夹下窗体文件名为jbt_6.
frm工程文件名为jbt_6.
vbp三综合应用题(1小题计30分)注意下面出现的考生文件夹均为C:\WEXAM\58080001在名称为Form1的窗体上建立一个文本框(名称为Text1),MultiLine属性为TrueScrollBars属性为2和两个命令按钮(名称分别为Cmd1和Cmd2标题分别为读入数据和计算保存)要求程序运行后如果单击读入数据按钮则读入in.
txt文件中的100个整数放入一个数组中(数组的下界为1)同时在文本框中显示出来如果单击计算保存按钮则计算数组中前30个数的平均值并把结果在文本框Text1中显示出来并把结果存入考生文件夹中的文件out.
txt中(在考生文件夹的目录下有标准模块mode.
bas其中的putdata过程可以把结果存入指定的文件考生可以把该模块文件添加到自己的工程中直接调用此过程)注意文件必须存放在考生文件夹下窗体文件名为jbt_7.
frm工程文件名为jbt_7.
vbp计算结果存入out.
txt文件否则没有成绩
DiyVM 香港沙田机房,也是采用的CN2优化线路,目前也有入手且在使用中,我个人感觉如果中文业务需要用到的话虽然日本机房也是CN2,但是线路的稳定性不如香港机房,所以我们在这篇文章中亲测看看香港机房,然后对比之前看到的日本机房。香港机房的配置信息。CPU内存 硬盘带宽IP价格购买地址2核2G50G2M1¥50/月选择方案4核4G60G3M1¥100/月选择方案4核8G70G3M4¥200/月选择...
触碰云怎么样?触碰云是一家成立于2019年的商家。触碰云主营香港/美国 VPS服务器、独立服务器以及免备案CDN。采用的是kvm虚拟构架,硬盘Raid10,Cn2线路,去程电信CN2、移动联通直连,回程三网CN2。最低1核1G带宽1M仅20.8元/月,不过这里推荐香港4核4G15M,香港cn2 gia线路云服务器,仅115.2元/月起,性价比还是不错的。点击进入:触碰云官方网站地址触碰云优惠码:优...
wordpress高级全行业大气外贸主题,wordpress通用全行业高级外贸企业在线询单自适应主题建站程序,完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,更实用的移动设备特色功能模块 + 更适于欧美国外用户操作体验 大气简洁的网站风格设计 + 高效优化的网站程序结构,更利于Goolge等SEO搜索优化和站点收录排名。点击进入:wordpress高级全行业大气外贸主题主题价格:¥398...
vb基础教程为你推荐
小程序开发制作开发一个小程序要多少钱?乐划锁屏乐视手机如何破解锁屏密码?lunwenjiance知网论文检测查重系统777k7.comwww.777tk.com.怎么打不 开haokandianyingwang谁给个好看的电影网站看看。avtt4.comCOM1/COM3/COM4是什么意思??/javbibinobibi的中文意思是?175qq.com查询QQ登录地址采采风荷仿照这个片段,给下文增加联想内容.多美的荷花啊!碧绿的荷叶把池塘挤得满满的,白荷花、红荷花争相开放,全开的、半开的,姿态各异,争奇斗艳.一朵刚刚绽开的花骨朵躲在一片荷叶后面,一只蜻蜓在上面飞来飞去.急急急~明天早上要的采采风荷芰荷迭映蔚的意思
xenvps 高防直连vps 国外免费域名网站 securitycenter 美国主机评论 便宜建站 抢票工具 网站监控 新世界电讯 好看的桌面背景大图 12306抢票助手 网站被封 北京双线机房 免费phpmysql空间 新世界服务器 游戏服务器出租 免费的加速器 hosting 低价 新浪轻博客 更多