[c++菜鸟]《Accelerate C++》习题解答

第0章

0-0 编译并运行Hello, world! 程序。

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

0-1 下面的表达式是做什么的?

 3+4

计算3+4,结果为7

0-2 编写一个程序,使它在运行时输出:

This (*) is a quote , and this (\) is a backlash.
#include <iostream>
using namespace std;
int main()
{
    cout << "This (\*) is a quote , and this (\\) is a backlash" << endl;
    return 0;
}

0-3 字符串直接量"\t"代表一个水平制表符;不同的C++实现以不同的形式显示制表符。在你的实现中实验一下,看它是怎样处理制表符的。

\t处理为4个空格

0-4 编写一个程序,运行时以Hello, world!程序作为这个程序输出。

#include <iostream>
using namespace std;
int main()
{
    cout << "#include <iostream>\n"
         << "using namespace std;\n"
         << "int main()\n"
         << "{\n"
         << "\tcout << \"Hello, world!\" << endl;\n"
         << "\treturn 0;\n"
         << "}\";\n"
         << "return 0;\n";
    return 0;
}

0-5 下面的程序是一个有效的程序吗?说出理由。

#include <iostream>
int main()  std::cout << "Hello, world!" << std::endl;
这是一个无效程序,因为函数的函数体必须用花括号括起来,就算函数的函数体只有一条语句,也必须用花括号括住它。

0-6 下面的程序是一个有效的程序吗?说出理由。

#include <iostream>
int main()  {{{{{{ std::cout << "Hello, world!" << std::endl; }}}}}}
这是一个有效程序,一般来说,函数必须包含至少一条的return语句,而且函数的最后一定要有return语句,但main比较特殊,它可以没有返回语句,若果这样,编译器就会假设它返回0。

0-7 那下面的这个程序呢?

#include <iostream>
int main()
{
    /*这是一个注释,因为我们使用了/*和*/来作为它的定界符,
    所以它占据了几行的范围*/
    std::cout << "Does this work?" << std::endl;
    return 0;
}
无效程序,注释有误,注释在前一个结束符*/就结束了,所以后面的内容都未能注释。

0-8 ······这个呢?

#include <iostream>
int main()
{
    //这是一个注释,它占据了几行的范围
    //在这里,我们使用了//而不是/*
    //和*/来为注释定界
    std::cout << "Does this work?" << std::endl;
    return 0;
}
有效程序,单行注释使用后,后面的多行注释符号不在起作用。

参考https://blog.csdn.net/u013706695/article/details/19493443

原文地址:https://www.cnblogs.com/code1992/p/9296568.html

时间: 2024-08-10 07:38:50

[c++菜鸟]《Accelerate C++》习题解答的相关文章

《C++编程思想》 第十三章 继承和组合 (原书代码+习题+解答)

