学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
井字棋,英文名叫 Tic-Tac-Toe,是一种在 3*3 格子上进行的连珠游戏。游戏需要的工具仅为纸和笔,然后由分别代表 O 和 X 的两个游戏者轮流在格子里留下标记,任意三个标记形成一条直线,则为获胜。现编写程序实现模拟井字棋的人机对弈。
(1)下图函数可实现创建默认的井字棋棋盘(规定双方分别为-1 和 1,空格用 0 表示)。
def create_board(size=3):
       return ____
下列不能填入横线处实现功能的是
A.[[0] * size for _ in range(size)]
B.[[0] * size] * size
C.[[0 for _ in range(size)] for _ in range(size)]
(2)现编写函数实现自动寻找当前状态下的最优下法。请补全代码。
def minimax(board, player, memo):
       key = str(board) + str(player)
       if key in memo: return memo[key]
       if game_over(board): ①____
       if player == 1:
             max_eval = -float('inf')
             for i in range(len(board)):
                    for j in range(len(board)):
                           if board[i][j] == 0:
                                 board[i][j] = player
                                 eval = ②____
                                 board[i][j] = 0
                                 max_eval = max(max_eval, eval)
                                 memo[key] = max_eval
                           return max_eval
       else:
             #处理另一方的状态,代码略
def find_best_move(board, player):
       memo = {}
       best_eval = -float('inf') if player == 1 else float('inf')
       best_move = None
       for i in range(len(board)):
             for j in range(len(board)):
                    if board[i][j] == 0:
                           board[i][j] = player
                                 eval = minimax(board, -1 if player == 1 else 1, memo)
                           board[i][j] = 0
                           if   ____:
                                 best_eval = eval
                                 best_move = (i, j)
       return best_move
(3)小余同学提出以上代码中 memo 变量应作为返回值传递否则无法实现优化效果。你同意这种说法吗?____(同意/反对)。若同意,请给出解决方案,若反对,请写出你的理由。
(4)以下是主程序代码,请补全。
def print_board(board): #打印棋盘,代码略
def is_winner(board, player): #判断某个玩家是否为赢家,代码略
def game_over(board): #判断游戏是否结束,代码略
def evaluate(board):
       if is_winner(board, 1): return 1
       elif is_winner(board, -1): return -1
       else: return 0
____
player=1
print_board(board)
while not game_over(board):
       print(f"玩家{'X' if player == 1 else 'O'}的回合:")
       if player==1:
             row, col = ②____
       else:
             row, col=input().split(",")
       board[row][col] = player
       print_board(board)
       player = -1 if player == 1 else 1
       if is_winner(board, 1):
             print("玩家 X 赢了!")
       elif: is_winner(board, -1):
             print("玩家 O 赢了!")
       else:
             print("游戏结束,平局!")
类型:操作题
难度系数:较易0.85
收藏
纠错
详情
为了更便捷地开展中考招生录取公示工作,某市教育局设计了一个中考录取学校查询系统。用户可以在浏览器在相应的页面注册、登录和查询等操作。该系统服务器采用 Flask Web 框架编写,框架结构如图 a 所示。

                         图a
(1)在设计该系统的前期准备中,需要了解系统需要达到怎么样的目标,这一过程属于____
(2)小王登录查询系统应访问子页面的 URL 是____
(3)已知录取信息存储在 data 目录下,文件名称格式为“2021 年<学校名称>录取名单”。文件样例如图 b 所示(涉及隐私的部分用*代替)。服务器端部分代码如下,请补全代码
2021年杭州第二中学滨江校区录取名单
准考证号姓名性别
21*******鲍**
21*******卜**
21*******蔡**
21*******柴*
21*******常**
21*******陈*
21*******陈*
                                图 b
from flask import Flask, render_template, request, redirect, url_for
import pandas as pd
import os
app = Flask(_name_)
# 读取所有 CSV 文件的文件名,代码略
# 将所有文件名中的年份和学校名称提取出来,存入 school_years,school_names
# 将文件名与文件路径映射存入 file_paths
def query_admissions(year, school_name, student_name, exam_id):
       # 读取对应学校和年份的录取数据
       file_path = os.path.exists(f"data\\{year}年{school_name}录取名单")
       if file_path:
             df = pd.read_csv(f"data\\{year}年{school_name}录取名单", skiprows=1)

             result =

             ____
             return school_name
