试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省绍兴市柯桥区2020-2021学年高一下学期信息技术期末教学质量调测试试卷

编写Python程序实现如下功能:输入年月日,输入格式如“2021-06-21",年月日之间用“-”分隔。判断这一天是这一年的第几天。以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的第几天。 特殊情况,当输入的年份是闰年时,2月份有29天。闰年的判断方式如下:

⒈能被4整除,但不能被100整除;

⒉能被400整除;

(1)、“2020-05-20”这一天是这一年的第天。
(2)、编写Python代码如下,在划线处填入正确的代码:

mon=[31, 28, 31, 30, 31, 30,31,31, 30, 31,30,31] #mon 中存储1-12每个月的天数

s=input("请输入年月日: ")

year=int(s[:4])

month=int (s[5:7])

sum=0

for i in range (  ):

    sum+=mon[i]

sum+=day

if

    isleap=True

else:

    isleap=False

if

    sum+=1

print(“这一天是当年的第”+str (sum) +“天”)’

(3)、加框处的代码有误,请改正。
举一反三
求最长升序子序列的长度。一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是升序的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些升序的子序列(ai1, ai2, ..., aiK),这里 1 <= i1 < i2 < ...<iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些升序子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8)。小王设计VB程序用于求最长升序子序列的长度,在文本框Text1中输入n个各不相同的数据(各数据之间以逗号隔开),单击“求解”按钮Command1后在标签Label1中输出最长升序子序列的长度,运行界面如图所示。

具体算法描述如下:

⑴将文本框Text1中的n个数据依次读取到数组a中;

⑵构造一个数组b(j),j表示升序子序列的长度,b(j)的值表示所有j长度升序序列中最小的末尾元素值。例:序列(2,6,4,5),长度为2的子序列有(2,6)、(2,4)、(2,5)、(4,5),则b(2)=4;

⑶从第1个元素开始,依次处理到第i(1≤i≤n)个元素为止,b数组所能达到的最大下标值maxlen,处理过程分两种情况:

A.a(i)>b(maxlen),则最长升序子序列的长度增加;

B.a(i)<b(maxlen),则在b数组中逆序查找到第一个b(j)>a(i)(maxlen-1≤j≤1),更新数组b中升序子序列长度为j+1时所存储的元素值。

以图中数据为例:

⑷数组b的最大下标值即为最长升序子序列的长度。实现上述过程的VB程序如下,请回答下列问题:

返回首页

试题篮