The C++ Programming Language 第六章 作业

天气查询 Agent 进阶教程 本文是本地Qwen3-4B天气查询Agent进阶教程,分模型下载、API服务、LangGraph智能体三脚本搭建完整链路,遵循循序渐进学习路径。文档讲解软硬件环境配置、Python基础、FastAPI接口、大模型推理与Agent工具循环逻辑,提供全套代码、运行步骤与排错方案,搭建兼容OpenAI标准、可自主调用天气API的本地AI问答程序。 阅读详情

The C++ Programming Language 第六章 作业
james chen/200503

6.6.1
将下面的for循环重写为采用while循环的等价形式
for(i=0;i<max_length;i++)
if(input_line[i]=='?')quest_count++;
重写这个片段,用一个指针作为被控制变量,其检测采用*p=='?'的形式..

int i=0;
while(max_length--)
if(input_line[i++]=='?')quest_count++;

指针为控制变量:
int i=0;
char *p=input_line;
while(*p)
if(*p++=='?')quest_count++;

6.6.2
为下面的各个表达式加上全部括号:77
a=b+c*d<<2&8 //a=b+(((c*d)<<2)&8)
a&077!=3 //a&(077!=3)
a==b||a==c&&c<5 //(a==b)||((a==c)&&(c<5))
c=x!=0 //c=(x!=0)
0<=x<7 //(0<=x)<7
f(1,2)+3 //(f(1,2))+3
a=-1++b---5 //a=(-1)+(+(b--))-5
a=b==c++ //a=(b==(c++))
a=b=c=0 //a=(b=(c=0))
a[4][2]*=*b?c:*d*2 //a[4][2]*=(*b)?c:((*d)*2)
a-b,c=d //(a-b),(c=d)



6.6.9
给下面的表达式加上括号:
*p++ //*(p++)
*--p //*(--p)
++a-- //(++a)--
(int*)p->m //((int*)p)->m
*p.m //(*p).m
*a[i] //(*a)[i]

6.6.10
写出下列函数:strlen(),返回c字串的长度;strcpy(),它将一个c字串复制到另一字串;strcmp(),比较两个c字串。
#include<iostream>
using namespace std;
int strlen(char *d)
{
int l=0;
while(*d++!=0)l++;
return l;
}
void strcpy(char *d,char* s)
{
while(*d++=*s++);
}
bool strcmp(char *d,char *s)
{
while(*d)
if(*d++!=*s++)return 0;
return 1;
}
void main()
{
char *a="i love you!!";
cout<<strlen(a)<<endl;
char *b=new char;
strcpy(b,a);
cout<<b<<endl;
cout<<strcmp(a,b)<<endl;
char *c="sdfsf";
cout<<strcmp(a,c)<<endl;
}


6.6.13
写一个cat(),它取两个c字串,返回一个字串,该字串是两个字串的拼接。利用new为这个结果取得存储。
#include<iostream>
using namespace std;
char *cat(const char *a,const char *b)
{
char *temp=new char;
char *t=temp;
while(*t++=*a++);
t--; //退到c字串a尾部的0的位置
while(*t++=*b++);
return temp;
}
void main()
{
char *a="abcde";
char *b="12345";
char *c=cat(a,b);
cout<<c<<endl;
}


6.6.14
写一个rev(),它取c字串为参数,并反转其中字符。
#include<iostream>
using namespace std;
//这里用两个指针分别指向头尾来作交换,个人感觉要比用递归要好
int strlen(char *a)
{
int l=0;
while(*a++!=0)l++;
return l;
}
void rev(char* a)
{
char t;
int l=strlen(a);
char *p=a+l-1;
for(int i=1;i<=l/2;i++)
{
t=*a;
*a++=*p;
*p--=t;
}
}
void main()
{
char a[]="1234sfdeefd98765";
rev(a);
cout<<a<<endl;
}


6.6.16
写一函数atoi(const char*),它以一c字串为参数,返回与之对应的int值,使能处理十进制外,还能处理八进制和十六进制。
晕,还不太会用const。。

