【C++ Primer(第5版) 课后习题题目及答案 第一章】
C++ Primer5th 课后习题答案 第一章
- 1.1:查阅你使用的编译器的文档,确定它所使用的文件命名约定。编译并运行main程序。
- 1.2:改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标识。
- 1.3:编写程序,在标准输出上打印Hello,World。
- 1.4:我们的程序使用加法运算符+来将两个数相加。编写程序使用乘法运算符*,来打印两个数的积。
- 1.5:我们将所有输出操作放在一条很长的语句中。重写程序,将每个运算对象的打印操作放在一条独立的语句中。
- 1.6:解释下面程序片段是否合法。如果程序是合法的,它将输出什么?如果程序不合法,原因何在?应该如何修正?
- 1.7:编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。
- 1.8:指出下列哪些输出语句是合法的(如果有的话):预测编译这些语句会产生什么样的结果,实际编译这些语句来验证你的答案,改正每个编译错误。
- 1.9:编写程序,使用while循环将50到100的整数相加。
- 1.10:除了++运算符将运算对象的值增加1之外,还有一个递减运算符(--)实现将值减少1。编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数。
- 1.11:编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数。
- 1.12:下面的for循环完成了什么功能?sum的终值是多少?
- 1.13:使用for循环重做1.4.1中所有练习。
- 1.14:对比for循环和while循环,两种形式的优缺点各是什么?
- 1.15:编写程序,包含第14页“再探编译”中讨论的常见错误。熟悉编译器生成的错误信息。
- 1.16:编写程序,从cin读取一组数,输出其和。
- 1.17 如果输入的所有值都是相等的,本节的程序会输出什么?如果没有重复值,输出又会是怎样的?
- 1.18 编译并运行本节的程序,给它输入全都相等的值。再次运行程序,输入没有重复的值。
- 1.19 修改你为1.4.1节练习1.11(第11页)所编写的程序(打印一个范围内的数),使其能处理用户输入的第一个数比第二个数小的情况。
- 1.20 在网站http://www.informit.com/title/032174113 上,第1章的代码目录包含了头文件 Sales_item.h。将它拷贝到你自己的工作目录中。用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上。
- 1.21 编写程序,读取两个 ISBN 相同的 Sales_item 对象,输出他们的和。
- 1.22 编写程序,读取多个具有相同 ISBN 的销售记录,输出所有记录的和。
- 1.23:编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录。
- 1.24 输入表示多个 ISBN 的多条销售记录来测试上一个程序,每个 ISBN 的记录应该聚在一起。
- 1.25 借助网站上的 Sales_item.h 头文件,编译并运行本节给出的书店程序。
1.1:查阅你使用的编译器的文档,确定它所使用的文件命名约定。编译并运行main程序。
头文件后缀一般是.h或.hpp等,源文件后缀一般是.c或.cpp等。
我使用的是VS2022,命令行可以输入 cl 文件名 可以在当前目录下生成.exe文件,然后双击打开即可运行。
1.2:改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标识。
int main() {return -1;
}
在Windows操作系统下main函数没有报告运行失败,因此返回0或-1在运行效果没有什么区别。
1.3:编写程序,在标准输出上打印Hello,World。
#include<iostream>
int main()
{std::cout << "Hello , World。" << std::endl;return 0;
}
1.4:我们的程序使用加法运算符+来将两个数相加。编写程序使用乘法运算符*,来打印两个数的积。
#include<iostream>
int main()
{std::cout << "请输入两个数" << std::endl;int v1 = 0, v2 = 0;std::cin >> v1 >> v2;std::cout << v1 << "和" << v2 << "的乘积为" << v1 * v2 << std::endl;return 0;
}
1.5:我们将所有输出操作放在一条很长的语句中。重写程序,将每个运算对象的打印操作放在一条独立的语句中。
#include<iostream>
int main()
{std::cout << "请输入两个数" << std::endl;int v1 = 0, v2 = 0;std::cin >> v1 >> v2;std::cout << v1;std::cout << "和";std::cout << v2;std::cout << "的乘积为";std::cout << v1 * v2 << std::endl;return 0;
}
1.6:解释下面程序片段是否合法。如果程序是合法的,它将输出什么?如果程序不合法,原因何在?应该如何修正?
错误代码
#include<iostream>
int main()
{int v1 = 10, v2 = 20;std::cout << "The sum of" << v1;<< "and" << v2;<< "is" << v1 + v2 << std::endl;
}
不合法
第5行和第6行代码最后分别有一个分号,表示语句结束。而第6行和第7行<<操作符为二元操作符,两行第一个<<操作符没有左操作数,因此不合法。
修正代码
#include<iostream>
int main()
{std::cout << "The sum of" << v1<< "and" << v2<< "is" << v1 + v2 << std::endl;return 0;
}
1.7:编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。
/*
* 注释对/* */不能嵌套。
* “不能嵌套”几个字会被认为是源码,像剩余程序一样处理
*/
int main() {return 0;
}

