第一周:程序设计的基础知识程序设计的基础知识随堂测验1、下列哪些能力是计算机擅长而人类不擅长的?
a、推理
b、计算
c、记忆
d、抽象
程序设计的基础知识随堂测验1、和高级语言相比,汇编语言有哪些优缺点?
a、占用内存少
b、执行速度快
c、编程难度低
d、可移植性好
2、和自然语言相比,编程语言有哪些特点?
a、更容易为计算机“理解”
b、语义明确、无歧义性
c、表达能力更强
d、更易学
程序设计的基础知识随堂测验1、下列代码运行时不会产生错误的是?
a、print 'hi, i'm fine'
b、print "hi, i'm fine"
c、print 'hi, i'm fine"
d、print "hi, i'm fine'
第一周测验1、计算机为什么采用二进制,而非十进制作为数制的基础?
a、因为二进制数更容易被硬件存储和计算
b、因为二进制比十进制表示能力更强
c、因为二进制比十进制计算速度快
d、因为二进制数精度更高
2、python语言为什么被称为高级程序设计语言?
a、因为它比低级语言更抽象
b、因为它比低级语言功能强大
c、因为它比低级语言更复杂
d、因为它是解释型语言
e、因为它是编译型语言
3、关于python语言的执行过程,描述正确的是?
a、由解释器一条语句一条语句地执行
b、由编译器将源程序转化为机器语言,然后执行
c、执行过的语句将不会再被执行
d、可以同时执行多条语句
4、下列python程序,没有错误的是?
a、print 'hello, i\'m tom.'
b、print 'hello, world!'
c、print 'hello, this's tom.'
d、print 'hello, ' print 'world!'
5、在spyder ide中编写python程序,输出“hello world”,要求将这两个单词分两行输出,以下哪个程序不正确?
a、print 'hello world'
b、print "hello\nworld"
c、print 'hello' print 'world'
d、print 'hello\nworld'
第一周作业1、提交 python 程序,将 "hello world" 字符串输出到两行,每行一个单词。
第二周:数据类型、运算符与表达式、变量赋值与简单i/o操作2.1 对象和类型随堂测验1、下列语句执行的结果是?int('hello')
a、0
b、1
c、100
d、程序出错
2、八进制数 036,相当于十六进制的多少?提示:查找 oct、hex 等相关函数及其用法
a、0x36
b、0x16
c、0x1e
d、0x20
3、下列语句执行的结果是?'hello' - 'world'
a、helloworld
b、hello world
c、52473
d、程序出错
2.2 运算符与表达式随堂测验1、下列语句的输出结果是?(2**2)**3
2、下列语句的输出结果是?'abc' * 3
3、下列语句的输出结果是?2**2**3
2.2 运算符与表达式随堂测验1、和下列语句等价的是? not (x or y)
a、not x and not y
b、not x or not y
c、not x or y
d、not x and y
2、下列语句的输出结果是? 123 and 456
a、123
b、456
c、ture
d、false
2.2 运算符与表达式随堂测验1、判断闰年的方式是否可以写成: y % 400 == 0 or y % 4 == 0 and y % 100 != 0
2、判断闰年的方式是否可以写成:y % 4 == 0 and y % 100 != 0 or y % 400 == 0
2.3 变量与简单i/o随堂测验1、下列程序的执行结果为?x = 10 print type(x) x = 10.0 print type(x) x = '10.0' print type(x)
a、
b、
c、
d、程序出错
2、若程序只有以下两行代码,则程序的执行结果为? x = y 1 print x
a、1
b、输出一个随机值
c、2
d、程序出错
2.3 变量与简单i/o随堂测验
1、执行下列语句,若输入为"hello\nworld",则输出为?input = raw_input() print input
a、hello world
b、hello
c、hello\nworld
d、world
2、执行下列语句,若输入为"123",则输出为? input = raw_input() print input * 3
a、369
b、123123123
c、1233
d、程序出错
第二周测验
1、执行下列语句,输出的结果是?x = 7.0 y = 5 print x % y
a、2.0
b、2
c、程序出错
d、1
e、1.0
2、能实现下面功能的程序是? 接收用户输入的一个整数。如果输入的是偶数,则输出“true”,否则输出“false”。
a、print not bool(int(raw_input()) % 2)
b、print int(raw_input()) % 2 == 0
c、print int(raw_input()) % 2 != 0
d、print bool(int(raw_input()) % 2)
e、print not bool(raw_input() % 2)
f、print int(raw_input()) % 2 == 1
3、假设你每年初往银行账户中1000元钱,银行的年利率为4.7%。 一年后,你的账户余额为: 1000 * ( 1 0.047) = 1047 元 第二年初你又存入1000元,则两年后账户余额为: (1047 1000) * ( 1 0.047) = 2143.209 元 以此类推,第10年年末,你的账户上有多少余额? 注:结果保留2位小数(四舍五入)。
4、python提供了众多的模块。你能找到一个合适的模块,输出今天的日期吗?格式为“yyyy-mm-dd”。可以查找任何搜索引擎和参考资料,并在下面的空白处写出相应的模块名。
5、对于一元二次方程 ,若有 ,则其解是什么?若有多个解,则按照从小到大的顺序在一行中输出,中间使用空格分隔。解保留2位小数(四舍五入)。
第二周作业
1、编写程序,完成下列题目
2、编写程序,完成下列题目
3、编写程序,完成下列题目
第三周:程序控制结构
3.1:选择结构随堂测验
1、如下图所示的流程图的输出结果是?
a、1
b、2
c、3
d、y
2、下列关于流程线的说法不正确的是?
a、流程线无论什么方向,总要按箭头的指向执行;
b、流程线只要是上下方向就表示自上向下执行可以不要箭头;
c、流程线表示算法步骤执行的顺序,用来连接流程图图框;
d、流程线是带有箭头的线,它可以画成折线。
3、阅读下面程序,最终的输出值是? var_a = 100 if var_a > 60: var_a = 10 else: var_a -= 10 var_a = 3 print var_a
3.1:选择结构随堂测验
1、阅读下面程序,选择正确输出结果: x = 2 y = 4 if x > 2: if y > 2: z = x y print 'z is', z else: print 'x is', x
a、没有输出
b、z is 6
c、x is 2
d、程序出错
2、阅读下面代码,选择正确的输出结果: grade = 97 if grade < 60: print 'e' elif grade >= 60: print 'd' elif grade >= 70: print 'c' elif grade >= 80: print 'b' elif grade >= 90: print 'a'
a、a
b、b
c、d
d、e
3.2:循环结构随堂测验
1、下列求100以内所有偶数之和的程序是否正确? sum = 0 i = 0 while i < 100: if i % 2 == 0: sum = i i = 2 print sum
2、下列求100以内所有奇数之和的程序是否正确? sum = 0 i = 1 while sum < 100: if i % 2 != 0: sum = i i = 2 print sum
3.2:循环结构随堂测验
1、下列代码的输出结果是? num = 9 count = 0 while num > 0: if num % 2 == 0: num /= 2 elif num % 3 == 0: num /= 3 else: num -= 1 count = 1 print count
3.2:循环结构随堂测验
1、下列程序的输出结果为?max = 10 sum = 0 extra = 0 for num in range(1, max): if num % 2 and not num % 3: sum = num else: extra = 1 print sum
2、以上题目,如将第11行,替换为: print extra则输出的结果为?
3、有多少个三位数字能被17整除?
3.2:循环结构随堂测验
1、此论断正确么?“凡是使用 while 循环实现的程序,都能用 for 循环改写。”
2、下列程序一定会进入死循环: while true: for x in range(6): y = 2 * x 1 if y > 9: break
第三周测验
1、以下程序的输出结果是? y = 0 for i in range(0, 10, 2): y = i print y
a、20
b、9
c、10
d、30
2、以下程序的输出结果是? number = 30 if number % 2 == 0: print number, 'is even' elif number % 3 == 0: print number, 'is multiple of 3'
a、30 is even
b、30 is even 30 is multiple of 3
c、30 is multiple of 3
d、程序出错
3、以下程序的输出结果是? x = 1 y = -1 z = 1 if x > 0: if y > 0: print 'aaa' elif z > 0: print 'bbb'
a、无输出
b、aaa
c、bbb
d、语法错误
4、如果输入4, -1, 6, 9, 8, 3, 0,请问以下程序的输出结果是? number = int(raw_input('enter an integer: ')) max = number while number != 0: number = int(raw_input('enter an integer: ')) if number > max: max = number print max
5、python语言中, if x > 0: y = 1 else: y = -1等价于: y = 1 if x > 0 else -1 阅读下面代码,给出x结果: a = 3 b = 2 x = a if a > b else b
第三周作业
1、编写程序,完成下列题目
2、编写程序,完成下列题目
3、编写程序,完成下列题目
4、编写程序,完成下列题目
第四周:函数与递归函数
4.1:函数随堂测验
1、下列程序的输出结果是? x = 1 def fun(x): x = 2 fun(x) print x
a、1
b、2
c、3
d、程序出错
2、下列的说法是否正确:“使用函数一定会提高程序的执行效率。”
3、下列说法是否正确:“使用函数总是可以减少程序的代码”
4.1:函数随堂测验
1、定义如下的函数,下面哪种函数调用会出错 ? def defaultparameters(arg1, arg2=2, arg3=3): print arg1, arg2, arg3
a、defaultparameters(10, arg3=10)
b、defaultparameters(arg3=10, arg1=10)
c、defaultparameters(10)
d、defaultparameters(arg2=10, arg3=10)
2、下列程序的输出结果是: sum = 0 def sum(i1, i2): result = 0 for i in range(i1, i2 1): result = i return result print sum(1, 10)
4.1:函数随堂测验
1、下列程序的输出结果是: x = 1 y = 2 def swap(x, y): t = x x = y y = t print x, y swap(x, y) print x, y
a、1 2 1 2
b、2 1 1 2
c、1 2 2 1
d、2 1 2 1
2、下列程序的输出结果是: x = 1 y = 2 def swap(a, b): t = a a = b b = t print a, b swap(x, y) print x, y
a、1 2 1 2
b、2 1 1 2
c、1 2 2 1
d、2 1 2 1
4.2:递归函数随堂测验
1、下面关于递归函数说法正确的是:
a、递归函数的执行效率优于非递归函数
b、递归出口和递归关系是递归函数编写的关键
c、递归函数的嵌套调用次数没有限制
d、在能够使用递归函数的时候,尽量使用递归,因为它可以使得程序变得简洁,易于理解
2、下列说法是否正确:“不使用递归函数,无法实现输出斐波那契数列的功能”
4.2:递归函数随堂测验
1、下列递归函数的功能是: def convert(n): if n == 0 or n == 1: return n else: return convert(n / 2) * 10 n % 2
a、求 0 到 n 的偶数和
b、将 n 转换为二进制数
c、求 0 到 n 的奇数和
d、将 n 转换为二进制数,然后再求逆序
4.2:递归函数随堂测验
1、使用递归函数 fib(n) 求解斐波那契数列,则 fib(5) 共调用了几次 fib(2) ?
a、2
b、3
c、4
d、5
第四周测验
1、下列程序的输出结果是: def foo(): m = 1 def bar(): n = 2 return m n m = bar() print m foo()
a、3
b、1
c、2
d、程序出错
2、针对以下的函数,正确的函数调用有哪些? def foo(arg1, arg2='test', arg3=100): print arg1, arg2, arg3
a、foo('where','what')
b、foo('where')
c、foo(arg1 = 'where', arg2 = 'what')
d、foo(arg2 = 'what', 10)
e、foo(arg = 'where')
3、下列说法是否正确:“函数中仅允许使用一条return语句”
4、下面程序的输出结果是: def fib(n): f1, f2 = 0, 1 while f2 < n: print f2, f1, f2 = f2, f1 f2 fib(10)
5、下列程序的输出结果是? def gcd(m, n): r = m % n if r == 0: return n else: r = m % n return gcd(n, r) print gcd(15, 36)
第四周作业
1、编写程序,完成下列题目:
2、编写程序,完成下列题目:
3、编写程序,完成下列题目:
第五周:字符串
5.1:字符串随堂测验
1、下列语句没有错误的是?
a、'hello' 3
b、'hello' * 3
c、'hello' * '3'
d、'hello' - '3'
2、下面语句的输出结果是? range(len('hello world'))
a、[1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
b、11
c、[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
d、[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
5.1:字符串随堂测验
1、若 s = 'hello world',则执行 s.replace('o', 'b') 后,s 的内容是?
a、'hellb wbrld'
b、'hellb world'
c、'hello wbrld'
d、'hello world'
2、给定字符串"homebody",获取"home"的切片表达式为?
a、[:4]
b、[1:5]
c、[0:4]
d、[1:4]
5.1:字符串随堂测验
1、由字符串 s = 'hello world' 获得 'hello world' 的方法为?
a、s.title()
b、s.capitalize()
c、s.upper()
d、s.isupper()
2、若字符串 s = 'hello world',则语句 s.ljust(15, '.') 和 s.rjust(15) 的输出结果为?
a、'....hello world' ' hello world'
b、'hello world....' ' hello world'
c、'hello world....' 'hello world '
d、'hello world....' 'hello world'
3、若字符串 s = 'hello world',则语句 s.count('l') 的输出结果为?
a、0
b、1
c、2
d、3
5.1:字符串随堂测验
1、下列代码的输出结果为?'{:.4e}'.format(234.56789)
a、'2.3456e 02'
b、'234.5679'
c、'2.3457e 02'
d、'2.345e 02'
2、下列语句,返回值不为 none 的是?
a、print re.search('c. a', 'abcdefbcdef')
b、re.search('c. a', 'abcdefabcdef')
c、print re.search('c.a', 'abcdefabcdef')
d、print re.search('c.a', 'abcabcdef')
第五周测验
1、字符串s长度为奇数,则显示中间字符的表达式为?
a、s[len(s)/2]
b、s[(len(s) - 1)/2]
c、s[len(s)/2 1]
d、s[len(s)/2 - 1]
e、s[(len(s) 1)/2]
2、若 s = 'what is your name', 则 s[11:2:-2] 的结果为?
3、下载并遍历 names.txt 文件,输出长度最长的回文人名。
4、当输入为 'hello'时,写出下列程序的输出结果: s = raw_input() y = 0 for i in s: y = 1 print y, i
5、当输入为 ‘cbabc’ 时,下列程序的输出结果为? s1 = raw_input() index = 0 s2 = '' while index < len(s1) - 1: if s1[index] > s1[index 1]: s2 = s1[index] else: s2 = s2 * 2 index = 1 print s2
第五周作业
1、编写程序,完成下列题目:
2、编写程序,完成下列题目:
3、编写程序,完成下列题目:
第六周:列表与元组
6.1:列表随堂测验
1、下列程序的输出结果是? a = [1, 2, 3] print a * 2
a、[2, 4, 6]
b、[1, 2, 3, 1, 2, 3]
c、[11, 22, 33]
d、程序出错
2、下列方法仅适用于列表,而不适用于字符串的是?
a、replace()
b、index()
c、find()
d、sort()
3、关于列表,下面描述正确的是:
a、必须按顺序插入元素
b、可以不按顺序查找元素
c、所有元素类型必须相同
d、不支持 in 运算符
4、下列程序的输出结果是? a = [1, 2, 3] b = a b[1] = 4 print a[1]
6.1:列表随堂测验
1、下列程序的输出结果是?提示:使用 http://www.pythontutor.com/ 网站观察程序执行的过程。 def f(l): l = [4, 5, 6] return l a = [1, 2, 3] f(a) print a[1]
2、下列程序的输出结果是? def f(l): l[1] = [5] return l a = [1, 2, 3] f(a) print a[1]
6.1:列表随堂测验
1、算法a:在列表中找到首次出现的给定值 算法b:在列表中找到所有出现过的给定值 关于算法a和b的时间复杂度,下列说法正确的是:
a、算法a的时间复杂度大于算法b
b、算法a的时间复杂度小于算法b
c、算法a的时间复杂度等于算法b
d、无法比较它们的时间复杂度
2、成员运算符 in 的时间复杂度是?
a、
b、
c、
d、
3、在二分查找实现中,若将语句 low = mid 1 和 up = mid - 1,分别改为 low = mid 和 up = mid ,则程序运行的结果有可能为?
a、还是能够找到待查找值的正确的位置
b、程序有可能进入死循环
c、找到的结果总是比想要的值大
d、找到的结果总是比想要的值小
4、在二分查找实现中,若将语句 while low <= up: ,改为 while low < up: ,则程序运行的结果有可能为?
a、程序依然正确
b、程序出错
c、漏掉要查找的元素
d、程序死循环
5、猜数字游戏中,假如猜测 1-1000 中的一个数字,采用折半猜测的方法,最多猜几次能猜到正确数字?
6.1:列表随堂测验
1、为什么通常冒泡排序法要快于选择排序法?
a、因为冒泡排序法通常执行的交换操作更少
b、因为冒泡排序法通常执行的比较操作更少
c、因为冒泡排序法循环的层数更少
d、因为冒泡排序法的代码量更少
2、如果考虑到选择排序法的交换步骤,则该算法的时间复杂度为?
a、
b、
c、
d、
3、如果对一个已经按照从小到大排序的列表,使用冒泡排序法进行排序,则不需要进行一次循环即可完成排序。
4、对选择排序法,一种可能的加速方法是:判断 min_index 和 i 是否相同,如果不相同再进行 lst[min_index] 和 lst[i] 的交换。
6.1:列表随堂测验
1、下列表达式的返回结果是? [n*n for n in range(7) if n*n % 2 == 0]
2、给定列表 l = [1, 2, 3, 4],将列表转换为字符串 '1234',尝试使用表达式: ''.join([i for i in l])但不能正常工作。将其修改为正确的表达式为?
6.2:元组随堂测验
1、元组和列表都支持的方法是?
a、append()
b、find()
c、index()
d、remove()
2、我们不能使用 sorted() 函数对一个元组进行排序。
第六周测验
1、关于元组数据结构,下面描述正确的是:
a、支持 in 运算符
b、所有元素数据类型必须相同
c、元组不支持切片操作
d、插入的新元素放在最后
2、使用 python 的算术运算符 、-、*、/、**(没有%),和数字 2、3、4、5,构造一个表达式,使用所有的4各数字和3各运算符各一次,计算得到 28,在下面的空格中填入不含空格的表达式。提示:构建字符串,然后使用 python 的 eval() 函数,它的参数为字符串,计算该字符串,并返回计算结果,例如: eval('2*3 4') 返回整数 10。
3、有 3 个回文数字,第一个是两位数,第二个是三位数。将这两个数字相加得到第三个数字,这是个四位数。请问第三个数字式多少?
4、下列代码的输出结果是? list1 = [1, 2, 3] list2 = list1 list3 = list2 list1.remove(1) print list3[1]
5、写出下面程序的输出结果: def func(lst): for i in range(len(lst) - 1): for j in range(i 1, len(lst)): if lst[i] < lst[j] : lst.insert(i, lst.pop(j)) else: pass else: return lst return -1 lst1 = [6, 2, 4, 1, 5, 9] lst2 = func(lst1) lst2[3:-2] = [] print lst1
第六周作业
1、编写程序,完成下列题目:
2、编写程序,完成下列题目:
第七周:字典与集合
7.1:字典和集合随堂测验
1、在一个字典中,查找一个键的速度和查找一个值的速度哪个更快?
a、值
b、一样快
c、键
d、无法比较
2、下列关于字典性质描述正确的是?
a、可以直接根据键对字典进行排序
b、可以对键进行顺序查找
c、键可以重复
d、值可以重复
7.1:字典和集合随堂测验
1、下列语句,哪个不能够正确创建一个字典?
a、{[1, 2]:1, [3, 4]:3}
b、{'john':1, 'peter':3}
c、{1:'john', 3:'peter'}
d、{(1, 2):1, (3, 4):3}
2、下列语句的输出结果是? d = { } d['susan'] = 50 d['jim'] = 45 d['joan'] = 54 d['susan'] = 51 d['john'] = 55 print len(d)
7.1:字典和集合随堂测验
1、下列语句,哪个不能创建一个集合?
a、set( )
b、(1, 2, 3)
c、set((1, 2, 3))
d、{1, 2, 3}
2、下列语句,哪些不能正确创建一个集合?
a、{{1, 2}, {3, 4}}
b、{(1, 2), (3, 4)}
c、{[1, 2], [3, 4]}
d、{'12', '34'}
第七周测验
1、一个学生的信息包括:学号、姓名、年龄、性别、电话。如果想保存一系列学生,并且希望能够根据姓名对他们进行排序,则下列数据结构哪个更合适?
a、列表
b、字典
c、集合
d、元组
2、一个学生的信息包括:学号、姓名、年龄、性别、电话。如果想保存一系列学生,并且希望能够快速的查找某一姓名的学生,则下列数据结构哪个更合适?
a、字典
b、元组
c、列表
d、集合
3、写出下面程序的输出结果: d1 = {} d1[2] = 10 d1['2'] = 20 d2 = {} d2[2] = d1 d2['2'] = d2 print d2['2']['2']['2']['2'][2][2]
4、下列程序的输出结果是: def f1 (my_dict): temp = 0 for value in my_dict.values(): temp = temp value return temp a_dict={'bill':1,'rich':2,'fred':10,'walter':20} print f1(a_dict)
5、下列程序的执行结果是: def f2 (my_dict): temp = '' for key in my_dict: if temp < key: temp = key return temp a_dict = {'bill':1,'rich':2,'fred':10,'walter':20} print f2(a_dict)
第七周作业
1、编写程序,完成下列题目:
2、编写程序,完成以下题目:
期末考试
1、关于集合数据结构,下面描述正确的是
a、键是无序的
b、键可以是任意类型
c、键查找的时间复杂度为o(n)
d、支持对键进行排序操作
2、关于赋值语句的作用,正确的描述是
a、将变量绑定到对象
b、每个赋值语句只能给一个变量赋值
c、将变量改写为新的值
d、变量和对象必须类型相同
3、若 a = 'abcd' ,若想将 a 变为 'ebcd' ,则下列语句正确的是
a、a = 'e' a[1:]
b、a[0] = 'e'
c、a[1] = 'e'
d、a.replace('a', 'e')
4、关于列表数据结构,下面描述正确的是
a、可以不按顺序查找元素
b、必须按顺序插入元素
c、所有元素类型必须相同
d、不支持 in 运算符
5、下列不合法的python变量名是
a、n.x
b、python2
c、sum
d、hello_world
6、执行以下两条语句后,lst的结果是 lst = [3, 2, 1] lst.append(lst)
a、[3, 2, 1, […]],其中“…”表示无穷递归
b、[3, 2, 1, lst]
c、[3, 2, 1, [3, 2, 1]]
d、抛出异常
7、下列不是python语言关键字的是
a、open
b、lambda
c、finally
d、exec
8、与x > y and y > z 语句等价的是
a、x > y > z
b、not x < y or not y < z
c、x > y or not y < z
d、not x < y or y < z
9、以下哪条语句定义了一个python字典
a、{ }
b、(1, 2, 3)
c、{1, 2, 3}
d、[1, 2, 3]
10、关于递归的说法正确的是:
a、递归是一种程序调用自身的现象
b、在能够使用递归函数的时候,尽量使用递归,因为它可以使得程序变得简洁,易于理解
c、递归函数的执行效率优于非递归函数
d、递归编写的程序代码通常比非递归的少,所以递归就是比非递归好
11、执行下面操作后,list2的值是: list1 = ['a', 'b', 'c'] list2 = list1 list1.append('de')
a、['a', 'b', 'c', 'de']
b、['a', 'b', 'c']
c、['a', 'b', 'c', 'd', 'e']
d、['d', 'e', 'a', 'b', 'c']
12、下列运算符的使用错误的是:
a、1 'a'
b、-10 % -3
c、3 * 'abc'
d、[1, 2, 3] [4, 5, 6]
13、下列 for 语句中,在 in 后使用不正确的是: for var in : print var
a、(1)
b、range(0, 10, 5)
c、[1, 2, 3, 4, 5]
d、set('str')
14、关于函数的下列说法不正确的是:
a、函数可以有多个返回值
b、函数可以没有参数
c、函数可以没有return语句
d、函数都有返回值
15、写出下面程序的输出结果 d = {2: ['free', 'and', 'easy'], 0: ['laid', 'back'], 1: ['happy', 'go', 'lucky']} print(d[1][-1][1:])
***.?
猜你喜欢
- 2022-12-05 21:47
- 2022-12-05 21:32
- 2022-12-05 21:08
- 2022-12-05 20:37
- 2022-12-05 20:28
- 2022-12-05 20:17
- 2022-12-05 20:07
- 2022-12-05 20:07
- 2022-12-05 19:57
- 2022-12-05 19:47