C++ primer 1.2 练习

news2024/10/6 20:25:07

 

 

练习1.3:编写程序,在标准输出上打印Hello,World。

C++语言:

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello World!";
}

1.4:我们的序使用加法符+来将数相加使算符*,来打印两个数的积。

C语言:
 

#include <stdio.h>

int main() {
    int v1, v2;
    printf("Please enter two numbers: ");
    scanf("%d %d", &v1, &v2);
    printf("The product of %d and %d is %d\n", v1, v2, v1 * v2);
    return 0;
}

C++

#include <iostream>

int main() {
    int v1, v2;
    std::cout << "Please enter two numbers: ";
    std::cin >> v1 >> v2;
    std::cout << "The product of " << v1 << " and " << v2 << " is " << v1 * v2 << std::endl;
    return 0;
}

练习1.5:我们将所有输出操作放在一条很长的语句中。重写程序,将每个运算对象的打印操作放在一条独立的语句中。

C语言

#include <stdio.h>

int main() {
    int v1, v2;
    printf("Please enter two numbers: ");
    scanf("%d %d", &v1, &v2);
    printf("The product of ");
    printf("%d", v1);
    printf(" and ");
    printf("%d", v2);
    printf(" is ");
    printf("%d\n", v1 * v2);
    return 0;
}

C++

#include <iostream>

int main() {
    int v1, v2;
    std::cout << "Please enter two numbers: ";
    std::cin >> v1 >> v2;
    std::cout << "The product of ";
    std::cout << v1;
    std::cout << " and ";
    std::cout << v2;
    std::cout << " is ";
    std::cout << v1 * v2;
    std::cout << std::endl;
    return 0;
}

练习1.6:解释下面程序片段是否合法。

std::cout<<"The sum of"<<vl;

<<" and"<< v2;

<<"is"<< v1 + v2<< std:;endl;

如果程序是合法的,它输出什么?如果程序不合法,原因何在?应该如何修正?

我的答案:

这个程序片段是不合法的。

问题在于:
1. 在`std::cout<<"The sum of"<<v1;`之后,直接出现了一个分号,这意味着表达式已经结束。
2. 之后的`<<" and"<< v2;`以及`<<"is"<< v1 + v2<< std:;endl;`是不合法的,因为它们并没有一个左侧的输出对象(例如`std::cout`)。
3. 末尾的`std:;endl;`是有误的。正确写法应该是`std::endl`。

为了修正它,可以将这三行合并成一行,如下:

std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;

这样写是合法的。如果`v1`和`v2`被赋予了值,程序会输出这两个数的和。例如,如果`v1`是7,`v2`是3,它会输出:“The sum of 7 and 3 is 10”。

总结:

通过这几道题,我可以学到以下几点关于编程和C/C++的知识:

1. **基本输入/输出**: 这些题目向您展示了如何在C和C++中进行基本的输入与输出操作。在C中,我们使用`printf`和`scanf`函数,而在C++中,我们使用`std::cout`和`std::cin`。

2. **语句结构**: C++中的`std::cout`可以通过多次使用`<<`运算符在一行中输出多个值,但每个`<<`都需要一个左侧运算对象。同样,C中的`printf`函数允许您在一行中使用多个格式指定符,但如果分开,您需要多次调用`printf`。

3. **数据类型与变量**: 通过定义`v1`和`v2`这两个变量,您可以了解如何在C和C++中定义、初始化和使用变量。

4. **表达式与运算符**: 您了解到了如何使用基本的算术运算符,如加法和乘法,并且了解了输入和输出运算符在C++中的工作原理。

5. **语法与细节**: 通过不同的实现方式和错误的例子,您可以了解编程中的细节和语法的重要性。一个小错误,如遗漏的`std::`或错误的分号,都可能导致程序编译失败。

6. **代码重构与风格**: 通过比较一行完成所有任务的版本与分多行完成的版本,您可以思考关于代码可读性和风格的问题。虽然两者在功能上是相同的,但它们在可读性和维护性上可能有所不同。

7. **问题解决能力**: 当面临一个错误或需要改变现有代码的时候,您学习了如何定位问题并找到解决方案。

总之,这些题目为您提供了一个基础的实践平台,使我能够掌握C和C++中的基础概念,为后续的深入学习和更复杂的问题解决打下了坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/879423.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 10 axios,promise

01.axios是干啥的 说到axios我们就不得不说下Ajax。 在旧浏览器页面在向服务器请求数据时&#xff0c;因为返回的是整个页面的数据&#xff0c;页面都会强制刷新一下&#xff0c;这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据&#xff0c;但是从服务器端发送…

HTTP--Request详解

请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求头 客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头&#xff1a; User-Agent&#xff1a;浏览器告诉服务器&#xff0c;我访问你使用的浏览器版本信息 可…

Python学习笔记_基础篇(一)_初识python

Python简介 python的创始人为吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;。1989年的圣诞节期间&#xff0c;吉多范罗苏姆为了在阿姆斯特丹打发时间&#xff0c;决心开发一个新的脚本解释程序&#xff0c;作为ABC语言的一种继承。 Python和其他语言的对比&#xff…

【左神算法刷题班】第17节:在有序二维数组中查找目标值、等于目标字符串的子序列个数

第17节 题目1&#xff1a;在有序二维数组中查找目标值 给定一个每一行有序、每一列也有序&#xff0c;整体可能无序的二维数组 再给定一个数num&#xff0c; 返回二维数组中有没有num这个数 例子 数组如下&#xff0c;找 6 是否存在。 1 3 5 7 2 4 6 13 3 9 14 …

穿越数字奇境:探寻元宇宙中的科技奇迹

