博文

钱能的《C++程序设计教程》序列三:chapter3(2005-07-21 12:40:00)

摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,欢迎大家批评指正。 这一序列说明: 1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999 2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能达到非常熟练,或者我初学时感觉比较模糊的知识。 3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。 4.更多的学习和改进将在《The C++ programming language》答案序列中体现。 序列三:chapter3 一、疑难知识点: 1.理解左值和右值,特别是掌握哪些可以当左值。 2.求余%只能对整型进行操作,当然char和bool型也可以。 3.溢出    随着计算机的发展,特别是64位CPU和操作系统的推出,出现溢出的可能性越来越小。本书有一些这类的题目,主要是本书是基于16位机器,其实对于32位机器,基本上不会出现溢出现象了。    有关整型溢出:一个整型变量,用任何一个超过表示范围的整数初始化,得到的值为用该整数范围作模运算后得到的值。 4.真正弄懂前增量和后增量、前减量和后减量的区别,这个其实是很简单的(略),还有两个注意点: (1)、增量和减量其实是包含赋值操作的,故只能对左值才能施于++或-- (1)、后增量如i++是不能作为左值的,而前增量是可以的故++(i++)是错的,而++(++i)是正确的。对于减量也一样。 例子: #include<iostream> using namespace std; void main() {     int i=1;     //++(i++);//wrong     ++(++i);     (i=3)++;//赋值表达式是一个左值,故可以执行++ } 5.有关求值次序和副作用    因为本书是参考就标准,对于现在最新的标准,不知这些副作用是否消除,这个问题将在《The C++ prog......

阅读全文(3959) | 评论:0

钱能的《C++程序设计教程》序列二:chapter2第二部分(2005-07-21 12:21:00)

摘要:因为字数限制,进行分割。 二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本) 2.1. #include<iostream> using namespace std; void main() {     int a=42486;     cout<<"42486的8进制输出:"<<oct<<a         <<",42486的16进制输出:"<<hex<<a<<dec<<endl;//效果是持续的     unsigned b=42486;     cout<<signed int(b)<<endl;//result:42486,在我的机器上还没有超出范围 //本题原考虑在16位机器上实验,目前多为32位机器,故不会超过范围的 } 2.2. #include<iostream> #include<iomanip> using namespace std; void main() {     const double PI=3.1415926;//不提倡使用宏定义也就是#define来定义     double circle,radius;     cin>>radius;     circle=2*PI*radius;     cout<<"圆周率为:"<<setw(13)<<PI<<",The radius is:"<<setw(13)<<radius     ......

阅读全文(3814) | 评论:2

钱能的《C++程序设计教程》序列二:chapter2第三部分(2005-07-21 12:30:00)

摘要:二、课后练习答案:(不抄题目,没有课本的人可以到网上去下一本) 2.6. (1)自己运行一下就知道了 (2)这个程序的作用是已知三角形三边求三角形的面积 (3)转载 //#include <stdio.h> #include <iostream.h> #include <iomanip.h> #include <math.h> void main() {   float a,b,c,s,area;   //printf("please input 3 sides of one triangle:\n");   cout <<"please input 3 sides of one triangle:\n";   //scanf("%f,%f,%f",&a,&b,&c);  //输入时以逗号作为数据间隔   cin >>a >>b >>c;   //输入时以空格作为数据间隔   s=(a+b+c)/2;   area=sqrt(s*(s-a)*(s-b)*(s-c));   //printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);   cout <<setiosflags(ios::fixed) <<setprecision(2)        <<"a=" <<setw(7) <<a        <<",b=" <<setw(7) <<b        <&l......

阅读全文(3622) | 评论:0

钱能的《C++程序设计教程》序列二:chapter2第一部分(2005-07-21 12:14:00)

摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,欢迎大家批评指正。 这一序列说明: 1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999 2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能达到非常熟练,或者我初学时感觉比较模糊的知识。 3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。 4.更多的学习和改进将在《The C++ programming language》答案序列中体现。 序列二:chapter2 一、疑难知识点 1.(p14,表2-2)float、double、long double的表示范围如何计算得到? 呵呵,以前好像有去计算出来,现在反而不知道怎么求解出来了,竟然可以表示这么大的数值。 2.实型常量采用指数形式表示的两点要求: (1).E或e前面必须要有数字 (2).E或e后面的指数必须要整数 3.反斜杠\可以和8进制或16进制数结合起来使用,以表示相应于该数的ACII码(P18) 4.有关枚举变量    不能把整数赋给枚举变量。但是枚举变量可以用整型的常量表达式进行初始化。 ,在《The C++ programming Language》(Special Editon)中文版,裘宗燕翻译第70页说,所赋的值不能超过该枚举的范围,这个范围是如何计算出来,我现在还不明白,谁懂的话可以介绍一下。但是在我机器上实验好像没有所谓的范围限制。 举例: #include<iostream> using namespace std; enum aa{a1=1,a2=2,a3=4,a4=8}; void main() {     //aa bb=3;//wrong 不能把整数赋给枚举变量     aa cc=(aa)3;//ok     aa cc1=aa(3);//ok,我就不理解为什么这样写还可以,其实这种不是很符合规则     aa dd=(aa)(a4/a2);//ok ,co......

阅读全文(3899) | 评论:0

钱能的《C++程序设计教程》序列一:chapter1(2005-07-21 12:13:00)

摘要:声明:为了大家的共同学习,特推出一些经典书籍的课后练习的答案,答案内容属原创,转载请注明出处,欢迎大家批评指正。 这一序列说明: 1.采用国内的教材:《C++程序设计教程》钱能主编 清华大学出版社 1999 2.在每一章练习解答前会有一个“疑难知识点”概述,这里只代表我自己的观点,也就是我自己现在还不能达到非常熟练,或者我初学时感觉比较模糊的知识。 3. 有一些答案来自网络,里面答案的选题编辑:张朝阳,责任编辑:徐培忠、林庆嘉。在这里表示感谢。 4.更多的学习和改进将在《The C++ programming language》答案序列中体现。 序列一:chapter1 疑难知识点: 1.有关本书的参考标准ANSI C++标准      本书讲述的内容是以ABNI C++为标准,其实那时(1999年)这个标准已经过时了,因为在1998年出现新的C++标准,也就是ISO C++标准,ANSi C++标准是美国国内的标准,而ISO C++标准(ISO/IEC)是国际标准,这个新的标准对C++进行了很大部分的统一,这在本书中有一些不是新的标准,我将把自己知道的尽量指出来,更多的内容可能要参考《The C++ programming language》答案序列。 2.本书里面的练习和例子都是基于16位机器的。 3.有关#include<iostream.h>    新的标准一般使用#include<iostream>的形式。当然,还需要配合命名空间,也就是: #include<iostream> using namespace std; 详细解释可以参考《The C++ programming Language》(Special Editon)中文版,裘宗燕翻译 第718页,B3.1节。 本章没有练习 ......

阅读全文(4095) | 评论:0

2005年7月18日 第28期电脑报 编程点将(2005-09-10 21:56:00)

