C++Primer第五版 习题答案 第一章 开始(getting started)

本文介绍了使用C++编译器的基本操作,如文件命名约定、main程序编译与运行、返回值处理、Hello World程序编写、乘法运算、输出语句重写、程序错误输出、循环与条件控制结构等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习1.1

查阅你使用的编译器文档,确定它所使用的文件命名约定。编译并运行第2页的main程序。

我使用g++,一般将C++程序命名为.cpp。
g++ -o main main.cpp

$ g++ -o main main.cpp 
$ ls
main  main.cpp

参考:
GCC and File Extensions

练习1.2

改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标识。

将返回值改为-1后得到:

$ echo $?
255

参考:
Exit Codes With Special Meanings

练习1.3

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

#include <iostream>

int main()
{
   
   
	std::cout << "Hello,World" << std::endl;

	return 0;
}

练习1.4

我们的程序使用加法运算符+来将两个数相加。编写程序使用乘法运算符*,来打印两个数的积。

#include <iostream>

int main()
{
   
   
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    std::cin >> v1 >> v2;
    std::cout << "The product is " << v1 * v2 << std::endl;

    return 0;
}

练习1.5

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

#include <iostream>

int main()
{
   
   
    std::cout << "Enter two numbers:" << std::endl;
    int v1 = 0, v2 = 0;
    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 " << v1;
      << " and " << v2;
      << " is " << v1 + v2 << std::endl;

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

非法,前两行的末尾有分号,表示语句结束,第2、3两行为两条新的语句。而这两条语句在 “<<” 之前缺少了输出流,应在 “<<” 之前加上 “std::cout” ,或者去掉前两行末尾的分号。
我这里是去掉前两行末尾的分号,修改后的代码如下:

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

练习1.7

编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。

$ g++ -o ex07 ex07.cpp 
ex07.cpp: In function ‘int main()’:
ex07.cpp:5:3: error: expected primary-expression before ‘/’ token
  */
   ^
ex07.cpp:6:2: error: expected primary-expression before ‘return’
  return 
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值