文档库 最新最全的文档下载
当前位置:文档库 › ACCESS同步习题集(第八章答案解析)

ACCESS同步习题集(第八章答案解析)

第八章 参考答案及解析

一. 选择题

1. 答案:C
【解析】交换X和Y的值,借助于一个中间变量,先将X的值放到中间变量里面,然后将Y的值放到X中,此时X中存放的是Y的值,最后再将中间变量也即原来X的值放到Y中,即完成交换。不能将Y直接赋给X,否则将把原来X中的值覆盖。


2. 答案:B
【解析】VBA中过程定义不可以嵌套,过程的调用可以嵌套。


3. 答案:A
【解析】ByVal为传值,当把函数外的一个变量(如n)传给ByVal的参数时,在函数体内对该参数所做的任何变更,不会影响函数体外的n变量的值。此题要返回m、n的值,因此应该对m、n都用址传递。


4. 答案:A
【解析】调用Sub过程相当于执行一个语句,不直接返回值;而调用Function过程要返回一个值,因此,可以像内部函数一样在表达式中使用。


5. 答案:B
【解析】 事件是Access窗体或报表及其上的控件等对象可以"辨识"的动作:方法描述了对象的行为。所以本题答案为B。


6. 答案:D
【解析】键盘事件主要有"键按下"、"键释放"、"击键"等,没有"键锁定"。


7. 答案:A
【解析】在Visual Basic系统中,通常每条语句占一行,一行最多允许有255个字符;如果一行书写多个语句,语句之间用冒号":"隔开。


8. 答案:D
【解析】VBA的数据类型中有字符串型、字节型、布尔型、整数型、长整数型、单精度型、双精度型、日期型、货币型、小数点型 、变体型及对象型等,没有指针类型的数据。


9. 答案:C(此题目有问题,应该将下面赋值的Stud 都改为S,这样才可以选择C)
【解析】在题中,定义了1个学生类型Stud,在4个选项中都定义了类型为Stud的对象S,赋值只能针对对象,且对数组进行赋值时只能各个赋值。


10. 答案:C
【解析】变量名必须以字母开头,大小写等价,不能包括空格或除下画线""之外的其他字符,不能使用VBA的关键字,变量名长度小于255个字符,本题中选项C)为关键字,不能作为变量名使用。


11. 答案:A
【解析】Option Base 1的作用是设置数组下标从1开始,展开二维数组A(2 to 5,5),为A(2,1)…A(2,5),A(3,1)…A(3,5),…,A(5,1)…A(5,5)共4组,每组5个元素,共20个元素。


12. 答案:D
【解析】选项A)程序范围指变量在整个程序内都是有效的。选项B)全局范围指变量定义在标准模块的所有过程之外的起始位置,运行时在所有类模块和标准模块的所有子过程与函数过程中都可见;选项C)模块范围指变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程和函数过程中可见;选项D)局部范围指变量定义在模

块的过程内部,过程代码执行时才可见。


13. 答案:C
【解析】dim Newarray(10) as integer表示定义了11个整型数构成的数组,数组元素为Newarray(0)至Newarray(10)。


14. 答案:A
【解析】Val()函数是将文本数据转换为数值数据的,故本题答案为A)。


15. 答案:D
【解析】DLookup函数是从指定记录集里检索特定字段的值。它可以直接在VBA、宏、查询表达式或计算机控件使用,而且主要用于检索来自外部表字段中的数据。


16. 答案:B
【解析】根据题意,Int(100*(x+0.005)实现千分位的四舍五入,同时扩大100倍取整,0.01*为保证保留两位小数,与前面的乘以100对应,因此本题选B)。


17. 答案:B
【解析】DateDiff表示两个指定日期间的时间间隔数,参数ww要求返回值为两日期间的周数。


18. 答案:A
【解析】本题考查的是字符串截取函数Left函数的用法。其格式为:Left(<字符串表达式>,<N>):从字符串左边起截取N个字符。


19. 答案:A
【解析】取整函数Fix(<数值表达式>):返回数值表达式的整数部分。


20. 答案:A
【解析】Left(<字符表达式>,):从字符串左边起截取N个字符。
Right(<字符表达式>,):从字符串右边起截取N个字符。
Mid(<字符表达式>,,[N2]):从字符串左边第N1个字符起截取N2个字符。
根据题意从字符串s左边第2个字符开始获得4个字符的子字符串函数为Mid(s,2,4),故选A。


