21xrx.com
2024-11-08 22:31:10 Friday
登录
文章检索 我的文章 写文章
C++ 面试上机题目集锦
2023-06-30 12:53:37 深夜i     --     --
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++ 面试上机题目集锦的一些示例,它们包含了基础算法和数据结构操作,为面试者提供了极大的帮助。在面试过程中,应该注重思路清晰、分析能力强和代码简洁易读等方面的表现。祝大家面试顺利!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复