欢迎来到天天文库
浏览记录
ID:11564382
大小:212.00 KB
页数:61页
时间:2018-07-12
《cprimer中文版第四版习题及详细分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题1.1查看所用的编译器文档,了解它所用的文件命名规范。编译并运行本节的main程序。【解答】一般而言,C++编译器要求待编译的程序保存在文件中。C++程序中一般涉及两类文件:头文件和源文件。大多数系统中,文件的名字由文件名和文件后缀(又称扩展名)组成。文件后缀通常表明文件的类型,如头文件的后缀可以是.h或.hpp等;源文件的后缀可以是.cc或.cpp等,具体的后缀与使用的编译器有关。通常可以通过编译器所提供的联机帮助文档了解其文件命名规范。习题1.2修改程序使其返回-1。返回值-1通常作为程序运行
2、失败的指示器。然而,系统不同,如何(甚至是否)报告main函数运行失败也不同。重新编译并再次运行程序,看看你的系统如何处理main函数的运行失败指示器。【解答】笔者所使用的Windows操作系统并不报告main函数的运行失败,因此,程序返回-1或返回0在运行效果上没有什么区别。但是,如果在DOS命令提示符方式下运行程序,然后再键入echo%ERRORLEVEL%命令,则系统会显示返回值-1。习题1.3编一个程序,在标准输出上打印“Hello,World”。#include#incl
3、ude"windows.h"usingnamespacestd;intmain(){system("CLS");cout<<"Hello,World!"<#include"windows.h"usingnamespacestd;intmain(){system("CLS");cout<<"Entertwonumbers:"<4、ndl;intv1,v2;cin>>v1>>v2;cout<<"Theproductof"<#include"windows.h"usingnamespacestd;intmain(){system("CLS");cout<<"Entertwonumbers:"<5、in>>v1>>v2;cout<<"Thesumof";cout<6、行各为一个语句,第3、4行构成一个语句。“<<”为二元操作符,在第2、3两条语句中,第一个“<<”缺少左操作数,因此不合法。在第2、3行的开头加上“std::cout”,即可更正。习题1.7编译有不正确嵌套注释的程序。【解答】由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译器中编译1.3节中给出的带有不正确嵌套注释的程序:#include/**commentpairs/**/cannotnest.*"cannotnest"isconsideredsourceco7、de,*asistherestoftheprogram*/intmain(){return0;}编译器会给出如下错误信息:errorC2143:syntaxerror:missing';'before'<'errorC2501:'include':missingstorage-classortypespecifierswarningC4138:'*/'foundoutsideofcomment(第6行)errorC2143:syntaxerror:missing';'before'{'(第8行)err8、orC2447:'{':missingfunctionheader(old-styleformallist?)(第8行)习题1.8指出下列输出语句哪些(如果有)是合法的。std::cout<<"/*";std::cout<<"*/";std::cout<*"*/"*/;预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。【解答】第一条和第二条语句合法。第三条语句中<<操作符之后至第二个双引号之前的部分被注释掉了,导致<<操作符的
4、ndl;intv1,v2;cin>>v1>>v2;cout<<"Theproductof"<#include"windows.h"usingnamespacestd;intmain(){system("CLS");cout<<"Entertwonumbers:"<5、in>>v1>>v2;cout<<"Thesumof";cout<6、行各为一个语句,第3、4行构成一个语句。“<<”为二元操作符,在第2、3两条语句中,第一个“<<”缺少左操作数,因此不合法。在第2、3行的开头加上“std::cout”,即可更正。习题1.7编译有不正确嵌套注释的程序。【解答】由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译器中编译1.3节中给出的带有不正确嵌套注释的程序:#include/**commentpairs/**/cannotnest.*"cannotnest"isconsideredsourceco7、de,*asistherestoftheprogram*/intmain(){return0;}编译器会给出如下错误信息:errorC2143:syntaxerror:missing';'before'<'errorC2501:'include':missingstorage-classortypespecifierswarningC4138:'*/'foundoutsideofcomment(第6行)errorC2143:syntaxerror:missing';'before'{'(第8行)err8、orC2447:'{':missingfunctionheader(old-styleformallist?)(第8行)习题1.8指出下列输出语句哪些(如果有)是合法的。std::cout<<"/*";std::cout<<"*/";std::cout<*"*/"*/;预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。【解答】第一条和第二条语句合法。第三条语句中<<操作符之后至第二个双引号之前的部分被注释掉了,导致<<操作符的
5、in>>v1>>v2;cout<<"Thesumof";cout<6、行各为一个语句,第3、4行构成一个语句。“<<”为二元操作符,在第2、3两条语句中,第一个“<<”缺少左操作数,因此不合法。在第2、3行的开头加上“std::cout”,即可更正。习题1.7编译有不正确嵌套注释的程序。【解答】由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译器中编译1.3节中给出的带有不正确嵌套注释的程序:#include/**commentpairs/**/cannotnest.*"cannotnest"isconsideredsourceco7、de,*asistherestoftheprogram*/intmain(){return0;}编译器会给出如下错误信息:errorC2143:syntaxerror:missing';'before'<'errorC2501:'include':missingstorage-classortypespecifierswarningC4138:'*/'foundoutsideofcomment(第6行)errorC2143:syntaxerror:missing';'before'{'(第8行)err8、orC2447:'{':missingfunctionheader(old-styleformallist?)(第8行)习题1.8指出下列输出语句哪些(如果有)是合法的。std::cout<<"/*";std::cout<<"*/";std::cout<*"*/"*/;预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。【解答】第一条和第二条语句合法。第三条语句中<<操作符之后至第二个双引号之前的部分被注释掉了,导致<<操作符的
6、行各为一个语句,第3、4行构成一个语句。“<<”为二元操作符,在第2、3两条语句中,第一个“<<”缺少左操作数,因此不合法。在第2、3行的开头加上“std::cout”,即可更正。习题1.7编译有不正确嵌套注释的程序。【解答】由注释对嵌套导致的编译器错误信息通常令人迷惑。例如,在笔者所用的编译器中编译1.3节中给出的带有不正确嵌套注释的程序:#include/**commentpairs/**/cannotnest.*"cannotnest"isconsideredsourceco
7、de,*asistherestoftheprogram*/intmain(){return0;}编译器会给出如下错误信息:errorC2143:syntaxerror:missing';'before'<'errorC2501:'include':missingstorage-classortypespecifierswarningC4138:'*/'foundoutsideofcomment(第6行)errorC2143:syntaxerror:missing';'before'{'(第8行)err
8、orC2447:'{':missingfunctionheader(old-styleformallist?)(第8行)习题1.8指出下列输出语句哪些(如果有)是合法的。std::cout<<"/*";std::cout<<"*/";std::cout<*"*/"*/;预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。【解答】第一条和第二条语句合法。第三条语句中<<操作符之后至第二个双引号之前的部分被注释掉了,导致<<操作符的
此文档下载收益归作者所有