声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,
欢迎大家批评指正。
这一序列说明:
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();
正文
钱能的《C++程序设计教程》序列六:chapter62005-08-03 17:37:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/xiangyu/3415.html
阅读(3957) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论