第6章___程序设计基础
- 格式:doc
- 大小:64.50 KB
- 文档页数:16
Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。
答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。
这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。
同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。
1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。
答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。
第六章面向对象程序设计基础例题1、类是一组具有相同属性和相同操作对象的集合,类之间共享属性和操作的机制称为()。
A、多态性B、动态绑定C、静态绑定D、继承2、以下有关VFP表单的叙述中,不正确的是()。
A、所谓表单就是数据表清单B、VFP表单是一个容器类的对象C、VFP的表单可以用来设计类似于窗口或对话框的用户界面D、在表单上可以设置各种控件对象3、表单内的控件都有一个默认名称,下拉列表框的默认名称是()。
A、combo1B、command1C、check1D、caption4、关于表单中的列表框和组全框的区别,下面叙述不正确的是()。
A、列表框提供一个列表给用户选择,而组合框不提供列表B、列表框任何时候都显示它的列表,而组合框通常只显示一项内容C、列表框中只能选择数据不能输入数据,而组合框可以选择或输入数据D、列表框只能显示数据列表供选择,而组合框兼有列表框和文本框的功能5、在表单中加入一个复选框check1和一个文本框text1,编写check1的click事件代码如下:thisform.text1.visable=this.value,则单击复选框后()。
A、文本框可见B、文本框不可见C、文本框是否可见由复选框当前值决定D、文本框是否可见与复选框当前值无关6、以下各项中,不可以作为文本框控件数据来源的是()。
A、数值型字段B、内存变量C、字符型字段D、备注型字段A类基础训练题一、填空题1、在面向对象程序设计中,类具有三个主要的特性,它们分别是_________、_________和_________。
2、VFP提供了一系列基类来支持用户派出生新类,VFP的基类有两种,它们是_________和_________。
3、在面向对象的程序设计中,对象所具有的特征被称为_________;对象的_________就是对象可以执行的动作或它的行为。
4、VFP提供了三种方式来创建表单,它们分别是使用_________创建表单;使用_________创建一个新的表单或修改一个已经存在的表单;使用“表单”菜单中的_________创建一个简单的表单。
二、填空题1. S = S + X * XX = X + 12. 1 + 2 + ……+ 9 + 103.254. "" , 1 , right(X,(LEN(X)-2))5. X(I, J) = WI = JI + J = 56.24SUBSTR(XY, 5, 4)7.TRPN8. FEDCBA9.X%3==010.2111.13 21注意:12至16如果不把题中的ThisForm.Text1.Value=.T.改为ThisForm.Text1.Value=T,则答案均为T,一下为修改后的答案。
12.2013.314.915.1016.12317.REPLACE 等级WITH “优秀”18."通过"19.编号%8==120.153421.97+i22. a%i==0 AND b%i==023.a*b STEP 124.i/100i%1025.==========================二.选择题1.有如下程序:A = 10IF A = 10S = 0ENDIFS = 1? S上面程序的执行结果是(B)。
A.0B.1C.程序出错D.结果无法确定2.有如下程序:SET TALK OFFSTORE 2 TO S, KDO WHILE S < 14S = S + KK = K + 2ENDDO? S, KSET TALK ONRETURN程序运行后的输出结果是(C)。
A.22 10B.22 8C.14 8D.14 103.有如下程序:SET TALK OFFDIME A(6)K = 2DO WHILE K <= 6A(K) = 20 – 2 * KK = K + 1ENDDOK = 5DO WHILE K >= 2A(K) = A(K) / (A(4) – 10)K = K – 1ENDDO? A(1), A(6)?A(2)SET TALK ONRETURN程序运行第一个?的输出结果是(D)。
A.10 4B.10 8C. .T.D. .F. 84.阅读下面这段程序:SET TALK OFFS = 0I = 1DO WHILE I <= 10S = S + II = I + 1ENDDO? I, SSET TALK ON其运行结果是(A)。
A.11 55B.11 45C.10 55D.10 455.有如下程序:SET TALK OFFM = 0N = 100DO WHILE N > MM = M + NN = N – 10ENDDO? M, NRETURN程序运行的结果是(D)。
A.0 10B.10 90C.90 100D.100 906.阅读下列程序:SET TALK OFFCLEARSTORE 1 TO XSTORE 20 TO YDO WHILE X <= YIF INT(X/2) <> X / 2X = 1 + X ^ 2Y = Y + 1LOOPELSEX = X + 1ENDIFENDDO? X? YSET TALK ONRETURN运行结束X 和Y的值分别是(B)。
A. X= 10 Y = 22B.X = 122.00 Y = 23C.X = 3 Y = 22D.X = 2 Y = 217.运行以下程序:SET TALK OFFINPUT “N=”TO NT = 1K = 1S = 0DO WHILE K <= 2 * N + 1T = T * KS = S + TK = K + 2ENDDO?SRETURN当输入N=3时,输出S的值为(A)。
A.124B.19C.9D.338.运行以下程序:SET TALK OFFN = 1T = 1S = 0DO WHILE N <= 9T = T * NS = S + 2 * TN = N + 3ENDDO? SRETURN最后输出结果为(D)。
A.38B.10C.625D.669.阅读一下程序SET TALK OFFS = 0K = 1DO WHILE K <= 9K = K + 1DO CASECASE MOD(K, 3) = 1LOOPCASE MOD(K, 3) = 2S = S + 2 * KCASE MOD(K, 4) = 2S = S + 3 * KOTHERS = S + KENDCASEENDDO? SRETURN最后输出结果为(C)。
A. 35B.45C.60D. 8210.有如下程序:SET TALK OFFM = 0N = 100DO WHILE N > MM = M + NN = N – 10ENDDO? MRETURN运行此程序显示M的值是(C)。
A.0B.10C.100D.9911.阅读下列程序,其运行结果是(B)。
SET TALK OFFX = 153A = STR(X, 3)I = 1T = 0DO WHILE I <= 3T = T + V AL(SUBS(A, I,1)) ** 3I = I + 1ENDDO? IIF(X = T, …YES‟, …NO‟)SET TALK ONRETURNA. .T.B.YESC.NOD.出错12.阅读下列程序,其运行结果是(C)。
SET TALK OFFDIME A(2, 2)A(1, 1) = 1A(1, 2) = 2A(2, 1) = 3A(2, 2) = 4I = 1J = 1DO WHILE J <= 2T = A(I, J)A(I, J) = A(J, I)A(J, I) = TJ = J + 1ENDDOI = I + 1? A(1, 2), A(2, 1)SET TALK ONRETURNA.1 2B.2 3C.3 2D.4 213.阅读下列程序,其运行结果是(D)。
SET TALK OFFS = 0I = -5DO WHILE I <= 5IF ABS(I) <= 3I = ABS(I)ENDIFJ = 1DO WHILE J <= ABS(I)S = S + 1J = J + 1ENDDOI = I + 1ENDDO? SSET TALK ONRETURNA.5B.4C.9D.2114.运行下列程序后S的值是(C)。
SET TALK OFFS = 0P = 10DO WHILE P <= 15P = P + 1S = S + P * 2ENDDO? SA.172B.130C.162D.15015.运行下列程序段:SET TALK OFFSTORE 0 TO X, YDO WHILE .T.X = X + 1Y = Y + XIF X >= 5EXITENDIFENDDO? X + YRETURN输出的结果为(B)。
A.5B.20C.9D.14 16.B 17.A18.D 19.D 20.D 21.B 22.A 23.D 24.C 25.C三、编程(16题以后是表单的题)1.铁路托运行李,从甲地到乙地,按规定,每张客票托运行李不超过50千克,按每千克0.35元计算运费,如果超过50千克,超过的部分按每千克0.65计算运费。
请编写一个程序计算托运费。
假设行李的重量为W 千克,运费为F 元。
那么计算的公式为:⎩⎨⎧>-+<==)50(65.0*)50(35.0*50)50(*35.0W W W WF2.假设在运输货物时,每吨货物每公里运费P 与运输的距离S 有关,路途越远,每吨货物运价越低,其公式如下:⎪⎪⎪⎩⎪⎪⎪⎨⎧><≤<≤<≤<=)250(1)250200(2)200150(4)150100(6)100(8S S S S S P如果所付的总运费超过250元的,再给予九五折的优惠。
从键盘输入货物的吨数和运输公里数,求应付的运费。
SET TALK OFF CLEARINPUT"请输入重量:" TO W IF W <= 50 F = 0.35 * W ELSE F = 50 * 0.35 + (W - 50) * 0.65 ENDIF?"运费F 为:" + STR(F,10,2) SET TALK ON RETURNSET TALK OFFCLEARINPUT "请输入货物的重量:" TO WINPUT "请输入货物的运输距离:" TO SIF W < 0 .OR. S < 0EXITENDIFDO CASECASE S < 100P = 8CASE S >= 100 .AND. S < 150P = 6CASE S >= 150 .AND. S < 200P = 4CASE S >= 200 .AND. S < 250P = 2OTHERWISEP = 1ENDCASECOST = P * W * SIF COST > 250COST = COST * 0.95ENDIF?"总运费F为:" + STR(COST, 10, 2)SET TALK ONRETURN3.设计一个程序计算被3、4、5、6、7除都余2的最小4位数SET TALK OFFCLEARNUM= 1000DO WHILE MOD(NUM,420) <> 2NUM = NUM +1ENDDO?"NUM = " , NUMSET TALK ONRETURN4.有一堆核桃,每次往外边拿两个,最后还剩下一个单的,如果每次往外边拿3个、4个、5个、6个,都是剩下一个单的,问这堆核桃最少有多少个?提示:要解决这一问题,首先估计一下初值,题目中说拿6个,还能剩1个,所以最低限度应该有7个,然后看看这个值是否同样适合前几种情况,如果都符合,此数正是寻找的数,如果不符合,则令此数加1,再重新进行判定,直到正确为止。
SET TALK OFFCLEARN = 7DO WHILE .T.IF MOD(N, 2) <> 1N = N + 1LOOPENDIFIF MOD(N, 3) <> 1N = N + 1LOOPENDIFIF MOD(N, 4) <> 1N = N + 1LOOPENDIFIF MOD(N, 5) <> 1N = N + 1LOOPENDIFIF MOD(N, 6) <> 1N = N + 1LOOPENDIFEXITENDDO?"这堆核桃最少有" + STR(N, 4) + "个。