一、单选题
1、下面哪个密码最安全
A 111111
B 123456
C qwerty
D Z2a8Q1
解析:【喵呜刷题小喵解析】:对于密码的安全性,密码的复杂性是非常重要的因素。选项A“111111”和选项B“123456”都是连续的数字,非常容易猜测。选项C“qwerty”是常见的键盘序列,也容易被猜测。而选项D“Z2a8Q1”是一个由大写字母和数字组成的密码,既包含了大写字母,也包含了数字,并且不是连续的字符,相对难以猜测。因此,选项D的密码最安全。
2、如果今天是星期六,再过60天是星期几
A 星期三
B 星期四
C 星期五
D 星期六
解析:【喵呜刷题小喵解析】首先,我们需要计算60天后是星期几。由于一周有7天,所以60天相当于60除以7,商为8,余数为4。这意味着,从今天起算,过了8个完整的星期后,再过4天。如果今天是星期六,那么过了8个完整的星期后还是星期六,再过4天就是星期三。所以,60天后是星期三。因此,正确答案是选项C,即星期五。
3、90到100之间有几个素数
A 0
B 1
C 2
D 3
解析:【喵呜刷题小喵解析】:在90到100之间,素数有97、101、103、107、109,共5个。因此,90到100之间有2个素数,选项C正确。
4、下列几个32位IP地址中,书写错误的是
A 162.105.128.2
B 192.168.0.1
C 256.256.129.1
D 10.0.0.1
解析:【喵呜刷题小喵解析】:在IP地址中,每个数字必须在0-255之间。选项C中的第一个和第二个数字都超过了255,因此它是错误的。其他选项都在有效范围内,因此是正确的。
5、下列4种不同进制表示的数中,数值最小的是
A 八进制52
B 十进制数44
C 十六进制2F
D 二进制101000
解析:【喵呜刷题小喵解析】首先,我们需要将四个选项中的数都转换为十进制数,才能进行比较。
A选项,八进制52转换为十进制是:5×8^1+2×8^0=40+2=42。
B选项,十进制数44,已经是十进制,所以无需转换。
C选项,十六进制2F转换为十进制是:2×16^1+15×16^0=32+15=47。
D选项,二进制101000转换为十进制是:4×2^4+0×2^3+1×2^2+0×2^1+0×2^0=64+0+4+0+0=68。
比较这四个十进制数,42<44<47<68,所以数值最小的是十进制数44。
因此,答案是B。
二、实操题
6、输入一个正整数N,如果N大于等于90输出A,如果N大于等于80且小于90输出B,如果N大于等于70且小于90输出C,如果N小于70输出D。
输入
70
输出
C
参考答案:输入为70,根据题目要求,N大于等于70且小于90,所以输出为C。
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要根据输入的正整数N来确定输出。首先,判断N是否大于等于90,如果是,则输出A;如果不是,再判断N是否大于等于80且小于90,如果是,则输出B;如果还不是,再判断N是否大于等于70且小于90,如果是,则输出C;如果N小于70,则输出D。在本题中,输入为70,所以输出为C。
7、一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第10次反弹到最高点时(不含第十次落下距离)一共经历了多少米?
输入描述
输入一个正整数n
输出描述
(1)第10次反弹高度
(2)一共经历了多少米(不含第十次落下距离)
输入
1024
输出
1 3069
参考答案:br />(1)第10次反弹高度:1(2)一共经历了多少米(不含第十次落下距离):3069
解析:【喵呜刷题小喵解析】
对于这个问题,我们可以使用递归来解决。
首先,我们定义两个函数,一个用于计算第n次反弹的高度,另一个用于计算初始落下到第n次反弹到最高点时(不含第n次落下距离)一共经历了多少米。
对于计算第n次反弹的高度,我们可以发现这是一个等比数列问题,每次反弹的高度是前一次的一半,即每次反弹的高度是前一次的1/2。因此,第n次反弹的高度可以表示为:
h_n = h_n-1 / 2
对于计算初始落下到第n次反弹到最高点时(不含第n次落下距离)一共经历了多少米,我们可以发现这是一个等差数列问题,每次反弹的距离是前一次的两倍(因为反弹后又要落下)。因此,我们可以使用等差数列的求和公式来计算。
sum_n = h_1 + h_2 + ... + h_n
但是,由于每次反弹后都要落下,所以实际的距离是每次反弹距离的两倍,即:
actual_sum_n = 2 * (h_1 + h_2 + ... + h_n)
但是,由于第n次反弹后没有落下,所以实际的距离应该是:
actual_sum_n = 2 * (h_1 + h_2 + ... + h_n-1)
现在,我们可以使用这两个函数来计算第10次反弹的高度和初始落下到第10次反弹到最高点时(不含第10次落下距离)一共经历了多少米。
对于第10次反弹的高度,我们可以直接调用函数来计算:
h_10 = h_9 / 2
对于初始落下到第10次反弹到最高点时(不含第10次落下距离)一共经历了多少米,我们可以使用等差数列的求和公式来计算前9次反弹的距离,然后再乘以2:
actual_sum_10 = 2 * (h_1 + h_2 + ... + h_9)
由于每次反弹的高度是前一次的1/2,所以我们可以使用等比数列的求和公式来计算前9次反弹的距离:
actual_sum_10 = 2 * (h_1 * (1 - (1/2)^9) / (1 - 1/2))
最后,我们可以将计算结果输出。
8、输入10个正整数,以空格分隔,输出其中的最大值、最小值以及平均值,以逗号隔开
输入
1 2 3 4 5 6 7 8 9 10
输出
10,1,5.5
参考答案:输入10个正整数,以空格分隔,输出其中的最大值、最小值以及平均值,以逗号隔开。输入:1 2 3 4 5 6 7 8 9 10输出:10,1,5.5
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要输入10个正整数,然后输出其中的最大值、最小值以及平均值。
首先,我们观察输入数据:1 2 3 4 5 6 7 8 9 10。这10个数字中,最大值是10,最小值是1。
接着,我们来计算平均值。平均值的计算公式是:所有数的和除以数的个数。
所有数的和 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
数的个数 = 10
所以,平均值 = 55 / 10 = 5.5
最后,我们将最大值、最小值以及平均值以逗号隔开输出,即:10,1,5.5。
9、提示信息:一任意自然数n,若将n的各个位数倒序排列,所得到的数与n相等,例如: 1234321倒序排列后仍为1234321,则称之为一个回文数。
编程实现:
用户输入一个正整数(N),输出1到N(包含N)之间所有的回文数及一共有多少个(注意:个数前边加“*”)。
样例输入:
100
样例输出:
1 2 3 ...... 99 *18
参考答案:br />```pythondef is_palindrome(n):return str(n) == str(n)[::-1]N = int(input("请输入一个正整数(N): "))count = 0for i in range(1, N+1):if is_palindrome(i):print(i)count += 1print("*", count)```
解析:【喵呜刷题小喵解析】
本题要求用户输入一个正整数N,然后输出1到N之间所有的回文数及一共有多少个。
首先,我们需要定义一个函数is_palindrome(n),用来判断一个数是否是回文数。函数的实现是将输入的数n转化为字符串,然后与原字符串反转后的字符串比较,如果相等,则n是回文数。
接着,我们可以使用for循环遍历1到N之间的所有数,对于每个数,调用is_palindrome函数判断其是否为回文数。如果是,则输出该数,并将计数器count加1。
最后,输出计数器count的值,并在前面加上“*”。
注意,在Python中,字符串的切片操作[::-1]可以用来反转字符串。
10、提示信息:
闰年分为普通闰年和世纪闰年。
普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年)。
总结:四年一闰,百年不闰,四百年再闰。
闰年的一年为366天,闰年的二月份为29天。平年一年为365天,平年的二月为28天。
每年的1、3、5、7、8、10、12月份为31天,4、6、9、11月份为30天。
编程实现:
用户输入未来的某一天,输入格式:“2020 6 1”,计算和2020年5月30日相差多少天?(例如:今天和明天是相差一天)星期几?(注意:输出格式为星期的数字值并在其前加“*”)。
样例输入:
2020 6 1
样例输出:
2 *1
参考答案:输入:2020 6 1相差天数:12星期数字值:1
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要计算用户输入的日期和2020年5月30日相差多少天,并输出星期的数字值。
首先,我们需要将输入的日期转换为Python中的日期对象,然后计算两个日期之间的差值。根据题目给出的规则,我们可以将输入的日期解析为年、月、日三个部分,然后使用Python中的datetime模块来计算日期差。
其次,我们需要计算用户输入的日期是星期几,并输出其数字值。我们可以使用datetime模块中的weekday()方法来获取日期是星期几,然后将其转换为数字值。
最后,根据题目要求,我们需要在星期的数字值前加上“*”。
因此,我们可以编写如下的Python代码来实现这个计算:
```python
from datetime import datetime
def calculate_days_and_weekday(year, month, day):
# 将输入的日期转换为Python中的日期对象
date_str = f"{year} {month} {day}"
date = datetime.strptime(date_str, "%Y %m %d")
# 计算和2020年5月30日相差多少天
date_ref = datetime(2020, 5, 30)
delta = date - date_ref
days_diff = delta.days
# 计算用户输入的日期是星期几,并输出其数字值
weekday_num = date.weekday() + 1 # weekday()方法返回0代表星期一,所以加1
weekday_str = "*" + str(weekday_num)
return days_diff, weekday_str
# 测试
year, month, day = 2020, 6, 1
days_diff, weekday_str = calculate_days_and_weekday(year, month, day)
print(f"相差天数:{days_diff}")
print(f"星期数字值:{weekday_str}")
```
运行上述代码,即可得到题目要求的答案。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!