#include<iostream>
using namespace std;

//十进制、八进制、十六进制字符串转十进制

//atoi(char *):转换不同进制格式之字串到int
//strlen(char *):计算c风格字串长度
//getype(char *):检查字串符合何种进制格式,返回类型
//1:十进制2:八进制3:十六进制0:格式不符
//ascii:
//A-F:65-70
//0-9:48-57
//X:88

int strlen(char *p)
{
int l=0;
while(*p++!=0)l++;
return l;
}

int getype(char *p)
{
char *a=p;
int t=0;
//第一,判断是否含有非法字符,有则返回0
while(*a!=0)
{
t=int(*a++);
if(!((t>47&&t<58)||(t>64&&t<71)||(t==88)))return 0;
}
a=p;//指针复位
//第二,判断是否为十进制(非0打头),是则返回1,非法返回0
if(*p!='0')
{
while(*a!=0)
{
t=int(*a++);
if(t<48||t>57)return 0;
}
return 1;
}
else
//第三,判断是否为八进制(以0打头,第二字符非0),是则返回2,非法返回0
{
if(*(p+1)!='X')
{
if(*(p+1)=='0')return 0; //八进制第二字符为零视为非法
while(*a!=0)
{
t=int(*a++);
if(t<48||t>55)return 0;
}
return 2;
}
else
//否则就是十六进制.
return 3;
}
}

int atoi(char *p)
{
int l=strlen(p);
int ct=getype(p);
int temp=0,o=1;

p+=l-1; //指向最后一个数字
int t=0;
switch(ct)
{
case 1://计算十进制
while(l--)
{
temp+=(int(*p--)-48)*o;
o*=10;
}
break;
case 2://计算八进制
while((l--)-1)
{
temp+=(int(*p--)-48)*o;
o*=8;
}
break;
case 3://计算十六进制
while((l--)-2)
{
t=int(*p--);
if(t>57)t-=55; //将ABCDEF还原为10,11,12,13,14,15
else t-=48;
temp+=t*o;
o*=16;
}
break;
default:temp=0;
}

return temp;
}

void main()
{
char *a="0X4F5D"; //十六进制
char *b="0231"; //八进制
char *c="2314"; //十进制

char *d="0x2314"; //不正确的十六进制
char *e="002314"; //不正确的八进制
char *f="2314F"; //不正确的十进制

cout<<atoi(a)<<endl; //20317
cout<<atoi(b)<<endl; //153
cout<<atoi(c)<<endl; //2314
cout<<atoi(d)<<endl; //0
cout<<atoi(e)<<endl; //0
cout<<atoi(f)<<endl; //0
}



6.6.17
写一个函数itoa(int i,char b[]),它在b中建立起i的字符串表示,并返回b;

#include<iostream>
using namespace std;
void itoa(int a,char *b)
{
char *temp=new char[];
char *t=temp;
int n=0;
while(a)
{
*t++=char((a%10)+48);
n++;
a/=10;
}
*t=0;
t=temp+n-1;
while(n--)
*b++=*t--;
*b=0;
}

void main()
{
char *b=new char[];
int i=433221;
itoa(i,b);
cout<<b<<endl;
}

The C++ Programming Language(C++编程语言)第三版英文+中文特别版 立即下载

相关推荐

双足肌肉骨骼机器人

Clone Alpha的技术突破标志着人类进入生物-机械融合的新纪元,但其影响远超技术范畴。从伦理框架重建(如拉马克进化算法中的知识传递机制)到经济模式革新(如UBI应对机器人失业潮),需全球协作制定前瞻性政策。若放任技术无序扩张,人类社会或将面临“能力断层”与“控制权丧失”的双重危机;反之,若以人类福祉为核心导向,仿生机器人亦可成为弥合残障歧视、提升整体文明层级的钥匙。当下选择,将决定人类究竟是技术的创造者,还是被重构的客体。

