Python道经典练习题答案 .pdf

上传人:C****o 文档编号:39704067 上传时间:2022-09-07 格式:PDF 页数:42 大小:229.63KB
返回 下载 相关 举报
Python道经典练习题答案 .pdf_第1页
第1页 / 共42页
Python道经典练习题答案 .pdf_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《Python道经典练习题答案 .pdf》由会员分享,可在线阅读,更多相关《Python道经典练习题答案 .pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、獨傢惜愛獨傢棄愛獨傢襲愛#!/usr/bin/env python#coding:utf-8【程序 1】题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码:for i in range(1,5):for j in range(1,5):for k in range(1,5):if(i!=k)and(i!=j)and(j!=k):print i,j,k【程序 2】题目:企业发放的奖金根据利润提成。利润(I)低于或等于10 万元时,奖金可提10%;

2、利润高于 10 万元,低于20 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可可提成 7.5%;20 万到 40 万之间时,高于20 万元的部分,可提成5%;40 万到 60 万之间时高于40 万元的部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5%,高于100 万元时,超过100 万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。2.程序源代码:bonus1=100000*0.1bonus2=bonus1+100000*0.500075bonus4=b

3、onus2+200000*0.5bonus6=bonus4+200000*0.3bonus10=bonus6+400000*0.15i=int(raw_input(input gain:n)if i=100000:bonus=i*0.1elif i=200000:bonus=bonus1+(i-100000)*0.075elif i=400000:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 42 页 -bonus=bonus2+(i-200000)*0.05elif i=600000:bonus=bonus4+(i-400000)*0.03elif i=1000000:bon

4、us=bonus6+(i-600000)*0.015else:bonus=bonus10+(i-1000000)*0.01print bonus=,bonus【程序 3】题目:一个整数,它加上 100 后是一个完全平方数,再加上 268 又是一个完全平方数,请问该数是多少?1.程序分析:在10 万以内判断,先将该数加上100 后再开方,再将该数加上268 后再开方,如果开方后的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:#include math.hmain()long int i,x,y,z;for(i=1;i100000;i+)x=sqrt(i+100);/*x 为加上 10

5、0 后开方后的结果*/y=sqrt(i+268);/*y 为再加上268 后开方后的结果*/if(x*x=i+100&y*y=i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(n%ldn,i);import mathfor i in range(10000):#转化为整型值x=int(math.sqrt(i+100)y=int(math.sqrt(i+268)if(x*x=i+100)and(y*y=i+268):print i【程序 4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3 月 5 日为例,应该先把前两个月的加起来,然

6、后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。2.程序源代码:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 42 页 -year=int(raw_input(year:n)month=int(raw_input(month:n)day=int(raw_input(day:n)months=(0,31,59,90,120,151,181,212,243,273,304,334)if 0=month 2):sum+=1print it is the%dth day.%sum【程序 5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序

7、分析:我们想办法把最小的数放到x 上,先将x 与 y 进行比较,如果xy 则将 x 与 y的值进行交换,然后再用x 与 z 进行比较,如果xz 则将 x 与 z 的值进行交换,这样能使x 最小。2.程序源代码:l=for i in range(3):x=int(raw_input(integer:n)l.append(x)l.sort()print l【程序 6】题目:用*号输出字母C 的图案。1.程序分析:可先用*号在纸上写出字母C,再分行输出。2.程序源代码:print Hello Python world!nprint*10for i in range(5):print*print*10

8、名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 42 页 -print*n*6【程序 7】题目:输出特殊图案,请在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),chr(a)print chr(a),chr(b),chr(a),chr(b),chr(a)pri

9、nt chr(b),chr(a),chr(a),chr(a),chr(b)【程序 8】题目:输出9*9 口诀。1.程序分析:分行与列考虑,共9 行 9 列,i 控制行,j 控制列。2.程序源代码:#include stdio.hmain()int i,j,result;printf(n);for(i=1;i10;i+)for(j=1;j10;j+)result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d 表示左对齐,占3 位*/printf(n);/*每一行后换行*/for i in range(1,10):for j in range(1,10):resu

10、lt=i*jprint%d*%d=%-3d%(i,j,result)print【程序 9】题目:要求输出国际象棋棋盘。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 42 页 -1.程序分析:用i 控制行,j 来控制列,根据i+j 的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#include stdio.hmain()int i,j;for(i=0;i8;i+)for(j=0;j8;j+)if(i+j)%2=0)printf(%c%c,219,219);elseprintf();printf(n);import sysfor i in range(8):for j i

11、n range(8):if(i+j)%2=0:sys.stdout.write(chr(219)sys.stdout.write(chr(219)else:sys.stdout.write()print【程序 10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。1.程序分析:用i 控制行,j 来控制列,j 根据 i 的变化来控制输出黑方格的个数。2.程序源代码:import syssys.stdout.write(chr(1)sys.stdout.write(chr(1)print for i in range(1,11):for j in range(1,i):sys.stdout.write

12、(chr(219)sys.stdout.write(chr(219)print 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 42 页 -【程序 11】题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.2.程序源代码:main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+)printf(%12ld%12ld,f1,f2);if(i%2=0)printf(n);/*控制输出,每行

13、四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/f1=1f2=1for i in range(1,21):print%12d%12d%(f1,f2)if(i%2)=0:print f1=f1+f2f2=f1+f2【程序 12】题目:判断101-200 之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:h=0leap=1from math import sqrtfrom sys import stdoutfor

14、 m in range(101,201):k=int(sqrt(m+1)for i in range(2,k+1):if m%i=0:leap=0名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 42 页 -breakif leap=1:print%-4d%mh+=1if h%10=0:print leap=1print The total is%d%h【程序 13】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为153=1 的三次方 5 的三次方 3 的三次方。1.程序分析:利用for 循环控制1

15、00-999 个数,每个数分解出个位,十位,百位。2.程序源代码:for n in range(100,1001):i=n/100j=n/10%10k=n%10if i*100+j*10+k=i+j*2+k*3:print%-5d%n【程序 14】题目:将一个正整数分解质因数。例如:输入90,打印出 90=2*3*3*5。程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果 nk,但 n 能被 k 整除,则应打印出k 的值,并用n 除以 k 的商,作为新的正整数你n,重复执行第一步。(3

16、)如果 n 不能被 k 整除,则用k+1 作为 k 的值,重复执行第一步。2.程序源代码:from sys import stdoutn=int(raw_input(input number:n)print n=%d%nfor i in range(2,n+1):while n!=i:if n%i=0:stdout.write(str(i)名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 42 页 -stdout.write(*)n=n/ielse:breakprint%d%n【程序 15】题目:利用条件运算符的嵌套来完成此题:学习成绩=90 分的同学用A 表示,60-89 分之间

17、的用 B 表示,60 分以下的用C表示。1.程序分析:(ab)?a:b 这是条件运算符的基本例子。2.程序源代码:不支持这个运算符score=int(raw_input(input score:n)if score=90:grade=Aelif score=60:grade=Belse:grade=Cprint%d belongs to%s%(score,grade)【程序 17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析:利用while 语句,条件为输入的字符不为n.2.程序源代码:import strings=raw_input(input a s

18、tring:n)letters=0space=0digit=0others=0for c in s:if c.isalpha():letters+=1elif c.isspace():space+=1elif c.isdigit():digit+=1else:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 42 页 -others+=1print char=%d,space=%d,digit=%d,others=%d%(letters,space,digit,others)题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a 是一个数字。例如2+22+222+2222+2

19、2222(此时共有 5 个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。2.程序源代码:Tn=0Sn=n=int(raw_input(n=:n)a=int(raw_input(a=:n)for count in range(n):Tn=Tn+aa=a*10Sn.append(Tn)print TnSn=reduce(lambda x,y:x+y,Sn)print Sn【程序 19】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程找出 1000 以内的所有完数。1.程序分析:请参照程序-上页程序 14.2.程序源代码:from sys im

20、port stdoutfor j in range(2,1001):k=n=-1s=jfor i in range(1,j):if j%i=0:n+=1s-=ik.append(i)if s=0:print jfor i in range(n):stdout.write(ki)stdout.write()名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 42 页 -print kn【程序 20】题目:一球从100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第 10 次落地时,共经过多少米?第10 次反弹多高?1.程序分析:见下面注释2.程序源代码:Sn=100.0

21、Hn=Sn/2for n in range(2,11):Sn+=2*HnHn/=2print Total of road is%f%Snprint The tenth is%f meter%Hn【程序 21】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。1.程序分析:采取逆向思维的方法,从后往前推断。2.程序源代码:x2=1for day in range(9,0,-1):x1=(x2+1)*2x2=x1p

22、rint x1【程序 22】题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c 三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a 说他不和x 比,c 说他不和 x,z 比,请编程序找出三队赛手的名单。1.程序分析:判断素数的方法:用一个数分别去除2 到 sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。2.程序源代码:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 42 页 -for i in range(ord(x),ord(z)+1):for j in range(ord(x),ord(z)+1):if i!=j:for k

23、 in range(ord(x),ord(z)+1):if(i!=k)and(j!=k):if(i!=ord(x)and(k!=ord(x)and(k!=ord(z):print order is a-%st b-%stc-%s%(chr(i),chr(j),chr(k)【程序 23】题目:打印出如下图案(菱形)*1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for 循环,第一层控制行,第二层控制列。2.程序源代码:from sys import stdoutfor i in range(4):for j in range(2-i+1):stdout.writ

24、e()for k in range(2*i+1):stdout.write(*)printfor i in range(3):for j in range(i+1):stdout.write()for k in range(4-2*i+1):stdout.write(*)print【程序 24】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20 项之和。1.程序分析:请抓住分子与分母的变化规律。2.程序源代码:#方法一a=2.0名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 42 页 -b=1.0s=0for n in range(1

25、,21):s+=a/bt=aa=a+bb=tprint s#方法二s=0.0for n in range(1,21):s+=a/bb,a=a,a+bprint ss=0.0for n in range(1,21):s+=a/bb,a=a,a+bprint s#方法三l=for n in range(1,21):b,a=a,a+bl.append(a/b)print reduce(lambda x,y:x+y,l)【程序 25】题目:求 1+2!+3!+.+20!的和1.程序分析:此程序只是把累加变成了累乘。2.程序源代码:#方法一n=0s=0t=1for n in range(1,21):t*

26、=ns+=tprint 1!+2!+3!+.+20!=%d%s#方法二s=0l=range(1,21)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 42 页 -def op(x):r=1for i in range(1,x+1):r*=ireturn rs=sum(map(op,l)print 1!+2!+3!+.+20!=%d%s【程序 26】题目:利用递归方法求5!。1.程序分析:递归公式:fn=fn_1*4!2.程序源代码:def fact(j):sum=0if j=0:sum=1else:sum=j*fact(j-1)return sumfor i in range(

27、5):print%d!=%d%(i,fact(i)【程序 27】题目:利用递归函数调用方式,将所输入的5 个字符,以相反顺序打印出来。1.程序分析:2.程序源代码:def palin(n):next=0if n=1:next=input()printprint nextelse:next=input()palin(n-1)print nexti=5palin(i)print名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 42 页 -【程序 28】题目:有 5 个人坐在一起,问第五个人多少岁?他说比第4 个人大 2 岁。问第4 个人岁数,他说比第3 个人大 2 岁。问第三个人,又

28、说比第2 人大两岁。问第2 个人,说比第一个人大两岁。最后问第一个人,他说是10 岁。请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10 岁),再往回推。def age(n):if n=1:c=10else:c=age(n-1)+2return cprint age(5)【程序 29】题目:给一个不多于5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。1.程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法,师专数002 班赵鑫提供)2.程序源代码:x=int(raw_inpu

29、t(input a number:n)a=x/10000b=x%10000/1000c=x%1000/100d=x%100/10e=x%10if a!=0:print there are 5,e,d,c,b,aelif b!=0:print there are 4,d,c,b,aelif c!=0:print there are 3,e,d,celif d!=0:print there are 2,e,delse:print there are 1,e 题目:一个5 位数,判断它是不是回文数。即12321 是回文数,个位与万位相同,十位与千位相同。1.程序分析:同29 例2.程序源代码:名师资

30、料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 42 页 -x=int(raw_input(input a number:n)x=str(x)for i in range(len(x)/2):if xi!=x-i-1:print this number is not a huiwenbreakprint this number is a huiwen程序 31】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if 语句判断第二个字母。2.程序源代码:from sys im

31、port stdinletter=stdin.read(1)stdin.flush()while letter!=Y:if letter=S:print please input second letterletter=stdin.read(1)stdin.flush()if letter=a:print Saturdayelif letter=u:print Sundayelse:print data errorbreakelif letter=F:print Fridaybreakelif letter=M:print Monday#breakelif letter=T:print ple

32、ase input second letterletter=stdin.read(1)stdin.flush()if letter=u:print Tuesdayelif letter=h:名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 42 页 -print Thursdayelse:print data errorbreakelif letter=W:print Wednesdayelse:print data errorletter=stdin.read(1)stdin.flush()【程序 32】题目:Press any key to change color,do y

33、ou want to try it.Please hurry up!1.程序分析:2.程序源代码:不知道写呢:(,先空着吧【程序 33】题目:学习gotoxy()与 clrscr()函数1.程序分析:2.程序源代码:不知道如何写:(先空着吧【程序 34】题目:练习函数调用1.程序分析:2.程序源代码:def hello_world():print hello worlddef three_hellos():for i in range(3):hello_world()if _name_=_main_:three_hellos()【程序 35】题目:文本颜色设置1.程序分析:2.程序源代码:名师

34、资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 42 页 -#include void main(void)int color;for(color=1;color lj:min=jli,lmin=lmin,liprint after sortedfor i in range(N):print li【程序 38】题目:求一个3*3 矩阵对角线元素之和1.程序分析:利用双重for 循环控制输入二维数组,再将aii 累加后输出。2.程序源代码:if _name_=_main_:a=sum=0.0for i in range(3):a.append()for j in range(3):a

35、i.append(float(raw_input(input num:n)for i in range(3):sum+=aiiprint sum【程序 39】题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。1.程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。2.程序源代码:名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 42 页 -if _name_=_main_:#方法一a=1,4,6,9,13,16,19,28,40,100,0print original list is:for i

36、 in range(len(a):print ainumber=int(raw_input(insert a new number:n)end=a9if number end:a10=numberelse:for i in range(10):if ai number:temp1=aiai=numberfor j in range(i+1,11):temp2=ajaj=temp1temp1=temp2breakfor i in range(11):print ai#方法二#insrt another numbernumber=int(raw_input(input a number:n)if

37、number alen(a)-1:a.append(number)else:for i in range(len(a):if ai number:a.insert(i,number)print a【程序 40】题目:将一个数组逆序输出。1.程序分析:用第一个与最后一个交换。2.程序源代码:if _name_=_main_:a=9,6,5,4,1N=len(a)print afor i in range(len(a)/2):名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 42 页 -ai,aN-i-1=aN-i-1,aiprint a【程序 41】题目:学习static 定义静态

38、变量的用法1.程序分析:2.程序源代码:#python 没有这个功能了,只能这样了:)def varfunc():var=0print var=%d%varvar+=1if _name_=_main_:for i in range(3):varfunc()#attribut of class#作为类的一个属性吧class Static:StaticVar=5def varfunc(self):self.StaticVar+=1print self.StaticVarprint Static.StaticVara=Static()for i in range(3):a.varfunc()题目:学

39、习使用auto 定义变量的用法1.程序分析:2.程序源代码:没有 auto 关键字,使用变量作用域来举例吧num=2def autofunc():num=1print internal block num=%d%numnum+=1for i in range(3):print The num=%d%numnum+=1autofunc()名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 42 页 -【程序 43】题目:学习使用static 的另一用法。1.程序分析:2.程序源代码:有一个 static 变量的用法,python 是没有,演示一个python 作用域使用方法class

40、 Num:nNum=1def inc(self):self.nNum+=1print nNum=%d%self.nNumif _name_=_main_:nNum=2inst=Num()for i in range(3):nNum+=1print The num=%d%nNuminst.inc()【程序 44】题目:学习使用external 的用法。1.程序分析:2.程序源代码:external.py 代码:import externalif _name_=_main_:print external.add(10,20)【程序 45】题目:学习使用register 定义变量的方法。1.程序分析

41、:2.程序源代码:没有 register 关键字,用整型变量代替tmp=0for i in range(1,101):tmp+=iprint The sum is%d%tmp名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 42 页 -【程序 46】题目:宏#define 命令练习(1)1.程序分析:2.程序源代码:没有 C语言的宏,就这么写了TRUE=1FALSE=0def SQ(x):return x*xprint Program will stop if input value less than 50.again=1while again:num=int(raw_inpu

42、t(Please input number)print The square for this number is%d%(SQ(num)if num=50:again=TRUEelse:again=FALSE题目:宏#define 命令练习(2)1.程序分析:2.程序源代码:#include stdio.h#define exchange(a,b)/*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上*/这个宏定义python 不支持def exchange(a,b):a,b=b,areturn(a,b)if _name_=_main_:x=10y=20print x=%d,y=%d%(

43、x,y)x,y=exchange(x,y)print x=%d,y=%d%(x,y)名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 42 页 -【程序 48】题目:宏#define 命令练习(3)1.程序分析:2.程序源代码:#define LAG#define SMA j:print%d larger than%d%(i,j)elif i=j:print%d equal to%d%(i,j)elif i y)?x:y#define MINIMUM(x,y)(xy)?y:x名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 42 页 -void main()int

44、a=10,b=20;#ifdef MAXprintf(40:The larger one is%dn,MAXIMUM(a,b);#elseprintf(40:The lower one is%dn,MINIMUM(a,b);#endif#ifndef MINprintf(40:The lower one is%dn,MINIMUM(a,b);#elseprintf(40:The larger one is%dn,MAXIMUM(a,b);#endif#undef MAX#ifdef MAXprintf(40:The larger one is%dn,MAXIMUM(a,b);#elseprin

45、tf(40:The lower one is%dn,MINIMUM(a,b);#endif#define MIN#ifndef MINprintf(40:The lower one is%dn,MINIMUM(a,b);#elseprintf(40:The larger one is%dn,MAXIMUM(a,b);#endif这个还是预处理的用法,python 不支持这样的机制,演示lambda 的使用。MAXIMUM=lambda x,y:(x y)*x+(x y)*y+(x y)*xif _name_=_main_:a=10b=20print The largar one is%d%MA

46、XIMUM(a,b)print The lower one is%d%MINIMUM(a,b)【程序 51】题目:学习使用按位与&。1.程序分析:0&0=0;0&1=0;1&0=0;1&1=12.程序源代码:if _name_=_main_:a=077名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 42 页 -b=a&3print a&b=%d%bb&=7print a&b=%d%b题目:学习使用按位或|。1.程序分析:0|0=0;0|1=1;1|0=1;1|1=12.程序源代码:if _name_=_main_:a=077b=a|3print a|b is%d%bb|=7pr

47、int a|b is%d%b【程序 53】题目:学习使用按位异或。1.程序分析:00=0;01=1;10=1;11=02.程序源代码:if _name_=_main_:a=077b=a 3print The a 3=%d%bb=7print The a b=%d%b【程序 54】题目:取一个整数a 从右端开始的47 位。程序分析:可以这样考虑:(1)先使 a 右移 4 位。(2)设置一个低4 位全为 1,其余全为0 的数。可用(0 4c=(0 4)d=b&cprint%ot%o%(a,d)【程序 55】名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 42 页 -题目:学习使用按

48、位取反。1.程序分析:0=1;1=0;2.程序源代码:如何查看复数的16 进制数if _name_=_main_:a=234b=aprint The as 1 complement is%d%ba=aprint The as 2 complement is%d%a【程序 56】题目:画图,学用circle 画圆形。1.程序分析:2.程序源代码:#include graphics.hmain()int driver,mode,i;float j=1,k=1;driver=VGA;mode=VGAHI;initgraph(&driver,&mode,);setbkcolor(YELLOW);for

49、(i=0;i=25;i+)setcolor(8);circle(310,250,k);k=k+j;j=j+0.3;if _name_=_main_:from Tkinter import*canvas=Canvas(width=800,height=600,bg=yellow)canvas.pack(expand=YES,fill=BOTH)k=1j=1for i in range(0,26):canvas.create_oval(310-k,250-k,310+k,250+k,width=1)k+=j名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 42 页 -j+=0.3ma

50、inloop()【程序 57】题目:画图,学用line 画直线。1.程序分析:2.程序源代码:if _name_=_main_:from Tkinter import*canvas=Canvas(width=300,height=300,bg=green)canvas.pack(expand=YES,fill=BOTH)x0=263y0=263y1=275x1=275for i in range(19):canvas.create_line(x0,y0,x0,y1,width=1,fill=red)x0=x0-5y0=y0-5x1=x1+5y1=y1+5x0=263y1=275y0=263fo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