21. 答案:A
【解析】Rnd 函数返回大于或等于 0且小于1的随机值。100*Rnd得到[0,99]的随机整数。


22. 答案:D
【解析】函数Str$的功能是将数值型数据转换成字符型数据;函数Space的功能是产生空格字符,函数Len的功能是计算字符串中字符的个数,"+"连接符的功能是将两个字符串连接起来。题中,Str$(m)是将m转换成一个字符串,这个字符串包括"2"、"."、"1"、"7"和一个字符串符号共5个字符;Space(5)是产生一个以5个空格组成的字符串;"+"连接符则将它们连接成一个字符串,它的长度是两个字符串长度的和,即这个字符串的长度为10。因此,Len (Str$(m)+ Space(5))结果为10。


23. 答案:D
【解析】函数Mid(s,i,j)的功能是,从字符串s中的第i个字符开始截取j个字符;函数Left(s,i)的功能是:从字符串s的左边开始截取i个字符;函数Rightt(s,i)的功能是,从字符串s的右边开始截取i个字符;在For…Next循环中,当步长的取值为负数时,循环变量的值就递减,此时要注意循环变量的初值应大于终值。
从题中程序可以看出,每执行一次循环,都重新给x、y、z这3个变量赋值,因此只要看最后一次执行循环时变量的值即可。程序中

最后执行一次循环体时I的值为2,因此x=Mid(s,I,I)=BB,y=Left(s,I)=AB,z=Right(S,I)=BA,所以z=x&y&z=BBABBA。


24. 答案:B
【解析】Int(<数值表达式>)函数为取整函数,返回数值表达式的整数部分。参数为负值时,返回小于等于参数值的第一个负数。


25. 答案:A
【解析】B选项中是两个字符串的比较,结果为False;C选项中为关系表达式的值,结果为False;D选项中为日期型数据加5,结果为2010-5-6;只有A选项中两个日期数据相减后结果为整型数据4,故答案为A)。


26. 答案:A
【解析】参数有两种传递方式:传址传递ByRef和传值传递ByVal。如果没有说明传递类型,则默认为传址传递。在函数Proc(n As Integer,ByVal m As Integer)的参数中,形参n默认为传址传递,形参的变化将会返回到实参,即形参n mod 10(12 mod 10)得到的结果2将返回给实参x,即x=2;而y为传值类型,不为形参的变化而变化,所以输出的x和y应为2和32。


27. 答案:D
【解析】此题注意不要陷入一个误区,即MsgBox后的表达式"a=b+c"会被程序认为是一个关系表达式--a等于b+c,显然结果是False。正确的写法应该是"MsgBox b+c",或分两行语句"a=b+c MsgBox a",通过第1行语句计算a的值,通过第2行语句输出a的值。


28. 答案:D
【解析】在VBA中的运算符优先顺序是指数运算 (^)、负数 (-)、乘法和除法 (*、 /)、整数除法 (\)、求模运算 (Mod)、加法和减法 (+、 -)。因此,计算时先计算了*3=9,然后计算3/3,对9\1取整为9。


29. 答案:C
【解析】 要使x和y都是奇数,则x和y除以2的余数都必须是1。所以本题答案为C。


30. 答案:A
【解析】Do Until…Loop循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。本题中循环条件是y<=25条件为真,即不执行循环体,所以x、y的值即为初始值。


31. 答案:B
【解析】根据题中计算式可以找出规律,m变量为奇数,且相邻两个奇数相差为2,所以本题应选B)。


32. 答案:C
【解析】该循环语句的执行过程为,当i小于等于17时,执行循环体,每循环一次,i的值加2,从8到17之间,公差为2,加5次以后i为18,大于17,退出循环,共循环了5次,故答案为C)。


33. 答案:B
【解析】本程序是判断奇偶性的程序,函数Result用来判断x是否是偶数,如果x是偶数,Result的返回值为真,否则返回值为假,单击命令按钮时执行的过程是输入整数x,然后调用Result函数,如果值为真,文本框会显示输入的值是偶数,否则显示输入的值为奇数。调用Result函数且Result函数值为真时的表达式为:Result(x)。故答案为B)。


34.

答案:C
【解析】本程序使用了int()函数,其作用是对其中的参数进行取整运算,如果一个整数除以2 后取整与其自身除以2相等,那么这个整数就是偶数,否则就是奇数,故本题答案为C)。


