当前位置:   article > 正文

Python全国计算机等级考试(2021)_获得用户输入的一个整数n,计算并输出n的32次方

获得用户输入的一个整数n,计算并输出n的32次方

目录

第二章Python语言基本语法元素

第三章 基本数据类型

第四章 程序的控制结构

第五章 函数和代码复用

第六章 组合数据类型

第七章 文件和数据格式化


第二章Python语言基本语法元素

1.获得用户输入的一个整数N,计算并输出N的32次方。

  1. N=eval(input("请输入一个整数N:"))
  2. print(N**32)

2.获得用户输入的一段文字,将这段文字进行垂直输出。

  1. str=input("请输入一句话:")
  2. n=len(str)
  3. for i in range(n):
  4. print(str[i])

3.获得用户输入的一个合法算式,例如1.2+3.4,输出运算结果。

print(eval(input("请输入一个合法算式:")))

4.获得用户输入的一个小数,提取并输出其整数部分。

  1. num=eval(input("请输入一个小数:"))
  2. print(int(num))

5.下面这段代码能够获得用户输入的一个整数N,计算并输出1到N相加的和。然而,这段代码存在多处语法错误,请指出错误所在并纠正。

  1. n=eval(input("请输入整数N:"))
  2. sum=0
  3. for i in range(n):
  4. sum+=i+1
  5. print(n)
  6. print("1到N求和结果:{}".format(sum))

第三章 基本数据类型

编程题

1.获得用户输入的一个整数,输出该整数百位及以上数字。

  1. num=input('请输入一个整数:')
  2. if len(num)<3:
  3. print('该整数无百位及以上的数字')
  4. else:
  5. print(num[:-2])

2.获得用户输入的一个字符串,将字符串按空格分割,然后逐行打印出来。

  1. str=input("请输入一个字符串:")
  2. n=" ".join(str)
  3. for i in n:
  4. print(i)

3.程序读入一个表示星期几的数字(1-7),输出对应的星期字符串名称。例如:输入3,返回“星期三”。

  1. day=eval(input("请输入星期几的数字(1-7):"))
  2. week=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
  3. print(week[day-1])

4.设n是一个自然数,如果n的各位数字反向排列所得的自然数与n相等,则被称为回文数。从键盘输入一个5位数字,请编写程序判断这个数字是不是回文数字。

  1. num=input("请输入任意一个5位数:")
  2. if num[0]==num[4] and num[1]==num[3]:
  3. print("这个数字是回文数")
  4. else:
  5. print("这个数字不是回文数")

或者

  1. num=input("请输入任意自然数:")
  2. n=num[::-1]
  3. if num==n:
  4. print("这个数字是回文数")
  5. else:
  6. print("这个数字不是回文数")

5.输入一个十进制整数,分别输出其二进制、八进制、十六进制字符串。

  1. num=eval(input("请输入一个十进制整数:"))
  2. print("十进制{0}转换为二进制数为{0:b},转换为八进制数为{0:o},\
  3. 转换为十六进制数为{0:x}".format(num,))

第四章 程序的控制结构

1.输入一个年份,输出是否为闰年。#闰年条件,能被4整除但不能被100整除,或者能被400整除的年份都是闰年。

  1. year=eval(input("请输入一个年份:"))
  2. if year % 4 == 0 and year % 100 != 0:
  3. print("{}是闰年".format(year))
  4. elif year % 400 == 0:
  5. print("{}是闰年".format(year))
  6. else:
  7. print("{}不是闰年".format(year))

2.最大公约数计算。获得两个整数,求出这两个最大整数的最大公约数和最小公倍数。最大公约数的计算一般使用辗转相除法,最小公倍数则使用两个数的乘积除以最大公约数。

  1. a=int(input("请输入第一个数:"))
  2. b=int(input("请输入第二个数:"))
  3. m=max(a,b)
  4. n=min(a,b)
  5. while m%n!=0:
  6. m,n=n,m%n
  7. print("两个数字的最大公约数为{}".format(n))
  8. print("两个数字的最小公倍数为{}".format(a*b/n))

3.统计不同字符个数。用户从键盘键入一行字符,编写一个程序,统计并输出其英文字符、数字、空格和其他字符的个数。

  1. str=input("请输入一行字符:")
  2. m=n=o=p=0
  3. for c in str:
  4. if "a"<=c<="z" or "A"<=c<="z":
  5. m+=1
  6. elif "0"<=c<="9":
  7. n+=1
  8. elif c==" ":
  9. o+=1
  10. else:
  11. p+=1
  12. print("英文字符个数为{},数字字符个数为{},\
  13. 空格字符个数为{},其他字符个数为{}".format(m,n,o,p))

