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