|
一、单选题(共 30 道试题,共 60 分。)V 1. 要使几个不同数据类型的数据共享同一块内存区域,应使用( )
$ Z/ S% _6 `' B+ c* b) {A. 数组
! c+ O' D n [' o" u8 O" g. |B. 结构
/ o- ~( l' b6 U9 C7 P! ]3 \8 tC. 联合7 Y# q5 i) r- @1 M* ?* A: f
D. 文件
& D5 D. B8 L2 \# Y( | 满分:2 分8 j4 H" I R. w
2. 下面程序的结果是什么?Int i=3,j=4;i?i++:j++;printf(“%d %d\n”,i,j);( )
( S3 w! ~' |- k. h0 n }" W4 TA. 3 3
7 T3 g) l# E! ^4 _0 A( GB. 4 44 F7 p5 ^( Q( W# Q
C. 3 4& u" ?% t4 i6 c2 Y& [
D. 4 3
3 e N+ D8 h1 z+ ]) {1 C/ v# L 满分:2 分 b& E/ ^/ y2 z( w1 G2 d
3. 析构函数在什么时间开始调用。( )& i) \: }6 g5 @% B- t+ ~# ?
A. 类创建: I( ~+ C4 W6 j
B. 创建对象
. Q/ u" ^% y# L$ r# o9 w# c7 aC. 引用对象
2 o1 b6 U. R- u# C4 o. S) P7 U1 BD. 释放对象
0 P; J( H" a& W' ^1 S' _ P 满分:2 分
1 c/ ]" U/ C9 U4 w2 [& _7 T* ]4. 已知:print( )函数是一个类的常成员函数,且无返回值。在下列表示中,正确的是( )% O+ f" ~9 K( R) t9 ~" y0 |2 e' x
A. void print( ) const;% E) E* o0 q. _/ S* h+ F
B. const void print( );- `! U9 U' M' W) N
C. void print( );; G' K; z% C, O; M+ m( M
D. void print(const);
4 V8 x; h2 y4 h: ?. j9 e0 p- b) b 满分:2 分* N L$ e7 m; b8 A& j# h: K
5. 已知字符'b'的ASCII码为98,语句printf("%d,%c",'b','b'+1 );的输出为( )+ N/ m! O1 A) ]) w4 t0 k1 P8 h
A. 98,b
& t# v$ w7 L( jB. 语句不合法4 k" W, s$ a+ Q7 \9 r( o0 U
C. 98,99' o( g7 e. t, p" L. c
D. 98,c
3 o; c" o$ U" F5 t 满分:2 分' ~- M2 D) j. I7 I0 g. q* R
6. 在下边的二维数组定义中,正确的是( )
! _( a7 { d9 v, nA. int a[5][]
0 y8 ? X( v# H+ t. k9 I( rB. int a[][5]
' H7 G( t/ O/ DC. int a[][3]={{1,3,5},2}
) x- X$ L& w- UD. int a[](10)9 Q; t. J( `. S1 C) W( i: b4 T
满分:2 分% v- o1 V6 R% d/ |: k/ W" H
7. 下面关于类的对象性质的描述,正确的是( )
# P* z; B8 q- ?& G/ qA. 对象之间不可以相互赋值1 B! ~: W. r/ H" k J- r @) n# V
B. 不可以说明指向对象的指针
4 F3 U; J( G- O0 ~& |C. 对象不能用作数组元素, x! X# Q+ l2 G/ R& @
D. 一个对象能用作另一个对象的成员+ `$ v) H& @) L& z
满分:2 分' L3 I. |5 v, |1 `
8. 下面关于new 和delete操作符的说法中,不正确的是( )
8 ]* j" a, [: w/ l0 s @: d( IA. 使用new操作符,可以动态分配全局堆中的内存资源5 f& S4 y2 s( D1 T
B. 若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用: F2 h/ G; }5 O! D% v% N Z9 e
C. 实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中, v5 |) Q, k- O2 B
D. 执行语句A * p=new A[100]时,类A的构造函数只会被调用1次
, L% Y: F- W- {9 h 满分:2 分! R9 p3 Y- c/ X% t' T
9. 下列哪项不是面向对象程序设计的主要特征( )
' E t- R: I3 aA. 封装
" r1 {5 X1 }7 X- O. a1 J% lB. 继承3 L) r! s& q2 B' F
C. 多态" ~& A1 @% r9 X, i7 B
D. 结构
1 n% Q; w G3 I# g% s/ o9 x 满分:2 分% f) k. p3 q! N4 }; m6 l: v
10. 要声明一个有10个int型元素的数组,正确的语句是( )
8 m; f3 p. X, G! bA. int a[10];
3 j0 d2 b6 L- p( l% MB. int a[2,5];& n4 i* Y9 \: V& Y' @
C. int a[];
, w. a* k9 E% u! `4 r6 d3 f9 dD. int *a[10];+ b! D3 n" L {6 A1 V/ v5 |& D
满分:2 分
P2 d' w+ n: K11. 下列函数中,可以为虚函数的是( ), ~6 q$ a. ^5 z& f
A. 自定义的构造函数
1 K0 c/ D. `& N" i2 Q: R2 j) bB. 拷贝构造函数
0 r* r* i8 @* D# o! cC. 静态成员函数. _* z4 m y# d9 y7 i
D. 析构函数
. N6 _( q# z/ a4 f& G 满分:2 分3 P1 T7 M! n. N# `. v; R
12. 下列的各函数中, 不是类的成员函数的是( )- G: F* s+ c' _" u0 A7 H
A. 构造函数
' u6 G/ I ]( s3 NB. 析构函数
5 w; F: l( @2 Z- F) i& ?& ]$ t4 P) PC. 友元函数: Z0 P& M) X5 S: a
D. 复制构造函数
' @' J- Q. \- U% b 满分:2 分9 o/ M, T! m2 r* w l4 ?
13. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )
# m7 B1 Q0 |6 y4 t& dA. 数组首地址
' J! J. P7 ]" a: }2 kB. 数组的第一个元素值; E: g8 z9 Y( v2 Z' d2 }4 x
C. 数组中全部元素的值
& x# A- P* s. v1 Q9 YD. 数组元素的个数
n/ b. k1 z X# X' Y9 u 满分:2 分 m' D4 T+ f( Q, w
14. 以下各选项企图说明一种新的类型名,其中正确的是( )
; X2 A6 T4 e x5 Y# N2 @; yA. typedef v1 int;
4 r. E' G0 P+ p+ iB. typedef v2=int;
: i" `: e' z# s" ]: JC. typedef int v3;* M0 t: {% _" e, O/ n" R
D. typedef v4: int;% _4 V3 a; M! y8 u! O, _
满分:2 分) R' e$ g' W. X- {- F0 q6 i
15. 下列对引用的陈述中,不正确的是( )
' M5 o1 M6 W. h/ bA. 每一个引用都是其所引用对象的别名,因此必须初始化* y- ]0 M. h) b0 J/ `
B. 形式上针对引用的操作实际上作用于它所引用的对象 b% J* Z& {- ~! V! h7 y \
C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
' c& P! Y" T6 V4 I3 {9 t9 dD. 不需要单独为引用分配存储空间
n5 A+ p Y( s/ j 满分:2 分0 D/ V& |* ]! J
16. 下列叙述正确的是( )% Y. \3 f2 Z4 a7 v
A. 一个程序中可以有多个#include命令行
9 ^$ e7 O2 t; [: g7 ]9 `" pB. 在#include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别
. f! @/ W. H& k R& k) K8 I! mC. #include命令行只能放在程序开始位置
, B* C8 b/ ~) w9 k3 {% yD. #include命令后也必须以分号结束" }8 Z) {4 M$ k9 Z3 M
满分:2 分+ {+ ]" ?) y8 u- E5 E
17. 已知函数test定义为:void test() { ………… } 则函数定义中void的含义是( )
, t- x3 W" Q* T8 |% M9 }' |A. 执行函数test后,函数没有返回值
; y$ I, o* d4 [) s7 BB. 执行函数test后,函数不再返回
5 Q8 a( C* {# Y1 R9 B) H5 L$ {- uC. 执行函数test后,函数返回任意类型值" z# w' q8 V. t
D. 以上三个资料都是错误的9 R0 {0 w, r( O9 ~
满分:2 分
! w" H, |2 A" r' M2 u y q18. 下面有关重载函数的说法中正确的是( )2 A# Z: ?% F3 O& o
A. 重载函数必须具有不同的返回值类型5 S1 u3 g& R; I. R% ^: p% u
B. 重载函数形参个数必须不同
/ o+ C1 A* g! v Q/ N7 n+ w iC. 重载函数必须有不同的形参列表
) {/ A: l8 ^- f4 R$ hD. 重载函数名可以不同
1 I3 [% e: V' \2 b4 n! E+ s0 C 满分:2 分
& M% t4 R+ C% F( R( e19. 在下列运算符中,优先级最低的是( )
8 x- N# e6 R8 _1 S3 eA. ||+ t+ M; `* \9 p! B" f9 T4 Y
B. !=
4 d( z' p* H' |, y/ |& M6 eC. <
9 I# m7 K N% R; s; TD. +* n8 I: ^$ H! _2 f5 w4 Z) ?; B
满分:2 分/ ^% b0 ]$ @( L- [! r
20. 以下哪个不是循环语句( )/ v+ \* v5 R$ I# B" u- Y; o
A. while语句
3 w; g* w8 Q- G5 }5 z: N; l' t9 g6 y6 uB. do-while语句
$ K# \: H3 R6 h( R% F! OC. for语句2 Y$ ?+ ]. q% r/ y1 R% I
D. if-else语句
/ n' ~! d: q. x% T; s' z 满分:2 分: T% u! }8 z+ ^: Y0 ?6 k E+ _) j
21. 在C++语言中,二维数组元素在内存中的存放顺序是( )
! A+ a3 I2 o& o kA. 按行存放
5 N3 Q/ I) \1 r& C* N7 BB. 按列存放
4 h0 f# i+ M1 v$ e+ t) \* BC. 由用户自己定义
7 |) b# ~+ N1 |1 T5 mD. 由编译器决定
7 T$ }1 o- ?, v+ @5 @7 J _ 满分:2 分
. s- T8 j: X7 T. @; m4 n22. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c<d?c:d ” 的值为( )1 _6 P5 z( ~* N7 O6 |6 h9 Y( a) N
A. 2
$ p7 ?% D h7 S2 a2 Y9 gB. 3
4 f9 _8 q% n! f ?# rC. 1
0 {! `4 l( U# J8 D. OD. 4: m! y2 \: O1 M. y* Z5 q) x
满分:2 分( O, g! V, T3 B' m- m' N
23. 如要求在if后一对括号中的表达式,表示a不等于0的时候的值为"真",则能正确表示这一关系的表达式为( )
+ v8 n# h6 a$ F* |. bA. a<>0$ Z5 k; |# k9 Z; G+ e G6 f Q! j
B. !a
l7 \2 C y: a9 V% pC. a=0- d" l$ d9 O% v
D. a' `, B8 T/ Z5 J1 }8 f
满分:2 分
# L" T2 D1 ?9 {+ _( v( X24. 设B类是由A类继承的。当创建一个B类的对象时,构造函数的调用顺序是( )
4 M( ]' a# G! Z/ a# l oA. 先调用A类的构造函数,然后调用B类的构造函数) |1 Q. @6 F2 l) k! c, Z
B. 先调用B类的构造函数,然后调用A类的构造函数
& G* |3 C6 R. f, ^+ O; Q3 J! Q! }C. 不调用A类的构造函数2 d3 h& M% `4 ~' A6 v
D. 视定义时A类和B类出现的位置
6 F. E1 K" \7 |6 z/ | 满分:2 分 v3 W0 j' A/ @: G
25. 循环体至少被执行一次的语句为( )+ F: t% m6 t+ a) ~) z u# s; r, ]
A. for循环
/ d# |/ w$ A* i9 qB. while循环) E! z, O* U, k" ~( z
C. do循环4 f& P; A7 a9 n; y4 I
D. 任一种循环
" K2 [3 y k( s; U& Q; F6 L 满分:2 分, T' d* A9 v9 {6 N& b( D! h; o7 s* i
26. 当说明一个结构变量时,系统分配给它的内存是( )" _+ N5 x/ t/ _5 q x/ h5 f3 \
A. 各成员所需内存量的总和/ Q: {, Z9 ~/ x x* ]+ @
B. 结构中第一个成员所需内存量
0 E) v1 e- B fC. 成员中占内存量最大的成员所需的容量2 Z# j) Z' S5 y0 y
D. 结构中最后一个成员所需内存量
8 y1 @0 \! F1 I6 ^' \5 \. _ 满分:2 分) ~: A8 F* x8 \0 r6 R X3 F
27. 能正确表示x>=3或者x<1的关系表达式是( )" J; R) L5 c( @. H# @9 ?* \
A. x>=3 or x<1
$ T# K, i9 G, e4 A. o$ TB. x>=3|x<1* F' ~' [8 a7 p0 c
C. x>=3||x<1
/ @% X! T" Q/ W+ v5 S D, Y5 tD. x> =3&&x<1- [) A, c# U: ^% @ H4 B g" d, T
满分:2 分
/ j" M# ~6 t& [# g5 o; \% x( p28. 下列字符中不能构成标识符的是( )( w2 z& ]8 n' E. N, V' ? b
A. 数字字符
. a. n" @3 ]- |B. 大写字母
2 U2 I0 O" c4 D9 v/ h3 ?# SC. 下划线字符- L/ b4 N5 p M3 i u6 e
D. 连接符0 i6 y1 M- e* N
满分:2 分; d! f# K: G( c3 C" |' n6 H# v
29. 下列do-while循环的循环次数是( ): 已知:int i=5 do{ cout<<i--<<endl i-- }while (i!=0)' u- r0 g0 f( P% h
A. 0 i$ O' o4 r) v! e
B. 2
' ^1 I2 R& V, V7 V$ _5 AC. 5- J( t, f3 s( H- X7 e; K& h
D. 无限次1 T0 c; \1 X7 U/ i! J$ x
满分:2 分
; v% ], q5 C+ L9 w30. 一个类的友元函数或友元类能够通过成员操作符访问该类的( )) G0 `, V. v- s
A. 私有成员
3 T* s3 I1 j, LB. 保护成员7 D% z' `# a6 y& i
C. 公有成员; @2 N" O7 k0 C/ x2 p
D. 所有成员: R, t* ^, z$ y+ x) _' h
满分:2 分 3 y/ x* X7 E! ^8 s6 ^* O/ e+ |5 _
3 W) [' v6 C) T
二、判断题(共 20 道试题,共 40 分。)V 1. sizeof运算符用于计算某种类型的对象在内存中所占的字节数。( ). F/ ]" d4 a- [: X( n- l! ^( o4 \) X
A. 错误
6 T# I7 G! H. s# gB. 正确8 i5 j8 l& j9 ^5 }8 s
满分:2 分4 v" }, N1 \6 P/ Y; }/ ?
2. C++程序的开发步骤通常要经过编辑、编译、连接、运行调试这样几个步骤。( )8 t; {; S1 |$ i$ W/ j
A. 错误
0 }7 w8 E U8 Y9 @: A( F9 {B. 正确
7 L. ~, x A% L 满分:2 分- C0 N4 w. w+ r+ B, S! _' @
3. 定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )
, w4 y# h/ P1 E" iA. 错误
% M, G3 }+ [3 F. KB. 正确) k. Z. ]" B7 w% Y. M
满分:2 分# `' B- r4 @' p- ]( e
4. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。( ) K, ]6 ~* u6 S2 F! |9 x5 r
A. 错误6 x8 | n. ~1 r/ Q7 w8 H& ]
B. 正确
0 s. B7 N4 m6 p# X, B 满分:2 分
+ Q8 h8 r) O7 p5. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。( )( T5 v( Z% ~3 e. l
A. 错误
P4 V6 {! E! [( s; p7 }: qB. 正确$ O" K; N& D" s6 E% O) e
满分:2 分. p5 w+ P6 o. I# r/ ` y
6. C++中,一个函数必须在函数声明后才能使用( )
! z; j/ m1 j$ h) b! T# g6 F2 ZA. 错误
& K* y( O( ]& g( X: B) ?. z, tB. 正确5 x7 k5 E, y( ]1 F7 S' p
满分:2 分
' k C2 [/ D1 l( P7. 字符型数据在内存中的存储形式是ASCII码( )
8 \6 }; W2 R! B L; }A. 错误1 |! e3 m8 I: p4 |9 _
B. 正确+ @. x( s: ?* ?, m1 B3 Y9 `
满分:2 分
: U7 r& H" l' G9 N6 C# M+ x" r8. 一个类的成员函数可以任意被调用( ). S, J8 f2 h# n3 y6 S' B
A. 错误
% g- {8 [; G& Q3 B, s! xB. 正确4 V# |8 T: w: J
满分:2 分
' C: y+ y" D! }4 Q& ]' q0 W9. 一般float类型数据在内存中占4个字节,double型数据占8个字节,long double型数据占8个字节。( ), X- `+ c) n5 b3 V6 L
A. 错误
) {3 v8 j! J4 C* KB. 正确
0 _$ ], C3 Z) P, Z1 R 满分:2 分
9 B. g9 G, @$ ]* T$ d. s4 p10. 在程序运行过程中,其值不能被改变的量称为常量( )# V+ c) X$ \! G; N# H
A. 错误
5 c* B6 I. A5 d2 B7 c3 \& i2 DB. 正确1 U, C0 {" l; m& }( Z P# P
满分:2 分. r8 J( S9 K q! I* v: u0 j
11. 声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。( )
- l" Y0 }; }% |2 K; J3 I8 VA. 错误# }' s% k0 e8 ~
B. 正确
( W. V; K; z1 o 满分:2 分+ K8 j7 V6 K- o4 d0 |1 Q7 T
12. C++语言中,标识符不区分大小写。( )
/ m& ?& a2 W& c( \) d: |A. 错误1 h$ m( v, H" T9 C& Q: f$ S( P- y
B. 正确2 } `5 \3 k$ m
满分:2 分1 s% R+ _4 }, R) `
13. C++语言程序中,main()函数必须放在程序开始的部分( )
# E% [" L, c, T! @7 \1 OA. 错误
/ H z- e' |2 }# |& ?& Q( aB. 正确
9 f: {" q6 s& d& D 满分:2 分
. [, X4 j {( B6 v14. 自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( )3 W, _4 m! A8 I7 X9 i& c! C
A. 错误
- A1 O1 l+ ^! {/ t" f, fB. 正确
3 `: m0 W3 k$ l/ | 满分:2 分
; L( X6 ?( h6 X( v S2 |/ H: _8 p( x15. 引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间都不如意的问题。( )
3 A E! D3 N& Q# }" ^3 YA. 错误
0 |, D v: I/ k' u: L7 TB. 正确* s! K) h. b6 `2 E7 C
满分:2 分6 Z! G2 i: y+ w- a5 Z
16. 在使用C语言库函数时,要用预编译命令“#include”将有关的头文件包括到用户源文件中。( )
( o6 J+ U6 L% Z& F2 Y/ ], |A. 错误
- c1 n# C7 K- J) n0 K' ~) X1 nB. 正确
8 i, z2 H& y6 B! v! q, m& z+ [, W 满分:2 分( y5 N% y/ c8 L; v/ o
17. C++中函数声明就是函数原型。( )
+ \6 C1 |9 P6 A1 N8 nA. 错误
1 [8 [% ~+ b, K$ V9 s( U7 eB. 正确
/ e$ q: g; N7 H% R2 _* g' X$ R1 M+ a 满分:2 分
, V3 p2 m+ c9 D6 I- m( s+ S18. 字符型变量用来存放字符常量,可以存放多个字符。( )# v5 h/ J9 m" B' b# C3 s
A. 错误
$ y: J5 g1 H) D. g0 hB. 正确8 c0 A' V3 F& |! a3 G+ ?
满分:2 分
4 E& r% x1 X/ H% G' J3 |19. NULL是空指针值,它不指向任何地方。( )9 N) |8 Y. E' ?; _
A. 错误
+ ~' v+ P# p: P5 b! F5 |( tB. 正确
6 ~6 ]8 X4 X6 x3 d! A 满分:2 分
9 c0 u0 F- x/ S, }( u20. 系统可以提供默认的析构函数。( )* H2 M! O$ Y1 V
A. 错误$ A6 E: p+ x$ {3 \ ^
B. 正确) v& f: m9 ^5 e% f3 z, ]
满分:2 分 |
|