4.猜数字游戏续。当用户输入的不是整数(如字母、浮点数等)时,程序会终止执行退出。改编题目1中的程序,当用户输入错误时给出“输入内容必须为整数!”的提示,并让用户重新输入。

  1. import random
  2. targe=random.randint(1,1000)
  3. count=0
  4. while True:
  5. try:
  6. guess=eval(input("请输入一个整数:"))
  7. except:
  8. print("输入内容必须为整数")
  9. continue
  10. count+=1
  11. if guess>targe:
  12. print("猜大了")
  13. elif guess<targe:
  14. print("猜小了")
  15. else:
  16. print("猜对了")
  17. break
  18. print("此轮的猜测次数是:",count)

5.羊车门问题。有三扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么。参赛者可以选择一扇门,在开启它之前,主持人会开启另一扇门,露出门后的山羊,然后允许参赛者更换自己的选择。请问:参赛者更换选择后能否增加猜中汽车的机会?这是一个经典问题。请使用random库对这个随机事件进项预测,分别输出参赛者改变选择和坚持选择获胜的概率。

  1. import random
  2. times=1000 #实验次数
  3. guess_1_count=0 #改变的人猜中的次数
  4. guess_2_count=0 #坚持的人猜中的次数
  5. for i in range(times):
  6. car=random.randint(1,3)
  7. guess=random.randint(1,3)
  8. if guess==car: #坚持选择的人始终选中的是车
  9. guess_2_count+=1
  10. if guess!=car: #改变选择的人能选中说明最开始选中的不是车
  11. guess_1_count+=1
  12. print("坚持选择获胜的概率为{:.1%}".format(guess_2_count/times))
  13. print("更换选择获胜的概率为{:.1%}".format(guess_1_count/times))

第五章 函数和代码复用

1.实现isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。

  1. def isNum(x):
  2. try:
  3. x=eval(x)
  4. if type(x)==type(1) or type(x)==type(1.1) or type(x)==type(1+1j):
  5. return True
  6. else:
  7. return False
  8. except:
  9. return False
  10. x=input("请输入一个字符串:")
  11. print(isNum(x))

2.实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。

  1. def isPrime(x):
  2. while True:
  3. try:
  4. x=eval(x)
  5. while type(x)!=int or x<=1:
  6. x=eval(input("输入的不是大于1的整数!请重新输入:"))
  7. if x==2:
  8. return True
  9. for i in range(2,x):
  10. if x%i==0:
  11. return False
  12. else:
  13. return True
  14. break
  15. except:
  16. x=input("输入的不是大于1的整数!请重新输入:")
  17. continue
  18. x=input("请输入的一个大于1的整数:")
  19. print(isPrime(x))

3.编写一个函数计算传入字符串中数字、字母、空格以及其他字符的个数。

  1. def num(str):
  2. a=b=c=d=0
  3. for i in str:
  4. if "0"<= i <="9":
  5. a+=1
  6. elif "a"<= i <="z" or "A"<= i <="Z":
  7. b+=1
  8. elif i==" ":
  9. c+=1
  10. else:
  11. d+=1
  12. print("数字{}个,字母{}个,空格{}个,其他字符{}个".format(a,b,c,d))
  13. str=input("请输入一段字符串:")
  14. num(str)

4.编写一个函数,打印200以内的所有素数,以空格分隔。

  1. def n(x):
  2. for i in range(2,x):
  3. n=True
  4. for j in range(2,i):
  5. if i%j==0:
  6. n=False
  7. if n:
  8. print(i,end=" ")
  9. n(200)

5.编写一个函数,参数为一个整数n。利用递归获取斐波那契数列中的第n个数并返回。

  1. def Fib(n):
  2. if n==1 or n==2:
  3. return 1
  4. else:
  5. return Fib(n-1)+Fib(n-2)
  6. n=eval(input("请输入整数:"))
  7. print(Fib(n))

第六章 组合数据类型

1.英文字符频率统计。编写一个程序,对给定字符串中出现的a~z字母频率进行分析,忽略大小写,采用降序排列。

  1. str=input("请输入一段字符串:")
  2. a=str.lower()
  3. b={}
  4. for i in a:
  5. if "a"<=i<="z":
  6. b[i]=b.get(i,0)+1
  7. c=list(b.items())
  8. c.sort(key=lambda x:x[1],reverse=True) #对二维数据进行降序排列
  9. for i in range(len(c)):
  10. character,count=c[i]
  11. print("{0:<3}{1:>5}".format(character,count))

2.中文字符频率统计。编写一个程序,对给定字符串中出现的全部字符(含中文字符)频率进行分析,采用降序方式排列。

  1. str=input("请输入一段字符串:")
  2. b={}
  3. for i in str:
  4. b[i]=b.get(i,0)+1
  5. c=list(b.items())
  6. c.sort(key=lambda x:x[1],reverse=True) #对二维数据进行降序排列
  7. for i in range(len(c)):
  8. character,count=c[i]
  9. print("{0:<3}{1:>5}".format(character,count))