35. 答案:B
【解析】本题是一个双重循环,外循环中每循环一次,x的值都是从0开始累计,所以外循环中到最后一次循环,x的值是0,而内循环要循环7次,故x=7所以本题答案为B )。


36. 答案:B
【解析】本题中窗体单击事件是通过从输入框输入数值,根据所输入数值内容对y进行赋值,运行时输入框输入12,此值不等于0,所以y的值为2,正确答案为B)。


37. 答案:D
【解析】此题为3层嵌套循环,经过分析可见,I的最外层循环没有实际意义,I值从1到4时,x的结果是一样的。当j=1,k=1时,x=x+3=6,next k,这时k=2,x=6+3=9;最内层循环执行完毕,执行第二层循环,即j=2,重复上面步骤,以此类推到j=3,最终x值为21。


38. 答案:B
【解析】VBA提供了3个条件函数:IIf函数,Switch函数和Choose函数,上述3个函数由于具有选择特性而被广泛用于查询、宏及计算控件的设计中。


39. 答案:C
【解析】Loop Until循环语句:当条件表达式为真时,跳出循环。第1次循环x=x+1=1+2=3,第2次循环x=x+2=3+2=5;第3次循环x=x+2=5+2=7,查看所有选项得出答案为C)。


40. 答案:C
【解析】MsgBox用于在对话框中显示消息,在此题目中即为显示f的值,题目中首先m>n所以执行m=m-n=24-18=6,结束后m=6,n=18;所以再执行n=n-m=18-6=12,结束后m=6,n=12;再执行n=n-m后m=n=6;退出循环 m<>n,然后执行f=m的赋值语句,即为f=m=6。


41. 答案:B
【解析】本题实际上是给出了一个计算1~10之间偶数之和的程序,i=10,每循环一次递减2。
第一次循环结果:i=10,sum=sum+i=0+10=10。
第二次循环结果:i=8,sum=sum+i=10+8=18。
第三次循环结果:i=6,sum=sum+i=18+6=24。
第四次循环结果:i=4,sum=sum+i=24+4=28。
第五次循环结果:i=2,sum=sum+i=28+2=30。


42. 答案:D
【解析】VBA程序流程控制的方式为顺序、分支(条件)与循环。


43. 答案:B
【解析】模块是由一个或多个过程组成的,模块中的每一个过程都可以是一个函数过程或是一个子程序过程,能够处理复杂条件或循环结构的操作。宏的使用只能处理一些简单的操作,对于复杂条件和循环等结构则无能为力。


44. 答案:C
【解析】A循环3次,B循环1次,C不循环,D循环4次。


45. 答案:B
【解析】 分支结构的语句有:If-Then-En

dIf,If-Then-Else-EndIf,Select-Case-End Select等,而While-Wend是一个循环结构的语句。


46. 答案:A(本题目中A和D一样,所以应该选择AD)
【解析】 该程序的执行过程为:先给result变量赋值为空字符串,然后执行一个嵌套的二重循环,当输入为4时,内循环和外循环各执行四次,每执行一次外循环,内循环都执行四次,每执行一次内循环,result变量的值连接一个字符串"*",当执行完四次内循环时,result变量的值加一个回车和换行符,然后再继续执行外循环,共执行4次外循环。最后输出result变量的值,因为每执行一次外循环,result变量的值都加一个回车、换行符,当换行后,result又重新执行四次内循环,所以每一行有4个"*"字符,共4行。


47. 答案:A
【解析】If-ElseIf-EndIf判断语句是这样执行的,如果If条件满足,则执行If下面的语句;如果不满足,则执行ElseIf下面的语句,直到EndIf,执行完满足的条件后就退出不再执行其余的语句;如果都不满足,则直接退出。本题中的a满足If>60的条件,所以执行它后退出得到1。


48. 答案:C
【解析】Form_Click事件执行的过程如下:
①i=1时,满足Case 1,3条件,执行a=a+1,得到a=2;②i=2时,满足Case 2,4条件,执行a=a+2,得到a=2+2=4;③i=3时,满足Case 1,3条件,执行a=a+1,得到a=4+1=5。


