选择题 共5道
编程题 共6道
已知:l = ['a','b','c','d','e','f','g'],执行print(l.pop(2), len(l))语句后,输出的结果是( )。
下列表达式中,返回True的是( )。
已知:d = {'lan':1,'qiao':2,'qing':3,'shao':4},执行print(d.pop(max(d.keys()), 0))语句后,输出的结果是( )。
以下关于函数描述正确的是( )。
关于对打开文件函数open(<文件路径名>,<打开模式>)中的打开模式描述正确是( )。
编程实现:
给定一个正整数N,然后将N中各数位上的数字相乘,并输出最后的乘积。
例如:N=132,各数位相乘后的乘积为6(6=1*3*2)
输入描述:
输入一个正整数N
输出描述:
将N中各数位上的数字相乘,并输出最后的乘积
样例输入:
132
样例输出:
6
在一根电线上落有N只小鸟,有的小鸟头向左看,有的小鸟头向右看,且每只小鸟只能看到它视线前的那一只小鸟。
给定N只小鸟头的朝向,头向左看的小鸟使用小写字母“q”表示,头向右看的小鸟用小写字母“p”表示,请你计算出N只小鸟中有多少只小鸟被0只小鸟看到,多少只小鸟被1只小鸟看到,多少只小鸟被2只小鸟看到。
例如:N=6,6只小鸟头的朝向分别为p,q,p,p,q,q。
如图:有2只小鸟被0只小鸟看到(第3只和第6只);有2只小鸟被1只小鸟看到(第1只和第2只);有2只小鸟同时被2只小鸟看到(第4只和第5只)。
则输出三个数字分别为2,2,2。
第一行输入一个正整数N(3≤N≤1000),表示有N只小鸟落在电线上
第二行输入N个字符,字符只能为“q”和“p”,“q”表示小鸟头向左看,“p”表示小鸟头向右看,字符之间以一个英文逗号隔开
一行输出三个整数,分别为有几只小鸟被0只小鸟看到;有几只小鸟被1只小鸟看到;有几只小鸟被2只小鸟看到;整数之间一个英文逗号隔开
6 p,q,p,p,q,q
2,2,2
某班级男生人数为X人,女生人数为Y人,现全班同学围成一个圆圈,并按照顺时针方向为每名同学编号(编号从1到X+Y)。现给出一个正整数K【2<K<(X+Y)】,从编号为1的同学开始顺时针方向报数,报到K的同学退出圆圈,下一名同学继续从1报数,再次报到K的同学退出圆圈。如此循环,直到剩余人数为X时游戏结束。
请你计算出游戏开始时X名男生分别应该排在什么位置,才能保证每次离开的都是女生,游戏结束时剩余X人都是男生。并将游戏开始时每名男生的位置编号按照从小到大顺序输出。
例如:X=5,Y=3,K=3,8名同学按照如下顺序排列,可以使3轮报数过后最后剩余的5名同学都为男生(蓝色为男生位置,红色为女生位置)。
故5名男同学的编号分别为2,4,5,7,8。
输入三个正整数X,Y,K(3≤X≤100,3≤Y≤100,2<K<(X+Y)),X表示男生人数,Y表示女生人数,报数为K的同学退出圆圈,三个正整数之间以一个空格隔开
将每名男生位置编号按照从小到大的顺序输出,编号之间以一个空格隔开
5 3 3
2 4 5 7 8
老师要奖励N名成绩优秀的同学,首先N名同学按随机顺序排成一排,且每名同学都对应一个成绩(成绩各不相同),然后按照如下规则进行奖励。
规则:
1)每名同学至少奖励1支铅笔;
2)每一名同学拿到铅笔后,都会和左右相邻的同学作比较,如果相邻的同学成绩比自己高,那么铅笔数也一定比自己多,如果相邻的同学成绩比自己低,那么铅笔数一定比自己少。(注意每个人成绩都不同)
当给出要奖励的同学数N,及N名同学的成绩及排序位置,请你按照规则帮助老师计算出最少需要奖励多少支铅笔。
例如:
当N=3,3名同学的成绩分别为:91,92,94
如果3名同学的排序为:91,94,92,最少需要奖励4支铅笔(成绩为91的同学1支,成绩为94的同学2支,成绩为92的同学1支);
如果3名同学的排序为:91,92,94,最少需要奖励6支铅笔(成绩为91的同学1支,成绩为92的同学2支,成绩为94的同学3支)。
第一行输入一个正整数N,N表示要奖励的同学数
第二行输入N个正整数,每个正整数表示一名同学的成绩(成绩各不相同),正整数之间以一个英文逗号隔开,正整数的顺序即代表学生的排序
输出一个整数,表示N名同学最少需要奖励的铅笔数
3 91,94,92
4
小蓝在玩翻卡片游戏,每张卡片一面写着大写字母“A”,另一面写着大写字母“B”。首先将卡片排成一个N*N的矩阵。有的卡片是A面朝上,有的卡片是B面朝上。
现给定N的值,及N*N矩阵中每张卡片的状态,请你帮助小蓝挑选一张B面的卡,翻转成A面,使得翻转后的上、下、左、右四个方向相连的A面卡片最多,并将相连最多的卡片数量输出。
例如:N=3,3*3的矩阵中的卡片状态如下:
选择红框内那张B面卡片,翻转为A面,可以使翻转后四个方向相连的A面卡片最多,为5张。
第一行输入一个正整数N(2≤N≤50),表示矩阵的行数和列数
第二行开始输入N行,每行输入N个字符(‘A’或者‘B’),表示矩阵中卡片状态,字符之间以一个英文逗号隔开
输出一个整数,表示翻转后矩阵中上、下、左、右四个方向相连的最多A面卡片张数
3 A,B,B A,B,A B,A,B
5
给出一排黑色带数字的小球(数字为0到9),和一排白色带数字的小球(数字为0到9),现从两排小球中一共选取K个小球排成一排。
要求:
1)选出的黑色小球顺序要和原来顺序一致;
2)选出的白色小球顺序要和原来顺序一致;
在满足以上要求的情况下,使得K个小球排成新的一排组成的数字最大
黑色小球的原顺序为:
白色小球的原顺序为:
K为3;
从两排小球中共选取3个小球,排成
可以组成的最大数字为654。
第一行输入一组正整数,代表黑色小球,每个正整数范围为0到9,正整数之间以一个英文逗号隔开
第二行输入一组正整数,代表白色小球,每个正整数范围为0到9,正整数之间以一个英文逗号隔开
第三行输入一个正整数K(K小于等于所有小球的总数),表示从所有小球中共选取K个小球
输出一个整数,表示按照要求选取K个小球后,组成的最大数字
2,5,3 6,2,4,1 3
654