21xrx.com
2025-03-16 11:14:04 Sunday
文章检索 我的文章 写文章
C++实验题答案解析
2023-07-08 15:07:38 深夜i     11     0
C++ 实验题 答案 解析 编程语言

C++是一种广泛应用于计算机科学领域的编程语言,许多初学者在学习C++编程时都会遇到一些难题。通过实验题来练习,是许多学习者提高编程水平的有效途径。本文将对几道C++实验题答案进行解析,帮助初学者更好地理解相关知识点。

1. 设计一个程序,求出输入的所有非负整数中的最大值。

此题要求输入多个非负整数,每输入一个,就将它与之前输入的数进行比较,找出其中的最大值。我们可以定义一个变量maxNum,将其初值设为0,然后不断读入输入的数n,若n大于maxNum,则将maxNum赋值为n。最后输出maxNum即可。

示例代码:

#include <iostream>
using namespace std;
int main()
{
  int n, maxNum = 0;
  while (cin >> n)
  {
    if (n > maxNum)
      maxNum = n;
  }
  cout << maxNum << endl;
  return 0;
}

2. 编写一个程序,判断输入的一个数是不是质数。说明:质数指除1和自身外,不能被其他数整除的数。

求一个数是不是质数的方法一般是从2到该数的平方根之间枚举每个数,判断该数能否被整除。若能被整除,则该数不是质数。否则,该数是质数。

示例代码:

#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n)
{
  if (n < 2) return false; //小于2的数都不是质数
  int m = sqrt(n);
  for (int i = 2; i <= m; i++)
  {
    if (n % i == 0)
      return false;
  }
  return true;
}
int main()
{
  int n;
  cin >> n;
  if (isPrime(n))
    cout << "是质数!" << endl;
  else
    cout << "不是质数!" << endl;
  return 0;
}

3. 编写一个程序,实现二分查找。给定一个有序数组a和要查找的值x,返回x在数组中的下标,若x不在数组中,返回-1。

二分查找的思路是:利用数组是有序的这一特点,每次取区间的中间值,判断x与该中间值的大小关系,若x小于中间值,则在左侧区间中进行查找,否则在右侧区间中进行查找。直到找到x或无法继续划分区间为止。

示例代码:

#include <iostream>
using namespace std;
int binarySearch(int a[], int n, int x)
{
  int left = 0, right = n - 1;
  while (left <= right)
  {
    int mid = left + (right - left) / 2;
    if (a[mid] == x)
      return mid;
    else if (a[mid] > x)
      right = mid - 1;
    else
      left = mid + 1;
  }
  return -1;
}
int main()
{
  int a[] = 3;
  int n = sizeof(a) / sizeof(int);
  int x = 7;
  int index = binarySearch(a, n, x);
  if (index != -1)
    cout << x << "在数组中的下标是:" << index << endl;
  else
    cout << x << "不在数组中!" << endl;
  return 0;
}

以上是对几个C++实验题答案的解析,希望能为初学者提供一些帮助。在实际的学习中,练习的次数多了,就可以更好地掌握相关知识点,编写出更加优秀的程序。

  
  

评论区

请求出错了