摘要:2005年7月18日 第28期电脑报 编程点将 上周的电脑报不知怎么回事竟然没有编程点将。可不是我忘记做了哦。 题目:已知五个互不相同的正整数之和为23,且从这五个数中挑选若干个加起来可以表示从1到23之内的全部自然数。问这五个数是什么? 这题在我的C程序设计百例的第73题,我做的结果和里面的不一样。我现在还不知道是不是我错的。我的程序并不是很简便,主要问题是验证能否组合出1到23数的那个函数上面,我现在还没有找到简便的解决方法。请给意见和建议。 我的程序: /*算法:因为五个数互不相同且之和为23,故其中最大值不会超过13, 又因为要表示1到23之内的自然数,故必含有1和2(否则1和2无法组合出来), 因此可以假设五个数从小到大分别为:1,2,i(3-11之间),j(i+1-12之间),k(j+1—13之间).循环取得范围之内的所有可能的值,当1+2+i+j+k==23时,调用函数AA(int i,int j,int k)判断是否可以组合出1到23之内的全部自然数,是则输出。 使用C++编程,在VC++6.0中通过运行。 结果是: 第1组:1,2,3,5,12 第2组:1,2,3,6,11 第3组:1,2,3,7,10 第4组:1,2,4,5,11 第5组:1,2,4,6,10 第6组:1,2,4,7,9 * #include<iostream> using namespace std; bool AA(int i,int j,int k);//函数原型,用来验证是不是可以组合出1——23的值 void main() {    int i,j,k,count=0;     bool a=false;     for(i=3;i<=11;i++)         for(j=i+1;j<=12;j++)             for(k=j+1;k<=13;k++)     ......

阅读全文(6325) | 评论:3

2005年国内各大公司的薪酬情况-回国发展的参考 (来自两全其美)(2005-09-10 18:45:00)

摘要:2005年国内各大公司的薪酬情况-回国发展的参考        (来自两全其美,作者:未名交友 http://www.lqqm.net/Lqqm.NetA*RAP3wBWHRPHRDGCFBBCCESXOTPHZBKEVEHF_B/bbsnt?B=3&start=3783&th=1121154702)        日本SONY(索尼) 1万/月,仅要研究生        韩国三星电子中国总部 25万/年        法国索姆软件,年薪20万/年,赴欧工作        美国Cisco(思科)15000/月,仅要研究生        美国INTEL(英特尔) 13000/月        美国IBM 5000左右/月        德国西门子 8000/月        西藏联通 8年100万(必须满8年),不过高原反应太艰苦.       青海联通 月薪是5000-7000,而且可以只签一年,        深圳联通 3000-4000/月 其余偏远地方略高。        深圳记忆科技 本科10-15万/年,硕士15-20万/年        上海网道信息技术(美) 7000-8000/月,另1000/月伙食补贴,1000/月房租        中国电信 7-10万/年,另交通补助400/月,住房补贴1000/月        美AVANT 6-8万/年        东方通信 6-8万/年(仅要研究生)       北京联想 6-7.5万/年        深大通信 6万/年        福州康顺光通讯 5-10万/年        美国FIBERON公司,硕10万/年,本6万/年        深圳华为 5480/月,400多人        青岛海尔 5-6万/年        ut斯达康 本5000/月,研6000-8000/月,        MOTOROLA(苏州)5000/月        深圳中兴 5000/月,100多人        上海洪一,维景科技公司(台资) 5000/月        北京华虹NEC 4000-5000/月 ......

阅读全文(4388) | 评论:5

word快捷键大全(2005-07-16 14:04:00)

摘要:word快捷键大全 Ctrl+Shift+Spacebar 创建不间断空格 Ctrl+连字符 创建不间断连字符 Ctrl+B 使字符变为粗体 Ctrl+I 使字符变为斜体 Ctrl+U 为字符添加下划线 Ctrl+Shift+< 缩小字号 Ctrl+Shift+> 增大字号 Ctrl+Q 删除段落格式 Ctrl+Spacebar 删除字符格式 Ctrl+C 复制所选文本或对象 Ctrl+X 剪切所选文本或对象 Ctrl+V 粘贴文本或对象 Ctrl+Z 撤消上一操作 Ctrl+Y 重复上一操作 F1 获得联机帮助或 Office 助手 F2 移动文字或图形 F3 插入自动图文集词条(在 Word 显示该词条之后) F4 重复上一项操作 F5 选择“编辑”菜单中的“定位”命令 F6 前往下一个窗格或框架 F7 选择“工具”菜单中的“拼写和语法”命令 F8 扩展所选内容 F9 更新选定域 F10 激活菜单栏 F11 前往下一个域 F12 选择“文件”菜单中的“另存为”命令 Shift+功能键 Shift+F1 组合键 启动上下文相关帮助或显示格式 Shift+F2 组合键 复制文本 Shift+F3 组合键 改变字母大小写 Shift+F4 组合键 重复“查找”或“定位”操作 Shift+F5 组合键 移动到上一处修订 Shift+F6 组合键 前往上一个窗格或框架 Shift+F7 组合键 选择“同义词库”命令(位于“工具”菜单的“语言”子菜单中) Shift+F8 组合键 缩小所选内容 Shift+F9 组合键 在域代码和其结果之间进行切换 Shift+F10 组合键 显示快捷菜单 Shift+F11 组合键 前往上一个域 Shift+F12 组合键 选择“文件”菜单上的“保存”命令 Ctrl+功能键 Ctrl+F2 组合键 选择“文件”菜单上的“打印预览”命令 Ctrl+F3 组合键 剪切至图文场 Ctrl+F4 组合键 关闭窗口 Ctrl+F5 组合键 还原文档窗口文档大小 Ctrl+F6 组合键 前往下一个窗口 Ctrl+F7 组合键 选择“控制”菜单上的“移动”命令 Ctrl+F8 组合键 选择“控制”菜单上的“大小”命令 Ctrl+F9 组合键 插入空域 Ctrl+F10 组合键 将文档窗口最大化 Ctrl+F11 ......

阅读全文(5460) | 评论:0

Windows常见快捷键(2005-07-16 13:55:00)

摘要:一、常见用法: F1           显示当前程序或者windows的帮助内容。 F2           当你选中一个文件的话,这意味着“重命名” F3           当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT        激活当前程序的菜单栏 windows键或CTRL+ESC   打开开始菜单 CTRL+ALT+DELETE     在win9x中打开关闭程序对话框 DELETE         删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE      删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 CTRL+N         新建一个新的文件 CTRL+O         打开“打开文件”对话框 CTRL+P         打开“打印”对话框 CTRL+S         保存当前操作的文件 CTRL+X         剪切被选择的项目到剪贴板 CTRL+INSERT 或 CTRL+C  复制被选择的项目到剪贴板 SHIFT+INSERT 或 CTRL+V 粘贴剪贴板中哪谌莸降鼻拔恢? ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作 ALT+SHIFT+BACKSPACE   重做上一步被撤销的操作   Windows键+M       最小化所有被打开的窗口。 Windows键+CTRL+M    重新将恢复上一项操作前窗口的大小和位置 Windows键+E       打开资源管理器 Windows键+F       打开“查找:所有文件”对话框 Windows键+R       打开“运行”对话框 Windows键+BREAK     打开“系统属性”对话框 Windows键+CTRL+F    打开“查找:计算机”对话框 SHIFT+F10或鼠标右击   打开当前活动项目的快捷菜单 SHIFT          在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏   ALT+F4         关闭当前应用程序 ALT+SPACEBAR      打开程序最左上角的菜单 ALT+TA......

阅读全文(5505) | 评论:0

杨芙清院士谈中国软件产业(来自北大软件学院)(2005-07-16 13:32:00)

摘要:杨芙清院士谈中国软件产业      2005-03-10 13:23:18   学院办公室       摘自"中 国 IT 每一天" 2005年3月9日同名新闻 杨芙清院士对于中国软件产业的过去和未来有着异常深远的影响,所以就连比尔盖茨来到中国,也最想拜见这位集科学家、教育家于一身的东方女性。在中国软件业面临着发展机遇的今天,杨芙清院士对中国软件产业以及中国软件人才的这些观点和见解,定将对整个产业有着非常深远的意义和启迪。 杨芙清院士谈中国软件产业 一、中国软件产业路在何方? 当网络经济的泡沫在经济舞台上渐渐化为乌有,当我们的IT业渐渐回归冷静和理智,我们重新认识到这样的事实:软件才是IT业真正的灵魂! 无疑,软件业是聚宝盆,否则就不会出现微软的财富奇迹,只是,即便弹指间已过二十年,即便奔赴战场的号角声已经悄然响起,从来都不缺乏编程天才的中国软件业却仍旧在前进中徘徊,面临这样的境况,我们究竟该如何思考,如何面对? 记者:软件业的发展可以说是日新月异,您认为软件会往什么方向发展? 杨芙清院士:软件是客观事物的一种反映,是知识的提炼,所以它是一种知识的体现,是知识的固化。客观世界在不断发展变化,软件系统不可能一成不变,新的需求、新的技术不断出现使得软件系统不断地升级、不断地演化。从操作系统的发展来看软件技术的发展,首先,随着计算机硬件的发展,单机操作系统从最早的引导程序到管理计算机资源的管理程序,再发展到发挥CPU及外设作用的多道程序,最后发展到追求计算机软硬件高效利用的资源管理系统。网络操作系统的出现主要是用以支持多个计算机之间的网络通信,实现资源共享,而并行操作系统是为了管理大规模并行处理系统。同时,无线通讯、信息家电的发展在一定程度上又促进了嵌入式操作系统的发展,可以设想今后在internet平台上进一步进行资源整合,以高效、可信、统一的信息资源为所有的用户服务。 软硬件之间的异构性促进了软件技术的发展,如为屏蔽计算机硬件的异构性发展了操作系统;为屏蔽操作系统和编程语言的异构性,发展了支撑软件和中间件等等。软件技术在发展中会不断出现更新更复杂的异构问题,如流程、安全、事物等方面的异构性,要求软件能够适应......

阅读全文(3592) | 评论:0