21xrx.com
2024-12-22 23:35:33 Sunday
登录
文章检索 我的文章 写文章
C++实验题答案解析
2023-07-08 15:07:38 深夜i     --     --
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++实验题答案的解析,希望能为初学者提供一些帮助。在实际的学习中,练习的次数多了,就可以更好地掌握相关知识点,编写出更加优秀的程序。

  
  

评论区

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