博文

钱能的《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);
   &......

阅读全文(3858) | 评论: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<<"圆周率为:"<<set......

阅读全文(3718) | 评论: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
       &l......

阅读全文(3528) | 评论: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......

阅读全文(3748) | 评论: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节。

本章没有练习
......

阅读全文(4003) | 评论: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++)
&nb......

阅读全文(6234) | 评论: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/月,   
    ......

阅读全文(4310) | 评论: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+功能键
<......

阅读全文(2866) | 评论: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     打开“系统属性”对话框

Wi......

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

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

摘要:杨芙清院士谈中国软件产业   
  2005-03-10 13:23:18   学院办公室    
  摘自"中 国 IT 每一天" 2005年3月9日同名新闻

杨芙清院士对于中国软件产业的过去和未来有着异常深远的影响,所以就连比尔盖茨来到中国,也最想拜见这位集科学家、教育家于一身的东方女性。在中国软件业面临着发展机遇的今天,杨芙清院士对中国软件产业以及中国软件人才的这些观点和见解,定将对整个产业有着非常深远的意义和启迪。

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

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