在调试时发现该函数过程产生的结果是错误的,程序需要修改。
下面的修改方案中有3种是正确的,错误的方案是()。
A.把P=1改为P=n
B.把Fork=n一1T02Step一1改为Fork=1Ton一1
C.把Fork=n一1T02Step一1改为Fork=1Ton
D.把Fork=n一1T02Step—l改为Fork=2Ton
(35)假定有以下函数过程:
在窗体上画一个命令按钮,然后编写如下事件过程:
程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”则单击“确定”按钮后在窗体上的输出结果为()。
、
A)ABCDEFG
B.abcdedg
C.GFEDCBA
D.gfedcba
(36)为计算a“的值,某人编写了函数power如下:
在调试时发现是错误的,例如Printpower(5,4)的输出应该是625,但实际输出是3125。
程序需要修改。
下面的修改方案中有3个是正确的,错误的一个是()。
(37)某人编写了下面的程序:
此程序功能是:
输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。
例如:
若输入123和234,则应该输出:
321432/753但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改。
下面的修改方案中正确的是()。
A)把过程pw的形式参数nAsInteger改为ByvalnAshteger
B.把callpro(a+B.改为proa+b
C.把n=n\10改为n=n/10
D.在prob语句之后增加语句c%=a+b,再把callpw(a+B.改为proc
(38)在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程:
程序运行后,单击命令按钮,要求在窗体上显示如下内容:
1121231234则在横线处应填人的内容为()。
A.Right(el,i)
B.Left(el,i)
C.Mid(el,i,1)
D.Mid(cl,i,i)
(39)假定有以下程序段:
Fori=1T03
Forj=5T01Step一1
Printi*J
Nextj
Nexti
则语句Printi*J的执行次数是()。
A.15B.16C.17D.18
(40)在窗体上画两个文本框(名称分别为Textl和Text2)和一个命令按钮(名称为Commandl),然后编写如
下事件过程:
程序运行后,单击命令按钮,在两个文本框中显示的值分别为()。
A.1和0
B.2和72
C.3和50
D.4和168
答案解析:
(1)C【解析】树是简单的非线性结构,所以二叉树作
为树的一种也是一种非线性结构。
(2)B【解析】栈是按先进后出的原则组织数据的。
队
列是先进先出的原则组织数据。
(3)D【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。
因为是循环利用的队列结构所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。
(4)A【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。
所以选择A。
(5)B【解析】一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
(6)A【解析】结构化程序设计的思想包括:
自顶向下、逐步求精、模块化、限制使用got0语句,所以选择A。
(7)C【解析】N—S图提出了用方框图来代替传统的程序流程图,所以A不对。
PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。
E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。
根据图中所示表示方法是进行软件详细设计时使用的程序流程图。
(8)B【解析】数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。
是一种在操作系统之上的系统软件。
(9)C【解析】在E—R图中实体集用矩形,属性用椭圆,联系用菱形。
(10)D【解析】并关系T中包含了关系R与s中的所有元组,所以进行的是并的运算。
(11)D【解析】il豇法重复,蘑睦行,黉添加标准EXE工程,麴盼束运行。
D选项正确。
(12)B【解析】IIF函数是条件函数,本题的含义是如果X>0条件成立,即x为正数,就返回一x,即x的负数,否则返回x(它本身),两种情况都是返回负数。
根据这一点。
选项B符合要求。
故B选项正确。
(13)C【解析】变量s定义时没有指明数据类型,默认为Vari跏变体型。
变量a是用整型的类型符号%声明,并随时赋值100,所以变量a的数据类型为整型。
故C选项正确。
(14)D【解析】Msgbox的功能:
显示消息提示框,在对话框中显示提示消息,等待用户单击按钮,单击不同的按钮返回不同的整数。
MsgBox函数格式:
变量=MsgBox(<提示内容>[,样式]f,标题]),注意MsgBox函数带括号,有返回值;MsgBox语句格式:
MsgBox(<提示内容>[,样式][,标题]),有无括号都可以,无返回值。
选项D中用Call语句调用MsgBox函数,要符合Call语旬的语法规则:
Call函数名(实参表),缺少括号,应该为CallMs-gBox(”VB”),语法才正确。
故D选项不能输出。
VB”,会出错。
(15)B【解析】标准模块中可以包含一个SubMain过程,可以通过“工程属性”对话框中将SubMain过程设置启动对象。
故B选项错误。
(16)A【解析】动态数组的使用时,先在窗体层、标准模块或过程中声明一个没有下标的数组(括号不能省略),不指定维数。
然后,在过程中用ReDim语句定义带下标的数组,给出数组的维数。
注意:
用ReDim定义的数组,只能改变数组元素的个数,不能改变数组的维数和数据类型。
本题选项B、C中ReDim语句改变了数组的数据类型,故错误。
选项D中声明数组时有下标,应该没有下标,故也错误。
选项A正确。
(17)D【解析】调用函数过程时的实参与函数过程的形参必须是类型、顺序、个数相同。
本题中函数过程的形参有2个,调用时实参也要是2个,故排除选项B和c。
选项A虽然语法没错误,但不符合题意。
选项D是正确的。
调用函数过程时可以嵌套调用。
(18)C【解析】定义一个自定义类型的数组,数组元素表示为:
数组名(下标).成员名,故选C。
(19)B【解析】本题中x定义为整型变量,通过输入对话框输入395,按“确定”按钮后,InputBox函数把返回值395赋给变量x。
表达式395Modl0,结果是5,395\100结果为3,(395Modl00)\10的结果为9。
故B选项正确。
(20)A【解析】要把文本框中的内容写入文本文件中,首先要用0pt.语句的ForOutput模式打开文本文件,并为文件制定一个文件号,然后,用Print语句将文本写入文本文件,最后关闭文件。
本题中Click事件过程中第l、3条语句正确。
第2条语句Print语句的格式是:
蹦nt#文件号,要写入的内容,原语句错误。
根据格式按选项A修改正确,故A选项正确。
(21)A【解析】当用户按下某键时触发KeyDown和Key.Press事件,放开某键时触发KeyUp事件。
故每输入一个字符,
这3个事件都会触发。
故A选项正确。
(22)C【解析】事件过程名格式是:
控件名一事件过程名。
Forml是窗体控件的名称,Win是窗体的标题,所以窗体的MouseDown事件过程名是:
Forml_MouseDown,故选A。
(23)C【解析】当鼠标在图片框Pl中移动时,就会触发P1的鼠标移动事件,即Pl一MouseMove事件,故排除B选项;鼠标在图片框Pl中移动对,立即在图片框中显示鼠标的位置坐标,说明是在图片框上输出数据,所以用Pl的Print语句实现。
故c选项正确。
(24)B【解析】窗体的BorderStyle属性是用来设置窗体的边框样式的。
属性值l为FixedSingle,3为FixedDiM09,4为FixedToolWindow,设置为这3个属性值都不能改变窗口大小。
2是Sizable,表示窗体大小可以改变。
故选B。
(25)A【解析】按住ALt键只能选中单个控件,不能同时选中多个控件。
故选A。
(26)B【解析】文本框没有Clear和Hide方法,故A、c选项错误;Enabled属性设置文本框可用不可用,属性值为True时可在文本框中输入数据,为False时文本框为灰色,内容不能修改,故D选项错误;Visible属性用来设置文本框显示或隐藏,当属性值为True时文本框显示,为False时文本框隐藏,故B选项正确。
(27)D【解析】改变文本框中的内容时就会触发它的Change事件,故选D。
(28)B【解析1A选项按Del键不能删除图片;C选项中Pictue属性值不能为空字符串,语法错误;D选项中cls方法只能清除图片上显示的内容,不能清除图片。
要将图片框中的图片清除,用B选项方法可以。
故B选项正确。
(29)C【解析】列表框的Style属性是设置列表框的外形;
Selected属性在程序运行中设置或返回列表项的选牛状态;
Enabled属性设置列表框可用不可用;
MultSelect用来设置选择列表项的方式。
0为默认,只允许单选列表项;1为复选,可同时选中一个或多个剜表项,但要1一个一个选中;2也为复选,可一个一个选中列表项,也可连缚1选中。
故选C。
(30)B【解析】程序中For循环的结束有两种情况,一利1是循环完指定的次数,一种是达到一定的条件后直接退出1环。
由于在循环体中循环变量i的值被修改:
i=i+3,因此,1次循环开始时i的取值为0,4,8,i为B时执行i=i+3=II1Ⅱ=n+1=3,这时i的值大于l0,退出For循环,因此For循朝1执行了3次,即n的值为3。
所以在文本框中会显示3。
(31)D【解析】程序D0循环中嵌套了For循环,D0循习1没有设置结束条件,而是在For循环体中的Select语句中设蟹1了退出D0循环和For循环及结束程序的分支,因此D0循环彦1次数无法确定。
随机函数Rnd产生[0,1)之问的一个数,包魏10但不包含l,因此Rndtl00的范围是大于等于0小于l001随机数为65、68或92时结束程序关闭窗体,为58时退出D睛环,为l2时退出For循环进入下一魄p0循环。
(32)A【解析】Array函数用来为数组元素赋值,即把一个数据集读人某个数组。
其格式为:
数组变量名=Array(数组元素值)。
Dima语句没有变量类型名,则a默认为Variant类型,这里它作为数组变量使用。
现在已知数组a中元素的值依次为l、2.3、4,则For循环中各变量值变化如下:
i=4时,S=S+a(4)木j=O+4}1=4,j=1水10=10
i=3时,s=s+a(3)}j=4+3$10=4+30=34,j=10木10=100
i=2时,s=s+a
(2)}j=34+2}100=34+200=234,j=100女10=1000
i=1时,S=S+a
(1)木j=234+1$1000=234+1000=1234。
循环结束。
S的值为1234。
(33)C【解析】通用过程Fun的主要功能在于
tStr=tStr&Mid(xStr,i,1)&Mid(xStz,strL—i+1,1)
这一句。
。
其中Mid(xStr,i,1)的意思是从字符串的左边开始依次取一个字符,Mid(xStr,strL—i+1,1)的意思是从串的右边开始依次取一个字符。
整个这条一语句的用意就是从一个字符串两端依次各取一对字符连成一个字符串。
因此当Fun过程的参数为“abcdef”时,返回值为“aibecd”,Uease(“a/b-ecd”)结果为“AFBECD”,这就是输出结果。
(34)B【解析】原程序的错误在于没有把n的值乘进去。
而B选项中把Fork=n一1T02Step一1改为Fork=1Ton一1,依然没有把n乘进去。
(35)D【解析】程序中过程Fun的For循环的功能是从参数字符串中依次取出一个字符经Lease函数转为小写字母后存入另一个字符串变量的首部,即将输入的字符串转为小写并倒序排列。
函数Len用于返回字符串的长度,过程中字符串的长度做为For循环的终值。
Mid是字符串中部截取函数,用来从指定位置开始截取指定个数的字符。
过程中使用Mid(S,i,1),通过循环依次取出字符串的字符,然后使本次取出的字符连接到之前取出的字符前面,实现了字符串倒序排列。
程序中输入字符串为“abedef9”,倒序并转为小写后为“9fedcba”。
(36)B【解析】程序中计算a“的算法有误,由于已经将a的值赋给了p,在后边的F缸循环中再乘n次a显然就多乘了一次a,因此,要改正此程序或者将P=a改为P=1,或者将fork=1ton改成fork=1ton一1或fork=2ton。
而B)选项将P=p8a改为P=pn将会导致P=pn执行n次,得不到正确结果。
(37)A【解析】在过程定义中过程的形式参数定义时如果没有ByVal指明参数的传递方式,那么默认为地址传递,这样过程中对形参的改变将影响到实参的值。
本程序中过程定义语句PrivateSubpro(nAsInteger)说明形参n为按地址传递的,而在过程内语句n=n\l0改变了形参的值,因此,axb的值就不再是最初输入的值了,表达式a+b就不是期望的两个输入数的和。
因此得不到正确结果。
只要把PrivateSubpro(nA8Integer)改为PrivateSubpro(BvvalnAsInteger),程序即可得到正确结果,因此A选项正确。
(38)B【解析】程序中使用Str(c)将数值1234转换成为一个字符串“1234”,又使用Trim函数去除了字符串首尾可能存在的空格,保证了字符串中只有l、2、3、4这4个字符。
在For循环中从左边递次输出这些字符就需要使用Left()函数,Left是左部截取函数,可以截取字符串左边指定个数的字符串,以Left(el,i)的形式即可每次循环取出期望的字符串。
因此答案为B。
(39)A【解析】外层For循环从1到3是3次,内层循环从5到1,是5次。
因此循环体执行的次数是3。
5=15次。
(40)B【解析】在文本框中显示的值即n,x的值。
x初始值已设为0,n的初值没有定义,默认为0。
各次循环x,n的值如下:
x=(x+2)}(x+3)=(0+2)+(0+3)=2*3=6,n=n+l=0+1=1
x=6,满足X<50,循环继续: