(1)算法的空间复杂度是指
% x$ Y; X, E G1 s) j A)算法程序的长度
' _7 B$ ]2 i6 H; N) w B)算法程序中的指令条数
" }. g6 h# w _) O2 c C)执行算法程序所占的存储空间 1 Y5 P6 |9 c8 a$ J* v4 D3 _ a
D)算法执行过程中所需要的存储空间
1 E9 i5 {3 [5 P6 c! M 【答案】D
; Y* Y- L2 H" M8 J! F, Q& V 【解析】算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
7 U0 r$ G4 ^! X4 U: e5 [8 `) n
" V7 _0 M/ E0 v$ d (2)线性表的链式存储结构是一种7 U. U# X( {) t
A)随机结构
2 H- O; r, M% ? B)顺序结构 7 }! C7 x; @/ A2 Z3 W; C
C)索引结构
- D4 Q# K. `) ^% E( d D)散列结构
' U3 D- B) m. D; n: [ 【答案】B
1 L+ R2 H2 l; y 【解析】线性表的链式存储结构中的每一个存储结点不仅含有一个数据元素,还包括指针,每一个指针指向一个与本结点有逻辑关系的结点。此类存储方式属于顺序存储。
: n' N* T E$ Q6 a/ E6 R4 p- ^! a- A+ B/ P
(3)设有下列二叉树:对此二叉树先序遍历的结果是* ] z& Y1 Y5 J& a( l0 w: Y( x9 J
A)ABCDEF
% M* c' n: t9 J; H B)DBEAFC ( |' y3 m' }1 \% m2 [
C)ABDECF / N6 o' |5 j9 |
D)DEBFCA7 T+ a& h. m7 y; ?4 v( w+ M: W
【答案】C8 M/ v B; ]* V5 s! T
【解析】二叉树的遍历分为先序、中序、后序三种不同方式。本题要求先序遍历;遍历顺序应该为:访问根结点->先序遍历左子树->先序遍历右子树。按照定义,先序遍历序列是ABDECF。# ~4 Z3 n# m+ _4 i) W( |
; Z: @, U- [% z. ^8 t9 H- V1 |- E
(4)编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑
- z8 P1 c5 X2 R7 |+ h A)仅为整个程序作注释
- f* u' ?! b+ d L9 M% L# i j B)仅为每个模块作注释0 T$ g1 t3 G; H* f8 }( p/ ]
C)为程序段作注释
9 ^; h0 r6 A4 W' y$ D D)为每个语句作注释* {+ }- M1 B. A) S1 c6 Y
【答案】C
! Q R2 P+ `! }' C% @$ S/ Q 【解析】功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或者执行了下面的语句会怎么样。所以它描述的是一段程序,是为程序段做注释,而不是每条语句。
7 J; I( k: m C( a
& c/ f: B0 f+ x6 ^2 I, ^/ b (5)下列哪个是面向对象程序设计不同于其他语言的主要特点?) G5 ~8 i* U2 @5 c6 g) b, h$ k
A)继承性 5 Z' h) a) T: g: O: K t
B)消息传递 4 V, o' ^1 ?! b
C)多态性 1 S$ O% e! S0 A$ T
D)静态联编
' d' l0 ?$ }* {, m9 q 【答案】A
A6 R9 n( e, k; t/ f 【解析】继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的主要特点。8 J+ k4 q0 X8 P% [8 T
: h) n2 k c8 J2 M* f' p* v: H, M7 ^ (6)需求分析最终结果是产生
3 n. G0 ]- a5 @$ _. K A)项目开发计划
% c1 F" P5 L6 \; {& w& S4 H' h B)需求规格说明书
; w+ [" N6 D: }3 Q' k4 K9 r1 E C)设计说明书
0 B5 S! n" s/ P& r D)可行性分析报告
* q# \" `! n$ f 【答案】B
3 [2 d3 @8 G( E; K* f @- ?1 f 【解析】需求分析应交付的主要文档就是需求规格说明书。7 r2 s& J& G8 o7 X. X/ _
3 o* Y. k, [4 U( r
(7)在进行单元测试时,常用的方法是
) S' |0 l4 W' N7 E A)采用白盒测试,辅之以黑盒测试
' D' W W/ B1 Q/ P- @$ ~$ s8 R B)采用黑盒测试,辅之以白盒测试
& T7 i& D6 p# [+ Y& j; D C)只使用白盒测试 # v/ M% v4 [, e+ g7 M8 g
D)只使用黑盒测试
$ v3 W& j' N+ z0 E6 O 【答案】A. y9 r, r% V: n7 O( f% u7 I
【解析】白盒测试是测试程序内部逻辑结构,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。从程序内部的逻辑结构对系统进行测试才是测试的根本,更容易发现和解决程序中的问题,因此单元测试时应该以白盒测试为主,而黑盒测试为辅。; |! f8 ~. Q* p9 w
Y: m0 l% ~, h% O+ O# P2 o, m s4 h (8)数据库是()的集合,它具有统一的结构格式并存放于统一的存储介质,可被各个应用程序所共享。
: l$ X5 ?) r* F0 _0 f0 } A)视图
9 K2 |- W$ I$ e8 b& V B)消息
2 h9 \) u; x/ I1 G4 ` C)数据 ) S. b: G% R3 b e! P7 @
D)关系
1 ^5 O9 {+ X8 X& r6 l/ }# S 【答案】C4 `( G8 B$ S) [7 E
【解析】数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系。
1 j! n% \; K% g3 F. Q) v6 v' \( o8 i6 v2 `& b/ T8 y# M
(9)下列叙述中,不正确的是6 ?. i4 L e9 t9 H0 [. m# }
A)数据库技术的根本目标是要解决数据共享的问题! h2 ]8 `: C% G! x* _0 N
B)数据库系统中,数据的物理结构必须与逻辑结构一致( S( T, T- {0 i2 |, g+ b. f# g" C
C)数据库设计是指设计一个能满足用户要求,性能良好的数据库% V9 g9 P' F0 ~( o# P4 b4 n
D)数据库系统是一个独立的系统,但是需要操作系统的支持# f p, v8 u4 I+ |, O5 J' z6 H
【答案】B
7 e6 l7 G8 F. B- ]* g- b# n! f# A 【解析】数据库应该具有物理独立性和逻辑独立性,改变其一而不影响另一个。
8 T2 H( u% Y8 F
( y' S1 o' X4 V! |6 @7 Y0 X (10)规范化理论中,分解()是消除其中多余的数据相关性。8 E2 u! q: {" @& j2 e0 K
A)关系运算
* C. @& T+ d) w& P$ r: E3 {9 H3 l; L B)内模式
0 [- N( {0 p/ C9 i C)外模式 : o$ E% j; [, h) Q
D)视图
% V& d( k; b \' v 【答案】A( x% B% U$ e- |/ h9 `: s
【解析】数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。5 b. m; K# J# W+ i. {( A+ q
6 ?, G _3 R/ W( ?3 M2 [ (11)以下说法中,不正确的是8 t5 E. Z; |$ {
A)C程序中必须有一个main()函数,从main()函数的第一条语句开始执 行; @$ v; O4 Y( o9 S, [4 K
B)非主函数都是在执行主函数时,通过函数调用或嵌套调用而执行1 v' ]* r' C, d# w$ x9 Y
C)C程序中的main()函数必须放在程序的开始位置
, N5 J( g) w% y Z' I" H- K D)C程序中的main()函数位置可以任意指定7 t: u' h) U, k- J. w
【答案】C
1 O2 [: [% b# H, E( I" x 【解析】main()函数的作用,以及main()函数在程序中出现的位置。一个完整的C语言程序有且仅有一个主函数(main()函数)。程序总从main()函数的第一条语句开始执行,到main()函数的最后一条语句结束,其他函数都是在执行main()函数时,通过函数调用或嵌套调用而得以执行的。C语言规定,main()函数在程序中的位置是任意的。
6 c) B, k: `2 a/ Y1 {2 f3 w4 C7 P$ q8 `2 m' u
(12)变量a已被定义为整型,下列表达式不正确的是+ d: t1 [5 u# x |7 z5 `
A)a='A'+20
# }6 O b- G) v: {5 H, d B)a-='a'
, o$ v) u- S7 i1 }- n C)a=c+【答案】D
@/ O+ ^$ R( V7 K0 U B D)a='c'+'d'
( U |, V' M/ H4 I, n" \5 s 【答案】C# j+ C. m$ X7 ^
【解析】在C语言中,字符变量可参与任何整数运算。本题中只有C有错,因为C选项中c、d如果是字符常量,应有单引号,如果是变量,应该提前定义。) n- G( N* m2 D% v3 }1 K
' [2 {2 d' X B, g) [ (13)下面程序的输出结果是
' s7 {+ w( r2 B+ M3 J, M #include <stdio.h>1 o5 B& f1 ~, f* j) u2 C
main()$ J D- |) N- [ j
{int i=010,j=10;
. J6 @' g' n! W. ~% ~1 q" |4 e printf("%d,%d",++i,j--);
2 ]" [/ Y+ |6 i6 q5 u; Z8 q }4 b l* ]1 R8 ?% B5 a# X
A)11,10 ; ^& E! A/ e0 V6 e6 I$ n* m; G
B)9,10
3 B+ l3 v# }* n( ?) X C)010,9 - E' ?, k- B( E' t7 D( L4 g
D)10,9
& g! P- d9 \8 E" e `; B! s 【答案】B
' ~. l9 |! _4 v# E 【解析】程序中i的值用八进制表示(十进制为8),++i是在变量使用前自身先加1,而j--是在变量使用后自身减1。4 c/ }7 p1 W5 S" N9 ]. K
1 ~ A5 Q3 O5 q/ {# L- x5 ] (14)下面可以作为C语言用户标识符的一组是: Y$ q4 t) P; y, S' \& \
A)void define WOR【答案】D8 T$ r; s Z7 ]; t* |1 s8 \1 ~1 l
B)a3_b3 _123 IF
+ W; u+ k6 f' _1 ?) X8 m x, _: J C)for --abc case
+ z/ y. t! A7 m, D& A) g M. ?8 | D)2a D0 sizeof
9 o. k: ?0 V0 j; a 【答案】B& g6 l0 i, k7 g. }& e6 Z
【解析】在C语言中,合法的标识符可以由字母、数字和下划线组成,其中关键字不能作为用户的标识符,且开头的第一个字符必须为字母或下划线。选项A中void为关键字;选项C中for和case为关键字;选项D中sizeof为关键字。
: y/ ~' a G7 p
9 s( |7 Z$ u# h( ]6 b7 f2 u (15)下面哪一个不是正确的赋值语句?
( k% y; N i( S: ` A)a++;
" B; v" K: o8 k3 v# @2 ] B)a==b;/ | l; ]" S6 i5 ~$ o7 t$ c/ [
C)a+=b;
$ d) V2 Z) r- O3 j* S D)a=1,b=1;) _! [7 p, k7 A% S" H7 S( {/ [; Q% q
【答案】B, [& K, w- P/ l* ~
【解析】C语言中赋值语句是由赋值表达式加“;”构成的。赋值表达式的形式为:变量=表达式;。选项A中a++相当于a+1,是赋值语句;选项C和选项D也是赋值语句。只有选项B不是,因为选项B中“==”符号是等于的意思,并不是赋值运算符。) |1 y! q, U+ h3 `+ z, K
" x- F/ P5 z% ^ (16)若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为7 k, `$ S; o7 g0 o" `% P$ q
A)1.4 , o& s3 z! i5 w- \
B)1
( ?( t& i9 b4 x% d/ w C)2.0 ; d8 a9 q7 y- I, [% z/ @0 R
D)2" `; ]3 g$ X. Y7 P1 d0 ]
【答案】B8 G% B9 k8 ~( W& D9 w
【解析】在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1+0.4赋值给c,由于c为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。
2 n5 S: g0 ~4 W- x& M2 ]- O& O) {0 d$ k ~( f$ U; C
(17)若变量a是int类型,并执行了语句:a='A'+1.6;则正确的叙述是# ?1 T: z) g( i& D* ]2 F" l
A)a的值是字符C
* x* s4 J- D% l3 E5 V2 n# u B)a的值是浮点型" L: {& e |* b7 A) j: ^% b3 C
C)不允许字符型和浮点型相加 ; L: u% ^ w E/ ]* D) J
D)a的值是字符'A'的ASCII值加上1。
! ~' B) u" N6 T5 y! Y, L: @5 S 【答案】D- j# p! {- {/ o+ e5 [3 w. v' h
【解析】在C语言中规定允许不同类型的量进行运算,但在运算时需转换成高级的类型进行运算。在表达式中有字符型和实型参加运算时,统一转换为实型再运算,当运算结果存入变量时再转换为该变量的类型。 |