重新开始
要加油,加油,加油啊!
黄鹏宇.我一定会找到工作的.Fight!
本门部分答案参考于
C++ Primer 习题集
文章目录
思维导图
1.1
Visual Studio 官方文档如下
https://docs.microsoft.com/zh-cn/cpp/get-started/tutorial-console-cpp?view=vs-2019
C++程序 后缀 .cpp
C程序 后缀 .c
头文件 .h
1.2
1.3
#include<iostream>
using namespace std;
int main(void) {
cout << "Hello,World";
return 0;
}
1.4
#include<iostream>
using namespace std;
int main(void) {
int a = 2, b = 3;
cout << 2 + 3 << endl;
cout << 2 * 3 << endl;
return 0;
}
1.5
#include<iostream>
int main(void) {
std::cout << "Enter two numbers:";
std::cout << std::endl;
int v1, v2;
std::cin >> v1 >> v2;
std::cout << v1 << "和" << v2 << "的积为" << v1 * v2 << std::endl;
return 0;
}
1.6
不合法
<<的前面没有表达式
修改方法之一
std::cout << "The sum of " << v1;
std::cout << "and" << v2;
std::cout << "is " << v1 + v2 << std::endl;
1.7
1.8
只有三是非法的
其他的都是合法的
讲解一哈 :
① 找第一个/* 直到找到*/ 里面的所有东西都是注释
② 如果已经确认"" 不是注释里面的内容,那个"" 里面的内容一定都是注释
#include<iostream>
int main(void) {
std::cout << "/*";
std::cout << "*/";
//std::cout << /*"*/"/*;
std::cout << /*"*/"/*"/*"*/;
return 0;
}
1.9
#include<iostream>
int main(void) {
int sum = 0, i = 50;
while (i <= 100) {
sum = sum + i;
++i;
}
std::cout << sum << std::endl;
return 0;
}
结果是
3825
1.10
#include<iostream>
int main(void) {
int sum = 0, i = 10;
while (i >= 0) {
std::cout << i << std::endl;
--i;
}
return 0;
}
1.11
#include<iostream>
int main(void) {
int a, b, c;
std::cin >> a >> b;
if (a < b) {
c = a;
a = b;
b = c;
}
while (b <= a) {
std::cout << b << std::endl;
++b;
}
return 0;
}
1.12
完成了从-100到100 的累加,Sum的终值为0
测试代码如下:
#include<iostream>
using namespace std;
int main(void) {
int sum = 0;
for (int i = -100; i <= 100; ++i) {
sum += i;
}
cout << sum;
return 0;
}
1.13
改写1.9
#include<iostream>
int main(void) {
int sum = 0, i = 50;
for (int i = 50; i <= 100; i++) {
sum = sum + i;
}
std::cout << sum << std::endl;
return 0;
}
改写1.10
#include<iostream>
int main(void) {
int sum = 0, i = 10;
for (int i = 10; i >= 0; i--) {
std::cout << i << std::endl;
}
return 0;
}
改写1.11
#include<iostream>
int main(void) {
int a, b, c;
std::cin >> a >> b;
if (a < b) {
c = a;
a = b;
b = c;
}
for (int i = b; i <=a; i++) {
std::cout << i << std::endl;
}
return 0;
}
1.14
我自己的认知是
For循环
优点
① 条理清楚,起始值和终值都非常清楚
缺点
① 要求多,没有While灵活
While
优点
① 使用灵活,就只要控制一个终结值就OK
缺点
① 条理不清楚
这里贴一个知乎的讨论
https://www.zhihu.com/question/20417091/answer/69874547
1.15
第一个程序
#include<iostream>
int main( {
std::cout << "Read each file." << std::endl;
std::cout << Update master. << std::endl;
std::cout << "Write new master."std::endl;
return 0;
}
第二个程序
#include<iostream>
int main() {
int v1 = 0, v2 = 0;
std::cin >> v >> v2;
cout << v1 + v2 << std::endl;
return 0;
}
1.16
#include<iostream>
int main() {
int sum = 0, value = 0;
while (std::cin >> value)
sum += value;
std::cout << "Sum is :" << sum << std::endl;
return 0;
}
1.17
#include<iostream>
int main(void) {
int currVal = 0, val = 0;
if (std::cin >> currVal) {
int cnt = 1;
while (std::cin >> val) {
if (val == currVal)
++cnt;
else {
std::cout << currVal << " occurs "
<< cnt << "times " << std::endl;
currVal = val;
cnt = 1;
}
}
std::cout << currVal << " occurs "
<< cnt << "times " << std::endl;
}
return 0;
}
① 如果都是重复的:那么if的else语句就不会被执行
② 如果都是不重复的,那么if只会执行else语句
1.18
同1.17
1.19
这题我已经改好了
#include<iostream>
int main(void) {
int a, b, c;
std::cin >> a >> b;
if (a < b) {
c = a;
a = b;
b = c;
}
while (b <= a) {
std::cout << b << std::endl;
++b;
}
return 0;
}
1.20
#include<iostream>
#include"Sales_item.h"
int main(void) {
Sales_item item1, item2;
std::cin >> item1 >> item2;
std::cout << item1 << std::endl;
std::cout << item2 << std::endl;
return 0;
}
1.21
#include<iostream>
#include"Sales_item.h"
int main(void) {
Sales_item item1, item2;
std::cin >> item1 >> item2;
std::cout << item1 << std::endl;
std::cout << item2 << std::endl;
return 0;
}
1.22
#include<iostream>
#include"Sales_item.h"
int main(void) {
Sales_item item, item2,Sum;
std::cin >> item;
Sum = item;
while (std::cin >> item) {
Sum += item;
}
std::cout << Sum;
return 0;
}
1.23
#include<iostream>
#include"Sales_item.h"
int main(void) {
Sales_item trans1, trans2;
int num = 1;
std::cout << "请输入若干销售记录:"
<< std::endl;
if (std::cin >> trans1) {
while (std::cin >> trans2)
if (compareIsbn(trans1, trans2))
num++;
else {
std::cout << trans1.isbn() << "共有"
<< num << "条销售记录" << std::endl;
}
}
else {
std::cout << "没有记录" << std::endl;
return -1;
}
return 0;
}
1.24+1.25
#include<iostream>
#include<string>
#include<cstring>
#include"Sales_item.h"
int main(void) {
Sales_item total;
if (std::cin >> total) {
Sales_item trans;
while (std::cin >> trans) {
if (total.isbn() == trans.isbn())
total += trans;
else {
std::cout << total << std::endl;
total = trans;
}
}
std::cout << total << std::endl;
}
else {
std::cerr << "No data?!" << std::endl;
return -1;
}
return 0;
}
截图如下: