计算机编程笔试题目及答案
1. 问题描述
小明是一名计算机科学专业的学生,他正在准备参加一场计算机编程笔试。为了提高自己的编程水平,他收集整理了一些常见的编程笔试题目及其参考答案。下面是他整理的一部分题目及答案。希望对大家的学习有所帮助。
2. 题目一:字符串反转
题目描述:
请编写一个函数,接收一个字符串作为参数,并返回将该字符串反转后的结果。
输入:
hello world
输出:
dlrow olleh
参考答案:
```python
计算机学院排名def reverse_string(string):
    return string[::-1]
# 测试
print(reverse_string("hello world"))  # 输出:dlrow olleh
```
3. 题目二:判断素数
题目描述:
请编写一个函数,接收一个正整数作为参数,并判断该数是否为素数(只能被1和自身整除的数)。
输入:
17
输出:
是素数
参考答案:
```python
def is_prime(num):
    if num <= 1:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True
# 测试
print(is_prime(17))  # 输出:是素数
```
4. 题目三:链表反转
题目描述:
请编写一个函数,将给定链表反转,并返回反转后的链表头节点。
给定链表:
1 -> 2 -> 3 -> 4 -> 5
返回链表:
5 -> 4 -> 3 -> 2 -> 1
参考答案:
```python
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        = next
def reverse_linked_list(head):
    prev = None
    curr = head
    while curr:
        next_node =
        = prev
        prev = curr
        curr = next_node
    return prev
# 构造测试链表
head = ListNode(1)
= ListNode(2)
= ListNode(3)
ext = ListNode(4)
= ListNode(5)
# 测试
new_head = reverse_linked_list(head)
while new_head:
    print(new_head.val, end=" -> ")  # 输出:5 -> 4 -> 3 -> 2 -> 1 -> None
    new_head =
```
5. 题目四:数组去重
题目描述:
请编写一个函数,接收一个整数数组作为参数,并将数组中重复的元素去除,保留唯一的元素,并按升序排列。
输入:
[3, 2, 2, 1, 5, 4, 4, 2, 3]
输出:
[1, 2, 3, 4, 5]
参考答案:
```python
def remove_duplicates(nums):
    unique_nums = list(set(nums))
    unique_nums.sort()
    return unique_nums
# 测试
print(remove_duplicates([3, 2, 2, 1, 5, 4, 4, 2, 3]))  # 输出:[1, 2, 3, 4, 5]