a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 89|回复: 0

[软件设计师] 2011年软考软件设计师考前练习题及答案解析(9)

[复制链接]
发表于 2012-8-2 09:08:23 | 显示全部楼层 |阅读模式
 34. 表达式 (39) 对应的逆波兰式是“ab+-c/d-”。  (39) A.a-b-c/d
( g+ F( l& p! G, m  B.-(a+b)/c-d
) C8 ^# d% B' r3 F. c4 W  C.-a+b/c-d, n2 \2 Z% x7 I- q; r7 S
  D.(a+b)/(-c-d)5 e' V5 S; K  x% e/ I
  参考答案:(39)B。
+ J# l6 Y) s/ Y* v; _6 _  解析:一个表达式可用一棵二叉树表示,其中的叶子节点表示操作数,内部节点表示操作符或中间结果,根节点表示整个表达式的值。对此二叉树分别进行前序、中序和后序遍历恰好为表达式的前缀表示(波兰式)、中缀表示和后缀表示(逆波兰式)。其中,表达式的前缀和后缀表示均可以将表达式中的括号省去而不影响计算次序和结果。
  s4 ^  h+ O7 Y  表达式的逆波兰表示也就是后缀表示,它将运算符号写在运算对象的后面,并指明其前面的操作数或中间结果所要执行的运算。对后缀表达式从左到右求值,则每当扫描到一个运算符号时,其操作数是最近刚得到的。因此“ab+-c/d-”表示先将a与b相加,然后进行一元“-”运算,结果除以c,除运算的商再与d相减,即对应的表达式为“-(a+b)/c-d”。
% ~/ {$ r% k0 t. E; ^  M  35. 软件开发工具VB、PB和Delphi是可视化的。这些工具是一种 (40) 程序语言。) n( l5 E0 q# N# f0 y
  (40) A.逻辑式
: k, e, O0 d, K5 s- o  B.命令式
' s3 F1 D+ I, m" k1 B7 Y5 W  C.函数式- @% ?/ a3 X  n) l
  D.事件驱动* }, O' g9 l: B& O  r9 Q0 j# z! n
  参考答案:(40)D。
& P  N+ `/ p3 U4 _' R  }0 S  解析:事件驱动(Event Driven)是指系统根据发生的事件发送消息给相应的程序,程序根据事件和当前状态,决定要做的事情。如果不发生事件,计算机的控制权并不是在正在执行的程序手里,这时程序并不占用CPU资源。面向对象和可视化程序设计方法采用了事件驱动机制,所以程序设计方法发生了很大的改变。事件驱动给程序设计带来了极大的灵活性。同时,它可以在不采用分时系统的前提下实现多进程。
( f- \( x/ z6 V+ p3 U1 R  Y. _  可视化程序设计(Visual Programming)运用面向对象程序设计的概念,通过图形化及可视途径,构建应用程序。它使程序设计更为简单和容易。软件开发工具Visual Basic、PB和Delphi提供了可视化的集成开发环境,运用代表通用于程序的图标,通过图形操作,构建基于图形用户界面(GUI)的应用程序,是一种以事件驱动的程序语言。
+ K+ t2 l2 V5 J* U9 R  36.在下列代码中,错误的C代码是(41)
3 Q0 B" i2 Q- [4 h3 b7 e% ~  (41)A. #definePI3.14159; t1 R4 }8 a0 ~0 X9 E& a! i
  B. #include"stdio.h";& A. M- ]* H. S  C* J6 f
  C. if(2);# t0 X; h( p$ @( j
  D. for(;;)if(1)break;7 Y# k. ~1 T; ~6 ~" e
  参考答案:(41)B。
5 |! g4 o$ i$ K: R  解析:A是正确的宏定义。B的文件包含预处理命令行不可以有多余的分号字符。C是if语句,虽没有任何意义,但就句法来说是正确的。D是for语句,其成分语句是if语句,从for语句来说,是一个无穷循环的控制结构,但它的成分语句因条件成立,执行break语句,立即退出循环。同样虽也是一条没有任何意义的语句,但从句法规则来说,也是正确的。正确解答是B。
* ^% P5 g9 |3 Q3 {* q6 L  37.设有以下定义,则执行语句"z=2*(N+Y(5+1));"后,z的值为(42)
" d0 ?, G. s% [4 L  #defineN3
- v& ~& O: P; V# |  #defineY(n)((N+l)*n)4 O' z- V% _! a
  (42)A. 出错9 r; i; Z. n: p5 |' f) l# w
  B. 42% u: b3 S  Z+ z# \( t. K) I+ O
  C. 48( e5 @& Y" x4 a+ Z9 z0 ]
  D. 54
" `1 F6 i1 v, P! r$ _. p3 [  参考答案:(42)C。9 u  h  n' ?1 J9 v8 z+ Z8 e
  解析:在新的宏定义中,可以使用前面已定义的宏名。另外,宏调用是这样被替换展开的,分别用宏调用中的实在参数字符序列替换定定义字符序列中对应所有出现的形式参数。而宏定义字符序列中的不是形式参数的其他字符则保留。这样形成的字符序列,即为宏调用的展开替换结果。所以代码"z=2*(N+Y(5+1));"被替换成:1 X0 n3 v; H9 f$ m& v7 e
  z=2*(3+((3+1)*5+1));( G. k5 I. v2 s: A, ?; f- E0 r
  执行该代码,将使Z的值为48。解答为C。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-18 04:25 , Processed in 0.284477 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表