49. 答案:C
【解析】i从1到5共循环5次,每次循环对应的x,n和sum的值见下表。
循环次数(i的值) x的值 n的值 sum的值
1 0 1 0
2 1/2 2 1/2
3 2/3 3 1/2+2/3
4 3/4 4 1/2+2/3+3/4
5 4/5 5 1/2+2/3+3/4+3/5


50. 答案:D
【解析】在Select Case语句中,Case下面可包含"表达式"、"表达式To表达式"、"Is<比较操作符表达式"等形式。本题中,选项A)、B)、C)都正确,选项D)中3,5与Is>10矛盾。


51. 答案:C
【解析】题中程序的功能是通过双重循环给二维数组a(10,10)赋值,最后通过MsgBox输出二维数组a的元素集中3个元素的和。通过程序中的a(m,n)=m*n可知,数组中各元素的值其实是该元素下标的乘积。因此,a(2,5)=2*5=10,a(3,4)=3*4=12,a(4,5)=4*5=20,故a(2,5)+a(3,4)+a(4,5)=10+12+20=42,所以消息框Msgbox a(2,5)+a(3,4)+a(4,5)显示的结果是42。


52. 答案:B
【解析】"For k=1 To 2"这层循环执行前总有一个"x=3"赋值语句,所以最终x=15。


53. 答案:B
【解析】 Do…Until…Loop循环结构中,当条件值为假时,重复执行循环体,直至条件值为真,结束循环。所以,如果条件值为0,则至少执行一次循环体。所以本题答案为B。


54. 答案:D
【解析】 本题中,外层循环从1到3,要执行3次,而内层循环从-4到-1,执行4次,所以一共执行了4*3=12次循环

。而每执行一次循环n就加1,所以最后n的值为12。所以本题答案为D。


55. 答案:A
【解析】循环第1次,I=1,所以I\5=0;
循环第2次,I=3,所以I\5=0;
循环第3次,I=5,所以I\5=1;
循环第4次,I=7,所以I\5=1;
循环第5次,I=9,所以I\5=1;
循环第6次,I=11,所以I\5=2;
循环第7次,I=13,所以I\5=2;
循环第8次,I=15,所以I\5=3;
循环第9次,I=17,所以I\5=3;
循环第10次,I=19,所以I\5=3。
循环结束后,x=5+1+1+1+2+2+3+3+3,所以x=21。


56. 答案:C
【解析】第1次循环后,s=s+1=1,i=i×2=1×2=2;
第2次循环后,s=s+1=2,i=i×2=(2+2)×2=8;
第3次循环后,s=s+1=3,i=i*2=(8+2)*2=20。
由于Next i,所以i=i+2=20+2=22,此时22>10,循环结束,所以i的值为22,s的值为3。


57. 答案:A
【解析】第1次循环后k=k*2=5*2=10,Step2以后,k的值为12,大于10,故循环体不再执行。循环体只执行了1次。


58. 答案:B
【解析】题中程序段定义了一个窗体模块变量x,它在整个窗体模块中都有效。当程序调用s1时,变量x的值为10+20=30;当调用s2时,由于s2过程中定义了局部变量x,这时局部变量x的值为0+20=20,然后回到Command1单击事件中执行Msgbox x,这时,x采用全局变量x,因此,消息框显示的结果为30。


59. 答案:B
【解析】在本题中,用Call过程名的方法调用过程P1。在P1中,将参数c的值改为12。因为参数c是按地址传送的(默认为按地址传送,即ByRef),故z的值变为12,所以输出值为12。


60. 答案:A
【解析】参数传递有两种方式:按值传递ByVal和按址传递ByRef。按值传递是单向传递,改变了形参变量的值而不会影响实参本身;而按址传递是双向传递,任何引起形参的变化都会影响实参的值。因此正确答案为A。


61. 答案:D
【解析】本题考查的是变量的作用域,程序中用static定义的命令按钮中的x是局部变量,只在模块的内部使用,过程执行时才可见。在本题中,当调用f函数时,所求的f函数的值是f函数中x和y的值,即f函数的值是2*20=40,调用f函数后,原命令按钮中x的值被f函数中的值覆盖,即x=20。最后输出x=20 y=40,故答案为D)。


62. 答案:A
【解析】过程参数有传值调用(ByVal)的"单向"作用形式和传址调用(ByRef)的"双向"作用形式。后者指被调用过程内部对形参的任何操作引起的形参值变化又会反向影响实参的值。本题要求过程调用后返回形参的变化结果,所以为"传址调用"。在过程定义时,如果没写明是按值传递还是按地址传递,默认情况下为按地址传递。


