21xrx.com
2024-12-22 16:11:37 Sunday
登录
文章检索 我的文章 写文章
《C++ Primer Plus》编程题解答案
2023-06-30 20:28:51 深夜i     --     --
C++ Primer Plus Programming exercises Solutions Beginners' guide Object-oriented programming

《C++ Primer Plus》是一本经典的C++编程入门书籍。在这本书中,作者详细地介绍了C++的基本概念和语法,为初学者提供了很好的启蒙。同时,这本书还包含了大量的编程练习,帮助读者巩固所学内容。

在这些编程练习中,有些题目可能会让初学者感到困惑。下面我们来看一下几个题目的解答。

1. 模拟骰子投掷游戏,并统计得分

解答:这是一个典型的随机数生成问题。我们可以使用rand()函数生成1到6之间的随机数,模拟骰子的投掷。然后再根据游戏规则计算得分即可。代码实现如下:


#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

int main()

{

  int seed = time(0);

  srand(seed);

  int total = 0;

  int round = 1;

  while (total < 100)

  {

    int score = 0;

    cout << "Round " << round << ":\n";

    for (int i = 0; i < 2; ++i)

    {

      int dice = rand() % 6 + 1;

      cout << "Dice " << i + 1 << ": " << dice << endl;

      score += dice;

    }

    if (score % 2 == 0)

      score += 10;

    else

      score -= 5;

    if (score < 0)

      score = 0;

    total += score;

    cout << "Score for this round: " << score << endl;

    cout << "Total score: " << total << endl << endl;

    ++round;

  }

  cout << "Game over.\n";

  return 0;

}

2. 编写一个函数,将输入的字符串中的大写字母转换为小写字母

解答:这是一个字符串处理的问题。我们可以使用C++中的字符串类string,然后遍历字符串中的每个字符,如果是大写字母就转换为小写字母。代码实现如下:


#include <iostream>

#include <string>

using namespace std;

void tolower(string& str)

{

  for (int i = 0; i < str.length(); ++i)

  {

    if (isupper(str[i]))

      str[i] = tolower(str[i]);

  }

}

int main()

{

  string str = "Hello, WORLD!";

  cout << "Before tolower: " << str << endl;

  tolower(str);

  cout << "After tolower: " << str << endl;

  return 0;

}

3. 定义一个结构体来描述一个车的属性,包括车的品牌、型号、里程数等,然后编写一个函数来输出所有车的属性

解答:这是一个结构体和函数的结合问题。我们可以定义一个车的结构体,其中包含车的品牌、型号、里程数等属性。然后再编写一个函数,将所有车的属性输出。代码实现如下:


#include <iostream>

#include <string>

using namespace std;

struct car

  string brand;

  string model;

  int mileage;

;

void printcars(const car* cars, int n)

{

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

  {

    cout << "Car " << i + 1 << ":\n";

    cout << "Brand: " << cars[i].brand << endl;

    cout << "Model: " << cars[i].model << endl;

    cout << "Mileage: " << cars[i].mileage << endl;

  }

}

int main()

{

  car cars[3] =

  {

     10000,

     "Accord",

    "Nissan"

  };

  printcars(cars, 3);

  return 0;

}

以上就是三个编程练习的解答。希望对初学者有所帮助。当然,每个问题的解答不仅限于以上代码,还可以有更多的实现方式。重要的是理解问题本质,掌握C++编程的基本技巧。

  
  

评论区

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