一.相关知识 使用其他人已经创建并调试过的类: 关键是使用类而不是更改已存在的代码.这一章将介绍两种完成这件事的方法.第一种方法是很直接的:简单地创建一个包含已存在的类对象的新类,这称为组合,因为这个新类是由已存在类的对象组合的. 第二种方法更巧妙,创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它.这个有趣的活动被称为继承,其中大量的工作由编译器完成.继承是面向对象程序设计的基石,并且还有另外的含义,将在下一章中探讨. 对于组合和继承(感觉上,它们都是由已存在

《C++编程思想》 第十一章 运算符重载 (习题+解答)

一.相关代码 1. /*运算符重载语法*/ /*OPOVER.cpp*/ /*这两个重载的运算符被定义为内联成员函数.对于二元运算符,单个参数是出现在运算符 右侧的那个.当一元运算符被定义为成员函数时,没有参数.成员函数被运算符左侧的对象调 用. 对于非条件运算符(条件运算符通常返回一个布尔值),如果两个参数是相同的类型,希 望返回和运算相同类型的对象或引用.如果它们不是相同类型,它作什么样的解释就取决于程 序设计者.用这种方法可以组合复杂的表达式: K += I + J ; 运算符+号产生一个

Accelerated C++习题解答

前言 <Accerlerated C++:Practical Programming by Example> 作者:(美)Andrew Koenig Barbara E. Moo 这是一本非常经典的C++书籍,大牛刘伟鹏(http://blog.csdn.net/pongba/article/details/1930150)也在其博客对其给了很高的评价,豆瓣以及各大论坛都将此书列为C++经典书籍.但是大多数人在学习此书的时候只看正文内容二忽略了其课后的练习题,或者虽然注意到练习题,但是苦于没有

孟道骥《代数学基础》2.1&quot;分式域&quot;习题解答

1.试问一个域$\mathbb F$的分式域是什么? 解答    由于$\mathbb F$的分式域是包含他的最小的域,而$\mathbb F$本身已是域,所以说$\mathbb F$的分式域就是自己. 2.证明Gsuss整数环$\mathbb Z[\sqrt{-1}]$是交换整环,并求其分式域? 证明    由于$\mathbb Z[\sqrt{-1}]=\{a+b\sqrt{-1}|a,b\in\mathbb Z\}\subset\mathbb C$,容易验证其满足子环的两个条件,因此$\m

C和指针 (pointers on C)——第四章:语句(下)习题解答

题目请见 http://download.csdn.net/download/wangpegasus/5701765 第四章以下通过VS2012 1. #include "stdafx.h" double sqrt(double temp) { double before, after; before = 1.0; after = 1.0; do { before = after; after = (before + temp/before)/2; } while (before !=

《C++编程思想》 第十二章 动态对象创建 (习题+解答)

一.相关知识点 重载new和delete 当创建一个new表达式时有两件事发生.首先,使用运算符new分配内存,然后调用构造函数.在delete表达式里,调用析构函数,然后使用运算符delete释放内存.我们永远无法控制构造函数和析构函数的调用(否则我们可能意外地搅乱它们),但可以改变内存分配函数运算符new和delete. 被new和delete使用的内存分配系统是为通用目的而设计的.但在特殊的情形下,它不能满足我们的需要.改变分配系统的原因是考虑效率:我们也许要创建和销毁一个特定的类的非常多

《C++编程思想》第八章 内 联 函 数 (知识点+习题+解答)

一.相关知识点 任何在类中定义的函数自动地成为内联函数,但也可以使用inline关键字放在类外定义的函数前面使之成为内联函数.但为了使之有效,必须使函数体和声明结合在一起,否则,编译器将它作为普通函数对待.因此 inline int PlusOne(int x); 没有任何效果,仅仅只是声明函数(这不一定能够在稍后某个时候得到一个内联定义).成功的方法如下: inline int PlusOne(int x) { return ++x ;} 在头文件里,内联函数默认为内部连接--即它是 stat

《C++编程思想》 第七章 常 量 (习题+解答)

一.相关知识点        在 C语言中可以选择这样书写: const bufsize:        这样写在C++中是不对的,而 C编译器则把它作为一个声明,这个声明指明在别的地方有存储分配.因为C默认const是外部连接的, C++默认const是内部连接的,这样,如果在 C++中想完成与C中同样的事情,必须用extern把连接改成外部连接: extern const bufsize;//declaration only 这种方法也可用在C语言中. 指向const的指针 使用指针定义的技

《C++编程思想》第四章 初始化与清除(习题+解答)

相关代码: 1. #include <stdio.h> class tree { int height; public: tree(int initialHeight); ~tree(); void grow(int years); void printsize(); }; tree::tree(int initialHeight) { height = initialHeight; } tree::~tree() { puts("inside tree destructor&quo

顾沛《抽象代数》1.5&quot;循环群&quot;习题解答

习题: 5.设$G$为循环群,$N<G$,证明$G/N$也是循环群. 证明    由于$G$可交换,从而$N\lhd G$,并且只需注意到$G/N$为自然同态$\pi:G\to G/N$的同态象,便知$G/N$也是循环群.事实上如果设$G=<a>$,那么不难证明 $$G/N=<aN>.$$ 6.设$a,b$分别为群$G$中的$m,n$阶元素,且满足 $$ab=ba,<a>\cap<b>=\{e\}$$ 证明:$ab$的阶为$[m,n]$. 证明