1.1 节练习
首先用 vs code 编写一个 cpp 文件,代码如下:
int main(){
return -1;
}
我将它命名为 exercise 1-1.cpp,我的操作系统为 windows,下面一步是将 .cpp 文件编译为 .exe 文件。这样之后你所编写的代码才可以应用程序运行。
我使用的是 GNU 编译器(忘记是系统自带的还是我安装的),命令为: g++ "exercise 1-1.cpp",可以生成一个 a.exe 的可执行文件;如果命令为:g++ -o exercise "exercise 1-1.cpp",就可以生成一个名字为 exercise.exe 的可执行文件,显然 -o 后面的输入决定了生成文件的名字。
然后我们运行这个文件,命令为:a.exe,然后发现什么返回都没有。这个预计返回的 0,我们可以通过命令:echo %ERRORLEVEL% 查看,就可以捕捉到刚刚执行的程序的返回值了。
例子:将返回值修改为 -1

1.2 节练习
练习1.3-1.5:
#include <iostream>
int main(){
std::cout << "Hello World!" << std::endl;
int a = 0, b = 0;
std::cin >> a >> b;
std::cout << "The product of " << a << " and " << b << " is " << a * b << std::endl;
return 0;
}
练习1.6:
答:不合法。将第一行和第二行最后的分号删掉。
1.3 节练习
练习1.8:
1. 合法,输出:"/*"
2. 合法,输出:"*/"
3. 不合法
4. 合法,输出:" /* "
感觉这题出的稍微没啥意义。。
1.4 节
1.4.1 节练习
#include <iostream>
int main(){
// 1.9
int sum = 0, val = 50;
while (val <= 100) {
sum += val;
val++;
}
std::cout << "The sum from 50 to 100 is " << sum << std::endl;
// 1.10
val = 10;
while (val >= 0){
std::cout << val << " ";
val--;
}
std::cout << std::endl;
// 1.11
int a = 0, b = 0;
std::cout << "Please enter two integers: ";
std::cin >> a >> b;
if (a < b){
while (a <= b){
std::cout << a << " ";
a++;
}
}else{
while (b <= a){
std::cout << a << " ";
a--;
}
}
return 0;
}
感觉没啥好说的。。就做题吧
1.4.2 节练习
#include <iostream>
int main(){
// 1.12, sum = 0
int sum = 0;
for (int val = -100; val <= 100; ++val){
sum += val;
}
std::cout << sum << std::endl;
// 1.13
sum = 0;
for (int val = 50; val <= 100; ++val){
sum += val;
}
std::cout << sum << std::endl;
for (int val = 10; val >= 0; --val){
std::cout << val << " ";
}
std::cout << std::endl;
int a = 0, b = 0;
std::cout << "Please enter two integers: ";
std::cin >> a >> b;
for (a; a <= b; a++){
std::cout << a << " ";
}
return 0;
}
1.4.3 节练习
#include <iostream>
int main(){
int sum = 0, val = 0;
while (std::cin >> val){
sum += val;
}
std::cout << "The sum is: " << sum << std::endl;
return 0;
}
1.4.4 节练习
#include <iostream>
int main()
{
int currVal = 0, cnt = 1, val = 0;
if (std::cin >> val){
currVal = val;
while (std::cin >> val){
if (currVal == val) cnt += 1;
else{
std::cout << currVal << " occurs " << cnt << " times." << std::endl;
currVal = val;
cnt = 1;
}
}
std::cout << currVal << " occurs " << cnt << " times." << std::endl;
}
return 0;
}
1.5 节
1.5.1 节练习
#include <iostream>
#include "Sales_item.h"
int main(){
// 1.20
Sales_item book;
std::cin >> book;
std::cout << book << std::endl << std::endl;
// 1.21
Sales_item a, b;
std::cin >> a >> b;
std::cout << a + b << std::endl << std::endl;
// 1.22
Sales_item curr, input;
if (std::cin >> curr){
while (std::cin >> input){
curr += input;
}
std::cout << curr << std::endl;
}
return 0;
}
1.5.2 节练习
#include <iostream>
#include "Sales_item.h"
int main(){
Sales_item curr;
if (std::cin >> curr){
Sales_item input;
int cnt = 1;
while (std::cin >> input){
if (curr.isbn() == input.isbn()){
curr += input;
cnt++;
} else{
std::cout << curr << std::endl;
std::cout << curr.isbn() << " has " << cnt << " records" << std::endl;
curr = input;
cnt = 1;
}
}
std::cout << curr << std::endl;
std::cout << curr.isbn() << " has " << cnt << " records" << std::endl;
}
return 0;
}
统计每个 isbn 出现了几次。输入时将相同 isbn 的记录连续输入。
1.6 节练习
#include <iostream>
#include "Sales_item.h"
int main(){
Sales_item curr;
if (std::cin >> curr){
Sales_item input;
while (std::cin >> input){
if (curr.isbn() == input.isbn()){
curr += input;
}else{
std::cout << curr << std::endl;
curr = input;
}
}
std::cout << curr << std::endl;
}else{
std::cerr << "No data ???" << std::endl;
return -1;
}
return 0;
}
本文详细介绍了C++ Primer第一章的练习,包括1.1至1.6节的练习内容。从创建并编译cpp文件,到运行和检查返回值,再到解答各种语法和逻辑问题,对每个练习进行了深入探讨。通过实例展示了如何使用GNU编译器在Windows环境下操作,并对部分练习表达了对题目设计的看法。

2560

被折叠的 条评论
为什么被折叠?



