正文

钱能的《C++程序设计教程》序列六:chapter62005-08-03 17:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/3415.html

分享到:

声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处, 欢迎大家批评指正。 这一序列说明: 1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999 2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能 达到非常熟练,或者我初学时感觉比较模糊的知识。 3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。以 后这里的答案简称“网络版” 4.更多的学习和改进将在《The C++ programming language》答案序列中体现。 序列六:chapter6 一、疑难知识点: 1.弄懂extern和static存储类型: (1)extern:修饰全局变量              默认修饰函数,一般省略 (2)static:修饰局部变量              修饰全局变量,这时变量只在其原文件内有效              修饰函数,函数只在其原文件中有效,也就是改变了默认extern函数特性 (3)在文件作用域下,inline函数默认是static型(不是extern),const常量默认为static型,当然可以 加extern来改变这种默认类型。 2.掌握一个由多个文件构成的程序该如何编写,包括包含头文件。见习题6.3 3.注意各类局部作用域,特别是if——else,switch,for等。书上p107的for作用域的例子有错误。 二、课后习题 6.1来自网络版加上一点自己,主要是不想打程序 (1) //file1.cpp int x=1; int func() {   //... } //file2.cpp extern int x; int func(); void g() {   x=func(); } //file3.cpp extern int x=2;   //error: extern int变量若有赋值,则成定义 int g();          //error: 函数声明与前面不一致 void main() {   x=g();   //... } (2) //file1.cpp int x=5; int y=8; extern int z; //file2.cpp int x;            //error: int x;重复定义 extern double y;  //error: y同一名字不同类型定义 extern int z;     //error: z只有声明,却无定义。 若这时你没有使用这个声明就不会有问题 6.2比较容易的 答案: 25 6.3 我使用VC++6.0 我的做法是分别编写各个文件(包括头文件),然后打开含有主函数的文件,在工程菜单中选择添加工程,把其它文件都添加进来,最后还要把总的添加完的工程插入到一个工作区,否则下次还有重新添加。 6_3 #include<iostream> #include"multi_table.h" using namespace std; void main() {     multi_table1();     cout<<"\n\n\n";     multi_table2();     cout<<"\n\n\n";     multi_table3();     cout<<"\n"; } 6_3_1 #include<iostream> #include"multi_table.h" using namespace std; extern int a; void multi_table1() {     int i,j;     for(i=0;i<=9;i++)     {         if(i==1)cout<<"----------------------------------------------------\n";         for(j=0;j<=9;j++)         {             if(i==0&&j==0)cout<<"   *    ";             else if(i==0&&j)cout<<j<<"    ";             else if(j==0)cout<<"   "<<i<<"    ";             else if(i*j<10)cout<<i*j<<"    ";             else cout<<i*j<<"   ";         }         cout<<endl;     } } 由于字数限制, 6_3_2 6_3_3 省略 头文件:multi_table.h void multi_table1(); void multi_table2(); void multi_table3();

阅读(5766) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册