随着科技的迅速发展&#xff0c;元宇宙正逐渐成为一个备受关注的话题&#xff0c;它不仅是虚拟现实的延伸&#xff0c;更是将现实世界与数字世界融合的未来典范。在这个神秘而充满活力的数字奇境中&#xff0c;涉及了众多领域和技术&#xff0c;为我们呈现出了一个无限的创新和…

【LeetCode75】第二十九题 删除链表的中间节点

目录 题目&#xff1a; 示例; 分析: 代码: 题目&#xff1a; 示例; 分析: 给我们一个链表&#xff0c;让我们把链表中间的节点删了。 那么最直观最基础的办法是遍历两边链表&#xff0c;第一遍拿到链表长度&#xff0c;第二次把链表中间节点删了。 这个暴力做法我没事过…

深入探究QCheckBox的三种状态及其用法

文章目录 引言&#xff1a;三种状态一、未选中状态&#xff08;0&#xff09;&#xff1a;二、选中状态&#xff08;2&#xff09;&#xff1a;三、部分选中状态&#xff08;1&#xff09;&#xff1a; 判断方法结论&#xff1a; 引言&#xff1a; QCheckBox是Qt框架中常用的复…

网络安全攻防实战:探索互联网发展史

大家好&#xff0c;我是沐尘而生。 互联网发展史&#xff1a;数字世界的壮阔画卷 从早期的ARPANET到今天的万物互联&#xff0c;互联网经历了漫长的发展过程。然而&#xff0c;随着技术的进步&#xff0c;网络安全问题也随之而来。我们不仅要探索互联网的壮阔历程&#xff0c;…

学习笔记整理-面向对象-05-内置对象

一、内置对象 1. 什么是包装类 Number()、String()和Boolean()分别是数字、字符串、布尔值的"包装类"。包装类的目的就是为了让基本类型值可以从它们的构造函数的prototype上获得方法。Number()、String()和Boolean()的实例都是object类型&#xff0c;它们的Primit…

e6zzseo:谷歌SEO如何建站

​​​​​​​#秋实之美#谷歌SEO是指优化网站以在谷歌搜索引擎上获得更好的排名和可见性。建立一个优化的网站需要考虑多个因素&#xff0c;包括网站结构、内容质量、关键词优化、技术优化等。 e6zzseo专注搜索引擎获客技术 以下是建立谷歌SEO友好的网站的一些建议&#xff1…

【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

需求 有个简单的需求&#xff0c;对于第三方接口我们需要做个简单的鉴权机制&#xff0c;这边使用的是非对称性加密的机制。我们提供三方公钥&#xff0c;他们通过公钥对接口json报文使用加密后的报文请求&#xff0c;我们通过对接收过来的请求某一个加密报文字段来进行RSA解密…

SpringBoot复习:(50)TransactionManager是哪里来的?是什么类型的?

运行结果&#xff1a; 可见它的类型是DataSourceTransactionManager.它是通过自动配置创建的。

iview中table表头内容换行展示

如图效果图展示表头内容换行展示&#xff0c;代码如下&#xff1a; 在data中定义表头column Columns:[ {title: this.labelFn(Name, Name),key: name,align: center,}, ]在methods中定义方法 labelFn (name, str) {// 在需要换行的地方加入换行符 \n &#xff0c;在搭配最底…

去掉数组中头部和尾部的0numpy.trim_zeros()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 去掉数组中头部和尾部的0 numpy.trim_zeros() 选择题 以下说法错误的是? import numpy as np anp.array([0,0,1,2,3,4,0,0]) print("【显示】a:");print(a) print("【执行1】p…

CSAPP Lec01

1. CMU 15213_15513 CSAPP 深入理解计算机系统 Lecture 01 Course Overview 中英字幕_哔哩哔哩_bilibili 从这个课程中可以学到什么&#xff1f;&#xff08;为什么要学这门课&#xff09; Great Reality #1&#xff08;数字类型&#xff09;: Ints are not Integers, Floats…

c语言——颠倒字符串顺序

//颠倒字符串顺序 //列如&#xff1a;我们将runningman利用递归翻转计算。 #include<stdio.h> void reverseSentence(); int main() {printf("字符串输入:");reverseSentence();return 0; }void reverseSentence() {char c;scanf("%c",&c);if(c!…

Java课题笔记~ JSP开发模型

MVC 1.JSP演化历史 1. 早期只有servlet&#xff0c;只能使用response输出标签数据&#xff0c;非常麻烦 2. 后来有了jsp&#xff0c;简化了Servlet的开发&#xff0c;如果过度使用jsp&#xff0c;在jsp中即写大量的java代码&#xff0c;有写html表&#xff0c;造成难于维护&…

档案库房智能管理系统的功能有哪些呢?

档案库房智能管理系统是一个基于人工智能技术的综合性档案管理解决方案&#xff0c;通过自动化、智能化的方式&#xff0c;优化了档案管理流程&#xff0c;提高了工作效率和信息安全性。 1.档案入库管理&#xff1a; 档案信息录入&#xff1a;系统可以通过扫描、识别和自动填写…

UDP/TCP协议

传输层协议 再谈端口号端口号范围划分认识知名端口号两个问题netstatpidof UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 TCP协议TCP协议段格式确认应答(ACK)机制超时重传机制连接管理机制理解 CLOSE_WAIT 状态理解TIME_WAIT状态解决…

开发测试框架一 - 创建springboot工程及基础操作

一、创建及运行方式 1. 从官网导入&#xff1a; 注意&#xff1a;由于我的java版本是1.8&#xff1b;所以选中了spring2.7.14&#xff1b;如果你的java版本是9及以上&#xff0c;选中spring3相关的同时Java 版本也要对应起来 2. 创建第一个get请求 创建Controller package及…