2024年3月CCF—GESP(Python五级)编程能力等级认证试卷
五级
2024
2024-04-25 10:31:02
57次
一、单选题
上题不能支持其他常见类型的排序,如实现该支持,横线处分别应填写代码是( )。

| A. isinstance(iterData, list) == False , st == [x for x in iterData] |
B. type(iterData) == list , lst = [x for x in iterData] |
| C. isinstance(iterData, list) , lst = list(iterData) |
D. type(iterData) != list , lst = list(iterData) |
【知识点】 CCF—GESP Python五级
下面的Python代码中,idList变量为list类型,保存有大量身份编码,倒数第二位如为偶数,则为女性,奇数为男性,从第7位开始连续8位为出生年月日,年为4位数月和日均为两位数。编码统计每天有几位男生生日女生生日。横线处应填入代码是( )。

| A. (1, 0) if gender == 1 else (1, 0) , (0, 1) |
B. (0, 1) if gender == 1 else (1, 0) , (0, 0) |
| C. 0, 1 if gender == 1 else 1, 0 ,0, 0 |
D. (0, 1) if gender == 1 else (1, 0) ,0, 0 |
【知识点】 CCF—GESP Python五级
下面Python代码中,aFactorial()和bFactorial()用于求正整数的阶乘。有关说法,错误的是( )。

| A. aFactorial( )用循环方式,bFactorial()递归方式 |
B. bFactorial( )更加符合数学定义,直观易于理解,而aFactorial()需要将数学定义转换为计算机程序实现 |
| C. 当N值较大时,aFactorial( )执行效率更高,而bFactorial()因为有多次函数调用,效率将降低,且N如果较大,将可能导致不能使用 |
D. bFactorial( )因为代码量较少,没有循环,因此其执行效率更高 |
【知识点】 CCF—GESP Python五级
下面的Python代码中merge()函数的两个参数均为list类型,且是已按相同规则排序的数据。下面有关说法中,正确的是( )。

| A. 第3-7行代码将导致死循环,因为没有循环变量及其改变 |
B. 第5行和第7行代码执行后,result的成员值为None |
| C. 第9行和第11行是否被执行,与arr1和arr2的成员值有关,如果值转换为False,将不会被执行 merge()函数的代码没有错 |
D. 误,执行后参数arr1和arr2将合并成新的list保存到result之中,且有序 |
【知识点】 CCF—GESP Python五级
有关下面Python代码的说法错误的是( )。

| A. 代码中第17行执行后,firstNode(第一个节点)的下一个节点指向第3个节点,即secondNode(第2个节点)的下一个 |
B. 代码中第18行执行后,第3个节点的Previous(前向)指向第1个节点(firstNode) |
| C. 仅仅通过firstNode节点,不能访问第2个节点,第2个节点已不在内存中存在,自动释放所占内存 |
D. 在第18行后,执行del secondNode后,第2个节点所占内存才会被释放。仅仅执行先有第16-18行,第2个节点内存不会被释放。 |
【知识点】 CCF—GESP Python五级
上上题qSort()函数不支持排序规则函数,形如sorted()函数的key参数,为实现类似目标,横线处分别应填入代码是( )。

| A. fx == None , fx(x) >= fx(Pivot) , fx(x) < fx(Pivot) |
B. fx == None , fx(x) >= Pivot , fx(x) < Pivot |
| C. fx != None , fx(x) >= fx(Pivot) , fx(x) < fx(Pivot) |
D. fx != None , fx(x) >= Pivot , fx(x) < Pivot |
【知识点】 CCF—GESP Python五级
二、判断题
三、编程题
B-smooth数(python)
题面描述
小杨同学想寻找一种名为B-smooth数的正整数。
如果一个正整数的最大质因子不超过B,则该正整数为B-smooth数。
小杨同学想知道,对于给定的n和B,有多少个不超过n的B-smooth数。
输入格式
第一行包含两个正整数n,B,含义如题面所示。
输出格式
输出一个非负整数,表示不超过n的B-smooth数的数量。
样例输入
10 3
样例输出
7
样例解释
在不超过10的正整数中,3-smooth 数有{1,2,3,4,6,8,9},共7个。
数据范围

对于全部数据,保证有1≤n≤106,1≤B≤106。
【知识点】 CCF—GESP Python五级
成绩排序
问题描述
有N名同学,每名同学有语文、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从高到低排序:
1. 比较总分,高者靠前;
2. 如果总分相同,则比较语文和数学两科总分,高者靠前;
3. 如果仍相同,则比较语文和数学两科的最高分,高者靠前;
4. 如果仍相同,则二人并列。
你需要输出每位同学的排名,如遇x人并列,则他们排名相同,并留空后面的x-1个名次。例如,有3名同学并列第1,则后一名同学自动成为第4名。
输入描述
第一行一个整数N,表示同学的人数。
接下来N行,每行三个非负整数ci,mi,ei分别表示该名同学的语文、数学、英语成绩。
保证0≤ci,mi,ei≤150。
输出描述
输出N行,按输入同学的顺序,输出他们的排名。
注意:请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名
特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
样例输入
6 140 140 150 140 149 140 148 141 140 141 148 140 145 145 139 0 0 0
样例输出
1 3 4 4 2 6
数据规模
对于30的测试点,保证N≤100,且所有同学的总分各不相同。
对于所有测试点,保证2≤N≤104。
【知识点】 CCF—GESP Python五级







