C++入门Day4:总结 & 复习题目 & 编程练习

 一、总结

二、复习题目

1.C++中程序的模块叫什么?

答:函数。

2.下面的预处理器编译指令是做什么用的?
#include <iostream>

答:将头文件 iostream 添加到源代码中。

3.下面的语句是做什么用的?
using namespace std;

答:表明当前使用的命名空间是 std 。

4.什么语句可以打印 “ Hello world ” 并开启新的一行?

答:

cout << "Hello world" << endl;
5.什么语句可以创建名为 cheeses 的整数变量?

答:

int cheeses;
6.什么语句可以将值 32 赋给变量 cheeses ?

答:

cheeses = 32
7.什么语句可以将键盘输入的值读入变量 cheeses 中?

答:

cin >> cheeses;
8.什么语句可以用来打印 “ We have X varieties of cheese, ” ,其中 X 为变量 cheeses 的当前值。

答:

cout << "We have " << cheeses << " varieties of cheese," << endl;
9.下面的函数原型指出了关于函数的那些信息?
int froop(double t);
void rattle(int n);
int prune(void);

答:

  • 第一个函数原型表明函数名为 froop ,返回值是整形 int ,参数是浮点数 double 。
  • 第二个函数原型表明函数名为 rattle ,无返回值,参数是整形 int 。
  • 第三个函数原型表明函数名为 prune ,返回值为整形 int ,无参数 。
10.定义函数时,什么情况下不必使用关键字 return ?

答:当函数无返回值时。

11.假设您编写的 main() 函数包含以下代码:
cout << "Please enter your PIN:";
     而编译器指出 cout 是一个未知标识符。导致出现问题的原因是什么?指出三种修复这种问题         的方法。

答:

  1. 没有包含 iostream 头文件。
  2. 没有规定命名空间为 std 。

答案

三、编程练习

1.编写一个C++程序,它显示您的姓名和地址。
#include <iostream>

int main()
{
    using namespace std;
    cout << "Lin Mohan" << endl;
    return 0;
}
2.编写一个 C++ 程序,它要求用户输入一个以 long 为单位的距离,然后将它转换为码(一 long 等于 220 码)。
#include <iostream>

int main()
{
    using namespace std;
    
    double longnum;
    cout << "输入一个值 (以long为单位):" << endl;
    cin >> longnum;

    double yard;
    yard = longnum * 220;

    cout << longnum
         << "long = "
         << yard
         << "码";
}
3.编写一个 C++ 程序,它使用 3 个用户定义的函数(包括 main() ),并生成下面的输出:
        Three blind mice
        Three blind mice
        See how they run
        See how they run

    其中一个函数要调用两次,该函数生成前两行;另一个函数也被调用两次,并生成其余的输出。

#include <iostream>
using namespace std;

void print_first(void);
void print_second(void);

int main()
{
    print_first();
    print_first();

    print_second();
    print_second();
}

void print_first(void)
{
    cout << "Three blind mice" << endl;
}
void print_second(void)
{
    cout << "See how ther run" << endl;
}
4.编写一个程序,让用户输入其年龄,然后显示该年龄包含多少个月,如下所示:

        Enter your age: 29

        You are age in months is 348.

#include <iostream>
using namespace std;

int main()
{
	int age;
	cout << "Enter your age: ";
	cin >> age;

	int month;
	month = 12 * age;

	cout << "You are age in months is "
		 << month;
}
5.编写一个程序,其中的main()调用一个用户定义的函数(以摄氏温度值为参数,并返回相应的华氏温度值)。该程序按下面的格式要求用户输入摄氏温度值,并显示结果:

        please enter a Celsius value: 20

        20 degrees Celsius is 68 degrees Fahrenheit.

下面是转换公式:

华氏温度=1.8×摄氏温度+32.0

#include <iostream>
using namespace std;

int main()
{
	double C;
	cout << "please enter a Celsius value:  ";
	cin >> C;

	double F;
	F = 1.8 * C + 32.0;

	cout << C
	 	 << " degrees Celsius is "
	 	 << F
		 << " degrees Fahrenheit.";
}
6.编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位的值)。该程序按下面的格式要求用户输入光年值,并显示结果:

        Enter the number of light years: 4.2

        4.2 light years 265608 astronomical units.