1.8:指出下列哪些输出语句是合法的(如果有的话):预测编译这些语句会产生什么样的结果,实际编译这些语句来验证你的答案,改正每个编译错误。
#include<iostream>
int main()
{std::cout << "/*"; //合法 打印/*std::cout << "*/"; //合法 打印*/std::cout<< /* "*/" */; //不合法 缺少右引号//改正代码std::cout << /* "*/" */";std::cout <</* "*/" /* "/*" */; //合法 打印/*return 0;
}
1.9:编写程序,使用while循环将50到100的整数相加。
#include<iostream>
int main()
{int sum = 0, val = 50;while (val <= 100){sum += val;++val;}std::cout << "50-100的整数和为" << sum << std::endl;return 0;
}
1.10:除了++运算符将运算对象的值增加1之外,还有一个递减运算符(–)实现将值减少1。编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数。
#include<iostream>
int main()
{int val = 10;while (val >= 0){std::cout << val << std::endl;--val; //每次循环val的值减1}return 0;
}
1.11:编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数。
#include<iostream>
int main()
{int v1 = 0, v2 = 0;std::cout << "请输入两个整数:";std::cin >> v1 >> v2;//如果v1大于v2,则交换v1和v2的值if (v1 > v2) {v1 = v1 - v2;v2 = v1 + v2;v1 = v2 - v1;}while (v1 < (v2-1)) {v1++;std::cout << v1 << std::endl;}system("pause"); //冻结屏幕,便于观察程序的执行结果return 0;
}
1.12:下面的for循环完成了什么功能?sum的终值是多少?
sum = (-100)+(-99)+…+(-1)+0+1+…+99+100 = 0
#include<iostream>
int main()
{int sum = 0;for (int i = -100; i <= 100; i++)sum += i;std::cout << sum << std::endl;return 0;
}
1.13:使用for循环重做1.4.1中所有练习。
#include<iostream>
int main()
{int sum = 0, val = 50;for(val = 50;val <= 100; ++val){sum += val;}std::cout << "50-100的整数和为" << sum << std::endl;return 0;
}
#include<iostream>
int main()
{int val = 10;for(val = 10;val >= 0; --val){std::cout << val << std::endl;}return 0;
}
#include<iostream>
int main()
{int v1 = 0, v2 = 0;std::cout << "请输入两个整数:";std::cin >> v1 >> v2;//如果v1大于v2,则交换v1和v2的值if (v1 > v2) {v1 = v1 - v2;v2 = v1 + v2;v1 = v2 - v1;}for (int i = v1 + 1; i < v2; i++) {std::cout << i << std::endl;}system("pause");return 0;
}
1.14:对比for循环和while循环,两种形式的优缺点各是什么?
while的优点和缺点:- 结构不清晰,循环控制变量的初始化在while语句之前,其改变在while循环体中- 适用于不知道具体循环次数的情况for的优点和缺点:- 结构清晰,循环控制变量的初始化和修改都放在语句头部分- 适用于已知循环次数的情况
1.15:编写程序,包含第14页“再探编译”中讨论的常见错误。熟悉编译器生成的错误信息。
请自行尝试。
1.16:编写程序,从cin读取一组数,输出其和。
#include <iostream>int main() {int sum = 0, value = 0;while (std::cin >> value)sum += value;std::cout << "Sum is " << sum << std::endl;system("pause");return 0;
}
在Windows系统中,输入文件结束符的方法是Ctrl+Z,然后按Enter或Return。
在UNIX系统中,文件结束符输入是Ctrl+D。
1.17 如果输入的所有值都是相等的,本节的程序会输出什么?如果没有重复值,输出又会是怎样的?
见1.18
1.18 编译并运行本节的程序,给它输入全都相等的值。再次运行程序,输入没有重复的值。
#include <iostream>int main() {// currVal 是我们正在统计的数;我们将读入的新值存入valint currVal = 0, val = 0;// 读取第一个数,并确保确实有数据可以处理if (std::cin >> currVal) {int cnt = 1; // 保存我们正在处理的当前值的个数while (std::cin >> val) { // 读取剩余的数if (currVal == val) // 如果值相同++cnt; // 将cnt加1else { // 否则,打印前一个值的个数std::cout << currVal << " occurs "<< cnt << " times" << std::endl;currVal = val; // 记住新值cnt = 1; // 重置计数器}} // while循环在这里结束// 记住打印文件中最后一个值的个数std::cout << currVal << " occurs " << cnt << " times" << std::endl;} // 最外层的if语句在这里结束system("pause");return 0;
}
输出:
1 1 1 1 1 1 1 1^Z
1 occurs 8 times
1 2 3 4 5 6 7^Z
1 occurs 1 times
2 occurs 1 times
3 occurs 1 times
4 occurs 1 times
5 occurs 1 times
6 occurs 1 times
7 occurs 1 times
1.19 修改你为1.4.1节练习1.11(第11页)所编写的程序(打印一个范围内的数),使其能处理用户输入的第一个数比第二个数小的情况。
见1.11
1.20 在网站http://www.informit.com/title/032174113 上,第1章的代码目录包含了头文件 Sales_item.h。将它拷贝到你自己的工作目录中。用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上。
Sales_item.h
#pragma once
#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include <string>class Sales_item {
public:Sales_item(const std::string& book) :isbn(book), units_sold(0), revenue(0.0) {}Sales_item(std::istream& is) { is >> *this; }friend std::istream& operator>>(std::istream&, Sales_item&);friend std::ostream& operator<<(std::ostream&, const Sales_item&);
public:Sales_item& operator+=(const Sales_item&);
public:double avg_price() const;bool same_isbn(const Sales_item& rhs)const {return isbn == rhs.isbn;}Sales_item() :units_sold(0), revenue(0.0) {}
public:std::string isbn;unsigned units_sold;double revenue;
};using std::istream;
using std::ostream;
Sales_item operator+(const Sales_item&, const Sales_item&);inline bool operator==(const Sales_item& lhs, const Sales_item& rhs) {return lhs.units_sold == rhs.units_sold && lhs.revenue == rhs.revenue && lhs.same_isbn(rhs);
}inline bool operator!=(const Sales_item& lhs, const Sales_item& rhs) {return !(lhs == rhs);
}inline Sales_item& Sales_item::operator +=(const Sales_item& rhs) {units_sold += rhs.units_sold;revenue += rhs.revenue;return *this;
}inline Sales_item operator+(const Sales_item& lhs, const Sales_item& rhs) {Sales_item ret(lhs);ret += rhs;return ret;
}inline istream& operator>>(istream& in, Sales_item& s) {double price;in >> s.isbn >> s.units_sold >> price;if (in)s.revenue = s.units_sold * price;elses = Sales_item();return in;
}inline ostream& operator<<(ostream& out, const Sales_item& s) {out << s.isbn << "\t" << s.units_sold << "\t" << s.revenue << "\t" << s.avg_price();return out;
}inline double Sales_item::avg_price() const {if (units_sold)return revenue / units_sold;elsereturn 0;
}
#endif
1.20.cpp
#include <iostream>
#include "Sales_item.h"int main() {Sales_item book;while (std::cin >> book)std::cout << book << std::endl;system("pause");return 0;
}
结果:
0-201-70353-X 4 24.99
0-201-70353-X 4 99.96 24.99
0-201-70353-X 3 20
0-201-70353-X 3 60 20
0-201-70353-X 1 22
0-201-70353-X 1 22 22
0-201-70353-X 5 23
0-201-70353-X 5 115 23
0-201-70353-X 6 24
0-201-70353-X 6 144 24
0-201-70353-X 8 26
0-201-70353-X 8 208 26
0-201-70353-X 2 20
1.21 编写程序,读取两个 ISBN 相同的 Sales_item 对象,输出他们的和。
#include <iostream>
#include "Sales_item.h"int main() {Sales_item item1, item2;std::cin >> item1 >> item2; // 读取一对交易记录std::cout << item1 + item2 << std::endl; // 打印它们的和system("pause");return 0;
}
结果:
0-201-70353-X 2 30
0-201-70353-X 3 20
0-201-70353-X 5 120 24
1.22 编写程序,读取多个具有相同 ISBN 的销售记录,输出所有记录的和。
#include <iostream>
#include "Sales_item.h"int main() {Sales_item item, sum;while (std::cin >> item)sum += item;std::cout << sum << std::endl;system("pause");return 0;
}
输出:
1-01 2 100
1-01 2 100
1-01 3 100
1-01 7 700 100^Z
1-01 14 5600 400
1.23:编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录。
#include<iostream>
#include "Sales_item.h"int main() {Sales_item currItem, item;int cnt = 1;if (std::cin >> currItem) {while (std::cin >> item) {if(currItem.isbn == item.isbn){cnt++;}else {std::cout << currItem.isbn << " has " << cnt << " records" << std::endl;cnt = 1;currItem = item;}}std::cout << currItem.isbn << " has " << cnt << " records" << std::endl;}system("pause");return 0;
}
1.24 输入表示多个 ISBN 的多条销售记录来测试上一个程序,每个 ISBN 的记录应该聚在一起。
0-201-70353-X 4 24.99
0-201-70353-X 3 20
0-201-70353-X 2 30
0-201-70353-X 5 23
0-201-70353-X 6 24
0-201-70353-X 8 26
0-201-70351-X 2 20
0-201-70352-X 2 20^Z
0-201-70353-X has 6 records
0-201-70351-X has 1 records
0-201-70352-X has 1 records
1.25 借助网站上的 Sales_item.h 头文件,编译并运行本节给出的书店程序。
#include <iostream>
#include "Sales_item.h"int main() {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; // total现在表示下一本书的销售额}}std::cout << total << std::endl; // 打印最后一本书的结果}else {//没有输入!警告读者std::cerr << "No data?" << std::endl;system("pause");return -1; //表示失败}system("pause");return 0;
}
结果:
0-201-70351-X 1 20
0-201-70351-X 1 20
0-201-70352-X 2 30
0-201-70352-X 2 30
0-201-70353-X 4 25
0-201-70353-X 5 20
0-201-70353-X 5 23
0-201-70353-X 6 24^Z
0-201-70351-X 2 40 20
0-201-70352-X 4 120 30
0-201-70353-X 20 459 22.95
相关文章:
【C++ Primer(第5版) 课后习题题目及答案 第一章】
C Primer5th 课后习题答案 第一章 1.1:查阅你使用的编译器的文档,确定它所使用的文件命名约定。编译并运行main程序。1.2:改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系…...
【英语】100个句子记完7000个托福单词
其实主要的7000词其实是在主题归纳里面,不过过一遍100个句子也挺好的,反正也不多。 文章目录 Sentence 01Sentence 02Sentence 03Sentence 04Sentence 05Sentence 06Sentence 07Sentence 08Sentence 09Sentence 10Sentence 11Sentence 12Sentence 13Sent…...
六、CANdelaStudio入门-通信参数编辑
本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的通信参数编辑,欢迎各位朋友订阅、评论,…...
【致敬未来的攻城狮计划】— 连续打卡第十三天:FSP固件库开发启动文件详解
系列文章目录 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下 2.开发环境的选择和调试(从零开始,加油) 3.欲速则不达,今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…...
Java中mybatis是否支持延迟加载?延迟加载的原理是什么?
是的,MyBatis支持延迟加载。延迟加载是指在查询对象时,只加载其基本属性,而将关联对象的数据暂不加载,等到真正需要使用关联对象时再去查询加载其数据的一种技术。 MyBatis通过在映射文件中配置lazyLoadingEnabled属性来开启延迟加…...
真题详解(磁盘)-软件设计(五十八)
真题详解(MTTR)-软件设计(五十七)https://blog.csdn.net/ke1ying/article/details/130354940 1、2021年上半年 解析: 哈希地址 0 1 2 3 4 5 6 7 8 9 10 构建哈希表 第一步:3%11 3 ,放在哈希地址3的位置…...
MATLAB连续时间信号的实现和时域基本运算(八)
1、实验目的: 1)熟悉常用连续时间信号的实现方法; 2)掌握连续时间信号的时域基本运算; 3)掌握实现基本函数及其运算的函数的使用方法; 4)加深对信号基本运算的理解。 2、实验内容&am…...
MongoDB 聚合管道中使用字符串表达式运算符
字符串表达式运算符主要用于实现字符串操作,主要包括了大小写转换、字符串截取、拼接、替换等 一、准备工作 初始化字符串数据 db.strings.insertMany([{ "_id": "1", "comment": " Abc" },{ "_id": "2&…...
用Python分析周杰伦歌曲并进行数据可视化
大家好,今天我们用python分析下周杰伦歌曲。为了尽量完整地呈现从原始数据到可视化的过程,接下来我们会先简单讲解数据的预处理过程,即如何将 JSON 数据转化为Excel 格式,以及如何对周杰伦的歌曲进行分词。 本案例中的歌词数据来…...
培训技能 GET
技巧 调整语速和语调:讲解者需要注意语速和语调的调整,以便让听众更好地理解和接受内容。 使用案例和实例:讲解者可以使用案例和实例来帮助听众更好地理解和记忆内容,同时也可以增强听众的兴趣和参与度。 互动式讲解:…...
数据库安全性案例分享
1 概述1.1 适用范围 本规范明确了Oracle数据库安全配置方面的基本要求。 1.2 符号和缩略语 缩写 英文描述 中文描述 DBA Database Administrator 数据库管理员 VPD Virtual Private Database 虚拟专用数据库 OLS Oracle Label Security Oracle标签…...
2023,你了解Kafka吗?深入详解
- 消息队列的核心价值 - 解耦合。 异步处理 例如电商平台,秒杀活动。一般流程会分为:1: 风险控制、2:库存锁定、3:生成订单、4:短信通知、5:更新数据。 通过消息系统将秒杀活动业务拆分开&#x…...
奇舞周刊第 491 期 初探 Web 客户端追踪技术
记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 初探 Web 客户端追踪技术 浏览器的追踪技术是一把双刃剑,它建立了用户个人信息和网站之间的连接,合理地使用能够大大提高用户的体验,但是同时也…...
【Java】什么是SOA架构?与微服务有什么关系?
文章目录 服务化架构微服务架构 我的一个微服务项目,有兴趣可以一起做 服务化架构 我们知道,早期的项目,我们都是把前后端的代码放在同一个项目中,然后直接打包运行这个项目,这种项目我们称之为单体项目,比…...
【中间件】kafka
目录 一、概述二、生产者1. 发送原理2. 生产者分区 Partition分区好处分区策略 3. 生产者如何提高吞吐量4. 数据可靠性ACK应答级别数据不丢失:ACK ISR数据不重复:幂等性数据有序 三、broker1. 工作流程2. 副本相关3. 底层存储4. 高效读写数据 四、消费者…...
Html5版音乐游戏制作及分享(H5音乐游戏)
这里实现了Html5版的音乐游戏的核心玩法。 游戏的制作借鉴了,很多经典的音乐游戏玩法,通过简单的代码将音乐的节奏与操作相结合。 可以通过手机进行游戏,准确点击下落时的目标,进行得分。 点击试玩 游戏内的下落数据是通过手打记…...
Python基于Pytorch Transformer实现对iris鸢尾花的分类预测,分别使用CPU和GPU训练
1、鸢尾花数据iris.csv iris数据集是机器学习中一个经典的数据集,由英国统计学家Ronald Fisher在1936年收集整理而成。该数据集包含了3种不同品种的鸢尾花(Iris Setosa,Iris Versicolour,Iris Virginica)各50个样本&am…...
【运动规划算法项目实战】如何实现简单的状态机
文章目录 简介一、状态机1.1 简介1.2 原理介绍1.3 使用方法二、行为树2.1 简介2.2 原理介绍2.3 使用方法三、如何实现一个简单的状态机四、其他的决策模型简介四、总结简介 在机器人算法中,状态机和行为树是常用的两种设计模式。它们能够帮助机器人在复杂的环境中更好地执行任…...
JavaScript实现用while语句计算1+n的和的代码
以下为用while语句计算1n的和实现结果的代码和运行截图 目录 前言 一、实现用while语句计算1n的和 1.1运行流程及思想 1.2代码段 1.3 JavaScript语句代码 1.4运行截图 【附加】用while计算110的和 1.1代码段 1.3 运行截图 前言 1.若有选择,您可以在目录里…...
Three.js教程:顶点索引复用顶点数据
推荐:将 NSDT场景编辑器 加入你3D工具链 其他工具系列: NSDT简石数字孪生 顶点索引复用顶点数据 通过几何体BufferGeometry的顶点索引属性BufferGeometry.index可以设置几何体顶点索引数据,如果你有WebGL基础很容易理解顶点索引的概念&#…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