3.随机密码生成。编写程序在26个字母大写和9个数字组成的列表中随机生成10个8位密码。

  1. import random
  2. str=[]
  3. password_list=[]
  4. password=[]
  5. for i in range(ord("a"),ord("z")): #密码组成
  6. str.append(chr(i))
  7. for i in range(ord("A"),ord("Z")):
  8. str.append(chr(i))
  9. for i in range(10):
  10. str.append(i)
  11. for i in range(10): #随机生成密码
  12. for j in range(8):
  13. j=random.randint(0,len(str)-1)
  14. password.append(str[j])
  15. password_list.append(password.copy())
  16. password.clear()
  17. for i in password_list: #密码打印
  18. for j in i:
  19. print(j,end='')
  20. print(' ')

4.重复元素判定。编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和输出结果的程序。

  1. def repeat(list=[]):
  2. for i in range(len(list)):
  3. for j in range(len(list)):
  4. if list[j]==list[i]:
  5. return True
  6. list=['e','d','f',1,4,5,6,6,4,3]
  7. print(repeat(list))

5.重复元素判定续。利用集的无重复性改变上一个程序,获得一个更快更简洁的版本。

  1. def repeat(list=[]):
  2. set_list=set(list)
  3. if len(list)>len(set_list):
  4. return True
  5. else:
  6. return False
  7. list=['e','d','f',1,4,5,6,6,4,3]
  8. print(repeat(list))

第七章 文件和数据格式化

1.输入一个文件和一个字符,统计该字符在文件中出现的次数。

  1. def repeatcount(text,a):
  2. text.lower()
  3. count=0
  4. for i in text:
  5. if i==a:
  6. count+=1
  7. return count
  8. def main(file):
  9. f=open(file,'r')
  10. text=f.read()
  11. f.close()
  12. return text
  13. text=main("E:\\全国计算机二级考试\\书上练习\\file.txt")
  14. a=input("请输入字符串:")
  15. print("{}重复了{}次".format(a,repeatcount(text,a)))

2.假设有一个英文文本文件,编写一个程序读取其内容并将里面的大写字母变成小写字母,小写字母变成大写字母。

  1. def upper_lower(text):
  2. text_r=""
  3. for i in text:
  4. if 'a'<=i<='z':
  5. text_r+=i.upper()
  6. else:
  7. text_r+=i.lower()
  8. print(text_r)
  9. def main(file):
  10. f=open(file,'r')
  11. text=f.read()
  12. f.close()
  13. return text
  14. text=main("E:\\全国计算机二级考试\\书上练习\\file.txt")
  15. upper_lower(text)

3.编写一个程序,生成一个10×10的随机矩阵并保存为文件(空格分隔行向量,换行分隔列向量),再写程序将刚才保存的矩阵文件另存为CSV格式,用Excel或文本编辑器打开看看结果对不对。

  1. import random
  2. def Matrix():
  3. matrix=""
  4. line=""
  5. for i in range(10):
  6. for j in range(10):
  7. line+="{} ".format(random.randint(1,100))
  8. matrix+="{}\n".format(line)
  9. line=""
  10. return matrix
  11. def output(a):
  12. a=Matrix()
  13. f=open("E:\\全国计算机二级考试\\书上练习\\matrix.csv","w")
  14. f.write(a.replace(" ",","))
  15. f.close
  16. output(Matrix())

4.编写一个程序,读取一个python源代码文件,将文件中所有除保留字外的小写字母换成大写字母,生成后的文件要能够被Python解释器正确执行。

以下以6.5代码为例。

  1. import keyword
  2. kw=keyword.kwlist
  3. other=["len","print","list","set"]
  4. kw+=other
  5. print(kw)
  6. f=open("E:\\全国计算机二级考试\\书上练习\\习题6.5.py","r")
  7. file=f.read()
  8. print(file)
  9. f.close
  10. FILE=file.upper()
  11. print(FILE)
  12. for word in kw:
  13. if word.upper() in FILE:
  14. FILE=FILE.replace(word.upper(),word)
  15. print(FILE)
  16. f_new=open("E:\\全国计算机二级考试\\书上练习\\习题6.5 改.py","w")
  17. f_new.write(FILE)
  18. f_new.close()

5.编写一个程序,要求能够将元素为任意Python支持的类型(包括含有半角逗号的字符串)的列表转储为CSV,并能够重新正确解析为列表。

  1. def list_csv(file,list):
  2. f=open(file,"w")
  3. f.write(",".join(list)+"\n")
  4. f.close
  5. def csv_list(file):
  6. f=open(file,"r")
  7. text=f.read().strip("\n").split(",")
  8. print(text)
  9. f.close
  10. list=input("请输入任意字符串:")
  11. list_csv("E:\\全国计算机二级考试\\书上练习\\7.5.csv",list)
  12. csv_list("E:\\全国计算机二级考试\\书上练习\\7.5.csv")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/621442
推荐阅读
相关标签
  

闽ICP备14008679号