63. 答案:A
【解析】参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参

用ByVal声明,则说明此参数为传值调用,此时形参的变化不会返回到实参;若用ByRef声明,则说明此参数为传址调用,此时形参的变化将会返回到实参;若没有说明传递类型,则默认为传址传递。


64. 答案:B
【解析】a和b代入Sfun()中,因为Sfun的形参为单精度浮点数,所以t=5,a=5/4=125,b=5%4=1,故输出为1.25和1。


65. 答案:A
【解析】在VBA中,能自动检查出来的错误是语法错误,如有语法错误则程序不会继续运行,逻辑错误、注释错误是不能自动检查出来的,逻辑错误需要调试,对结果进行分析,需要人为检查,注释错误不影响程序执行。


66. 答案:A
【解析】VBA中提供On Error GoTo语句来控制当有错误发生时程序的处理,指令如下:
On Error GoTo 标号
On Error Resume Next
On Error GoTo 0


67. 答案:D
【解析】本地窗口内部自动显示出所有在当前过程中的变量声明及变量值。本地窗口打开后,列表中的第一项内容是一个特殊的模块变量。对于类模块,定义为Me。Me是对当前模块定义的当前实例的引用。由于它是对象引用,因而可以展开显示当前实例的全部属性和数据成员。


二. 填空题

1. 答案:类模块|标准模块|
【解析】Access中,模块分为类模块和标准模块。


2. 答案:Double|
【解析】 VBA数据类型及标识如下:
整数:Integer;长整数:Long;单精度数:Single;双精度数:Double;货币:Currency;字符串:String;布尔型:Boolean;日期型:Date;变体类型:Variant。


3. 答案:0 或 零|
【解析】VBA中,在缺省情况下,数组下标的下界为零。


4. 答案:Str|
【解析】Str函数可将数值表达式的值转换为字符串。


5. 答案:IsNull|
【解析】IsNull函数是用来判断一个字段的值是否为空的函数。


6. 答案:Int(x*100)/100 或 Int(x*100)/100|
【解析】Int函数的作用是向下取整,可以通过乘以100取整再除100来获得两位小数。


7. 答案:信息|
【解析】Mid(表达式,m,n)的意思是查找表达式中从第m个字符开始的n个字符。


8. 答案:Variant|
【解析】变体类型是一种特殊的数据类型,除了定长字符串类型及用户自定义类型外,可以包含其他任何类型的数据;变体类型还可以包含Empty、Error、Nothing和Null特殊值,标识为Variant。


9. 答案:-4|
【解析】Int(<数值表达式>)函数为取整函数,返回数值表达式的整数部分。参数为负值时,返回小于等于参数值的第一个负数。


10. 答案:Len()|
【解析】字符串长度检测函数Len(<字符串表达式>或<变量名>)返回的是字符串所含的字符数。


11. 答案:当前系统的日期和时间|

【解析】 函数Now()的功能就是返回系统当前的日期和时间。


12. 答案:1|
【解析】在day(date)中date是必要的参数,可以是任何能够表示日期的Variant、数值表达式、字符串表达式或它们的组合,如果date包含Null,则返回Null。
weekday(date)返回一个Variant(Integer),包含一个整数,代表某个日期是星期几。其格式为weekday(date,[firstdayofweek])。
firstdayofweek指定一星期中第一天的常数。如果未予指定,则以vbSunday为默认值,即星期日为1,则星期六为7。


13. 答案:ECA|
【解析】本程序代码的功能是从源字符串的第一个字符开始,把所有第奇数个的字符转换为大写并按倒序排列,得到新的字符串。
最开始str2字符串为空,当第1次执行循环时,先取出“a”,再转换为大写“A”,再和str2相连接,得到“A”,最后再赋给str2。所以,第1次循环后,str2的值为“A”
当第2次执行循环时,取出“c”,再转换为大写“C”,再和str2相加接,得到“CA”,最后再赋给str2。所当第2次循环后,str2的值为“CA”当第3次执行循环时,取出“c”,再转换为大写“E”,再和str2相连接,得到“ECA”,最后再赋给str2。所以,第3次循环后,str2的值为“ECA”


14. 答案:选择结构(或条件结构)|
【解析】 程序流程控制结构包括顺序、选择和循环结构。


