辛巴德的冒险爱奇艺:初级程序员2005下半年试题

来源:百度文库 编辑:九乡新闻网 时间:2024/04/26 03:32:06
第1章  程序员上午试题分析与解答
试题(1)
在Word文字处理软件的界面上,单击工具栏上的 按钮,其作用是  (1)  。
(1)A.打印当前页    B.打印文档全文
C.打印预览    D.弹出打印对话框进行设置
试题(1)分析
见公共试题Ⅰ(1)。
参考答案
(1)C
试题(2)
已知汉字“大”的国标码为3473H,其机内码为  (2)  。
(2)A.4483H    B.5493H    C.B4F3H    D.74B3H
试题(2)分析
见公共试题Ⅰ(2)。
参考答案
(2)C
试题(3)
计算机内数据采用二进制表示是因为二进制数  (3)  。
(3)A.最精确    B.最容易理解
C.最便于硬件实现    D.运算最快
试题(3)分析
见公共试题Ⅰ(3)。
参考答案
(3)C
试题(4)
以下计算机操作中,不正确的是  (4)  。
(4)A.各种汉字输入方法的切换操作是可以由用户设置的
B.在文件夹中删除应用程序的方法往往不能彻底卸载软件产品
C.用Del键删除的文件还可以从回收站中执行还原操作来恢复
D.用Shift+Del键删除的文件还可以从回收站中执行还原操作来恢复
试题(4)分析
见公共试题Ⅰ(4)。
参考答案
(4)D
试题(5)
在Windows环境中,选择某一部分信息(例如文字、一个图形)移动到别处,应当首先执行“编辑”菜单下的  (5)  命令。
(5)A.复制    B.粘贴    C.剪切    D.选择性粘贴
试题(5)分析
见公共试题Ⅰ(5)。
参考答案
(5)C
试题(6)
在Word中,如果要选择多个文本框对象,可  (6)  。
(6)A.按住Alt键不放,用鼠标分别单击各个文本框
B.按住Shift键不放,用鼠标分别单击各个文本框
C.按住Tab键不放,用鼠标分别单击各个文本框
D.直接用鼠标分别单击各个文本框
试题(6)分析
见公共试题Ⅰ(6)。参考答案
(6)B
试题(7)
若磁盘的转速提高一倍,则  (7)  。
(7)A.平均存取时间减半      B.平均寻道时间减半
C.存储道密度提高一倍    D.平均寻道时间不变
试题(7)分析
见公共试题Ⅰ(7)。参考答案
(7)D
试题(8)、(9)
某微型机字长16位,若采用定点补码整数表示数值,最高1位为符号位,其他15位为数值部分,则所能表示的最小整数为  (8)  ,最大负数为  (9)  。
(8)A.+1    B.-215    C.-1    D.-216
(9)A.+1    B.-215    C.-1    D.-216
试题(8)、(9)分析
见公共试题Ⅰ(8)、(9)。
参考答案
(8)B    (9)C
试题(10)
在进行定点原码乘法运算时,乘积的符号位是由被乘数的符号位和乘数的符号位  (10)  运算来获得。
(10)A.相或    B.相与
C.相异或    D.分别取反后再相或
试题(10)分析
见公共试题Ⅰ(10)。
参考答案
(10)C
试题(11)
某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为  (11)  。
(11)A.00000001  00000011  00000111
B.00000011  00000001  00000111
C.00000010  00000011  00000100
D.00000011  00000001  00001001
试题(11)分析
见公共试题I(11)。
参考答案
(11)C
试题(12)
下列标准代号中,  (12)  是国家标准的代号。
(12)A.IEEE    B.ISO    C.GB    D.GJB
试题(12)分析
见公共试题Ⅰ(12)。
参考答案
(12)C
试题(13)
软件著作权受法律保护的期限是  (13)  。一旦保护期限届满,权利将自行终止,成为社会公众可以自由使用的知识。
(13)A.10年    B.25年    C.50年    D.不确定的
试题(13)分析
见公共试题Ⅰ(13)。
参考答案
(13)C
试题(14)
某商场的部门和商品两个实体之间的关系如下图所示。假设每个部门负责销售若干种商品,每种商品只能由一个部门负责销售,那么部门和商品之间存在着  (14)  的联系。
(14)A.一对一    B.一对多    C.多对多    D.一对多对多
试题(14)分析
见公共试题Ⅰ(14)。
参考答案
(14)B试题(15)
在关系代数运算中,若对表1按  (15)  ,可以得到表2。
表1
商品号
名称
单价:元
01020210
牙刷
3
01020211
毛巾
10
01020212
毛巾
8
01020213
铅笔
0.5
02110200
钢笔
8
表2
名称
单价:元
毛巾
10
(15)A.商品号进行选择运算
B.名称、单价进行投影运算
C.名称等于“毛巾”进行选择运算,再按名称、单价进行投影运算
D.商品号等于“01020211”进行选择运算,再按名称、单价进行投影运算
试题(15)分析
见公共试题Ⅰ(15)。
参考答案
(15)D
试题(16)~(18)
Windows系统安装时生成的Documents and Settings、Winnt和System32文件夹是不能随意更改的,因为它们是  (16)  。在Windows文件系统中,  (17)  是一个合法的文件名;  (18)  不是合法的可执行文件的扩展名。
(16)A.Windows的桌面
B.Windows正常运行时所必需的应用软件文件夹
C.Windows正常运行时所必需的用户文件夹
D.Windows正常运行时所必需的系统文件夹
(17)A.dyx03 ent.dll    B.Explorer*.arj
C.Hewlett<Packard.rar    D.Print|Magic.exe
(18)A.exe    B.com
C.rar    D.bat
试题(16)~(18)分析
见公共试题Ⅰ(16)~(18)。
参考答案
(16)D    (17)A    (18)C
试题(19)
(19)  无助于加强计算机的安全。
(19)A.安装杀毒软件并及时更新病毒库
B.及时更新操作系统补丁包
C.把操作系统管理员账号的口令设置为空
D.安装使用防火墙
试题(19)分析
见公共试题I(24)。
参考答案
(19)C
试题(20)
下面描述正确的是  (20)  。
(20)A.只要不使用U盘,就不会使系统感染病毒
B.只要不执行U盘中的程序,就不会使系统感染病毒
C.软盘比U盘更容易感染病毒
D.设置写保护后使用U盘就不会使U盘内的文件感染病毒
试题(20)分析
见公共试题Ⅰ(25)。
参考答案
(20)D
试题(21)
使用浏览器上网时,  (21)  不可能影响系统和个人信息安全。
(21)A.浏览包含有病毒的网站
B.改变浏览器显示网页文字的字体大小
C.在网站上输入银行账号、口令等敏感信息
D.下载和安装互联网上的软件或者程序
试题(21)分析
见公共试题Ⅰ(26)。
参考答案
(21)B
试题(22)
(22)  不属于多媒体输入设备。
(22)A.麦克风    B.摄像头    C.扫描仪    D.SCSI硬盘
试题(22)分析
见公共试题Ⅰ(27)。
参考答案
(22)D
试题(23)
依据  (23)  ,声卡可以分为8位、16位、32位等。
(23)A.采样频率  B.量化位数    C.量化误差    D.接口总线
试题(23)分析
见公共试题Ⅰ(28)。
参考答案
(23)B
试题(24)
在选择多媒体数据压缩算法时需要综合考虑  (24)  。
(24)A.数据质量和存储要求
B.数据的用途和计算要求
C.数据质量、数据量和计算的复杂度
D.数据的质量和计算要求
试题(24)分析
见公共试题Ⅰ(29)。
参考答案
(24)C
试题(25)
(25)  语言不是面向对象的程序设计语言。
(25)A.Java    B.C++    C.Smalltalk    D.Fortran 77
试题(25)分析
Java、C++、Smalltalk是面向对象的程序设计语言,Fortran语言主要用于数值计算,它不是面向对象的语言,Fortran 77是该语言的一个标准化版本。
参考答案
(25)D
试题(26)、(27)
程序中凡是引用  (26)  对象的地方都可使用  (27)  对象代替。
(26)A.基类    B.派生类    C.基本类型    D.用户定义类型
(27)A.基类    B.派生类    C.抽象类    D.用户定义类型
试题(26)、(27)分析
任何一个派生类的对象都是一个基类的对象,所以凡是引用基类对象的地方都可以用派生类对象代替。
参考答案
(26)A  (27)B
试题(28)
(28)  是在运行时把过程调用和响应调用需要的代码加以结合的过程。
(28)A.词法分析    B.静态绑定     C.动态绑定    D.预编译
试题(28)分析
词法分析、预编译和静态绑定都是在程序的编译过程或编译前,只有动态绑定发生在程序运行过程中。
参考答案
(28)C
试题(29)
若push、pop分别表示入栈、出栈操作,初始栈为空且元素1、2、3依次进栈,则经过操作序列push、push、pop、pop、push、pop之后,得到的出栈序列为  (29)  。
(29)A.321    B.213    C.231    D.123
试题(29)分析
栈的运算特点为在同一端插入和删除元素,即先入后出,总是栈顶元素先出栈,新元素总是压在栈顶元素之上并成为栈顶元素。初始栈为空,如下图(a)所示。对于元素 1、2、3,依照操作序列push、push、pop、pop、push、pop,可以得到出栈序列213,其过程为:第一个push操作将元素1压入栈中,如下图(b)所示:第二个push操作将元素2压入栈中,如下图(c)所示:第一个pop将栈顶元素2弹出栈,新栈顶元素为1,如下图(d)所示;第二个pop将栈顶元素1弹出栈,导致栈空,如下图(e)所示:其后的push和pop分别将元素3压入和弹出栈,操作结果如下图(f)和(g)所示。
参考答案
(29)B
试题(30)
若in、out分别表示入队、出队操作,初始队列为空且元素a、b、c依次入队,则经过操作序列in、in、out、out、in、out之后,得到的出队序列为  (30)  。
(30)A.cba    B.bac    C.bca    D.abc
试题(30)分析
队列的运算特点是先入先出,总是处于队头的元素先出队,新元素总是加入队尾,元素a、b、c依次入队并经过操作序列in、in、out、out、in、out的过程如下图所示。
参考答案
(30)D
试题(31)
若线性表采用链式存储结构,则适用的查找方法为  (31)  。
(31)A.随机查找    B.散列查找    C.二分查找    D.顺序查找
试题(31)分析
链式存储结构的基本特点是结点之间通过指针链接,常见的有单链表、循环链表和双向链表,如下图(a)、(b)、(c)所示,通常设置一个指针指向链表中的某个结点并从该结点出发开始访问链表中的元素。
随机查找表中元素时,访问表中任一元素所需时间与元素的位置和排列次序无关。
以散列方式存储和查找元素时,元素的存储位置与其关键字相关。
二分查找只能在有序顺序表中进行。
由于链表中访问元素只能通过取得元素所在的结点的指针进行,因此只能顺序查找表中的元素,即要访问元素ai,必须顺次遍历表中的a1,a2,…,ai-l等元素。
参考答案
(31)D
试题(32)
字符串“computer”中长度为3的子串有  (32)  个。
(32)A.4    B.5    C.6    D.7
试题(32)分析
由串中任意长度的连续字符构成的序列称为子串。对于字符串“computer”,长度为 3的子串分别为“com”、“omp”、“mpu”、“put”、“ute”、“ter”。
参考答案
(32)C
试题(33)~(34)
可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,  (33)  ;对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,  (34)  。这两种情况都表明所检查的算术表达式括号不匹配。
(33)A.栈为空却要进行出栈操作
B.栈已满却要进行入栈操作
C.表达式处理已结束,栈中仍留有字符“(”
D.表达式处理已结束,栈中仍留有字符“)”
(34)A.栈为空却要进行出栈操作
B.栈已满却要进行入栈操作
C.表达式处理已结束,栈中仍留有字符“(”
D.表达式处理已结束,栈中仍留有字符“)”
试题(33)~(34)分析
对算术表达式(a+b*(a+b))/c)+(a+b)进行括号检查时,栈操作的顺序为:
入栈,入栈,出栈,出栈,出栈,……
当需要进行第三次出栈操作时,发现栈已空,已不可能完成出栈操作。
对算术表达式((a+b/(a+b)-c/a)/b进行括号检查时,栈操作的顺序为:
入栈,入栈,入栈,出栈,出栈
第1次出栈操作取出的是第3次刚入栈的“(”,第2次出栈操作取出的是第2次入栈的“(”。直到表达式检查结束,第1次入栈的“(”仍没有取出,因此,表达式中的括号并不匹配。
本例是栈的重要应用之例。编译程序中常用栈来检查语句(或程序)中的括号是否匹配。
在日常生活中,当人们进入一个复杂的大院时,需要多次进门,多次出门。每次出门,总是退出最近进门的院。在同一位置堆积货物时,总是先取最近刚放上的货。所以,栈的应用也是比较常见的。可以用这种日常生活中的例子来形象地理解栈的操作。参考答案
(33)A    (34)C
试题(35)~(36)分析
堆排序是一种基于  (35)  的排序方法,  (36)  不是堆。
(35)A.计数    B.插入    C.选择    D.归并
(36)A.15,28,25,56,68,63,30    B.15,28,25,30,68,63,56
C.68,28,63,25,15,56,30    D.68,56,39,63,28,25,15
试题(35)~(36)分析
堆排序是一种改进的选择排序方法。
对于n个元素的关键字序列{k1,k2,…,kn},当且仅当满足下列关系时称其为堆:
若将此序列对应的一维数组(即以一维数组作为序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右孩子结点的值。
对于题目中给出的四个序列分别构造完全二叉树,如下图所示。
其中,(d)中的结点56,即不满足堆的定义。
参考答案
(35)C    (36)D
试题(37)~(38)
若循环体执行的次数为m,则在do-while型循环中,循环条件的执行次数为  (37)  ,在while-do型循环中,判断循环条件的次数为  (38)  。
(37)A.m-1    B.m    C.m+1    D.2m
(38)A.m l    B.m    C.m+1    D.2m
试题(37)~(38)分析
While-do型循环的含义如下图(a)所示。在这种循环中,是先判断循环条件再决定是否执行循环体,循环条件(菱形框)的运算总是比循环体多一次。因此,若循环体的执行次数为m,则循环条件的执行次数为m+1。
Do-while型循环的含义如上图(b)所示。在这种循环中,先执行循环体再判断循环条件以决定是否进行下一次的循环,循环条件(菱形框)的运算和循环体执行的次数相同。
参考答案
(37)B    (38)C
试题(39)
程序语言的语句从功能上大体可分为  (39)  两大类。
(39)A.声明语句和可执行语句    B.简单语句和复杂语句
C.顺序语句和判定语句    D.程序语句和注释语句
试题(39)分析
程序中注释的作用是为了方便人对代码的理解和维护而引入的,它对程序的功能没有影响。在结构化程序中,程序的基本逻辑结构可分为顺序、选择和重复三种,程序语言提供相应的语句及语句的组织方式表达这三种结构。
声明语句对程序需要进行处理的数据进行声明。可执行语句用于表达对数据的运算处理。因此,从功能上程序语言的语句大体可分为声明语句和可执行语句两大类。
参考答案
(39)A
试题(40)~(41)
某C语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在  (40)  时会报错,这是一种  (41)  错误。
(40)A.编译    B.预处理    C.编辑    D.运行
(41)A.词法    B.语法      C.语义    D.运行
试题(40)~(41)分析
程序代码中的错误可分为语法错误和语义错误。程序语言的语法表述的是语言的形式,或者说是语言的样子和结构。程序语言还有更重要的一个方面,就是附着于语言结构上的语义。语义揭示了程序本身的含义、施加于语言结构上的限制或者要执行的动作。程序语言的语义分为静态语义和动态语义。编译时进行的是静态语义的分析,主要包括:检查语言结构的语义是否正确,即是否结构正确的句子所表示的意思也合法;执行规定的语义动作,如表达式的求值、符号表的填写、中间代码的生成等。
整除取余运算符“%”的有效运算对象是两个整数。在形式上,只要“%”的两个运算对象存在,其语法就是正确的;在语义上,“%”的运算对象中有浮点数则不符合整除取余运算的含义。因此,这是运算对象与运算符的类型不匹配错误,届于静态语义错误,在编译阶段可以发现该错误。
参考答案
(40)A  (41)C
试题(42)
设数组a[1..3,1..4]中的元素以列为主序存放,每个元素占用1个存储单元,则数组元素a[2,3]相对于数组空间首地址的偏移量为  (42)  。
(42)A.6    B.7    C.8    D.9
试题(42)分析
二维数组中的元素可以用两种方式存储:以行为主序(按行存储)或以列为主序(按列存储)。刘于一个m行n列的二维数组,当数组元素以行为主序存储时,首先存储第一行的所有元素,第二行的元素存储在第一行的元素之后,第三行的所有元素存储在第二行的元素之后,依次类推,第m行的元素最后存储。每行的元素按列下标次序从低到高依次存储。同理,以列为主序存储时,先存储第一列的元素,然后是第二列的元素,依次类推,最后是第n列的元素。
对于二维数组a[L1..H1,L2..H2],无论采用哪一种存储方式,都可以采用以下通式计算数组中元素a[i,j]在存储空间中的位置为
loc(a[i,j])=loc(a[L1,L2))+k*d
其中,k表示数组中存储在a[i,j]之前的元素数目:d表示每个数组元素占用的存储单元个数。当数组的元素以列为主序存放时,存储在a[i,j]之前的元素数目k为
k=(j-L2)*(H1-L1+1)+(i-L1)
因此对于题目中定义的数组a[1..3,1..4],以行为主序存放时,a[i,j]((1≤i≤3,1≤j≤4)的地址计算公式为
loc(a[i,j])=loc(a[1,1])+((j-1)*3+(i-1))*1=a-4+i+3j
因此,loc(a[2,3])=a-4+2+3×3=a+7。
参考答案
(42)B
试题(43)~(44)
在下面的程序代码中,a是整型全局变量,b是整型局部变量,x是整数形参,若调用com()时以引用调用的方式传递信息,则输出结果为  (43)  ;若调用com()时以传值的方式传递信息,则输出结果为  (44) 。
(43)A.8    B.12    C.14     D.16
(44)A.8    B.12    C.14     D.16
试题(43)~(44)分析
引用调用和值调用是进行过程(函数)调用时实在参数与形式参数间传递信息的两种基本方式。
在过程(或函数)首部声明的参数称为形式参数,简称形参:过程(或函数)调用时的参数称为实在参数,简称实参。调用语句实现了对过程(或函数)语句的执行,调用时首先要进行实参与形参间的参数传递。简单地说,以值调用方式进行参数传递时,需要先计算出实参的值并将其传递给对应的形参,然后执行被调用的过程(或函数),在过程(或函数)执行时对形参的修改不影响实参的值。而引用调用时首先计算实际参数的地址,并将此地址传递给被调用的过程,然后执行被调用的过程(或函数)。因此在被调用的过程(函数)中,既得到了实参的值又得到了实参的地址。引用调用方式下,被调用过程(函数)执行时针对形式参数的修改将反映在对应的实在参数变量中。
在引用调用方式下,题目中函数com的执行语句对x的修改结果就是a的值,即a的值在com中被改为8(即y=4+4),com()的返回值为8,因此输出16(8+8)。在值调用方式下,在com中修改x的值不会影响实参a,所以输出12(4+8)。
参考答案
(43)D    (44)B
试题(45)、(46)
若课程域D1={数据库,操作系统,面向对象},教师域D2={王强,刘亦},学生域 D3={刘海化,张刚,吴琨,梁谦},则D1×D2×D3  (45)  。在关系代数运算中,D1×D2的结果有  (46)  个元组。
(45)A.可以用一个二维表来表示    B.不能用一个二维表来表示
C.不是一个集合也不是一个关系  D.不是一个集合但它是一个关系
(46)A.3    B.4    C.5    D.6
试题(45)、(46)分析
本题考查的是关系数据模型中关系数据结构的形式化定义。
试题(45)正确答案为A。因为笛卡儿积是一个集合,可以表示为一个二维表,表中的每行对应一个元组,表中的每列对应一个域。关系是笛卡儿积的子集,也是一个二维表。
试题(46)正确答案为D。域D1,D2的基数分别为3和2,域D1×D2的基数为3×2=6,即D1×D2的结果有6个元组。
参考答案
(45)A    (46)D
试题(47)、(48)
职员关系模式为E(Eno,Ename,Dept,Eage,Eaddr)。其中,Eno表示职员号,Ename表示职员名,Dept表示职员所在部门,Eage表示年龄,Eaddr表示职员的家庭住址。建立“开发部”(DS表示开发部)职员的视图DS_E如下,要求进行修改、插入操作时保证该视图只有开发部的职员。
CREATE VIEW DS_E
AS SELECT Eno,Ename,Dept,Eage,Eaddr
FROM E
WHERE   (47)  ;
如下SQL语句可以查询开发部姓“王”职员的姓名和家庭住址。
Select Ename, Eaddr
From DS_E
Where   (48)  ;
(47)A.Dept=DS    B.Dept=DS WITH CHECK OPTION
C.Dept='DS'    D.Dept='DS' WITH CHECK OPTION
(48)A.Ename='王%'    B.Ename Link'王%'
C.Ename='王*'    D.Ename Link'王*'
试题(47)、(48)分析
本题考查的是关系数据库查询语言SQL。
试题(47)答案为D。建立“开发部”职员的视图DS E,Dept为字符类型,因此 Where子句为Dept='DS';加入WITH CHECK OPTION,表示对视图进行修改、插入操作时需要满足视图定义中的条件,即保证对该视图的修改、插入只针对于开发部的职员。
试题(48)答案为B。在SQL中,谓词LIKE用来对字符串进行匹配,%代表任意长度的字符串,代表任意单个字符,二是字符串的比较操作。答案A、B查询的是职员“王%”、“王*”,答案D中的*不是通配符,此时LIKE相当于=,查询的是职员“王*”。
参考答案
(47)D    (48)B
试题(49)
系统中有4个甲.位的存储器资源,被n个进程共享,如果每个进程都要求i个单位的存储器资源,那么当  (49)  时系统不会发生死锁。
(49)A.n=2,i=4    B.n=4,i=3    C.n=3,i-2    D.n-3,i-3
试题(49)分析
本题考查的是操作系统中死锁的基本知识及应用。
在多道程序系统中,死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将永远不能再向前推进。本题中,系统有4个单位的存储器资源,对于第一个选项,若2个进程同时申请并各自都占有2个资源,都无法继续获得资源进而执行结束,则发生死锁;对于第二个选项,若4个进程同时申请并各自都占有1个资源,都无法继续获得资源进而执行结束,则发生死锁;对于第四个选项,若3个进程同时申请并有2个进程占有1个资源,另一个进程占有2个资源,都无法继续获得资源进而执行结束,则发生死锁:而对于第三个选项,最坏情况下,若3个进程同时申请并各自都占有1个资源,系统还剩余1个资源,可以供3个进程中的任意一个进程获得资源进而执行结束,之后释放所占资源,以供另外2个进程使用,最后可以全部执行结束,系统不会发生死锁。所以正确答案为C。
参考答案
(49)C
试题(50)
在分页存储管理系统中,地址由页号和页内地址组成。下图所示页式管理的地址结构中,  (50)  。
(50)A.页面的大小为1K,最多有16M个页
B.页面的大小为2K,最多有8M个页
C.页面的大小为4K,最多有1M个页
D.页面的大小为8K,最多有2M个页
试题(50)分析
本题考查的是操作系统中分页存储管理系统中地址的组成及其计算方法。
在分页存储管理系统中,逻辑地址由两部分组成,前一部分是页号,后一部分是位移量,即页内地址。根据该题的已知条件,两部分构成的地址长度为32位,其中0~11位为页内地址,占12位,即每页的大小为4KB:12~31位为页号,占20位,即地址空间最多允许有1MB个页。所以正确答案为C。
参考答案
(50)C
试题(51)
数据流图包含的成分有  (51)  。
(51)A.关系、实体和属性    B.数据流、加工和数据有储
C.数据流、数据源和数据实体    D.数据流、属性、数据存储和加工
试题(51)分析
数据流图包含的成分有数据流、加工和数据存储。
参考答案
(51)B
试题(52)
在面向对象的系统中,由于有了  (52)  ,所以父类的数据和方法可以应用于子类。
(52)A.继承性    B.封装性    C.抽象性    D.多态性
试题(52)分析
子类可以继承父类的属性和方法,这是面向对象模型对软件开发过程的重要改进,有时可以节省很大的代码量。
参考答案
(52)A
试题(53)
如果用户对系统的目标不是很清楚,需求难以定义,这时最好使用  (53)  进行系统开发。
(53)A.原型法    B.瀑布模型    C.V-模型    D.螺旋模型
试题(53)分析
应用原型法的主要目的就是获取需求。使用原型法,在用户的共同参与下可以改善和加快需求获取过程。
参考答案
(53)A
试题(54)
在软件开发的各个阶段中,对软件开发成败影响最大的是  (54)  。
(54)A.需求分析    B.概要设计    C.详细设计    D.编码
试题(54)分析
在软件开发的各个阶段中,对软件开发影响最大的是需求分析阶段。需求分析做得好坏影响软件的质量、项目的开发费用,甚至整个项目的成败。
参考答案
(54)A
试题(55)
系统测试计划应该在软件开发的  (55)  阶段制定。
(55)A.需求分析  B.概要设计    C.详细设计    D.系统测试
试题(55)分析
测试计划应该在需求分析阶段就开始制定,并在设计阶段细化和完善,而不是等系统编码完成后才制订测试计划。
参考答案
(55)A
试题(56)、(57)
某计算机字长为16位,运算器为16位,有16个16位通用寄存器,8种寻址方式,主存容量为64K字。指令中地址码由寻址方式字段和寄存器字段组成,采用单字长指令,则该计算机最多可构成  (56)  条单操作数指令:寄存器间接寻址的范围为  (57)  字。
(56)A.256    B.512    C.1024    D.4096
(57)A.16     B.32     C.64      D.128
试题(56)、(57)分析
根据题意,计算机字长为16位,运算器为16位,有16个16位通用寄存器及8种寻址方式。单操作数指令长度为16位,其中寻址方式占3位,16个通用寄存器占4位。剩下的9位用来构成指令操作码,共有512种,故最多可构成512条指令。
由于通用寄存器是16位的,则寄存器间接寻址的范围为64K字。
参考答案
(56)B    (57)C
试题(58)、(59)
某计算机的地址线、数据线均为8位,一条两字节的相对寻址的无条件转移指令,存于内存20H和21H单元中,指令操作码存放在20H中,存放在21H中的位移量为15H。则取该指令时PC(程序计数器)为  (58)  H,该指令执行结束时PC为  (59)  H。
(58)A.20    B.21    C.22    D.41
(59)A.21    B.35    C.37    D.41
试题(58)、(59)分析
由于两个字节的相对寻址的无条件转移指令存于内存20H单元和21H单元中,当 CPU准备取出该指令时,PC的内容必定指向存放该指令第一个字节的地址,即PC=20H。
当CPU取出该指令准备执行时,PC的内容为22H,而取出的位移量为15H,执行该指令时是:PC+位移量→PC。因此,该指令执行结束时PC为37H。
参考答案
(58)A    (59)C
试题(60)
内存的段式存储管理有许多优点。下面描述中,  (60)  不是段式存储管理的优点。
(60)A.支持程序的模块化设计和并行编程的要求
B.各段程序的修改互不影响
C.地址变换速度快、内存碎片(零头)少
D.便于多道程序共享内存的某些段
试题(60)分析
内存的段式管理有许多优点。例如,这种管理方式支持程序的模块化设计和并行编程的要求、可以使各段程序的修改互不影响、便于多道程序共享主存的某些段。但这种管理方式地址变换速度慢,内存碎片(零头)多,造成浪费。因此,地址变换速度快、内存碎片(零头)少不是段式管理的优点。
参考答案
(60)C
试题(61)
邮件服务器使用POP3的主要目的是  (61)  。
(61)A.创建邮件    B.管理邮件    C.收发邮件      D.删除邮件
试题(61)分析
见公共试题Ⅰ(19)。
参考答案
(61)C
试题(62)
下列  (62)  不属于电子商务的应用模式。
(62)A.B-B    B.B-C    C.G-C    D.C-C
试题(62)分析
见公共试题Ⅰ(20)。
参考答案
(62)C
试题(63)
Internet中域名与IP地址之间的翻译是由  (63)  来完成的。
(63)A.域名服务器    B.代理服务器
C.FTP服务器     D.Web服务器
试题(63)分析
见公共试题Ⅰ(21)。
参考答案
(63)A
试题(64)
WWW服务使用的协议为  (64)  。
(64)A.HTML    B.HTTP    C.SMTP    D.FTP
试题(64)分析
见公共试题Ⅰ(22)。
参考答案
(64)B
试题(65)
在Outlook中可以借助  (65)  的方式传送一个文件。
(65)A.FTP    B.导出    C.导入    D.附件
试题(65)分析
见公共试题Ⅰ(23)。
参考答案
(65)D
试题(66)~(75)及译文见公共试题Ⅰ(42)~(51)。
第2章  程序员下午试题分析与解答
试题一
阅读下列说明和流程图,将应填入  (n)  处。
[流程图说明]
流程图1-1描述了一个算法,该算法将给定的原字符串中的所有前导空白和尾部空白都删除,但保留非空字符之间的空白。例如,原字符串“  File Name  ”,处理后变成“File Name”。流程图1-2、流程图1-3、流程图1-4分别详细描述了流程图1-1中的框A,B,C。
假设原字符串中的各个字符依次存放在字符数组ch的各元素ch(1),ch(2),…,ch(n)中,字符常量KB表示空白字符。
流程图1-1的处理过程是:先从头开始找出该字符串中的第一个非空白字符ch(i),再从串尾开始向前找出位于最末位的非空白字符ch(j),然后将ch(i),…,ch(j)依次送入 ch(1),ch(2),…中。如果原字符串中没有字符或全是空白字符,则输出相应的说明。在流程图中,strlen是取字符串长度函数。
[问题]在流程图1-1中,判断框P中的条件可表示为:
i>  (5)
试题—分析
本题用分层的流程图形式描述给定的算法。流程图1-1是顶层图,其中用A、B、C标注了三个处理框。而流程图1-2、图1-3、图1-4分别对这三个处理框进行了细化。
A框的功能是依次检查ch(1),ch(2),…,直到找到非空白字符ch(i)。流程图1-2中,对i=1,2,…进行循环,只要尚未找到尾,而且ch(i)=KB,则还需要继续查找。因此,(1)处可填写i<=n (n>=i是其等价形式)。
B框的功能是依次检查ch(n),ch(n-1),…,直到找到非空字符ch(j)。流程图1-3中,对 j=n,n-1,…进行循环,只要ch(j)=KB,则还需要继续循环查找。由于B框处理的前提是A框中已经找到了非空字符ch(i),所以,循环最多到达j=i处就会结束。因此(2)处应填写判断条件ch(j)=KB。判断条件j>i是可有可无的。
C框的功能是将ch(i),ch(i+1),…,ch(j)的内容依次送入ch(1),ch(2),…中。流程图1-4中,对k=i,i+l,…,j进行循环,即只要k<=j,就要继续做传送,继续循环。因此(3)处可填写k<=j。
由于ch(i)应送往ch(1),ch(i+1)应送往ch(2),…,所以,ch(k)应送往ch(k-i+1)。这是程序员应熟练掌握的基本功:从几个特例,寻找普遍规律,再用特例代进去试验是否正确。因此,(4)处应填写ch(k-i+1)。
在流程图1-1中,判断ch是空白字符串,等价于A框处理结束后没有找到空白字符。从流程图1-2中可以看出,循环变量i超过n(或达到n+1)时,就说明从头到尾都找过了,仍没有找到空白字符。因此,(5)处可以填写n。
参考答案
(1) i<=n,  或其等价形式
(2) ch(j)=KB
(3) k<=j,  或其等价形式
(4) ch(k-i+1)
(5) n
试题二
阅读以下说明和C语言函数,将应填入  (n)  处。
[说明]
函数int find_Max_Min(int a[],int n)的功能是:找出n个元素的数组a中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值:再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;以此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。
[函数]
int find_Max_Min(int a[],int n)
{/*找出n个元素的数组a的最大、最小元素并输出,返回查找过程元素中的比较次数*/
int i,Count=0;
int temp,Maxnum,Minnum;
for(i=0; i<n/2; i++){
Count=Count+1          /*元素比较次数计数*/
if(a[i]>a[  (1)  ])
{/*数组元素交换代码略*/}
}
Maxnum=a[n-1];  Minnum=a[0];
for(i=1;i<n/2+n%2;i++){
Count=  (2)  ;                  /*元素比较次数计数*/
Minnum=  (3)  ? a[i]:Minnum;    /*找最小元素*/
Maxnum=  (4)  ?   (5)  :Maxnum; /*找最大元素*/
}
printf("Max=%d\n",Maxnum);
printf("Min=%d\n",Minnum);
return Count;
}
试题二分析
本题考查编写C语言程序的基本知识。
先分析第一个for语句。
for(i=0; i<n/2; i++){
Count=Count+1;          /*元素比较次数计数*/
if(a[i]>a[  (1)  ])
{/*数组元素交换代码略*/)
}
根据函数int find_Max_Min(int a[],int n)的功能以及题于中描述的查找方法,可知经过第一个for循环后,数组a中的元素被分成了前半区(最小元素所在区域)和后半区 (最大元素所在区域)。由于元素a[0]与a[n-1]比较,a[1]与a[n-2]比较,由于i值随循环的变化规律是0,1,2,…,因此空(1)处应填入n-1-1。
再分析第二个for语句,此前先假设a[n-1]为最大元素Maxnum,a[0]为最小元素 Minnum。
for(i=1;i<n/2+n%2;i++){
Count=  (2)  ;                            /*元素比较次数计数*/
Minnum=  (3)  ?a[i]:Minnum;          /*找最小元素*/
Maxnum=  (4)  ?   (5)  :Maxnum;     /*找最大元素*/
}
显然,同一个循环中在前半区查找最小元素,在后半区查找最大元素,元素比较次数计数器count的值随循环每次增加2。由于i值的变化规律为0,1,2,…,因此空(3)处填入“a[i]<Minnum”,结合“? a[i]:Minnum” 表示找到更小元素a[i]时用a[i]更新 Minnum的值:同理,在后半区找到更大元素时更新Maxnum的值,题干中已经明确在后半区从后往前找出大元素,因此空(4)处应填入“a[n-I-1]>Maxnum”,空(5)处填入“a[n-i-1]”。
参考答案
(1)n-i-1    (2)Count+2    (3)a[i]<Minnum
(4)a[n-i-1]>Maxnum    (5)a[n-i-1]
试题三
阅读以下说明和C程序,将应填入  (n)  处。
[说明]
某种传感器的输出值Ratio依赖于环境温度temp(-40℃≤temp≤50℃)。对一组环境温度值(ITEMS个),人们已经测量得到了相应的Ratio值(见表1)。该表粗略地描述了曲线Ratio(temp)。
表1  曲线Ratio(temp)的列表值
环境温度temp
传感器的输出值Ratio
-40℃
0.20
-20℃
0.60
-10℃
0.80
0℃
1.00
10℃
1.17
30℃
1.50
50℃
1.80
表2  曲线K(temp)的列表值
环境温度temp
校正系数K
-40℃
5.00
-39℃
4.55
-38℃
4.17
-37℃
3.85
...
...
-20℃
1.67
-19℃
1.61
...
...
-10℃
1.25
-9℃
1.22
...
...
50℃
0.56
校正系数K是Ratio的倒数,因此也依赖于环境温度temp。在数据处理中,人们需要用更多的列表值细致地描述曲线K(temp),如表2所示。在表2中,各温度值所对应的K值是对表1进行线性插值再求倒数得到的,具体的计算方法如下:
1.根据temp值,在表1中用二分法查找;
2.若找到相应的温度值,则按相应的Ratio值求倒数得到K值:
3.若没找到相应的温度值,则可确定temp所在的温度区间[Tp1, Tp2],同时获得了相应的Ratio1和Ratio2,再按如下公式计算K值:
Step=(Ratlo1-Ratio2)/(Tp1-Tp2)
K=1.0/(Ratio1+Step*(temp-Tp1))
在程序中,当temp高于50℃或低于-40℃时,设定K=0。
[程序]
#include <stdio.h>
typedef struct {
int Temp;        /*环境温度*/
double Ratio;    /*传感器的输出值*/
}CURVE;
#define ITEMS  7
double GetK(int, CURVE*, int);
void main()
{
int Degree;
double k;
CURVE Curve[ITEMS]={ {-40,0.2},{-20,0.60},{-10,0.8},{0,1,0},
{10,1.17},{30,1.50}, {50,1.8}  };
printf("环境温度     校正系数\n");
for( Degree= 40; Degree<=50; Degree++){
k=GetK(Degree, Curve, ITEMS);
printf("  %3d         %4.2f\n",Degree,k);
}
}
double GetK(int Temp, CURVE *p, int n)
{/*用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值*/
int low,high,m; double Step;
low=0;  high=n-1;
if((Temp<p->Temp) ||( Temp>(p+high)->Temp))
return 0.0;  /*超出温度范围时返回0.0*/
while (low<=high){
m=  (1)  ;
if(Temp==(p+m)->Temp)
return   (2)  ;
if (Temp<(p+m)->Temp)high=m-1;
else low=  (3)  ;
}
p+= high;
Step=(  (4)  )/((p+1)->Temp-p->Temp);
return 1.0/(p->Ratio +Step *(  (5)  ));
}
试题三分析
本题考查了线性插值计算及二分查找。
函数GetK(int Temp,CURVE *p,int n)用二分法在n个元素的有序表p中查找与Temp对应的传感器输出值,表中的元素已经按照温度值有序排列。进行二分查找时,首先计算表的中间位置,即[(low+high)/2],若待查元素等于中间位置上的元素,则查找成功并结束查找过程;若待查元素大,则在后半区间([m+1,high])继续进行二分查找:否则,在前半区间(pow,m-1])进行二分查找。如下图所示。
以查找温度值-25为例,由于-25<0,因此设置下一个查找区间为[0,2],如下图所示。
由于-25<-20,所以取high等于m-1,进一步,由于-25>-40,所以取low等于 m+1,如下图所示,至此,由于查找区间为空(10w>high),则可确定查找失败。
因此,空(1)处应填入“(low+high)/2”,空(3)处应填入“m+1”。根据题干的描述,若找到相应的温度值,则按相应的Ratio值求倒数得到K值,因此空(2)处应填入“1.0/(p+m)->Ratio”。若未找到相应的温度值,则结束查找时low>high。
根据题干中描述的线性插值再求倒数计算方法和p+=high:可得到计算Step和K的算式:
Step=((p+1)->Ratio-p->Ratio)/(Tp1-Tp2)
K=1.0/(p->Ratio+Step*(Temp-p->Temp))
参考答案
(1)(low+high)/2
(2)1.0/(p+m)->Ratio
(3)m+1
(4)(p+1)->Ratio-p->Ratio
(5)Temp-p->Temp
试题四
阅读以下应用说明以及用Visual Basic开发过程中进行的属性设置和所编写的程序代码,将应填入  (n)  处。
[应用说明]
启动某应用程序运行的登录窗口如下:
其中的标签(Label1)“用户名(U)”对应文本框Username,标签(Label2)“密  码(P)”对应文本框Password。当用户在Username文本框中输入用户名“ali88”,在Password文本框中输入“zmkm”(显示的字符均为“*”),并单击“确定”按钮时,就会弹出应用程序的主窗口frmAPP,而该登录窗口就会卸载。
如果用户名或密码输入错误,则会弹出报警信息框。当用户单击其中的“确定”按钮后,登录窗口中Password文本框的内容就会消失,光标停留在该框内,以便用户重新输入密码,必要时用户还可以再修改用户名,再次做登录尝试。本应用程序允许发生3次输入错误。在第3次输入错误后,就会立即退出该应用程序。
在弹出登录窗口后,当按组合键“Alt+U”时光标就会停留在Username文本框中:当按组合键“Alt+P”时光标就会停留在Password文本框中。当用户按Enter键时,就相当于单击“确定”按钮:当用户按Esc键时,就相当于单击“取消”按钮,立即退出该应用程序。
[属性设置]
在开发过程中,部分控件及属性设置如下:
对 象
对 象 名
属 性
属 性 值
标签
Label2
Caption
(1)
文本框
Username
Text
(空白)
文本框
Password
Text
(空白)
Password
*
命令按钮
CmdOK
Caption
确定
Default
(2)
命令按钮
CmdCancel
Caption
取消
Cancel
True
[程序代码]
Private Sub cmdOK_Click()
(3)   As Integer           ' 静态变量times的说明
If   (4)   Then
Unload Me                  ' 卸载本登录窗口
(5)                      ' 弹出应用程序主窗口frmAPP
Else
MsgBox ("用户名或密码错! ")
times=times+1
Password.Text=""         ' 清除密码框中的内容
Password.SetFocus        ' 将光标定位于密码框
If times=3 Then End
End If
End Sub
Private Sub cmdCanee1_Click()
End
End Sub
试题四[分析]
本题是常用的登录窗口之例。用户输入用户名和密码后,按Enter键就相当于单击“确定”按钮。这就是说,在登录窗口中的“确定”按钮足默认(Default)的按钮。为实现这样的功能,需要在开发时,设置“确定”按钮的Default属性值为true。
为方便输入用户名和密码,用户常希望用按键也可以将光标定位在相应的文本框中 (操作熟练的用户不希望交替使用鼠标和键盘)。标签“用户名(U)”提示用户,按Alt+U组合键就能将光标定位在用户名文本框中,标签“密  码(P)”提示用户,按Alt+P组合键就能将光标定位在密码文本框中。实现这一功能的办法是,在标签的Caption属性值中,将标签中提示的带下划线的字符,用“&”以及该字符来标明;此外,创建该标签后,应紧接着创建其相应的文本框。在本题中,标签Lable1的Caption属性值应设置为“用户名(&U)”:标签Lable2的Caption属性值应设置为“密  码(&P)”。
单击“确定”按钮后将触发应用程序中的cmdOK_Click过程。该过程的主要处理是判断用户名和密码是否与预期的相匹配。如果正确,则卸载登录窗口,并弹出应用程序的主窗口frmAPP:如果不正确,则弹出错误信息框,清除密码框中的内容,将光标定位在密码框(因为密码输入错误的可能性比较大,常需要重新输入)。
判断用户名文本框中的内容是否为ali88,密码文本框中的内容是否为zmkm,其条件可以为:
Username.text="ali88"  and  Password.text="zmkm"
弹出应用程序主窗口frmAPP的语句为:
frmAPP.Show
本题还有一个特殊的要求,就是用户名和密码的输入最多只能有3次机会。如果输入错误3次,则会退出该系统。
为此,cmdOK_Click过程内应设置进入该过程的计数器(本题中用times)。但如果 times是一般的局部变量,则退出该过程后其值不会保留。全局变量又应尽量少用,以免影响其他过程。所以,使用静态变量说明times是合适的,其说明语句为:
Static times As Integer
在退出该过程后,静态变量Times的值仍然保留,再次进入该过程后,仍能继续累加计数。
参考答案(VB程序代码中不区分大小写)
(1)密  码(&P)
(2)True
(3)Static times
(4)Username.text="ali88"  and  Password.text="zmkm",或其等价形式
(5)frmAPP
试题五
阅读以下说明和C语言函数,将应填入  (n)  处。
[说明]
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二义排序树。
函数insert_BST(char *str)的功能是:对给定的字符序列按照ASCⅡ码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
二叉排序树的链表结点类型定义如下:
typedef struct BSTNode{
char Elem;                  /*结点的字符数据*/
int Count;                  /*记录当前字符在序列中重复出现的次数*/
struct BSTNode *Lch,*Rch;   /*接点的左、右子树指针*/
}*BiTree;
[函数]
BiTree insert_BST(char *str)
{ BiTree root,parent,p;
char   (1)  ;             /*变量定义及初始化 */
root=(BiTree)malloc(sizeof(struct BSTNode));
if(!root||*s=='\0') return NULL;
root->Lch=root->Rch=NULL;  foot->Count=1;  root->Elem=*s++;
for(; *s!='\0';s++) {
(2)  ;    parent=NULL;
while (p){       /*p从树跟结点出发查找当前字符*s所在结点 */
parent = p;
if(*s==p->Elem)/*若树中已存在当前字符结点,则当前字符的计数值加1*/
{p->Count++;  break;}
else  /*否则根据字符*s与结点*p中字符的关系,进入*p的左子树或右子树*/
if (*s>p->Elem)  p=p->Rch;
else   p=p->Lch;
}/*while*/
if(  (3)  ) {/* 若树中不存在字符值为*s的结点,则申请结点并插入树中 */
p=(BiTree)malloc(sizeof(struct BSTNode));
if(!p)return NULL;
p->Lch=p->Rch=NULL;   p->Count=1;    p->Elem=*s;
/*根据当前字符与其父结点字符值的大小关系,将新结点作为左子树或右子树插入*/
if(p->Elem>parent->Elem)    (4)  =p;
else      (5)  =p;
}
}/*for*/
return root;
}
试题五分析
本题考查二叉排序树在链表存储结构上的运算。
函数insert_BST(char *str)的功能是对给定的字符序列str按照ASCⅡ码值大小关系创建二叉排序树,并返回指向树根结点的指针,序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
根据程序代码中对字符序列中字符的引用情况,可知需要在空(1)处定义字符指针s,其初值应为参数str的值。for语句的作用是对序列中的每个字符*s,用while循环从树根结点出发查找*s所在结点。由于while的条件p为非空指针时循环,因此此前应设置 p的初值,显然空(2)是为p没初值root,从而对每个字符*s都可以从树根出发,开始查找结点。若树中已存在当前字符*s的结点,则*s字符的计数值加1,并结束对该字符的查找过程,若树中不存在*s的结点,则会进入树的一个空子树(以p为空表示),因此空(3)处应填入“p==NULL”或“中!p”。
插入新的结点时,需要建立其与父结点的关系,在查找结点的过程中parent表示待插入结点的父结点。因此根据二叉排序树的定义,待插入元素的值大于其父结点的值,则作为右子结点插入,否则作为左子结点插入。所以,空(4)、(5)分别填入parent->Rch和parent->Lch。
参考答案
(1) *s=str    (2) p=root    (3) p==NULL
(4) parent->Rch  (5) parent->Lch
试题六
阅读以下说明和C++代码。
[说明]
类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。
[C++代码]
01  #include <iostream>
02  using namespace std;
03  class Stock{
04  protected:
05  Stock(){shares=0;share_val=0.0;Output();}
06  Stock(int n=0,double pr=3.5):  (1)  {//初始化shares值为n
07      share_val=pr;
08      Output();
09  };
10  void Stock(){};
11     void Output(){cout<<shares <<':'<<share_val<<end1;}
12  public:
13  //成员函数
14  private:
15  //成员变量
16  int shares;
17  double share_val;
18  };
19
20  void main(){  //构造三个Stock对象a,b,c
21  Stock a(1);
22  Stock b;
23  Stock c=Stock();
24  //其它代码省略,且代码五输出
25  }
程序运行后的输出结果为:
1:3.5
(2)
(3)
试题六分析
根据程序中的注释,要求初始化shars的值为n,因此根据初始化语法应为share(n);第四行定义了构造函数的访问控制为protected,但构造函数应该是公共的,所以第四行应该更改为public:第六行的构造函数定义了默认值,这样构造一个对象的时候可以填写不同参数,但这个构造函数会和stock()的无参构造函数混淆,所以,不能够带有默认值,可以将带有默认参数的构造函数更改为:Stock(int n, double pr=3.5)或者Stock(int n, double pr)。函数的析构函数不能够有任何的返回值,所以第十行应为~Stock(){}:运行程序后,程序的输出结果为:
1:3.5
0:0
0:0
参考答案
(1) shares(n)
04代码行修改结果:public:
06代码行修改结果:Stock(int n, double pr=3.5):shares(n){
10代码行修改结果:~Stock(){}
(2)0:0
(3)0:0