第一章概述1-1简述计算机程序设计语言的发展历程。解:迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。1-2面向对象的编程语言有哪些特点解:面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。1-3什么是结构化程序设计方法这种方法有哪些优点和缺点—解:结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。1-4什么是对象什么是面向对象方法这种方法有哪些特点解:从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。(面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。1-5什么叫做封装解:封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。1-6面向对象的软件工程包括哪些主要内容解:面向对象的软件工程是面向对象方法在软件工程领域的全面应用,它包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)和面向对象的软件维护(OOSM)等主要内容。1-7简述计算机内部的信息可分为几类)解:计算机内部的信息可以分成控制信息和数据信息二大类;控制信息可分为指令和控制字两类;数据信息可分为数值信息和非数值信息两类。1-8什么叫二进制使用二进制有何优点和缺点解:二进制是基数为2,每位的权是以2为底的幂的进制,遵循逢二进一原则,基本符号为0和1。采用二进制码表示信息,有如下几个优点:1.易于物理实现;2.二进制数运算简单;3.机器可靠性高;4.通用性强。其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。1-9请将以下十进制数值转换为二进制和十六进制补码:(1)2(2)9(3)93(4)-32(5)65535(6)-1…解:(1)(2)10=(10)2=(2)16(2)(9)10=(1001)2=(9)16(3)(93)10=(1011101)2=(5D)16(4)(-32)10=()2=(E0)16(5)(65535)10=()2=(FFFF)16(6)(-1)10=()2=(FFFF)161-10请将以下数值转换为十进制::(1)(1010)2(2)()2(3)(01011111)2(4)(7F)16(5)(2D3E)16(6)(F10E)16解:(1)(1010)2=(10)10(2)()2=(143)10(3)(01011111)2=(24515)10(4)(7F)16=(127)10(5)(2D3E)16=(11582)10:(6)(F10E)16=(61710)101-11简要比较原码、反码、补码等几种编码方法。解:原码:将符号位数字化为0或1,数的绝对值与符号一起编码,即所谓符号──绝对值表示的编码。正数的反码和补码与原码表示相同。负数的反码与原码有如下关系:符号位相同(仍用1表示),其余各位取反(0变1,1变0)。补码由该数反码的最末位加1求得。】第二章C++简单程序设计2-1C++语言有那些主要特点和优点解:C++语言的主要特点表现在两个方面,一是全面兼容C,二是支持面向对象的方法。C++是一个更好的C,它保持了C的简洁、高效、接近汇编语言、具有良好的可读性和可移植性等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。C++语言最重要的特点是支持面向对象。2-2下列标识符哪些是合法的Program,-page,_lock,test2,3in1,@mail,A_B_C_D解:Program,_lock,test2,A_B_C_D是合法的标识符,其它的不是。、2-3例中每条语句的作用是什么#includevoidmain(void){coutHello!\n;coutWelcometoc++!\n;}解:@#include201/42.201%43.201/解:1.502.13.2-10执行完下列语句后,a、b、c三个变量的值为多少\a=30;b=a++;c=++a;解:a:32;b:30;c:32;2-11在一个for循环中,可以初始化多个变量吗如何实现解:在for循环设置条件的第一个;前,用,分隔不同的赋值表达式。】例如:for(x=0,y=10;x100;x++,y++)2-12执行完下列语句后,n的值为多少intn;for(n=0;n100;n++)解:n的值为1002-13写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while语句完成同样的循环。!解:for循环:for(intn=100;n=200;n+=2);while循环:intx=100;while(n=200)n+=2;do…while循环:;intn=100;do{n+=2;}while(n=200);2-14if(x=3)和if(x==3)这两条语句的差别是什么解:语句if(x=3)把3赋给x,赋值表达式的值为true,作为if语句的条件;语句if(x==3)首先判断x的值是否为3,若相等条件表达式的值为ture,否则为false。【2-15什么叫做作用域什么叫做局部变量什么叫做全局变量,如何使用全局变量解:作用域是一个标识符在程序正文中有效的区域。局部变量,一般来讲就是具有块作用域的变量;全局变量,就是具有文件作用域的变量。2-16已知x、y两个变量,写一条简单的if语句,把较小的的值赋给原本值较大的变量。解:if(xy)x=y;elsen;&coutThesizeofashortintis:\tsizeof(short)bytes.\n;coutThesizeofalongintis:\tsizeof(long)bytes.\n;coutThesizeofacharis:\t\tsizeof(char)bytes.\n;coutThesizeofafloatis:\t\tsizeof(float)bytes.\n;coutThesizeofadoubleis:\tsizeof(double)bytes.\n;return0;}程序运行输出:。Thesizeofanintis:4bytes.Thesizeofashortintis:2bytes.Thesizeofalongintis:4bytes.Thesizeofacharis:1bytes.Thesizeofafloatis:4bytes.Thesizeofadoubleis:8bytes.2-20打印ASCII码为32~127的字符。解:?#includeintmain(){for(inti=32;i128;i++)cout(char)i;return0;}程序运行输出:$!#$%G'()*+,./09:;@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]^'abcdefghijklmnopqrstuvwxyz|~s2-21运行下面的程序,观察其输出,与你的设想是否相同#includeintmain(){unsignedintx;unsignedinty=100;unsignedintz=50;x=y-z;coutDifferenceis:x;x=z-y;cout\nNowdifferenceis:xendl;return0;}解:程序运行输出:…Differenceis:50Nowdifferenceis:46注意,第二行的输出并非-50,注意x、y、z的数据类型。2-22运行下面的程序,观察其输出,体会i++与++i的差别。#includeintmain(){intmyAge=39;n;!coutYouare:yourAgeyearsold\n;myAge++;.\n;coutIam:myAgeyearsold.\n;coutYouare:yourAgeyearsold\n;coutAnotheryearpasses\n;coutIam:myAge++yearsold.\n;coutYouare:++yourAgeyearsold\n;coutLet'sprintitagain.\n;…coutIam:myAgeyearsold.\n;coutYouare:yourAgeyearsold\n;return0;}解:程序运行输出:Iam39yearsoldYouare39yearsold·OneyearpassesIam40yearsoldYouare40yearsoldAnotheryearpassesIam40yearsoldYouare41yearsoldLet'sprintitagainIam41yearsold#Youare41yearsold2-23什么叫常量什么叫变量解:所谓常量是指在程序运行的整个过程中其值始终不可改变的量,除了用文字表示常量外,也可以为常量命名,这就是符号常量;在程序的执行过程中其值可以变化的量称为变量,变量是需要用名字来标识的。2-24变量有哪几种存储类型解:变量有以下几种存储类型:auto存储类型:采用堆栈方式分配内存空间,属于一时性存储,其存储空间可以被若干变量多次覆盖使用;;register存储类型:存放在通用寄存器中;extern存储类型:在所有函数和程序段中都可引用;static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。2-25写出下