博文
钱能的《C++程序设计教程》序列六:chapter6(2005-08-03 17:37:00)
摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,
欢迎大家批评指正。
这一序列说明:
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来自......
钱能的《C++程序设计教程》序列五:chapter5第二部分(2005-08-03 15:02:00)
摘要:二、课后习题
5.4这道题出得很不错,考察了很多知识点,只要有一点细节你没有注意就可能出现错误。
主要注意点:
(1)数值调用是不改变值
(2)全局变量在任何一个函数内都会改变它的值
(3)静态变量只初始化一次(在函数调用时只在第一次赋值)
答案:
Main--x=5,y=1,n=1
Func--x=6,y=21,n=11
Main--x=5,y=1,n=11
Func--x=8,y=31,n=21
5.5
#include<iostream>
using namespace std;
int fib(int n);//函数声明
void main()
{
int n;
cout<<"Input an integer:";
cin>>n;
cout<<"第n项的值是:"<<fib(n)<<endl;
}
int fib(int n)
{
int i,a=1,b=1,c=1;
for(i=3;i<=n;i++)
{
c=a+b;
a=b;
b=c;
}
return c;
}
......
2005年8月1日 第30期电脑报 编程点将(2005-08-03 02:33:00)
摘要:上周回家,那期的电脑报至今没有弄到,里面的编程点将就没有做了
题目:
一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少
这题是我的C语言程序百例里面第22题,大家可以对比学习。
我的答案:
/*程序思想:
可以用假设两个小时的行程从1递增,当满足里程表的度数对称时停止。
按常识,两个小时后不可能使现在的里程表的度数由现在的5位数变成6位数。
故这时里程表新的值若满足个位==万位(也就是9),十位==千位就可以了。
程序在vc++6.0运行通过,结果是:
该车的速度为:50
新的对称数是:95959
*/
#include<iostream>
using namespace std;
void main()
{
int i,a,b,c,d;
for(i=1;;i++)
{
a=95859+i;
b=a%10;//取得个位
c=(a%100)/10;//取得十位
d=(a/1000)%10;//取得千位
if(b==9&&c==d)break;//个位等于9也就是万位,十位和千位相等那么这时就是对称了
&n......
钱能的《C++程序设计教程》序列五:chapter5第一部分(2005-08-03 02:59:00)
摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,
欢迎大家批评指正。
这一序列说明:
1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999
2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能
达到非常熟练,或者我初学时感觉比较模糊的知识。
3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。以
后这里的答案简称“网络版”
4.更多的学习和改进将在《The C++ programming language》答案序列中体现。
序列五:chapter5
一、疑难知识点:
1.函数概述:
(1)区分函数定义和函数声明(其实就是函数原型)
(2)函数定义不允许嵌套
(3)若函数定义和函数声明不一致,也就是参数类型不一致,则可以正常编译但会出现错误链接。若是返回
类型或者参数个数不一样,则会误认为是重载,这时返回类型不一样的是错的,另一个重载若都提供了各自
的函数定义则是正确的。当然,没有被调用的函数可以只有声明没有定义。
(4)函数没有返回类型在新的标准下是错的,不过我载VC++6.0上面竟然可以通过^_^
(5)无返回的函数也可以使用return,但不能返回值
(6)内联函数用inline声明,定义时可以省略inline。反之也可以只在定义时放inline,而声明时没有,但
是这时其实已经变成普通的函数了而不是inline函数。
2.注意分清代码、各类变量、常量等在内存中的存储区域
3.局部变量的类型修饰是auto,习惯上省略
4.全局变量定义前的所以函数定义不知道该变量。由此,全局变量的定义位置也是比较重要的。
5.在p94有这么一句话:C++允许int到long,int到double的转换。当实参是整数而重载函数一为long型参数
,一为double参数时应该给以一个显......
给大学生的八十六条金玉良言 [精](来自新浪)(2005-09-11 00:07:00)
摘要:主题:给大学生的八十六条金玉良言 [精]
来自新浪
给大学生的忠告,不是真理,但是足够你用四年
一,别以为在学生会你能得到你曾经想要的。工作的热情很可能因为你所看到的所经历的一些事而改变,但是也不必惧怕。你有大一一年来适应或者承受,并做出是继续坚持还是退出的决定。
二,大学可能有真实的爱情,但是记住只是可能。很多时候他们是因为别人都谈恋爱而羡慕或者别的原因而在一起。所以,不必为任何分手而受太大的伤,记住,太大的伤,真爱,还是值得追求的。
三,如果你的家庭一般的话,那么记得你在大学有很多意外用钱的地方。比如二专业或者将来的各种班,为了你的家人和你自己的前途,永远别乱花钱。记住,永远。
四,朋友,你大学的朋友很可能就是你将来事业的一部分。他们会帮助你。但是你也应该让自己有帮助他们的实力,所以,你要努力,你和你的朋友会一起在将来打造一个可能很辉煌的事业。很好听是吗?但是记住,你们都要努力。
五,很多事情当你再回忆时会发现其实没什么。所以,不管你当时多么生气愤怒或者别的,都告诉自己不必这样,你会发现其实真的不必。
六,学习,永远别忘记她。不管别人怎么说大学是个提高综合能力的地方云云,如果你学习失败了,你就什么也不是——不排除意外,但你考虑好了吗?你会是那个意外吗??
七,别说脏话,你应该知道习惯的力量。找工作或者和别人接触时,你随便的一个字或者几个字会让你在别人心中的形象大打折扣。
八,好好利用在公共场合说话的机会,展示或者锻炼,都可以。
九,别为你自己和别人下定论,无比重要。你所看到听到的可能只是一面,为这个失去可能的朋友,很不值。
十,如果你发现很久了你一直是一个人去食堂吃饭或者去上自习,别在意,大学里一个人是正常的,你觉得孤独?你的朋友是怕你觉得你没有自由的空间,所以别以为你没有朋友。
十一,很多事情别人通知你了,要说谢谢,没有通知你,不要责怪,因为那些事你其实应该自己弄清楚。
十二,"我请你吃饭"之类的话不要乱说,因为所有人都会当真,不管你自己怎么想,大学里请人吃饭是很平常的事,几乎连请一个自己不怎么认识的人吃饭都很正常.
十三,尊严是最重要的,但是在大学里,要懂得利用这个空间锻炼自己,要让自己的尊严有足够大的承受力,要知道,社会是一......
大学BBS十大经典搞笑签名(来自新浪)(2005-07-23 00:00:00)
摘要:大学BBS十大经典搞笑签名
来自新浪
作者:淘气太郎007 发表日期:2005-07-22 10:45:29
希望大家开开心心
no1:大学这四年里,我一直认为自己是个人才,可是我错了,我不是!我tmd竟然是一个天才!!!
no2:1949年9月28日,我被捕了。第一天,敌人严刑拷打我,我没招。第二天,敌人用辣椒水泼我,我还是没招。第三天,敌人用美人计,我招了。第四天,我还想招,可tmd的解放了!
no3:俺用筷子把刚刚打的米饭里的一根“头发”高高举在食堂窗口,看着食堂师傅脸上青一阵白一阵那狼狈样,俺心里一阵狂得意:嘿,今儿中午吃饭又可以不花钱了。旁边盛菜的小伙抬头看见了,一拍大师傅的肩膀:“老刘,刚才小便又没洗手?”
no4:我把硬币抛向空中——如果正面朝上,就上bbs ;如果背面朝上,就上qq ;如果硬币立起来,我就去自习~
no5:你:每个女孩都曾是无泪的天使,当遇到自己喜欢的男孩时,便会流泪——于是坠落凡间,变为女孩。所以男孩一定不要辜负女孩,因为女孩为你放弃了整个天堂!
我:虽然我不是把你从天使变成女孩的那个人,但希望我是把你从女孩变成女人的那个人~(汗ing)
no6:一只狗去山里创业,农夫给了它一把镰刀,木匠给了它一把锤子。狗来到山里突然遇到一只老虎,吓得它赶忙把镰刀锤子举了起来,老虎见了哈哈大笑说:“哟,小样儿,还是个党员哩!”
no7:我用心变成大树为你挡风遮雨,你却将它砍成一片片来生火;我用爱做成翅膀带你去天堂,你却用刚才的火把它做成了肯德鸡香辣鸡翅~ -_-!
no8:a:“你到浙大来做什么?” b:“混。”
a:“离开浙大后你想成为什么样的人?”b:“混混。”
no9:说几万年后,一群考古系的学生在某大学遗址发现一块化石,但只能断定是雌性动物,遂问其教授这到底是哪个物种的化石,教授认真研究了一番,突然激动的泪流满面说:“同学们啊,这就是传说中的‘恐龙’啊!!!”(我倒~)
no10:(电子科大)绝不让一个处女走出校园!!
钱能的《C++程序设计教程》序列四:chapter4第四部分(2005-07-21 12:43:00)
摘要:因为字数限制,进行分割。
二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本)
4.09其实这三小题都是类似的,只是些许改动即可。因为我对第二章输出形式控制符不熟悉,因此直接打空格来对其显示。当然你可以使用setw()来显示空格。
(3)
#include<iostream>
using namespace std;
void main()
{
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<<" ";
el......
钱能的《C++程序设计教程》序列四:chapter4第三部分(2005-07-21 12:42:00)
摘要:因为字数限制,进行分割。
二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本)
4.08其实这两小题都是类似的,只是些许改动即可。
(1)
#include<iostream>
using namespace std;
void main()
{
int i,j;
for(i=1;i<=19;i+=2)
{
for(j=1;j<=19-i;j++)//显示每一行前面的空白
cout<<" ";
for(j=1;j<=i;j++)//显示#
cout<<"# ";
cout<<"\n\n";
}
}
(2)
#include<iostream>
using namespace std;
void main()
{
int i,j;
for(i=17;i>=10;i--......
钱能的《C++程序设计教程》序列四:chapter4第二部分(2005-07-21 12:41:00)
摘要:因为字数限制,进行分割。
二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本)
4.02
#include <iostream>
using namespace std;
void main()
{
int i,temp1=1,temp2=0;
for(i=1;i<=15;i++)
{
temp1*=i;
temp2+=temp1;
}
cout<<"所求的值为:"<<temp2<<endl;
}
4.03.这一题是求水仙花数
#include <iostream>
using namespace std;
void main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i%10;//个位
b=(i/10)%10;//十位
c=i/100;//百位
if(a*a*a+b*b*b+c*c*c==i)cout<<i<<"是水仙花数\n";
}
}
4.04这一题是求完数
#include <iostream>
using namespace std;
钱能的《C++程序设计教程》序列四:chapter4第一部分(2005-07-21 12:41:00)
摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,欢迎大家批评指正。
这一序列说明:
1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999
2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能达到非常熟练,或者我初学时感觉比较模糊的知识。
3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。以后这里的答案简称“网络版”
4.更多的学习和改进将在《The C++ programming language》答案序列中体现。
序列四:chapter4
一、疑难知识点:
1.三种循环while,do-while,for的一些注意点
(1)文中提到,在这三种循环的判断语句中可以使用逗号语句。其实在C++中好像可以使用语句的地方大多都可以使用逗号语句(但是case里面的常量表达式不能使用逗号语句)。
但需要注意的是:在Java中是没有逗号语句的,在Java中唯一可以使用逗号表达式的是在for循环的第一和第三个语句(第二的判断语句不行哦)。
(2)do-while的do的循环块中可以是没有语句、一条语句或者是多条语句。没有语句和有多条语句时均不能省略{},若只有一跳语句则可以省略{} . 还应该注意while语句的后面要分号;
2.有关switch
(1)case里面只能是常量表达式,但不能是逗号表达式(逗号表达式也可以得到常量)
(2)switch和case里面只能是int型(当然也包括char、enum、bool)
(3)当把case放在最后一个是不能省略冒号;,若不是在最后一句可以省略冒号
(4)注意default语句出现的位置对输出结果的影响
相关例子:
#include<iostream>
using namespace std;
void main()
{
const int b=6;
&n......