@app.route('/')
def index():
       return render_template('index.html')
@app.route(' ②____')
def login():
       return render_template('login.html')
@app.route('/view')
def view():
       exam_id = request.args.get('exam_id')
       name = request.args.get('student_ name')
       admission = ""
       for school_name in school_names:
             if ③____: admission = school_name
       return render_template('view.html',exam_id=exam_id,student_name=name,admission=admis⁃sion)
if _name_ == '_main_':
       app.run(debug=True,port="80")
(4)加框处代码有误,请更正。____
(5)下列代码用于统计各学校性别比(男性:女性)并将排行前五的学校绘制在图表中,如图 c 所示。请补全代码。

                                                  图 c
import pandas as pd
import matplotlib.pyplot as plt
# 设置中文字体,这里略去
# 读取并合并所有 CSV 文件,并添加学校列,代码略
merged_df = pd.concat(dfs, ignore_index=True)
school_gender_ratio = merged_df.groupby([' 学 校 ', ' 性别 ']).size().unstack(fill_value=0)
school_gender_ratio['总'] = ①____
school_gender_ratio['男'] = school_gender_ratio['男'] / school_gender_ratio['总']
school_gender_ratio['女'] = school_gender_ratio['女'] / school_gender_ratio['总']
sorted_schools = ②____
ax = sorted_schools[['男', '女']].plot(kind='bar', stacked=True)
ax.set_title('不同学校的性别比例')
ax.set_xlabel('学校')
ax.set_ylabel('性别比例')
ax.set_xticklabels(ax.get_xticklabels(), rotation=45)
ax.legend(title='性别', prop=font)
plt.show()
类型:操作题
难度系数:较易0.85
收藏
纠错
详情
如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。现给出一个字符串 ,设计程序搜索其中最长的回文子串。
(1)ebebaabe 的最长回文子串是____
(2)以下函数用于获取某字符串中最长的回文子串,请补全代码。
def longestPalindrome(s):
       def expandAroundCenter(s, left, right):
             while ①____:
                    left -= 1
                    right += 1
             return left + 1, right – 1
       start, end = 0, 0
       for i in range(len(s)):
             left1, right1 = expandAroundCenter(s, i, i)
             left2, right2 = ②____
             if right1 - left1 > end - start:
                    start, end = left1, right1
             if right2 - left2 > end - start:
                           start, end = left2, right2
       return ③____
(3)在实际应用中以上算法在处理较长字符串时效率过于低下。我们若利用回文串的对称性减少字符的访问次数可以大幅度提升该算法的效率。以下是一种实现。请补全代码。
def longestPalindrome(s):
       end, start = -1, 0
       s = '/' + '/'.join(list(s)) + '/' #处理偶数长度的子串
       arm_len = []
       right = j= -1
       def get_arm_len(s, left, right):
             left_idx, right_idx = expand_around_center(s, left, right)
             return (right_idx - left_idx) // 2
       for i in range(len(s)):
             if right >= i:
                    i_sym = 2 * j - i
                    min_arm_len = min(arm_len[i_sym], right - i)
                    cur_arm_len = ①____
             else:
                    cur_arm_len = get_arm_len(s, i, i)
                  ____
             if ③____:
                    j = i
                    right = i + cur_arm_len
             if 2 * cur_arm_len + 1 > end - start:
                    start = i - cur_arm_len
                    end = i + cur_arm_len
       return ④____
类型:操作题
难度系数:一般0.65
收藏
纠错
详情
以下代码可实现把多个升序链表合并成一个升序链表
class ListNode:
       def __init__(self, val=0, next=None):
             self.val = val
             self.next = next
def mergeTwoLists(list1, list2):
       if (1) or (2) :
             list1, list2 = list2, list1
       if (3) :
             list1.next =(4)
       return list1
def mergeKLists(list1):
       if (5) :
       return None
       if len(list1) == 1:
             return list1[0]
       mid = len(list1) // 2
       left, right = mergeKLists(list1[:mid]), mergeKLists(list1[mid:])
       return mergeTwoLists(left, right)