天文单位是从地球到太阳的平均距离(约150000000公里或93000000英里),光年是光一年走的距离(约10万亿公里或6万亿英里)(除太阳外,最近的恒星大约离地球4.2光年)。请使用double类型(参见程序清单2.4),转换公式为:

1光年=63240天文单位

(与上一题类似,不再赘述。)

7.编写一个程序,要求用户输入小时数和分钟数。在main()函数中,将这两个值传递给一个void函数,后者以下面这样的格式显示这两个值:

        Enter the number of hours: 9

        Enter the number of minutes: 28

        Time: 9 : 28

#include <iostream>
using namespace std;

int main()
{
	int hour;
	int minute;

	cout << "Enter the number of hours: ";
	cin >> hour;

	cout << "Enter the number of minutes: ";
	cin >> minute;

	cout << "Time: " << hour << ":" << minute;
}

四、共勉

本篇博客是自我学习笔记,如果后续能够有人能够从中汲取到知识和收获,这也是我所希望的。如果有读者不懂或有问题的话,欢迎提出来,让我们一起讨论。同时,我将继续更新 C++ 入门学习系列笔记,敬请期待。

谢谢!

 弩哥镇楼

你问得非常好,这四个问题非常关键: &gt; **&ldquo;我这个基础去刷题可以吗?一天能学多少道?要不要补基础?推荐什么网课?&rdquo;** 我会一个一个地、**结合你的实际情况**(已经完成了四道典型题),给你最真实、最实用的建议。 --- ## ✅ 1. 我这个基础去刷题可以吗? ### 💬 答案:✅ 可以开始刷题了,但要&ldquo;有策略地刷&rdquo;,不是盲刷! ### 🔍 分析你的现状: | 能力 | 情况 | |------|------| | 基本语法 | ✅ 会 `cin/cout`、`for` 循环、`if` 判断 | | 数组和字符串 | ✅ 会遍历、计数、处理字符 | | 面向对象 | ✅ 写过 `Point` 类,理解构造函数 | | 算法思维 | ✅ 掌握二分查找的基本思想 | | 编程工具 | ✅ 能写完整程序并提交 AC | 🎯 结论: 你已经具备了 **&ldquo;入门级算法学习者&rdquo;** 的能力! 你现在最需要的不是&ldquo;再学一年基础&rdquo;,而是: &gt; **通过刷题来巩固知识 + 提升信心 + 建立方法论** --- ## ✅ 2. 一天能学习多少道题?怎么安排? ### 💬 答案:每天 **1~2 道题** 就够了,关键是&ldquo;吃透&rdquo;。 不要追求&ldquo;一天十道&rdquo;,那是假努力。你要的是真掌握。 ### 📅 推荐每日节奏(适合学生/上班族): ```text 晚上 或 周末:60~90分钟 ├── 第1步:读题 + 拆解(15分钟) │ &rarr; 看不懂就多读两遍,画图帮助理解 ├── 第2步:尝试自己写代码(30分钟) │ &rarr; 不会就看一点提示,别直接抄答案 ├── 第3步:调试 + 修改(20分钟) │ &rarr; 打印中间变量,检查哪里出错 └── 第4步:总结收获(10分钟) &rarr; 记录知识点、易错点、学到的新技巧 ``` 📌 **记住一句话:** &gt; &ldquo;一天搞懂一道题,胜过一天看完十道。&rdquo; --- ## ✅ 3. 要不要从基础补起? ### 💬 答案:不需要系统补课,但需要&ldquo;边做边补&rdquo;! 你已经有足够的基础,不需要再花几个月去听《C++ 从零到精通》这种大课。 ✅ 正确做法是: **以&ldquo;刷题为主线&rdquo;,遇到不会的知识点再回头专项突破** ### 🎯 推荐&ldquo;按需补基础&rdquo;的方式: | 遇到的问题 | 回头补什么 | |-----------|------------| | 不会用数组存数据 | 复习 `int arr[10]; for(i=0;i&lt;n;i++) cin&gt;&gt;arr[i];` | | 忘了类怎么定义 | 看回你写的 `Point` 类,抄一遍 | | 不懂 `while(cin&gt;&gt;x)` | 学&ldquo;多组输入处理&rdquo;这一小节 | | 看不懂 `mid = left + (right-left)/2` | 补&ldquo;二分防溢出&rdquo;技巧 | 📌 这叫 **&ldquo;问题驱动学习法&rdquo;** &mdash;&mdash; 有问题才学,效率最高! --- ## ✅ 4. 推荐什么网课?有没有免费资源? ### 💬 答案:不推荐长篇大论的视频课!推荐以下 **精准、高效、免费的学习资源** ### 🌐 免费优质平台推荐(中文+适合初学者) | 平台 | 推荐内容 | 特点 | |------|----------|------| | [**B站 - &ldquo;黑马程序员 C++**](https://www.bilibili.com/video/BV1hB4y1T7bL)&rdquo; | 前10讲:基本语法、循环、数组 | 免费、语速慢、适合零基础 | | [**菜鸟教程 - C++**](https://www.runoob.com/cplusplus/cpp-tutorial.html) | 查语法、看例子 | 在线运行代码,随时测试 | | [**洛谷 - 新手村**](https://www.luogu.com.cn/training/1) | 刷题路线图 | 题由易到难,配套题解丰富 | | [**LeetCode 力扣 - 探索卡片**](https://leetcode.cn/explore/) | &ldquo;初级算法&rdquo;、&ldquo;二分查找&rdquo;专题 | 交互式学习,带测试用例 | 🎯 **重点推荐路径:** 1. B站看前5讲(变量、循环、数组) 2. 菜鸟教程查不懂的语法 3. 洛谷&ldquo;新手村&rdquo;刷题实战 4. LeetCode 巩固算法 --- # 🗓️ 综合学习计划(优化版 &middot; 适合你当前水平) | 时间 | 标 | 具体任务 | |------|------|----------| | **第1周**&lt;br&gt;巩固已学 | 把四道题变成&ldquo;自己的模板&rdquo; | 每天重写一道,直到闭眼都能写出来 | | **第2周**&lt;br&gt;扩展练习 | 刷 5 道同类题 | 在洛谷找&ldquo;字符串处理&rdquo;、&ldquo;简单数学&rdquo;标签的题 | | **第3周**&lt;br&gt;专项突破 | 攻克&ldquo;二分查找&rdquo;和&ldquo;类设计&rdquo; | 每类题各练2道,整理模板 | | **第4周**&lt;br&gt;模拟实战 | 完成一次&ldquo;小型编程考试&rdquo; | 限时60分钟完成3道题,全部AC | 📌 每周休息1天,保持节奏不崩溃 --- ## 🧩 给你定制的&ldquo;第一周每日打卡表&rdquo; | 天数 | 任务 | 是否完成 ✔️ | |------|------|-------------| | Day 1 | 重新写&ldquo;数字字符统计&rdquo;题,不看原码 | □ | | Day 2 | 重新写&ldquo;Point类求最远距离&rdquo;题 | □ | | Day 3 | 重新写&ldquo;mySqrt(x)&rdquo;函数 + 主函数 | □ | | Day 4 | 给每道题加注释,写成&ldquo;教学版本&rdquo; | □ | | Day 5 | 总结四道题共用的数据结构和技巧 | □ | | Day 6 | 在纸上默写任意一道题的完整代码 | □ | | Day 7 | 自己出一道类似的题(比如统计字母) | □ | 👉 完成后截图发给我,我可以帮你批改! --- ## 💬 最后送你三句话鼓励: 1. &gt; &ldquo;你现在的水平,已经超过了80%刚开始学编程的人。&rdquo; 2. &gt; &ldquo;不要怕慢,只要不停,你就一定会跑到终点。&rdquo; 3. &gt; &ldquo;每一个高手,都曾是一个连 for 循环都写不对的 beginner。&rdquo; --- 如果你愿意,我现在就可以为你: - 生成一份 PDF 打卡表 - 推荐3道适合你当前水平的练习题 - 提供每一题的详解思路 只等你说一句:&ldquo;老师,我准备好了!&rdquo; 💪❤️亲爱的同学: 你这句话让我特别感动,因为你说:&ldquo;我基础太差劲了&rdquo;,但你还在坚持提问、努力学习。这说明你不是&ldquo;差&rdquo;,而是**正在变强的路上**!💪 --- ## 🌱 别担心,每个人都是从&ldquo;什么都不会&rdquo;开始的 你现在觉得函数和指针很难,是因为它们是编程里的&ldquo;抽象概念&rdquo;。就像小时候学加减法也要慢慢来一样,编程也需要时间理解和练习&gt; ✅ **你不是学不会,只是还没学会。** --- # 💡 我教你一个&ldquo;零基础也能懂&rdquo;的方法:用生活打比方! 我们不用术语,就用你每天经历的事情来理解代码。 --- ## 🔹 一、什么是&ldquo;函数&rdquo;?&mdash;&mdash; 它就像&ldquo;按钮&rdquo; ### 生活例子:洗衣机上的按钮 - 洗衣机上有几个按钮: - &ldquo;快速洗&rdquo; - &ldquo;强力洗&rdquo; - &ldquo;脱水&rdquo; - 你按下&ldquo;快速洗&rdquo;,它就会自动完成一系列动作(进水 &rarr; 搅拌 &rarr; 排水 &rarr; 脱水) 👉 这个&ldquo;快速洗&rdquo;按钮,就是一个&ldquo;函数&rdquo;。 --- ### 编程中的函数 = 按钮 ```cpp void washQuick() { cout &lt;&lt; &quot;进水...&quot; &lt;&lt; endl; cout &lt;&lt; &quot;搅拌...&quot; &lt;&lt; endl; cout &lt;&lt; &quot;排水...&quot; &lt;&lt; endl; } ``` - `washQuick()` 就是一个函数(按钮) - 主程序中只要写 `washQuick();` &mdash;&mdash; 就像按了一下按钮 - 程序就会自动执行里面的三句话 🎯 所以记住: &gt; **函数 = 把一堆操作打包成一个名字,以后想用就&ldquo;调用这个名字&rdquo;** --- ### 为什么要有函数? 想象一下: 如果你每次洗衣服都要手动输入: ``` 进水... 搅拌... 排水... ``` 写了10次洗衣程序,你就得抄10遍! 但如果有个按钮叫 `washQuick()`,你只需要写: ```cpp washQuick(); washQuick(); ``` ✅ 写两次就行!省事、不易出错、改起来也方便(只改一次函数内容) --- ### 小结:函数就是&ldquo;功能按钮&rdquo; | 生活 | 编程 | |------|-------| | 按&ldquo;煮饭&rdquo;按钮 | 调用 `cookRice()` 函数 | | 按&ldquo;启动汽车&rdquo; | 调用 `startCar()` 函数 | | 按&ldquo;播放音乐&rdquo; | 调用 `playMusic()` | 📌 口诀:**&ldquo;定义一次,使用多次;改一处,全生效&rdquo;** --- ## 🔹 二、什么是&ldquo;指针&rdquo;?&mdash;&mdash; 它就像&ldquo;遥控器&rdquo; ### 生活例子:电视遥控器 - 遥控器本身不是电视 - 但它能控制电视 - 你可以用遥控器打开电视、换台、调音量 👉 遥控器&ldquo;指向&rdquo;电视,并可以操作它。 这就是&ldquo;指针&rdquo;的本质! --- ### 在程序里: ```cpp Point p; // 创建一个点(真正的电视机) Point* ptr; // 定义一个指针(遥控器) ptr = &amp;p; // 让遥控器对准这台电视(&amp; 表示&ldquo;地址&rdquo;) ``` - `ptr` 是一个指针,它不存数据,只存&ldquo;某个对象的位置&rdquo; - `&amp;p` 表示&ldquo;p 的地址&rdquo;(相当于电视机放在客厅第3排第5座) - `ptr-&gt;setXY(3,4)` 表示&ldquo;通过遥控器让电视设置坐标&rdquo; 📌 所以: &gt; **指针就是一个&ldquo;遥控器&rdquo;,它可以远程操作内存中的对象** --- ### 动态数组为啥要用指针? 回到你的代码: ```cpp Point* points = new Point[n]; // 创建 n 个点 ``` 🔹 相当于: - 你要办一场演唱会 - 观众人数还不知道(用户输入 n) - 于是你临时租一块地,建 `n` 个座位(new) - `points` 是这个场地的&ldquo;总遥控器&rdquo;,可以控制每一个座位上的观众 你想访问第 i 个人?写: ```cpp points[i].setXY(x, y); ``` 或者更专业地说: ```cpp (points + i)-&gt;setXY(x, y); // 像遥控器调频道一样移动 ``` --- ### 小结:指针就是&ldquo;遥控器&rdquo; | 生活 | 编程 | |------|-------| | 遥控器控制电视 | 指针操作对象 | | 多个遥控器可控制同一台电视 | 多个指针可指向同一个对象 | | 遥控器丢了就无法操作电视 | 指针丢失会导致内存泄漏 | 📌 口诀:**&ldquo;指针不是数据,是指向数据的路标&rdquo;** --- ## 🧭 给你的学习路线图(适合零基础) ### 第一步:先别怕,每天学一点点 | 时间 | 学什么 | 怎么学 | |------|--------|--------| | 第1天 | 函数是什么 | 写3个按钮函数:sayHello(), printStars(), addTwoNumbers() | | 第2天 | 带参数的函数 | 比如 `greet(&quot;小明&quot;)` 输出&ldquo;你好,小明!&rdquo; | | 第3天 | 返回值 | `int add(int a, int b)` 返回两数之和 | | 第4天 | 指针入门 | 学会 `int* p; p = &amp;x; *p = 10;` | | 第5天 | 指针+数组 | 用指针遍历数组 | | 第6天 | 类和对象 | 把&ldquo;学生&rdquo;、&ldquo;汽车&rdquo;做成类 | | 第7天 | 综合实战 | 再回头看 `Point` 这道题,你会发现:我能看懂了!!! | --- ## 📚 推荐你这样练习(超简单起步) ### ✅ 练习1:写一个&ldquo;打招呼&rdquo;函数 ```cpp #include &lt;iostream&gt; using namespace std; void sayHi() { cout &lt;&lt; &quot;嗨!我是机器人小C&quot; &lt;&lt; endl; } int main() { sayHi(); // 按下按钮 sayHi(); // 再按一次 return 0; } ``` 运行结果: ``` 嗨!我是机器人小C 嗨!我是机器人小C ``` --- ### ✅ 练习2:带参数的函数 ```cpp void greet(string name) { cout &lt;&lt; &quot;你好呀,&quot; &lt;&lt; name &lt;&lt; &quot;!&quot; &lt;&lt; endl; } int main() { greet(&quot;小明&quot;); greet(&quot;小红&quot;); return 0; } ``` 输出: ``` 你好呀,小明! 你好呀,小红! ``` --- ### ✅ 练习3:最简单的指针 ```cpp int x = 5; int* p = &amp;x; // p 是指向 x 的指针 cout &lt;&lt; &quot;x = &quot; &lt;&lt; x &lt;&lt; endl; // 直接看 x cout &lt;&lt; &quot;*p = &quot; &lt;&lt; *p &lt;&lt; endl; // 通过指针看 x 的值 *p = 10; // 修改指针指向的内容 cout &lt;&lt; &quot;现在 x = &quot; &lt;&lt; x &lt;&lt; endl; // 发现 x 变了! ``` 输出: ``` x = 5 *p = 5 现在 x = 10 ``` 💡 看到了吗?`*p = 10` 改的是 `x` 的值!这就是&ldquo;遥控器改变电视内容&rdquo; --- ## 🎁 最后送你一句话鼓励: &gt; **世界上没有&ldquo;天生就会编程&rdquo;的人,只有&ldquo;一直不肯放弃&rdquo;的人。** &gt; &gt; 你现在走的每一步,都在把你变成未来的高手。 &gt; &gt; 不要和别人比,只要今天的你比昨天多懂了一点点,你就赢了! --- ## 🤝 我在这里陪你 只要你愿意学,我可以: - 从最基础开始带你一步步学 - 把复杂概念变成故事讲给你听 - 给你设计简单练习题 - 看你写代码、帮你改错 你不需要聪明,只需要两个字:**坚持** --- 🌱 明天我们可以从第一个练习开始: &gt; &ldquo;写一个函数,打印自己的名字。&rdquo; 你准备好了吗?回复我:&ldquo;我准备好了!&rdquo; 我们就开始! 你不是一个人在战斗,我在。❤️总结一下 给我做一份计划表
最新发布
09-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值