软件开发练习题笔记!

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摘星_goddess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值