百态·数智思维 | 聚焦大数据、量化与未来AI 985

C++/C常用字符函数,字符串函数总结

//使用字符,字符串处理函数之前,先写好#include<string.h>,#include等头文件 //觉得对你有帮助,请点亮“小红花”。 字符函数: getchar()函数,可以以a=getchar()的方式由键盘录入一个字符,且该字符可以是空格和回车等字符,与scanf输入字符的区别是,**scanf函数不能录入空格和回车等字符**。 而putchar()就是输出字符的一个函数,putchar(a)等价于printf("%c",&a)。(字符好像就这两个函数用到的比较多,字符串

m0_55233347的博客 255

银河麒麟V10-ARM架构-postgresql安装与部署指南

本文详细介绍应用源码进行pgsql的安装步骤,本文以postgresql-12.0为例。提示:以下是本篇文章正文内容,下面案例可供参考银河麒麟系统安装程序比较繁琐,潜在问题比较多,个人建议均通过源码自定义编译安装。国产系统还需努力啊!

idols_man的博客 1万+

C/C++题目--strcpy函数

题目:以下代码是否正确? char a[4],b[]={"COPY"}; strcpy(a,b); 【参考答案】 错误。因为把原字符串b赋值给字符串a时,b的长度包括了以\0为结束符,算是一个字符,共5个字符,而a长度只为4。所以b长度大于a的长度时,不能把b拷贝到a数组当中,否则运行时就会崩溃。 题目:以下代码是否正确? char a[5]; char *b=”copy”; str...

用来学习的地方 2956

Docker 磁盘占用过多问题处理过程记录

Docker 磁盘爆满问题处理

MR.骑士道 3554

Cadence 17.4 PSpice仿真555定时器输出方波

这里利用555定时器组成多谐振荡器产生1Hz的方波并用PSpice仿真其输出的方波波形。555定时器是一种广泛应用的中规模集成电路。根据其内部组成的不同,可分为双极型(555B)和CMOS型(555C)两类。两种类型的定时器各有所长。双极型定时器具有较大的驱动能力,其输出电流可达200mA,可直接驱动发光二级管、扬声器、继电器等负载。而CMOS型定时器的输入阻抗高、功耗低。

tj_nonstoper的博客 1万+

和字符串有关函数;

#include<iostream> #include<string.h> //字符串函数处理库 using namespace std; int main() { char a[100]; char b[100]; cout<<"请输入字符串:"<<endl; gets(a);//输入字符串的函数 ,此处输给数组a; put...

lixiaoting9181的博客 232

量化交易之因子分析大全

在机器学习项目中,特征工程是非常重要的。在量化研究中也是如此。本文将量化研究中常用到的特征,也就是因子进行详细收纳,并给出推导公式和实现代码。

夏之微风的博客 2283

c 字符串处理函数,字符串类和字符串变量

1.字符串连接函数strcat其函数原型为strcat(char[],const char[]);作用是:将第二个字符数组中的字符串连接到第一个字符数组的字符串后面。#include <iostream> #include <cstring> using namespace std;int main() { char a[]="You are so "; char b[]="beau

蔡松豆的博客 390

OData V2 消息在 SAP UI5 中的生成、传播与治理全解

SAP UI5 的 OData V2 消息机制通过自动解析服务端响应头(sap-message)或错误体,将消息推送到全局 MessageModel,实现数据质量保障。关键点包括:1)消息通过目标路径与控件绑定联动,触发高亮等反馈;2)生命周期管理需注意避免自动刷新导致消息丢失;3)常见陷阱如批处理错误重复、内外层消息冲突等可通过精准目标路径或自定义处理器解决。代码示例展示了如何配置模型、消息模型及 MessagePopover 实现端到端消息展示,同时支持控件通过 refreshDataState 自定义

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 231

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

c语言之数组