15. 答案:条件|
【解析】分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。在处理实际问题中,往往需要根据具体的情况去控制程序的流程。例如,分段函数的求解,查找结果的处理等问题,都需要先做判断后再处理,实现这种分支控制的程序,称为分支结构或选择结构。


16. 答案:True|i+1|
【解析】 这里的flag是一个逻辑变量,用来表示用户是否已成功登录,其初始值应设为True,表示用户还没有成功登录,当用户成功登录后值被设为False。这里计时器的时间间隔为1000毫秒,即1钞钟,每当计时器计时到1秒时,就激发Timer事件,在该事件的处理代码中进行如下判断:如果用户还没有成功登录,并且还没有超过20秒的登录时间,则显示当前剩余的秒数,并记录已经运行了的秒数。否则(即已经成功登录或登录时间已超过了20秒),将关闭登录窗体。


17. 答案:19|
【解析】Stu是Student一个实例,Stu.SNo="200609001", Stu.SName="陈果果",Stu.Age=19,执行MsgBox Stu.Age,消息框输出是19。


18. 答案:3|
【解析】Static定义一个静态变量b。静态变量的含义是当程序结束前,其变量的值继续保留。3次执行后,b的值累加了3次1,其值为3。


19. 答案:Hi,I am

here.|
【解析】本题程序代码意思为循环体中当输入以"."结尾的字符,则退出循环,sum变量记录之前输入的字符串。


20. 答案:456aBc|
【解析】本程序的作用是将大写字符转换为小写字符,小写字符转换为大写字符,数字字符原样输出。因此输出的结果为456aBc。


21. 答案:16|
【解析】 i从0到3共循环4次,每次循环对应的i和y的值见下表:
循环次数(i的值) y的运算式 y的值
0 0+2*0+1 1
1 1+2*1+1 4
2 4+2*2+1 9
3 9+2*3+1 16


22. 答案:及格|
【解析】 在由If和ElseIf构成的分支结构中,如果If中的条件为真,运行完随后的语句就直接运行EndIf后面的语句,不会去判断ElseIf中条件是否成立。本题中文本框的输入值为85,所以If中的条件为真,result的值设为"及格",因此最后的输出就是"及格"。


23. 答案:x*x+y*y=1000|
【解析】本程序通过循环结构判断x和y的平方和是否等于1000,如果是,就打印出x和y。注意求变量平方的表示形式。x的平方加上y的平方等于1000的表达式为x*x+y*y=1000。


24. 答案:max 【解析】本程序中,用max存储最大值,maxn存储最大值的位置,用for循环输入10个数,每输入一次,比较当前输入的值是否比max中的值大,即用max

25. 答案:201|
【解析】题目考查循环操作,最后求得k值。程序中共有3处for循环。在第一个for循环,得到a(1)=1*1=1,a(2)=2*2=4,…,a(10)=10*10=100。在第二个for循环,得到p(1)=a(1*1)=1,p(2)=a(2*2)=a(4)=16,…,p(3)=a(3*3)。在第三个for循环,i等于1时,k=5+1*2=7;i等于2时,k=k+p(2)+2=7+16*2=39;i等于3时,k=k+p(3)*2=39+81*2=201。


26. 答案:n Mod 5=1 And n Mod 7=1|
【解析】程序中该处是判断n是否被5、7除余数为1,判断n是否被5,7除余数为1的语句为n Mod 5=1 And n Mod 7=1。


27. 答案:false|k+1|
【解析】I是否为素数,只要I不被1到I的平方根整除,I就是一个素数,在该程序中,if I Mod k=0为判断I是否为素数的语句,如果该条件成立,则I不是素数,此时b=false表示I为非素数,如果if I Mod k=0不成立,则k再加上1,即k+1之后再进行判断,直到K=I的平方根为止。因此本题两个空应分别填false和k+1。


28. 答案:i<=j|
【解析】本题考查嵌套循环,i执行外循环,j执行内循环。题目中当条件为真时,执行内循环语句,j依次递增1,直到j=4,才执行外循环,即i自加1。


29. 答案:flag=1|
【解析】开关按钮的作用是当时钟显示时,单击后则不显示;当不显示时,单击

后则显示。所以开关事件首先判断时钟是否显示,如果是显示,则设置为不显示,反之则设置为显示。


