1.1 第一个程序
答:______________
✅ 查看答案与解析
答案 对
解析:尖括号表示去系统目录找;写成 #include "my.h"(双引号)才表示先找当前目录。
答:______________
✅ 查看答案与解析
答案 错
解析:返回类型必须是 int。C++ 允许省略末尾的 return 0(等价于返回 0),但 int 这个类型不能省。
cout << "Hello" << endl;
std::cout << "Hello" << std::endl;
std::cout >> "Hello";
std::cout << Hello;
答:______________
✅ 查看答案与解析
答案 B
解析:A 缺 std:: 前缀;C 的 >> 方向反了(<< 才是插入运算符);D 的 Hello 没有加引号,会被当成变量。
#include <iostream>
int main() {
std::cout >> "Hello, C++" << std::endl
return 0;
}
✅ 查看答案与解析
答案 两处:① >> 应为 <<;② 第一行语句末尾缺分号。
解析:正确写法:
std::cout << "Hello, C++" << std::endl;
return 0;提示:用 #include <iostream>;每行用 std::cout 输出,结尾用 '\n' 或 std::endl 换行。
✅ 查看答案与解析
答案 参考答案:
解析:'\n' 是换行字符;注意字符串里用双引号包住中文内容。
#include <iostream>
int main() {
std::cout << "你的名字" << '\n';
std::cout << "开始学 C++ 啦\n";
return 0;
}1.2 输入输出
答:______________
✅ 查看答案与解析
答案 对
解析:>> 的默认行为就是跳过所有空白,所以 cin >> a >> b 可以连着读多个数。
答:______________
✅ 查看答案与解析
答案 对
解析:cin >> s 遇到空白就停;getline 一直读到换行符为止,能保留空格。
"hello world"
"hello"
"world"
空串
答:______________
✅ 查看答案与解析
答案 B
解析:>> 遇到空白就停,所以只读到 hello。要读整行必须用 getline。
下一行完整内容
空串
上一行剩下的内容
编译错误
答:______________
✅ 查看答案与解析
答案 B
解析:>> 读完数字后把换行符留在缓冲区里,getline 第一眼看到换行符就直接结束,所以读到空串。解决:先 std::cin.ignore(); 吃掉遗留的换行。
int n;
std::cin >> n;
std::string line;
std::getline(std::cin, line);
std::cout << line << '\n';
✅ 查看答案与解析
答案 在 getline 之前加一行:std::cin.ignore();,把 >> 遗留的换行符吃掉。
解析:>> 不会消耗换行符,ignore() 专门用来丢弃它。这是 cin 和 getline 混用时的经典坑。
提示:std::cin >> a >> b; 然后 std::cout << a + b;
✅ 查看答案与解析
答案 参考答案:
解析:输出别忘了换行符。
#include <iostream>
int main() {
int a, b;
std::cin >> a >> b;
std::cout << a + b << '\n';
return 0;
}1.3 编译命令与报错
答:______________
✅ 查看答案与解析
答案 对
解析:手册反复强调:-Wall -Wextra 一定要一直开着,很多隐患(如未使用变量、符号比较)编译器早就看出来了。
答:______________
✅ 查看答案与解析
答案 对
解析:编译每个 .cpp 只看得见它自己的声明;把所有目标文件拼起来时(链接),才检查函数定义是否存在。
先看最后一条,通常最重要
先看第一条,后面的错误经常是第一条引发的连锁反应
随便挑一条看
直接重写程序
答:______________
✅ 查看答案与解析
答案 B
解析:先看第一条,先看文件名和行号,再看描述。编译器提示的位置有时会偏移一行(如“缺分号”指的是上一行末尾)。
g++ -std=c++17 main.cpp # 报 undefined reference
✅ 查看答案与解析
答案 把定义 foo 的源文件一起编译:g++ -std=c++17 main.cpp util.cpp -o app
解析:undefined reference 是链接错误:声明存在但定义没被链接进来。把所有 .cpp 一起交给 g++ 即可。
提示:命令:g++ -std=c++17 -Wall -Wextra -o hello hello.cpp
✅ 查看答案与解析
答案 参考答案:
解析:编译命令里 -std=c++17 指定标准,-Wall -Wextra 打开警告。
#include <iostream>
int main() {
std::cout << "Hello, C++" << '\n';
return 0;
}