"Python考试程序设计:寻找最大块头和矩阵局部极大值"

需积分: 9 0 下载量 125 浏览量 更新于2024-01-03 收藏 71KB DOCX 举报
Python考试程序设计题目一要求编程找出块头最大的人。根据题目中的人物的言论,已知四个人中有三个人说了真话,而一个人胡说。根据这个条件,我们可以通过编程来判断块头最大的人是谁。 我们可以使用一个循环来遍历四个人,同时使用一个count变量来计数有多少人说了真话。在循环中,对于每个人,我们可以使用条件判断来判断该人说的是否是真话,如果是真话,则将count加1。 具体的代码如下所示: ```python man = 'A' while man <= 'D': count = 0 if man != 'A': count += 1 if man == 'C': count += 1 if man == 'B': count += 1 if man != 'B': count += 1 if count == 3: print(man) break man = chr(ord(man) + 1) ``` 代码中,我们首先将man初始化为'A',然后通过一个while循环对四个人进行遍历。在每个人的判断中,根据人物的言论,我们使用四个条件判断语句来判断该人是否说了真话,如果是则将count加1。在最后的if语句中,我们判断count是否等于3,如果等于3,则说明该人是块头最大的人,我们打印出该人的大写字母表示块头最大的人,并使用break语句终止循环。然后我们将man根据ASCII码加1以便继续遍历下一个人。 题目二要求找出给定矩阵的全部局部极大值及其所在位置。根据题目的描述,我们可以通过遍历矩阵的每个非边界元素,然后判断该元素是否大于其上下左右四个相邻元素,如果是,则说明该元素是局部极大值。 具体的代码如下所示: ```python M, N = map(int, input().split()) matrix = [] for i in range(M): matrix.append(list(map(int, input().split()))) local_max = [] for i in range(1, M-1): for j in range(1, N-1): if matrix[i][j] > matrix[i-1][j] and matrix[i][j] > matrix[i+1][j] and matrix[i][j] > matrix[i][j-1] and matrix[i][j] > matrix[i][j+1]: local_max.append((matrix[i][j], i, j)) for val, i, j in local_max: print(val, i, j) ``` 在代码中,我们首先通过输入来获取矩阵的行数M和列数N,并创建一个空矩阵matrix来存储输入的矩阵。 然后,我们使用两个嵌套的for循环来遍历矩阵的每个非边界元素。在每个元素的判断中,我们通过比较该元素与其上下左右四个相邻元素的大小关系来判断该元素是否是局部极大值。如果是,则将该元素及其所在位置(i, j)添加到local_max列表中。 最后,我们遍历local_max列表,并打印出局部极大值及其所在位置。 通过以上的两道题目的编程,我们可以加深对Python编程的理解和应用。同时也可以加强对条件判断和循环结构的掌握,并将其应用到实际问题中。