21xrx.com
2024-09-19 09:57:48 Thursday
登录
文章检索 我的文章 写文章
C++题目和答案
2023-07-02 04:54:14 深夜i     --     --
C++ programming Problem solving Code efficiency Debugging Algorithm design

C++是一种高级编程语言,被广泛应用于软件开发、游戏开发、算法设计等各个领域。在学习和实践中,我们需要掌握一定的C++知识和技巧,以便顺利完成各种任务和项目。本文将介绍几道C++题目和答案,供大家参考和学习。

1. 翻转字符串

题目描述:给定一个字符串,将其翻转过来,并输出结果。

答案示例:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string str;

  cin >> str;

  int len = str.length();

  for(int i = 0; i < len/2; i++){

    swap(str[i], str[len-i-1]);

  }

  cout << str << endl;

}

2. 求两个整数的最大公约数

题目描述:输入两个正整数a和b,求它们的最大公约数。

答案示例:


#include <iostream>

using namespace std;

int gcd(int a, int b){

  if(b == 0)

   return a;

  else

   return gcd(b, a % b);

}

int main(){

  int a, b;

  cin >> a >> b;

  cout << gcd(a, b) << endl;

  return 0;

}

3. 二分查找

题目描述:在一个已排序的数组中查找指定的元素,如果存在则返回其下标,否则返回-1。

答案示例:


#include <iostream>

using namespace std;

int binarySearch(int arr[], int n, int target){

  int left = 0, right = n - 1;

  while(left <= right){

    int mid = left + (right - left) / 2;

    if(arr[mid] == target)

      return mid;

    else if(arr[mid] < target)

      left = mid + 1;

    else

      right = mid - 1;

  }

  return -1;

}

int main(){

  int arr[] = {1, 3, 5, 7, 9, 11, 13, 15};

  int n = sizeof(arr) / sizeof(arr[0]);

  int target = 7;

  int index = binarySearch(arr, n, target);

  if(index != -1)

    cout << "目标元素的下标为:" << index << endl;

  else

    cout << "未找到目标元素" << endl;

}

4. 快速排序

题目描述:对于给定的整数数组,使用快速排序算法对其进行排序。

答案示例:


#include <iostream>

using namespace std;

int partition(int arr[], int left, int right){

  int pivot = arr[right];

  int i = left;

  for(int j = left; j < right; j++){

    if(arr[j] < pivot){

      swap(arr[i], arr[j]);

      i++;

    }

  }

  swap(arr[i], arr[right]);

  return i;

}

void quickSort(int arr[], int left, int right){

  if(left < right){

    int pivotIndex = partition(arr, left, right);

    quickSort(arr, left, pivotIndex-1);

    quickSort(arr, pivotIndex+1, right);

  }

}

int main(){

  int arr[] = {6, 4, 8, 2, 3, 1, 7, 5};

  int n = sizeof(arr) / sizeof(arr[0]);

  quickSort(arr, 0, n-1);

  for(int i = 0; i < n; i++){

    cout << arr[i] << " ";

  }

  cout << endl;

}

以上是几道C++题目和答案,希望对大家学习编程有所帮助。当然,对于每一个题目都可以有多种不同的解法和思路,因此我们需要在学习和实践中不断探索和提高自己的技能。

  
  

评论区

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