1.有这样一个类:
class Eye
{
public:
void Look(void);
};
现在希望定义一个Head类,也想实现Look的功能,应该使用()方法,实现代码重用。
A 继承 B组合(√)
解析:①“优先使用对象组合,而不是继承”是面向对象设计的第二原则。
②组合是在新类中以原有类的对象作为数据成员,继承是在不改变现有的类的基础上,采用现有类的形式并在其中添加新代码,组合一般用于在新类中使用现有类的功能而不是他的接口的情况,就是新类用户看到的只是为新类所定义的接口。而继承则是用于在新类需要向基类转化的情况(多态),这也是组合和继承使用的最清晰的判断方法。
结合本题分析,我们只需让眼睛作为头的一个成员即可,而让头去继承眼睛的特性是没有必要的。
2 .某计算机按字节编址,采用小端方式存储信息。其中,某指令的一个操作数为 16 位,该操作数采用基址寻址方式,指令中形式地址(用补码表示)为 FF00H ,当前基址寄存器的内容为 C000 0000H ,则该操作数的 LSB 存放的地址是()
A. BFFF FF00H(√)
B. BFFF FF01H
C. C000 FF00H
D. C000 FF01H
解析:①低位存低位,高位存高位 ,偏移方向是基址的更低位
C000 000H - 0100H ( FF00的原码) = BFFF FF00H
②首先: LSB存放的地址即最低有效字节地址,由于小端方案,最低有效字节存储在最小地址位置。 其次: 根据基址寻址,该地址为基址寄存器内容+形式地址。
最后:C000 0000h+ FFFF FF00=BFFF FF00
3.用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为()工具
答案:CASE
解析:计算机辅助软件工程英文全称:CASE(Computer Aided(or Assisted)Software Engineering)
扩展:CAD (Computer Aided Design):计算机辅助设计 , 指利用计算机及其图形设备帮助设计人员进行设计工作。
CAI (Computer Aided Instruction ) : 计算机辅助教学,是在计算机辅助下进行的各种教学活动,以对话方式与学生讨论教学内容、安排教学进程、进行教学训练的方法与技术。
CAM (computer Aided Manufacturing):计算机辅助制造 ,是将计算机应用于制造生产过程的过程或系统。
4.下面错误的初始化语句是( )
A. char str[] = “hello”;
B. char str[100] = “hello”;
C. char str[] = {‘h’,‘e’,‘l’,‘l’,‘o’};
D. char str[] = {‘hello’};(√)
解析:A项是字符串初始化,字符串的长度省略不写,且/n占一个字节,则字符串默认长度为5+1=6;
B项和A一样,只是指定了字符串长度为100,则除了前5个字符外,其余赋值为0,最后一位是/n;
C项是数组赋值,数组长度为5;
D项不符合数组或是字符串的赋值规范,错误!
5 . 软件危机的典型表现:
1、用户对软件开发的成本和进度估计往往很不准确
2、软件的质量往往靠不住
3、用户对软件质量不满意的现象时有发生
4、缺乏适当的文档资料
5、软件通常是不可维护的
6、软件开发成本在计算机系统中所占比例逐年升高
7、软件开发率提高的速度远远跟不上计算机深入普及的趋势
6 . 在浮点数运算过程中,10.0乘以0.1一定等于1.0。( )
A. 正确 B. 错误(√)
解析:计算机中的浮点数并不能完全精确表示。例如,对于一个float 型来说,
float a=0.3;b=1.6;
a=(0.3)10=(0011 1110 1001 1001 1001 1001 1001 1010)2 Sa=0 Ea=011 1110 1 Ma=1.001 1001 1001 1001 1001 1010
b=(1.6)10=(0011 1111 1100 1100 1100 1100 1100 1101)2 Sb=0 Eb=011 1111 1 Mb=1.100 1100 1100 1100 1100 1101
a+b=?
第一步:对阶
∵ Ea<Eb Eb-Ea=2
∴ Ma要调整为 0.0 1001 1001 1001 1001 1001 10 10
E=011 1111 1
第二步:尾数运算
0.01001100110011001100110 + 1.10011001100110011001101
1.11100110011001100110011
第三步:规格化
1.11100110011001100110011已经是个规格化数据了
第四步:舍入处理
由于在对阶时,Ma有右移,且第一次最高为1,第二次为0,所以按"0舍1入",尾数运算结果调整为 1.11100110011001100110100
第五步:溢出判断
没有溢出,阶码不调整,所以最后的结果为
a+b=(0 01111111 11100110011001100110100)2=(0011 1111 1111 0011 0011 0011 0011 0100)2=(3FF33334)16
转为10进制
a+b=1.90000010