划线处(1)(2)(3)(4)(5)应填入的正确代码有
①(list2 and list1.val > list2.val)       ②(list1 and list2.val > list1.val)       ③list1,list2=list2,list1
④mergeTwoLists(list1.next, list2)   ⑤mergeTwoLists(list1, list2.next)   ⑥not list1   ⑦not list2
⑧list1     ⑨list2
则正确代码的顺序是(     
A.⑥①⑧④⑥B.⑦②⑥④⑥C.⑥①⑨④⑥D.⑦②⑨④⑥
类型:选择题
难度系数:一般0.65
收藏
纠错
详情
已知 nums 列表中含有 5 个不相同的数字,该流程图的输出结果可能是(     

A.1B.111C.011D.001
类型:选择题
难度系数:一般0.65
收藏
纠错
详情
BF语言是一种基于一种简单的计算模型的最小化编程语言,这个机器包括八种指令,一个以字节(0-255)为单位、初始全部为零的数组,一个初始时指向该数组中第一个字节的指针,以及用于输入输出的两个字节流。八种指令用字符表示如图所示:
字符含义
>指针加一
<指针减一
+指针所指字节的值加一
-指针所指字节的值减一
.输出指针所指字节内容(ASCII 码)
,向指针所指的字节输入内容(ASCII 码)
[若指针所指字节的值为零,则向后跳转,跳转到其对应的]的下一个指令处
]若指针所指字节的值不为零,则向前跳转,跳转到其对应的[的下一个指令处
以下代码可实现将字符串转换成 BF 语言
def Conv(v):
       s=10*'+'+'['t=""
       for i in range(len(v)):
             ordI=ord(v[i])
             cdcI=ordI
             temp=cdcI % 10
             if temp > 5:
             cdcI-=temp
             maxI=256-ordI
             s+='>'+('-'*maxI if( ) else '+'*(cdcI//10))
             t+='>'+('+'if(ordI-cdcI>0) else '-')*abs(ordI-cdcI)
       s += '<' * len(v) + '-]' + t + (len(v)-1) * '<' + '[.>]'
       return s
则横线处应该填入(     
A.cdcI -= 10 maxI<128B.cdcI += 10 maxI>128C.cdcI -= 10 maxI>128D.cdcI += 10 maxI<128
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
BF语言是一种基于一种简单的计算模型的最小化编程语言,这个机器包括八种指令,一个以字节(0-255)为单位、初始全部为零的数组,一个初始时指向该数组中第一个字节的指针,以及用于输入输出的两个字节流。八种指令用字符表示如图所示:
字符含义
>指针加一
<指针减一
+指针所指字节的值加一
-指针所指字节的值减一
.输出指针所指字节内容(ASCII 码)
,向指针所指的字节输入内容(ASCII 码)
[若指针所指字节的值为零,则向后跳转,跳转到其对应的]的下一个指令处
]若指针所指字节的值不为零,则向前跳转,跳转到其对应的[的下一个指令处
和 BF 语言最接近的计算模型是(     
A.图灵机B.原始递归函数C.Lambda 演算D.组合子逻辑
类型:选择题
难度系数:较易0.85
收藏
纠错
详情
对“842715”中的数字进行选择排序中的两遍加工的结果可能是(     
A.842715B.142785C.875412D.124785
类型:选择题
难度系数:较易0.85
收藏
纠错
详情
一张未压缩的 BMP 格式照片(1920×1080 像素,32 色)存储在计算机内的大小约为(     
A.7.91MBB.1.24MBC.9.89MBD.63.28MB
类型:选择题
难度系数:较易0.85
收藏
纠错
详情
网关(Gateway)是计算机网络中的一种设备或服务器,下列关于网关的理解不正确的是(     
A.网关就是网络的关口,是在不同网络间传输数据时的中转站
B.有时网关可以用一台普通计算机来代替
C.同一局域网内的计算机通信仍需要设置默认网关
D.网关需要独立的 IP 地址
类型:选择题
难度系数:容易0.94
收藏
纠错
详情
下一页
尾页