
软考软件设计师考前练习及答案解析汇总(上).docx
29页软考软件设计师考前练习及答案解析汇总(上)软考软件设计师考前练习题及答案解析(1)1.某计算机系统中,16位浮点数的表示格式如图1所示其中阶码4位(含1位符号)为定点整数,尾数12位(含1位符号)为定点小数 图 1 设一个数机器码为1110 0010 1000 0000,若阶码为移码且尾数为原码,则其十进制数真值为 (1) (1) A.20 B.25 C.0.078 125 D.20.969 375 参考答案:(1)A 解析:为了充分利用尾数来表示更多的有效数字,即提高数据的表示精度,通常采用规格化浮点数规定浮点数在运算结束将运算结果存到计算机中时,必须是规格化的浮点数规格化浮点数尾数的最高数值位是有效数字,即正尾数0.5≤F<1,负尾数-1 对于本试题的解答思路是,对给定的机器码按浮点数格式得到阶码和尾数,然后将阶码变为十进制数,最后得到浮点数的十进制真值如果给定的浮点数机器码不是用规格化表示的,则可将其表示为规格化的机器码规格化时,先看给定的浮点数机器码的尾数是用什么码表示的,然后再看是否已是规格化数,如果不是,将尾数小数点移位,但要注意,为保持浮点数的真值不变,阶码一定要进行相应的调整。
在解答此类题目时,一定要注意题目条件中给出的阶码和尾数是用什么码表示的,否则很容易出错,而得不到正确的计算结果 针对本题,对所给机器码1110 0010 1000 0000,按所规定的浮点数表示形式,可知阶码为1110(最高位为阶符1),尾数为0010 1000 0000(最高位为尾符0) 0.0101B= 010100B=20① 若阶码为移码,1110表示为十进制数加6,尾数为原码表示加0.0101B,所以浮点数为26 ② 0.101B,阶码-3的补码为1101,因为浮点数规格化要求尾数最高数据位为有效数据位,即尾数绝对值大于等于0.50.0101B=2-3?0.0101B=0.000101B=0.078125D将此浮点数用规格化数形式表示:2-2?若阶码为补码,1110表示为十进制数减2,尾数为补码,因该尾数为正数,即加0.0101,该浮点数为2-2 2.某计算机主存按字节摘取cache的地址变换采用组相联映像方式(即组内全相联,组间直接映像)高速缓存分为2组,每组包含4块,块的大小为512B,主存容量为1MB构成高速缓存的地址变换表相联存储器容量为 (2) bit每次参与比较的存储单元为 (3) 个。
(2) A.4×10 B.4×11 C.8×10 D.8×11 (3) A.2 B.4 C.8 D.16 参考答案:(2)C;(3)B 解析:某计算机主存按字节编址,主存与高速缓存Cache的地址变换采用组相联映像方式(即组内全相联,组间直接映像)高速缓存分为2组,每组包含4块,块的大小为512B,主存容量为1MB① 由于主存容量为1MB=220,高速缓存分为2=21组(即区内组号为1位),每组包含4=22块(即组内块号为2位),块的大小为512B=29(即块内地址为9位),因此主存区号=20-1-2-9=8位 ② 主存与高速缓存Cache的地址变换采用组相联映像方式(即组内全相联,组间直接映像),高速缓存的地址变换表的相联存储器中存放的用于比较的是8位的主存区号和2位的组内块号,因此,相联存储器的一个单元应存放10位二进制数 ③ 由于高速缓存共有8块,因此,高速缓存的地址变换表的相联存储器容量应为8×10位 ④ 由于组间采用直接映像,不需要进行比较,但组内采用全相联映像,需要在一组的4块内进行比较,故每次参与比较的存储单元为4个软考软件设计师考前练习题及答案解析(2)3. 假设某程序语言的文法如下: S→S a T∣T T → T b R∣R R→ P d R∣P P→ f S g∣e 其中:VT={a, b, d, e, f, g};VN={S,T,R,P};S是开始符号。
那么,此方法是_(4)_方法这种文法的语法分析通常采用优先距阵,优先矩阵给出了该文法中各个终结符之间的优先关系系〔大于,小于,等于,无关系)在上述文法中,某些终结符之间的优先关系如下:b_(5)_a; f_(6)_g; a_(7)_a; d_(8)_d 供选择的答案 (4)A.正则文法 B.算符文法 C.二义文法 D.属性文法 (5)A.大于 B.小于 C.等于 D.无关系 (6)A.大于 B.小于 C.等于 D.无关系 (7)A.大于 B.小于 C.等于 D.无关系 (8)A.大于 B.小于 C.等于 D.无关系 参考答案:(4) B (5) A (6) C ( 7)A (8)B 解析 :算符优先文法的优先矩阵是这样构造的: 先求出各非终结符的FIRSTVT与LASTVT集 对每条产生式:对于两个终结符连在一起或是它们中间只有一个非终结符的情况,这两个终结符相等 对于一个非终结符与一个终结符连在一起的情况,如果终结符在前,则该终结符小于该非终结符的FIRSTVT集中的任一字符,如果终结符在后,则该非终结符的LASTVT集中的任一字符大于该终结符。
注意顺序不能颠倒,即A小于B就是A小于B,不能写成B大于A 4. 16个微处理器的编号分别为0、1、2、3、…、15,当采用四维立方体单级互连函数Cube3时,7号微处理器与 (9) 号微处理器相连接 (9) A.3 B.7 C.14 D.15 参考答案:(9)D 解析:四维立方体单级互联函数(Cube3)的运算规则是,从已知的微处理器编号的二进制数右边第0位起,数到第3位,并对该位求反即可得到所求的微处理器编号因此对于第7号微处理器,其二进制编码为0111,经过变换后为1111,即与第15号微处理器相连接 注意,如果本试题所采用的是全混洗单级互联函数Shuffle(无进位左循环一位的函数),那么第7号微处理器的编码(0111)经变换后为1110,即为第14号微处理器软考软件设计师考前练习题及答案解析(3)5. 在计算机体系结构中,CPU内部包括程序计数器PC、存储器数据寄存器MDR、指令寄存器IR和存储器地址寄存器MAR等若CPU要执行的指令为:MOV R0,#100(即将数值100传送到寄存器R0中),则CPU首先要完成的操作是(10) (10)A.100→R0 B. 100→MDR C. PC→MAR D. PC→IR 参考答案:(10)D 。
解析:程序计数器指向指令寄存器地址,然后就可以执行下面的指令了 MOV R0,#100,采用的是立即数寻址方式,这条指令(包含操作数R0和#100)被汇编器编译成一条机器代码,此指令执行前被加载到指令缓冲队列里,执行时 CPU在读取此机器代码时就读取了#100,#100立即就可以被送往R0(而不用到寄存器或者内存中去取操作数),因此叫做立即数寻址,指令执行效率最高 6. 某指令流水线由5段组成,各段所需要的时间如图2所示连续输入10条指令时的吞吐率为 (11) 图 2 (11) A.0.1428/Δt B.0.2041/Δt C.0.2857/Δt D.0.3333/Δt 参考答案:(11)C 解析:从图3-2中可看出,该流水线各段所经历的时间不一样,因此,该指令流水线吞吐率的计算公式为 式中m为流水线的段数;n为输入的指令数;Δti为第i段所需时间;Δtj为该段流水线中瓶颈段的时间将题中已知条件代入上式,则吞吐率TP的计算结果如下所示 7. 设有定义"enumterm{my,your=4,his,her=his+10};",则 printf("%d,%d,%d,%d ",my,your,his,her);的输出是(12) (12) A.0,l,2,3 B.0,4,0,10 C.0,4,5,15 D.1,4,5,15 参考解答:(12) C。
解析:按枚举类型定义的规定,枚举类型team的枚举常量对应的整数分别是my=0、your=4、his=5、her=15所以语句输出0,4,5,15解答是C 8.以下对枚举类型名的定义中,正确的是(13) (13) A.enuma={one,two,three}; B.enuma{a1,a2,a3}; C. enuma={’1’,’2’,’3’}; D. enuma{"one","two","three"}; 参考答案:(13) B 解析:枚举类型定义的句法是: enum枚举类型名{枚举类型常量1,枚举类型常量2,……}; 其中枚举类型常量都是互不相同的标识符所以定义enuma{a1,a2,a3}; 是一个正确的定义任何在枚举类型名之后接上=,或用字符常量,或用字符串常量作为枚举类型常量都是不正确的定义解答应是B 9. CPU执行程序时,为了从内存中读取指令,需要先将 (14) 的内容输送到地址总线上 (14) A.指令寄存器 B.标志寄存器 C.程序计数器 D.变址寄存器 参考答案:(14)C 解析:当CPU从内存中读取指令的时候(即在存取指令周期中),CPU首先将程序计数器(PC)的内容送到地址总线上,同时送出内存的读控制信号,将所选中的内存单元的内容读入CPU,并将其存放在指令寄存器中。
软考软件设计师考前练习题及答案解析(4)10. RSA算法的一个比较知名的应用是 (15) ,其协商层利用RSA公钥进行身份认证,其记录层涉及到对应用程序提供的信息的分段、压缩、数据认证和加密 (10) A.PGP B.HTTPS C.安全RPC D.SSL 参考答案:(10)D 解析:公钥密码是一种有两个密钥的不对称密钥技术RSA算法是一种常用的公钥加密算法,它可以实现加密和数字签名,安全套接层协议(SSL)的记录层利用RSA公钥进行身份认证,记录层涉及到对应用程序提供的信息的分段、压缩、数据认证和加密 11.设有以下说明和定义: typedefunion{longi;intk[5];charc;}DATE; structdate{intcat;DATEcow;doubledog;}too; DATEmax; 则下列语句的执行结果是(16) printh("%d",sizeof(structdate)+sizeof(max)); (16) A.26 B. 30 C. 18 D. 8 参考答案:(16) B 解析:设long型数据占4个字节、int型数据占2个字节,double数据占8个字节。
共用型DATE有三个成分:long型成分i,有五个int型元素的数组k,char型成分c所以DATE类型的变量需要10个字节结构类型date有三个成分:int型成分cat,DATE共用类型cow,double型成分dog所以结构类型date需要20个字节所以表达式sizeof(structdate)+sizeofmax的值是30正确解答是B 12.根据下面的定义,能打印出字母M的语句是(17) structperson{charname[9];intage;}; struc。
