C++ primer 1.2 练习

 

 

练习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++中的基础概念,为后续的深入学习和更复杂的问题解决打下了坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏驰和徐策

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

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

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

打赏作者

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

抵扣说明:

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

余额充值