21xrx.com
2025-03-28 17:25:42 Friday
文章检索 我的文章 写文章
C++ 面试上机题目集锦
2023-06-30 12:53:37 深夜i     16     0
C++ 面试 上机题目 集锦 编程能力

在求职过程中,C++ 面试上机题目集锦是一个必不可少的工具,它可以帮助面试者检测自己的技能水平,同时也帮助面试官了解应聘者的实际能力。下面是一些常见的 C++ 面试上机题目集锦。

1. 找出一个数组中的最大值和最小值

这是一个非常基础的题目,需要用到一些基本的算法知识。代码示例:

#include <iostream>
using namespace std;
int main() {
  int arr[10] = 5;
  int max = arr[0], min = arr[0];
  for (int i = 1; i < 10; i++) {
    if (arr[i] > max) {
      max = arr[i];
    }
    if (arr[i] < min) {
      min = arr[i];
    }
  }
  cout << "Max value: " << max << endl;
  cout << "Min value: " << min << endl;
  return 0;
}

2. 实现快速排序

快速排序是一种常用的排序算法,它的时间复杂度为 O(nlogn),速度非常快。代码示例:

#include <iostream>
using namespace std;
void quick_sort(int arr[], int left, int right) {
  if (left >= right) return;
  int i = left, j = right, pivot = arr[left];
  while (i < j) {
    while (i < j && arr[j] >= pivot) j--;
    if (i < j) arr[i++] = arr[j];
    while (i < j && arr[i] < pivot) i++;
    if (i < j) arr[j--] = arr[i];
  }
  arr[i] = pivot;
  quick_sort(arr, left, i - 1);
  quick_sort(arr, i + 1, right);
}
int main() {
  int arr[10] = {3, 6, 4, 10, 8, 2, 1, 7, 9, 5};
  quick_sort(arr, 0, 9);
  for (int i = 0; i < 10; i++) {
    cout << arr[i] << ' ';
  }
  cout << endl;
  return 0;
}

3. 实现单向链表的反转

链表的反转是常见的数据结构操作之一,它可以使用迭代法或递归法实现。代码示例:

#include <iostream>
using namespace std;
struct Node {
  int val;
  Node* next;
  Node(int v): val(v), next(nullptr) {};
};
Node* reverseList(Node* head) {
  Node* prev = nullptr;
  Node* curr = head;
  while (curr != nullptr) {
    Node* next = curr->next;
    curr->next = prev;
    prev = curr;
    curr = next;
  }
  return prev;
}
int main() {
  Node* head = new Node(1);
  Node* p1 = new Node(2);
  Node* p2 = new Node(3);
  head->next = p1;
  p1->next = p2;
  cout << "Before reverse: " << endl;
  Node* curr = head;
  while (curr != nullptr) {
    cout << curr->val << ' ';
    curr = curr->next;
  }
  cout << endl;
  Node* new_head = reverseList(head);
  cout << "After reverse: " << endl;
  curr = new_head;
  while (curr != nullptr) {
    cout << curr->val << ' ';
    curr = curr->next;
  }
  cout << endl;
  return 0;
}

以上是 C++ 面试上机题目集锦的一些示例,它们包含了基础算法和数据结构操作,为面试者提供了极大的帮助。在面试过程中,应该注重思路清晰、分析能力强和代码简洁易读等方面的表现。祝大家面试顺利!

  
  

评论区

请求出错了