一、单选题(每题2分,共30分)
|
题号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
答案
|
D
|
B
|
C
|
B
|
C
|
C
|
D
|
A
|
D
|
A
|
B
|
B
|
D
|
A
|
C
|
1.我国第一台大型通用电子计算机使用的逻辑部件是(
)。
A.集成电路
B.大规模集成电路
C.晶体管
D.电子管
【答案】D
【解析】本题属于考察计算机历史。1958年8月1日,中国科学院计算技术研究所和北京有线电厂(国营738厂)根据苏联提供的M-3小型机技术资料制成的“八一”型通用电子管计算机(又称103机)完成了四条指令的运行,标志着中国人制造的第一架通用数字电子计算机正式诞生。时隔一年多,1959年9月,根据苏联有关计算机技术资料制成的104大型通用电子计算机通过试运算,运算速度提升到每秒1万次。《人民日报》为此发表消息,正式宣告中国第一台大型通用电子计算机试制成功。故正确答案为D选项。
2.下列流程图的输出结果是(
)?

A.
5 12
B.
12 5
C.
5 5
D.
12 12
【答案】B
【解析】本题属于考察Python中的选择结构(分支结构)流程图。通过设置条件并判断条件是否成立,给程序设置不同的结果,形成程序的分支,这种结构称作分支结构,题目中判断条件不成立,因此a=12,b=5。故正确答案为B选项。
3.如果要找出整数a、b中较大一个,通常要用下面哪种程序结构?(
)。
A.顺序结构
B.循环结构
C.分支结构
D.跳转结构
【答案】C
【解析】本题属于考察Python中的选择结构(分支结构)。通过设置条件并判断条件是否成立,给程序设置不同的结果,形成程序的分支,这种结构称作分支结构,题目中判断大小,因此选择分支结构。故正确答案为C选项。
4.以下不是Python关键字的是
( )。
A.
continue
B.
print
C.
and
D.
in
【答案】B
【解析】本题属于考察Python语言中的关键字。print()是Python中的内置函数,故正确答案为B选项。
5.Python表达式int(-123.123//10)的值是
( )。
A.
-124
B.
-123
C.
-13
D.
-12
【答案】C
【解析】本题属于考察Python中基本运算和数据类型转换。//运算符在除法运算时将结果向下舍入到最接近的整数。在两个整数之间使用时,将得到一个整数,同时将结果向下舍入到最接近的整数。与浮点数一起使用时,将获得一个浮点数。int()函数对计算结果进行取整。故正确答案为C选项。
6.以下Python代码实现从大到小的顺序输出能整除N的数(因子),例如N=18时输出18
9 6 3 2 1,横线处应填入(
) 。

A.
N
B.
1, N
C.
N, 0, -1
D.
N, 1, -1
【答案】C
【解析】本题考察了for循环中range()函数参数与变量i的关系。例如,range(9,
-1,
-1)会生成一个从9到0的整数序列(包含9,不包含-1),并以步长为-1递减。题目要求实现从大到小的顺序输出能整除N的数,包括N。所以range()函数的开始值为N,结束值为0,步长为-1,当步长为负数时,实现从右向左递减输出。故正确答案为C选项。
7.如下图所示,输出N*N的矩阵(行列)N行N列,对角线为1,横线处应填入(
)。


A.i
= j
B.j
!= j
C.i
>= j
D.i == j
【答案】D
【解析】本题主要考察了for循环中变量i的取值范围和条件判断结构。程序中给出的是双层的循环嵌套结构,在内层循环中设置if...else...结构。要求对角线为1。所以if语句的满足的条件是内层循环的j等于外层循环的i。故正确答案为D选项。
8.下面Python代码用于判断N(大于等于2的正整数)是否为质数(素数),请在横线处填入合适的代码()。

A.
break
B.
continue
C.
pass
D.
return
【答案】A
【解析】本题主要考察for…else…循环结构和与循环结构中流程控制关键字break的用法。当使用for…else…结构时,如果循环没有被break终止,会在循环结束后执行else中的语句。题目判断N是否是质数,当判断出不是质数时,直接终止循环。故正确答案为A选项。
9.下面Python代码执行后的输出是(
)。

A.
1#0
B.
1#
C.
1#1#1#1#1#1
D. 1#1#1#1#1#1#0
【答案】D
【解析】本题主要考察for…else…循环结构和if单分支结构的用法。当使用for…else…结构时,如果循环没有被break终止,会在循环结束后执行else中的语句。循环遍历得到2,3,4,5,6,7,8。if判断不能被9整除的,输出“1#”。循环结束执行else中的语句,输出“0”。故正确答案为D选项。
10.下面Python代码执行后的输出是(
)。

A.
16
B.
28
C.
35
D.
36
【答案】A
【解析】本题主要考察了for循环中变量i的取值范围和双层嵌套循环结构。内层循环次数与外层循环变量的值有关,内层循环次数逐步增长。当内层循环结束值为0,1时,得到空列表,cnt不会变化。故正确答案为A选项。
11.下面Python代码执行后的输出是(
)。

A.1
B.3
C.15
D.没有输出
【答案】B
【解析】本题主要考察了for…else…循环结构,if…else…分支语句和流程控制关键字break。通过分析,只有当i等于7时,才会执行else中的语句,故正确答案为B选项。
12.下面Python代码执行后的输出是(
)。

A.
1
B.
3,9,11
C.
3,6,9,10
D.
1,5,7,11,13,15
【答案】B
【解析】本题主要考察了while循环,if…elif…分支结构和基本运算符。通过分析,只会输出3的倍数以及第一个整除10结果非0时的数字。每次循环x增加2,所以x分别为1,3,5,7,9,11。故正确答案为B选项。
13.下面图形每一行从字母A开始,以ABC方式重复,每行字母数量与行所在顺序相同,即第1行1个字母,第2行2个字母,依次类推。行数为输入的整数。请在Python代码横线处填入合适代码(
)。


A.
chr( j // 3 )
B.
chr( ord("A") + j // 3 )
C.
ord( chr("A") + j % 3)
D.
chr( ord("A") + j %3)
【答案】D
【解析】本题主要考察的是ASCII码和字符之间的转换,ord()函数用于返回给定字符的ASCII值或Unicode值,括号里的参数是一个字符,返回值为该字符对应的整数值。例如,ord('A')返回65,ord('a')返回97。而chr()函数则相反,括号里的参数是一个整数值,返回值为该整数值对应的字符。例如,chr(65)返回字符'A',chr(97)返回字符'a'。每一行从字母A开始,以ABC方式重复,所以要先得到ASCII码值,然后加上每三个一组时对应的具体位置,最后转为对应字符。故正确答案为D选项。
14.为实现以下图形输出,应在Python代码横线处填入(
)【注:此处1≤lineCount≤9】。


A.
" "*(lineCount-i-1)*2
B.
" "*(lineCount-i)*2
C.
" "*(lineCount)*2
D.
" "*(lineCount-1)*2
【答案】A
【解析】本题主要考察了for循环和i之间的关系。按照题目图示,要求先输出空格再输出具体数字,所以横线上要填上符合行数的空格个数。所以i行的空格数量为lineCount-i-1。又因为每个数字输出内容后跟一个空格,最后空格数量要乘2。故正确答案为A选项。
15.某班级⼈数不知,连续输入成绩直到输入负数停止,输入结束后求出平均成绩。在以下Python代码横线处应填入是(
)。

A.
true
B.
false
C.
True
D.
False
【答案】C
【解析】本题主要考察了while循环,要求一直执行循环体,所以是死循环。故正确答案为C选项。
二、判断题(每题2分,共20分)
|
题号
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
答案
|
√
|
√
|
×
|
×
|
√
|
√
|
√
|
×
|
×
|
×
|
1.我们常说的互联网(Internet)是一个覆盖全球的广域网络,它不属于任何一个国家。
【答案】正确√
【解析】本题考察计算机网络的基本知识。互联网,又称国际网络,指的是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。互联网是全球性的。这就意味着这个网络不管是谁发明了它,是属于全人类的。所以本题正确。
2.神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机TOP500排行榜中多次荣膺榜首。
【答案】正确√
【解析】本题考察计算机发展的知识。榜首意思是榜上公布的名单中的首位,泛指第一名。神威·太湖之光超级计算机是由国家并行计算机工程技术研究中心研制,安装在国家超级计算无锡中心的超级计算机。2016年6月20日,德国法兰克福国际超算大会(ISC)公布了新一期全球超级计算机TOP500榜单,由国家并行计算机工程技术研究中心研制的“神威·太湖之光”以超第二名近三倍的运算速度夺得第一。之后多次荣膺榜首。所以本题正确。
3.Python表达式7.8//2的值为整数3。
【答案】错误×
【解析】本题考察Python数据类型的知识。//运算符在除法运算时将结果向下舍入到最接近的整数。在两个整数之间使用时,将得到一个整数,同时将结果向下舍入到最接近的整数。与浮点数一起使用时,将获得一个浮点数。所以本题错误。
4.Python表达式2*3**2+5的值为41。
【答案】错误×
【解析】本题考察Python数据运算的知识。在进行计算的时候,先计算幂运算,再进行乘除运算,最后进行加减运算。所以正确结果为23。所以本题错误。
5.Python表达式int(9*4**0.5)的值为18。
【答案】正确√
【解析】本题考察Python数据运算和数据转换int()函数的知识。在进行计算的时候,先计算幂运算,再进行乘除运算。int()函数可以将字符串转换为整数,要求输入数字或者整数字符。故正确结果为18。所以本题正确。
6.在Python代码中,a的数据类型为整数或浮点数,则表达式a>=5
and a<=10 与5<=a<=10的值相同(即等价)。
【答案】正确√
【解析】本题考察Python数据的比较。a<b<c为链式比较,a<b<c可转化为连续比较a<b
and b<c。所以表达式a>=5
and a<=10 与5<=a<=10的值相同(即等价)。所以本题正确。
7.下面Python代码执行后将输出10。

【答案】正确√
【解析】本题考察for循环的知识。题目会循环10次,每次执行cnt加1,然后循环内i的值加1。但是不会影响循环结构的i的值。通过for循环来制定任意循环次数的话通常是通过range()函数来实现。所以本题正确。
8.执行以下Python代码后将输出0。

【答案】错误×
【解析】本题考察for循环语句和range()函数的结合使用。range()函数中有三个参数,从左到右分别代表起始值,结束值,步长。步长值就是相邻两个数之间的差值。如range(0,5,2),即从0开始,到5结束,取不到5,步长为2,依次取到0,2,4。range()的结束值不包括在内,即左闭右开,题目中会依次取到-100,-98,-96...98。最后结果为-100,所以本题错误。
9.执行以下Python代码后将输出30。

【答案】错误×
【解析】本题考察for循环语句和range()函数的结合使用。range()函数中有三个参数,从左到右分别代表起始值,结束值,步长。步长值就是相邻两个数之间的差值。如range(0,5,2),即从0开始,到5结束,取不到5,步长为2,依次取到0,2,4。结束值不包括在内,左闭右开原则,题目中会依次取到0,2,4,6,8共循环5次。求和后结果为20。所以本题错误。
10.Python是一种低级程序设计语言,且适合初学者。
【答案】错误×
【解析】本题属于对程序设计语言的考察。Python属于高级语言之一,所以本题错误。
三、编程题(每题25分,共50分)
1、小杨的X字矩阵
【问题描述】
小杨想要构造一个X*X的X字矩阵(N为奇数),这个矩阵的两条对角线都是半角加号+,其余都是半角减号-。例如,一个5
5的X字矩阵如下:
+---+
-+-+-
--+--
-+-+-
+---+
请你帮小杨根据给定的N打印出对应的“X字矩阵”。
【输入描述】
一行一个整数
(
,保证
为奇数)。
【输出描述】
输出对应的“X字矩阵”。请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是+,要么是-。
【样例输入1】
5
【样例输出1】
+---+
-+-+-
--+--
-+-+-
+---+
【样例输入2】
7
【样例输出2】
+-----+
-+---+-
--+-+--
---+---
--+-+--
-+---+-
+-----+
【题目大意】
输出一个N行由“+”,“-”组成的矩阵。同时要保证第i行的第i个和第n-i-1个为“+”号。其余为“-”。
【解题思路】
本题主要考察for循环和if分支语句的知识:
1.首先输入n,转换为整型;
2.从0开始遍历到n,用来控制行数。设置一个空字符串;
3.再从0开始遍历到n,用来控制每行个数;
4.判断是不是第i行第i个或者第n
- i – 1。满足条件,输出“+”,否则,输出“-”。
【参考程序】

2、数字黑洞
【问题描述】
给定一个三位数,要求各位不能相同。例如,352是符合要求的,112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到495!
试试看,重新排列352,得到的最大数为532,最小数为235,它们的差是297;变换297,得到972-297=693;变换693,963-369=594;变换594,954-459=495。因此,352经过4次变换得到了495。
现在,输入的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
【输入描述】
输入一行,包含一个符合要求的三位数N。
【输出描述】
输出一行,包含一个整数C,表示经过C次变换得到495。
【样例输入1】
352
【样例输出1】
4
【题目大意】
找到各位数字不相同的三位数,将最大的数减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程,求几次变换后可以得到495。
【解题思路】
本题主要考察循环语句的使用:
1.首先输入N;
2.创建变量step存储变换次数,设定初始值为0;
3.当N不等于495,执行循环体;
4.在循环内用Min,Mid,Max存储三位数的各个位的值,使用if语句判断三个值的大小,将最小值存入Min,最大值存入Max中;
5.将三位数组成最大的数减去得到的最小的数,形成一个新的三位数赋值给N;
6.step数值增加1.
【参考程序】