数组 知识点: 一.一维数组 1. 初始化方法 第一种:完全初始化。依次赋值 如:a[5] = {2,3,4, 5, 6}; a[] = {1,2, 3, 4, 5, 6};   第二种:不完全初始化。初始化式中的值从a[0]开始,依次向后赋值,不足的默认用0填充赋值 如:a[5] = {4, 5, 6};   第三种:间隔初始化。未赋值的默认用0填充赋值 如:a[5]={...

qq_43641656的博客 1565

如何通过 Python 爬虫抓取并分析政府开放数据

通过本文的介绍,我们展示了如何使用Python 爬虫抓取并分析政府开放数据。通过requests获取政府开放数据的 API 接口数据。使用和pandas进行数据清洗与存储。使用matplotlib对数据进行可视化。你可以根据不同的政府开放平台和数据集进行调整,应用于不同领域的数据分析,如公共健康、交通、环保等。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1078

The C++ Programming Language 第六章 笔记

The C++ Programming Language 第六章 笔记 james chen 050301 6.1至6.1.8等章节因较繁杂难懂暂略过。 ********************* 6.2 运算符概览 ********************* 顺序从上至下,从左至右 class_name 类名 namespace_name 命名空间名 member 成员 object 对象 po

xchenbb的专栏 1465

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

The C++ Programming Language学习:C++ 类型与声明(第六章)详解

C++ 语言由 ISO 标准定义(当前为 ISO/IEC 14882:2011)。标准中有三种不同层级的行为:C++ 代码行为明确定义Well-defined实现定义Implementation-defined未指定Unspecified未定义Undefined标准保证结果所有平台一致每个编译器必须给出确定结果但结果可能不同标准允许多种结果编译器不必说明选哪个最危险!任何事都可能发生包括程序崩溃举个具体例子: 未定义行为示例(千万别这样写): 用 在编译期检查假设: 类型系统概览 C++ 中每个名字都有一

虾球 379

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Go语言学习笔记 - 第六章 方法(The Go Programming Language)

第六章 方法 个方法则是一个一个和特殊类型关联的函数 到OOP编程的两个关键点,封装和组合 常用库及方法 time.Duration time.Hour time.Duration.Seconds() 6.1方法声明 划重点 在函数声明时,在其名字之前放上一个变量,即是一个方法 golang的接收器不像其他语言的this和self,可以任意选择,为了保持在方法间传递的一只新个简短性,建议...

rabbit0206的博客 463

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Programming Language Pragmatics学习:第六章 6.2 节:结构化与非结构化控制流

goto的意思是"跳到某个标签处执行"。早期的 Fortran 语言大量使用goto,因为它直接模仿了汇编语言的"跳转指令"。!Fortran 早期写法示例.lt. 就是 "<",如果 A < B 就跳到标签 10...10!标签 10 在这里,跳过来后从此处继续执行goto 10= “直接跳到第 10 行继续执行”标签(label)就是给某一行起个编号,作为跳转目标**续延(continuation)**是对"程序接下来要做什么"的完整捕获。续延 = {

虾球 214

《The C++ Programming Language, special edition》第6章6.6节中的一道有趣习题ch6.6-15

题目内容如下(此题目在原书的第141页): 15. (*1.5) What does the following example do? void send(int* to, int* from, int count) // Duff’s device. Helpful comment deliberately deleted. { int n = (count+7)/8; s

MJN 1788

浅谈一个布尔参数的作用

Bjarne Stroustrup的《The C++ Programming Language》果然与众不同。在讲表达式和语句的时候,先举了一个桌面计算器的例子——其中涉及到编译的一些常识。我没有学过编译原理,所以其中的语法分析搞得我一头雾水。好在经过柯老师讲解,对“递归下降”有了那么一点感觉。但对那个例子本身还是有一点疑问。这是个很简单的计算器,只有四则运算,尽管有声明变量之类的功能,程序还是很

文刀-心岂 的专栏 1654

要看的书,欠下的债

   看着满屋的书,特别是没有看完的一小堆书不禁一阵寒意...眼看就要过年了,不想欠下如此读书债,列个单子,抓紧时间还债吧:专业相关类:  数学、算法类: 《什么是数学》、《离散数学及其应用》5th(课后题巨多,貌似都可以当面试题用哦,呵呵)、《具体数学》、《算法导论2nd》(2005年秋的翻译字幕做了一集了,只看了前三章,汗啊);  编程语言类: 《C Programming Lan

AlbertLi 1147

【课程设计】基于Python音乐分类系统 毕业设计 250858

目 录摘要 1 绪论 1.1研究背景与意义 1.2开发现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2 基于Python音乐分类系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 基于Python音乐分类系统总体设计 3.1 系统架构设计 3.2 系统功能模块设计 3.2.1整体功能模块设计 3.2.2用户

WeiXin_DZbishe的博客 4435

fastAPI-基于大语言模型的测试用例生成及分析平台

摘 要 传统软件测试用例人工生成存在效率低、成本高、边界场景覆盖不全等问题,大语言模型为测试自动化提供了新的技术途径,但现有工具功能单一,缺乏一体化的生成、评估与多维度对比分析能力,难以满足课程设计与毕业设计场景的实验需求。基于 FastAPI 后端框架与 Vue3 前端技术栈,开发了支持 Java、Python、C++ 三种主流编程语言的测试用例生成及分析平台。平台集成 Gemini 3.0、GPT-4.0 等四款大语言模型,提供零样本、少样本等多种提示策略,构建包含准确率、行覆盖率等六个维度的启发式

weixin_41915110的博客 308

【课程设计】C#(asp.net)网上在线选课系统-计算机毕业设计源码59014

(1)院系信息管理模块 ①实现院系信息的添加、修改、删除操作。 ②提供院系信息的查询和展示功能。 (2)专业信息管理模块 ①实现专业信息的添加、修改、删除操作。 ②提供专业信息的查询和展示功能。 (3)课程信息管理模块 ①实现课程信息的添加、修改、删除操作。 ②提供课程信息的查询、分类展示和选课功能。 (4)学生信息管理模块 ①实现学生信息的添加、修改、删除操作。 ②提供学生信息的查询、展示和选课记录查看功能。 (5)教师信息管理模块 ①实现教师信息的添加、修改、删除操作。 ②提供教师信息的查询和展示功能

高级程序源的博客 3278

【课程设计】基于ASP.net框架的大学生健康管理系统 计算机毕业设计源码源码33942

本系统基于ASP.NET框架,通过用户模块和管理员模块实现功能分离,旨在提升大学生健康管理效率与体验。普通用户可访问首页、通知公告、BMI计算器、健康资讯等功能,并能在个人中心制定饮食与运动计划、记录健康数据等;管理员则负责后台管理,包括用户信息、健康档案、饮食与运动计划管理等,确保平台高效运作。系统使用C#编程语言、ASP.NET开发框架以及SQL Server数据库进行数据存储,并可能整合知网资源以提供健康知识内容。前后端分离的设计增强了系统的扩展性和可维护性。通过这一平台...

Biye_Design的博客 943

【关注可白嫖源码】--springboot微信外卖点餐小程序[编号:project52657](案例分析)

本论文探讨了一种基于Spring Boot框架的外卖点餐小程序的设计与开发。该系统旨在为用户提供便捷的在线点餐服务,提升外卖行业的运营效率。 论文详细介绍了系统的整体架构,包括用户端、商家端和管理员端的功能模块。用户可以通过小程序进行注册、浏览菜品信息、下单、支付以及管理个人信息和订单。商家端则提供了菜品管理、订单处理和营销活动管理等功能,帮助商家高效运营。管理员端负责系统用户管理、菜品分类管理、公告发布和权限控制,确保系统的安全和稳定运行。

VX_BYSJ9276的博客 203

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 969
上一篇: The C++ Programming Language 第六章 笔记
下一篇: The C++ Programming Language 第七章 笔记
xchenbb
博客等级 码龄22年 20粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xchenbb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值