ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:30.61KB ,
资源ID:10417785      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10417785.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(100道Python编程题及答案一.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

100道Python编程题及答案一.docx

1、100道Python编程题及答案一题目1: 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它 在第10次落地时,共经过多少米?第10次反弹多高?1.程序分析:见下面注释2.程序源代码:Sn=100.0Hn=Sn/2for n in range(2,11):Sn +=2 * HnHn /=2prin t Total of road is %f % Snprin t The ten th is %f meter % HnIII题目2:打印出所有的水仙花数”所谓水仙花数”是指一个三位数,其各位数字立方和 等于该数本身。例如:153是一个 水仙花数”因为153=1的三次方+ 5的

2、三次方+ 3的三次方1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:IIIfor n in range(100,1001):i=n / 100j=n / 10 % 10 k=n % 10if i * 100 + j * 10 + k=i + j 2 + k 3:prin t %-5d % nIII题目3:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多 少?1程序分析:可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码:IIIfor i in ran ge(1,5):

3、for j in ran ge(1,5):for k in ran ge(1,5):if( i !=k ) and (i !=j) and (j !=k):print i,j,kIII题目4 :企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10% ; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可 可提成7.5% ; 20万到40万之间时,高于20万元的部分,可提成5% ; 40万到60万之间时 高于40万元的部分,可提成3% ; 60万到100万之间时,高于60万元的部分,可提成1.5%, 高于100万元时,超过100万元的部分

4、按1%提成,从键盘输入当月利润I,求应发放奖金总 数?1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2.程序源代码:IIIbonus1=100000 * 0.1bonus2=bonusl + 100000 * 0.500075 bonus4=bonus2 + 200000 * 0.5bon us6=bo nus4 + 200000 * 0.3 bonus10=bonus6 + 400000 * 0.15 i=i nt(raw_i nput( in put gai n:n)if i =100000:bonus=i * 0.1elif i =200000:bonus=bon

5、us1 + (i - 100000) * 0.075elif i =400000:bon us=bo nus2 + (i - 200000) * 0.05elif i =600000:bon us=bo nus4 + (i - 400000) * 0.03elif i =1000000:bon us=bo nus6 + (i - 600000) * 0.015 else:bon us=bo nu s10 + (i - 1000000) * 0.01prin t b onu s=,b onusIII题目5 :一个整数,它加上100后是一个完全平方数,再加上 268又是一个完全平方数, 请问该数是

6、多少?268后再开1程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上 方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:#in elude math.hmai n()long int i,x,y, z;for (i=1;i100000;i+) x=sqrt(i+100);y=sqrt(i+268);if(x x=i+100&y y=i+268)prin tf( n%ld n,i); import mathfor i in ran ge(10000):#转化为整型值x=i nt(math.sqrt(i + 100)y=i nt(math.sqrt(i

7、+ 268)if(x * x=i + 100) and (y * y=i + 268):print i题目6 :输入某年某月某日,判断这一天是这一年的第几天?1程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上 5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。2.程序源代码: year=i nt(raw_i nput(year: n)mon th=i nt(raw_i nput(m on th: n)day=in t(raw_i nput(day:n)mon ths=(0,31,59,90,120,151,181,212,243,273,304,334)if 0

8、 v=month 2):sum +=1prin t it is the %dth day. % sumIII题目7:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到 x上,先将x与y进行比较,如果xy则将x与y的值进行交换, 然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小2.程序源代码:III|=for i in ran ge(3):x=i nt(raw_i nput(i nteger: n)l.appe nd(x)l.sort()print l题目8:用*号输出字母C的图案。1程序分析:可先用*号在纸上写出字母C,再分行输出2.

9、程序源代码: prin t Hello Python world! nprin t * * 10for i in ran ge(5):print prin t * * 10prin t * n * 6题目9:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1程序分析:字符共有256个。不同字符,图形不一样。2.程序源代码:a=176b=219print chr(b),chr(a),chr(a),chr(a),chr(b) print chr(a),chr(b),chr(a),chr(b),chr(a) print chr(a),chr(a),chr(b),chr(a),c

10、hr(a) print chr(a),chr(b),chr(a),chr(b),chr(a) print chr(b),chr(a),chr(a),chr(a),chr(b)题目10 :输出9*9 口诀。1程序分析:分行与列考虑,共 9行9列,i控制行,j控制列2.程序源代码:#i nclude stdio.hmai n()int i,j,result;prin tf( n);for (i=1;i10;i+) for(j=1;j10;j+)result=i*j;prin tf(%d*%d=%-3d,i,j,result);IIIfor i in ran ge(1,10):for j in ra

11、n ge(1,10):result=i * jprin t %d * %d=% -3d % (i,j,result)prin t 题目11 :要求输出国际象棋棋盘。1程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方 格。2.程序源代码:#i nclude stdio.hmai n()int i,j;for(i=0;i8;i+)for(j=0;j8;j+)if(i+j)%2=0)prin tf(%c%c,219,219);elseprintf();IIIimport sysfor i in ran ge(8):for j in ran ge(8):if(i + j

12、) % 2=0:sys.stdout.write(chr(219)sys.stdout.write(chr(219)else:sys.stdout.write()prin t III题目12 :打印楼梯,同时在楼梯上方打印两个笑脸。1程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:IIIimport syssys.stdout.write(chr(1)sys.stdout.write(chr(1)prin t for i in ran ge(1,11):for j in ran ge(1,i):sys.stdout.write(chr(219) sys.

13、stdout.write(chr(219)print ”III题目13 :古典问题:有一对兔子,从出生后第 3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1程序分析: 兔子的规律为数列1,1,2,3,5,8,13,212.程序源代码:mai n()long f1,f2;int i;f1=f2=1;for(i=1;ik,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整 数你n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值重复执行第一步。2.程序源代码: from sys import stdoutn=i

14、nt(raw_i nput(i nput nu mber: n)prin t n=%d % nfor i in ran ge(2 ,n + 1):while n !=i:if n % i=0:stdout.write(str(i)stdout.write(*)n=n / ielse:break题目16 :利用条件运算符的嵌套来完成此题:学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1程序分析:(ab)?a:b这是条件运算符的基本例子。2.程序源代码:不支持这个运算符IIIscore=in t(raw_i nput( in put score:n)if sc

15、ore =90:grade二Aelif score =60:grade二Belse:grade=Cprin t %d bel ongs to %s % (score,grade)III题目17 :输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1程序分析:利用while语句,条件为输入的字符不为n.2.程序源代码:IIIimport stri ngs=raw_i nput( in put a stri ng:n)letters=0 space=0digit=Oothers=0for c in s:if c.isalpha():letters +=1elif c.isspace

16、():space +=1elif c.isdigit():digit +=1else:others +=1prin t char=%d,space=%d,digit=%d,others=%d % (letters,space,digit,others)III题目18 :求s=a+aa+aaa+aaaa+aa.a勺值,其中 a是一个数字。例如 2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。2.程序源代码:Tn=0Sn=n=i nt(raw_i nput( n=:n) a=i nt(raw_i nput(a=: n)for

17、 count in ran ge( n):Tn=Tn + aa=a * 10Sn. appe nd(T n)print TnSn=reduce(lambda x,y : x + y,S n)print SnIII题目19 :一个数如果恰好等于它的因子之和,这个数就称为 完数”例如6=1 + 2 + 3.编 程找出1000以内的所有完数。1.程序分析:请参照程序 -上页程序14.2.程序源代码:from sys import stdout for j in ran ge(2,1001): k=n=-1s=jfor i in ran ge(1,j):if j % i=0:n +=1s -=ik.a

18、ppe nd(i)if s=0:print j for i in ran ge( n):stdout.write(ki)stdout.write()print kn100道Python编程题及答案(二) 题目21 :将一个数组逆序输出。1.程序分析:用第一个与最后一个交换2.程序源代码:if n ame =ma in a=9,6,5,4,1N=le n(a)print afor i in ran ge(le n(a) / 2):ai,aN - i - 1=aN - i - 1,aiprint a题目22 :猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃 了一个 第二天早上

19、又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少1.程序分析:采取逆向思维的方法,从后往前推断。2.程序源代码:x2=1for day in ran ge(9,0,-1):x1=(x2 + 1) * 2x2=x1print x1III题目23 :两个乒乓球队进行比赛,各出三人。甲队为 a,b,c三人,乙队为x,y,z三人。已 抽签决定比赛名单。有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。1程序分析:判断素数的方法:用一个数分别去除 2到sqrt(这个数

20、),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码: for i in ran ge(ord(x),ord(z) + 1):for j in ran ge(ord(x),ord(z) + 1):if i !=j:for k in ran ge(ord(x),ord(z) + 1):if (i !=k) and (j !=k):if (i !=ord(x) and (k !=ord(x) and (k !=ord(z):prin t order is a - %st b - %stc-%s % (chr(i),chr(j),chr(k)Illi题目24 :打印出如下图案(菱形)1程

21、序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。2.程序源代码: from sys import stdoutfor i in ran ge(4):for j in ran ge(2 - i + 1):stdout.write()for k in ran ge(2 * i + 1):stdout.write(*)printfor i in ran ge(3):for j in ran ge(i + 1):stdout.write()for k in ran ge(4 - 2 * i + 1):stdout.write(*)pr

22、int题目25 :有一分数序列:2/1 , 3/2 , 5/3 , 8/5 , 13/8 , 21/13求出这个数列的前 20项 之和。1.程序分析:请抓住分子与分母的变化规律。2.程序源代码:#方法一a=2.0b=1.0s=0for n in ran ge(1,21):s +=a / bt=aa=a + bb=tprint s#方法二s=0.0for n in ran ge(1,21):s +=a / bb,a=a , a + bprint ss=0.0for n in ran ge(1,21):s +=a / b b,a=a , a + bprint s#方法三 l=for n in ra

23、n ge(1,21):b,a=a,a + b1.appe nd(a / b)print reduce(lambda x,y: x + y,l)III题目 26 :求 1+2!+3!+.+20!的和1程序分析:此程序只是把累加变成了累乘2.程序源代码:III#方法一n=0s=0t=1for n in ran ge(1,21):t *=ns +=tprin t 1! + 2! + 3! + . + 20!=%d % s#方法二s=0l=ra nge(1,21) def op(x):r=1 for i in ran ge(1,x + 1):r *=ireturn rs=sum(map(op,l)pr

24、in t 1! + 2! + 3! + . + 20!=%d % sIII题目27 :利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:def fact(j):sum=0if j=0:sum=1else:sum=j * fact(j - 1)return sum100道Python编程题及答案(三)题目41 :画图,综合例子。1.程序分析:2.程序源代码:键盘不知道如何响应,先不写这个#in elude graphics.h#defi ne LEFT 0#defi ne TOP 0#defi ne RIGHT 639#defi ne BOTTOM 479#defi

25、 ne LINES 400#defi ne MAXCOLOR 15mai n()int driver,mode,error;int x1,y1;int x2,y2;int dx1,dy1,dx2,dy2,i=1;int coun t=0;int color=0;driver=VGA;mode=VGAHI;in itgraph(& driver,&m ode,);x1=x2=y1=y2=10;dx1= dy 1=2;dx2=dy2=3;while(!kbhit()lin e(x1,y1,x2,y2);x1+=dx1;y1+=dy1; x2+=dx2;y2+dy2;if(x1=RIGHT)dx 1

26、= -dx1;if(y1v=T0P|y1=B0TT0M)dy 1= -dy1;if(x2=RIGHT) dx2=-dx2;if(y2=BOTTOM) dy2=-dy2;if(+cou ntLINES)setcolor(color);color=(color=MAXCOLOR)?0:+color;closegraph();题目42 :学习static定义静态变量的用法1程序分析:2.程序源代码:III# python没有这个功能了,只能这样了 :)def varfu nc():var=0prin t var=%d % varvar +=1if name =main :for i in ran ge(3):varfunc()# attribut of class#作为类的一个属性吧class Static:StaticVar=5def varfun c(self):self.StaticVar +=1print self.StaticVarprint Static.StaticVara=Static()for i in ran ge(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1