30. 答案:IsNull|>30|
【解析】用""或IsNull表示数据为空。题目要求输入数据范围为大于等于15且小于等于30,那么非法数据范围即为<15或>30。


31. 答案:25|
【解析】n=1,每循环一次增加2。
第一次循环结果:n=1,f=f+n=0+1=1;
第二次循环结果:n=3,f=f+n=1+3=4;
第三次循环结果:n=5,f=f+n=4+5=9;
第四次循环结果:n=7,f=f+n=9+7=16;
第五次循环结果:n=9,f=f+n=16+9=25。


32. 答案:36|
【解析】每一次循环都是变量b重新赋值为23+变量k的值。第1次循环执行b=23+1=24,第2次循环执行b=23+2=25,第6次循环执行b=23+6=29。最后,变量k为7退出循环,执行"MsgBox b+k"语句,即29+7=36。


33. 答案:55|
【解析】 i从1到10循环执行,s=s+i相当于从1加到10,结果为55。


34. 答案:12|
【解析】对于内层循环而言,当j为1、3时,a会各加两次1;当j为2、3时,a会各加一次1。所以,整个内层会加6次1。考虑到外层循环要执行两次循环体,所以一共要加12次1,最终的输出结果为12。


35. 答案:6|
【解析】只要指定的条件为True,则会重复执行一系列的语句。
相关语法如下:
While condition
[statements]
Wend
本题中的循环只能当num的值超过5时才终止,所以最终的num的值为6。


36. 答案:*(1/i) 或 /i|
【解析】本程序首先置f为1,s为0;经过5次循环使f每次都乘以1/i,实现了1/n!的求法,每次循环后都加f,把结果再赋给s,循环结束,s的值即为所求。


37. 答案:1024|
【解析】Do While语句先判断条件,如果条件为True,则执行循环体。本题中的条件表达式是k<=n,而刚开始k=1,n=10,而循环一次k就加1,故一共要执行10次循环。而m每执行一次就乘2,故一共乘了10次2,最后m的值为1024。


38. 答案:9|
【解析】从起始值开始计算,循环体要执行4次,而每执行一次循环体,s就加1,所以最终的s值为5+4=9。


39. 答案:2346|
【解析】当j=1时,内层循环执行x=x+y+z=x+2三次,所以x=7;
当j=2时,内层循环执行x=2×x+2×y+2×z=2×x+4三次,所以x=84;
当j=3时,内层循环执行x=3×x+3×y+3×z=3×x+6三次,所以x=2346。
则最后结果是x=2346。


40. 答案:11|
【解析】本题主要考查Do循环语句。循环条件Do Until 0可得知这是一个无限循环,要跳出此循环,只有在循环体里面使用相关的语句。这里用的是Exit Do,从程序上看出,跳出循环的条件是i>10,而i是从0开始,每次循环加1。所以,跳出循环时i的值应该为11。


41.

答案:21|
【解析】Byref是传址,就是把变量的地址传送给函数,在函数的内部对参数的修改,实际上是对变量地址里的数据修改,所以当函数返回的时候,传进来的变量也是跟着改变的。
Byval是传值,顾名思义,就是把变量的数据传给函数,函数内部对其做任何处理都不会影响变量本身的值。
第一次调用fun1函数时,x=3,b=9;执行fun1函数:y=y+z=x+b=12,z=y-z=y-b=3;返回时,由于z使用Byval,因此并没有改变调用过程中的b值,而y使用Byref,因此改变了调用过程中的x值,即此时x=9。
第二次调用fun1函数时,x=12,b=9;执行fun1函数:y=y+z=x+b=21,z=y-z=y-b=12;返回时,由于z使用Byval,因此并没有改变调用过程中的b值,而y使用Byref,因此改变了调用过程中的x值,即此时x=21。


42. 答案:64|
【解析】 参数有两种传递方式:传址传递和传值传递,若没有说明传递类型,则默认为传址传递。在函数p(n As Integer,ByVal m As Integer)参数中,形参n默认为传址类型,形参的变化将会返回到实参,即形参n mod 10(12 mod 10)得到的结果2将返回给实参x,即x=2;而y为传值类型,不为形参的变化而变化,所以x*y=64。


43. 答案:3|
【解析】 i=3,执行Call s(i)后i=6。但因为使用的是ByVal"单向"传值,形成实参i的值不发生变化,if语句为假,执行"MsgBox i"语句,直接输出3。

相关文档
相关文档 最新文档