|
一、单选题(共 30 道试题,共 60 分。)V 1. 下列各种高级语言中,______是面向对象编程语言。( )
" o) b8 L& e! L1 v& qA. BASIC# w! c8 \! ^" N. R5 Y! R
B. C语言0 \4 Z1 J: E4 @5 K* g( H) F
C. C++语言% H8 K' V8 J, Z" {
D. Pascal语言
E! d7 w+ H! I$ q* V& E! T 满分:2 分
# K; f% ?" s" L2. 下面说法中,正确的是( ); n: W2 p6 f4 C' z& s% r. _
A. 公有派生类的成员函数可以访问基类的私有成员
7 P7 t$ g- ~+ Y7 C" U( I# q# jB. 私有派生类的成员函数可以访问基类的私有成员
8 H" ~2 o' t% l$ I/ WC. 无论公有派生还是私有派生,派生类的成员函数均可以访问基类的公有成员
# T% R h- ~' L8 P0 g4 {5 g7 Z$ vD. 无论公有派生还是私有派生,派生类的成员函数均可以访问基类的私有成员
7 w$ n1 j/ G& d4 [5 D 满分:2 分
; m' I0 _! ~% M3. 以下哪个不是循环语句( )
; t; z9 \/ M0 c: BA. while语句
' n+ v0 d0 r; ZB. do-while语句
! \4 u) a/ l6 V8 \C. for语句0 o+ f4 X. ~1 Y" t+ d Q n" U% N
D. if-else语句
. T, }# S# n, m6 r2 E; t. F) c 满分:2 分
: Z9 r" W! C3 y3 v: e+ H4. 表达式9!=10的值为( )9 W- V3 h/ N1 Y
A. 非零值
u) F8 G m0 ]0 Z( ^B. true4 D2 y3 t$ g2 A# n$ m# F
C. 0
X' C: P# O. }D. 1' L2 X) v" Q# D: y' n
满分:2 分, q7 p+ i4 \' ]* E) G" o# J
5. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )
. }4 o* `; L0 a4 p! T3 J# r4 o+ ZA. 数组首地址
3 W4 P( }: L; U& H+ F TB. 数组的第一个元素值% z: C8 ]; W) ~0 b
C. 数组中全部元素的值
. T7 y W+ N+ x: d0 D9 ID. 数组元素的个数0 I. l) R# B3 F' j9 N: |
满分:2 分
) q3 f* y7 a4 F& m7 ~6. 循环体至少被执行一次的语句为( )
$ N o7 Q! Q- z w* W* i" V. LA. for循环- v, }/ @( N5 J
B. while循环
4 G9 L. q1 ?7 Y5 X. J* g2 RC. do循环
* T* d9 R0 Z. Z$ h# |, S2 ^3 sD. 任一种循环/ C a9 e/ A E' L
满分:2 分6 ~% Y) H8 Y% a, G' p: q7 A
7. 以下各选项企图说明一种新的类型名,其中正确的是( )
: C' ]6 y+ s& k1 f3 X! |% H F" yA. typedef v1 int;) U$ m A# y1 U. G7 R' Q+ X
B. typedef v2=int;
( n3 A" X* h" l7 nC. typedef int v3;
5 j. ^& ]5 p! H, p+ A7 cD. typedef v4: int;2 m: r1 G) J4 e
满分:2 分8 q( Y6 T I% S! k G- i3 ^2 ~- B
8. 下列的各函数中, 不是类的成员函数的是( )9 S# D9 M: ? ]1 ~
A. 构造函数! W/ O: s0 E( I" Z
B. 析构函数
4 z0 K2 x. l4 c4 C7 a" EC. 友元函数2 O/ |9 q% D; v9 v
D. 复制构造函数4 T( k6 ]7 K5 g
满分:2 分" s' G* V# ?" e
9. 在下边的二维数组定义中,正确的是( )
! X6 ~( r! D% E5 {! PA. int a[5][]
7 x* x( ~# ?7 IB. int a[][5]* A0 e' D9 t: Q5 \
C. int a[][3]={{1,3,5},2}" F( g& P& h, w" a, n
D. int a[](10)" K; X9 k- {5 n4 u& Y" e
满分:2 分
, F9 e+ m1 _; f @6 |; @, x# w8 h10. 在一个源文件中定义的全局变量的作用域为( )( @; J. B8 l! d& u- \. i( K, H
A. 本程序的全部范围# f8 x% i, |# [
B. 本函数的全部范围0 j" W, X) ~% U' \) r
C. 从定义该变量的位置开始到本文件结束; g) q) r6 C: D4 F
D. 以上说法都不正确1 l) G i# J; @4 a( J0 [. Q" C
满分:2 分
! w# F* V5 B) e4 l11. 下面不能正确表示a*b/(c*d)的表达式是( )
5 Z9 u( |' y4 X8 h; x" BA. (a*b)/c*d
( b& v% U0 y9 uB. a*b/(c*d)( B m% J C+ l5 p. ~/ w
C. a/c/d*b
1 U; o3 ?3 a' [5 U i; W, lD. a*b/c/d( L F+ v8 f9 T7 n8 H7 v
满分:2 分6 H' o9 _3 Q$ i, E8 p& Y
12. 下列字符中不能构成标识符的是( )
# `+ j1 x k4 d- m* i8 _, f& [A. 数字字符
2 m( l- }: t2 Z% RB. 大写字母( u* C; Z- n) n- a4 d
C. 下划线字符
% n4 W' m" h8 ^D. 连接符2 E/ b7 X6 A8 b! N" Q1 t- O
满分:2 分
6 l! M! h5 a0 B. x" Y3 r# [1 `13. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c<d?c:d ” 的值为( ), ]$ t* }2 r( w6 _& a) S
A. 2) d# ~0 u6 c0 K! a+ |' T4 F( B# x
B. 31 f: H- f( ^& i5 r. t
C. 1& Z/ G' h$ F/ ?! e1 o0 ]/ k
D. 4
% X% V; F8 |" {0 }& h 满分:2 分 T1 G; a6 R+ F
14. 当说明一个结构变量时,系统分配给它的内存是( )
C1 v( a: Z: ?) Q1 j: U0 fA. 各成员所需内存量的总和
2 [0 Q, r! K* o0 \" oB. 结构中第一个成员所需内存量
, x* [! O/ d' Q7 U3 O2 _$ `C. 成员中占内存量最大的成员所需的容量/ t0 s7 I( A9 T3 ~3 _& o; c6 U
D. 结构中最后一个成员所需内存量( y! t ?" \5 ^* g) o# }$ s
满分:2 分9 W: o! r' v- j* o
15. 已知下列语句中的x和y都是int型变量,其中不正确的语句是( )' N& h% Z8 I! J0 W& l. G
A. y+=++x;+ a! _8 V) I/ x3 Y
B. ++x+=y;8 d5 ]$ |2 X0 I- p" E# s
C. y=x++;
3 s; u( h( ~+ Z7 i2 z& ND. x++=y;0 @1 B' u. }9 S( u+ N0 v, g @, N
满分:2 分3 }+ W* c! e6 w9 V; T0 R, ]/ \
16. 函数重载体现了面向对象的( )8 T3 o) |2 o# @4 T
A. 封装性9 d" Q# }* ^" D2 H" V& K+ t
B. 多态性" ?5 \5 Y& }) ]$ H$ o/ X! y
C. 继承性6 k" K t/ b4 [" H9 b# q9 @
D. 抽象性6 F Q: { R/ I4 c3 c" S
满分:2 分# @0 X/ _9 I4 \7 g0 ^2 W3 m
17. 虚函数使用关键字( )
& e [4 D$ G$ tA. virtual
5 Y7 l) @3 d% H: gB. static
: `* K, M; d$ N% eC. public
$ \3 B) y7 b( T9 y& QD. private# U# e. Q" ?+ g ^! ?
满分:2 分2 B9 ~8 n ~8 v" g `5 f
18. 能正确表示x>=3或者x<1的关系表达式是( )/ x# @) ]3 f" R+ m' T7 |
A. x>=3 or x<1# x' k. C# b4 G. r+ v8 M
B. x>=3|x<1* L7 c. s& V+ C) T+ X( V
C. x>=3||x<1! C# L k! i( A
D. x> =3&&x<1
1 J4 o1 |4 A. Y9 b 满分:2 分/ ~9 Y- O. Q" `$ l, T9 N! h
19. 在下列运算符中,优先级最低的是( )# ^/ }) W J6 R2 |
A. ||0 h4 i0 y& u; I
B. !=
: F7 A7 W0 v# u$ VC. <, \3 V# o# s' X, a5 y% ^& q9 d
D. +- q6 K3 M* M: n5 v% d
满分:2 分" F4 Y* Y0 v- [% ?$ {8 L) j8 E0 r
20. 下列对基类和派生类关系的描述中,错误的是( )
/ p: {" U( O6 e% F! l5 oA. 派生类是基类的具体化( k$ p7 c# z3 n+ y
B. 派生类是基类的子集
M' J2 e( `3 ]8 RC. 派生类是基类定义的延续
4 s3 G0 P* i0 [: d' S& E n5 ID. 派生类是基类的组合
0 d/ z2 i- _- E 满分:2 分
3 @' S" A4 b8 G& v1 O6 W21. 静态成员函数仅能访问( )- b9 `/ n9 b% h) O2 L
A. 静态的数据成员, }4 y* }$ f# U' t, M. K
B. 非静态的成员函数
/ d) M7 I$ e z7 B4 x5 n" ~C. 非静态的数据成员7 k1 o- K9 Z; F( L3 _
D. 以上都不对
0 \0 f# ]; B& `( p) E' s d# M4 E( W 满分:2 分
: k$ ?2 v0 ] o* t/ r; M' V0 R' q22. 如要求在if后一对括号中的表达式,表示a不等于0的时候的值为"真",则能正确表示这一关系的表达式为( )# F% d6 t4 u2 l9 T: c5 z
A. a<>0
# K* s% D: }9 l& iB. !a6 m. l# J1 m: r5 r; j& c4 e- B
C. a=0
1 b9 w4 M- T3 {7 qD. a
& X" P; q. n7 g: H; M 满分:2 分( M2 E5 c' Q' ~% v# n3 V7 n2 b! ^
23. 已知字符'b'的ASCII码为98,语句printf("%d,%c",'b','b'+1 );的输出为( )
" J& h7 M! ~! q6 g( ~A. 98,b& |" U0 n, m: U6 Z4 \, k) X E4 |
B. 语句不合法. K' I, a4 Z7 L0 H8 G
C. 98,99' e% r' W/ i L* D1 X& C9 Y
D. 98,c$ P% G8 _6 A$ @$ X3 ]+ P( |* [
满分:2 分
3 Z( V( p. s( F" R# E4 b* M24. 下列运算符中,运算对象必须是整型的是( )
* y( a( q9 Q8 k' c$ C' P5 VA. /
) p8 ]1 p1 V4 WB. % O5 c! r/ h; E5 s8 }
C. =7 Q1 d# n+ I+ d8 E
D. &
7 T5 @: F% D' S& r& V 满分:2 分, ?: o" x J/ m- a, X- I0 S/ T
25. 派生类公有继承基类时,基类中的所有公有成员成为派生类的______。( ), V4 R# p# r) S4 \# _
A. public 成员4 h% I$ s4 m/ @0 Y5 G0 L2 ~
B. 友员! S% _. N- W2 S) C+ I1 t* N# N
C. protected成员8 u; `0 h" k% j) F
D. private成员
9 o$ b0 c, C. t" ]8 ~/ F) b 满分:2 分
$ t3 A6 w$ g6 h26. 下列关于C++语言类的描述中错误的是( )
9 e/ r& Z2 }5 o, N" w6 K" xA. 类用于描述事物的属性和对事物的操作
: c4 A6 T- A. F1 x+ B1 f6 ]B. 类与类之间通过封装而具有明确的独立性) a- u+ L$ g; T5 `6 K" S# x
C. 类与类之间必须是平等的关系,而不能组成层次结构4 }4 ~: n% D$ ]) u2 x
D. 类与类之间可以通过一些方法进行通信和联络
: i6 i. ~2 @3 Z. O4 u 满分:2 分) _7 s5 X5 s" N4 E
27. 下列各个成员函数中,纯虚函数是( )
5 d0 v+ j; P% a+ m+ h7 s/ h oA. void fun(int)=0
: S+ Q; |, g4 KB. virtual void fun(int)
% x: _. a7 L, `' q( DC. virtual void fun(int){ }
. N$ J6 K( ]. v4 sD. virtual void fun(int)=0# k1 B2 F: e- R+ \! A
满分:2 分# d/ c' X& a2 ^. o9 p
28. 下面关于new 和delete操作符的说法中,不正确的是( )
* Y( q; H6 b9 ]7 w+ b3 F8 e# xA. 使用new操作符,可以动态分配全局堆中的内存资源0 j2 O* ^9 E$ t+ i. M q/ d
B. 若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用9 l" f7 i [9 r( p2 c- M
C. 实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中
' c" `+ b$ n) j* S3 MD. 执行语句A * p=new A[100]时,类A的构造函数只会被调用1次
1 D( X# @% M2 t4 i' m x4 J 满分:2 分! l9 C- c9 A- c; Q, A8 c" d/ u
29. 以下函数的返回结果是( )int function(char *x) { char *p=x; while(*p++); return(p-x-1); }6 Z) `* P' c; y2 [9 p# v
A. 求字符串的长度% b! _' ]) R9 ?; M: {% _
B. 将字符串x连接到字符串p后面- v) }6 X2 }0 E& R1 F
C. 将字符串x复制到字符串p中( W6 a, k* N: C5 T' v
D. 将字符串x反向存放! I+ g5 [$ a% \5 y7 F7 z2 c
满分:2 分
/ Z' B+ b5 R8 b0 H4 W9 Z: K# ]4 ^3 k30. 下列关于函数模板和模板函数的描述,错误的是( )3 `7 F+ P8 Y i3 }
A. 函数模板是一组函数的模板* d" |( j( ]4 g. X
B. 模板函数是一个实在的函数' }4 E% a0 g- x8 W
C. 函数模板是定义重载函数的一种工具
6 n" [0 l7 M* G6 eD. 模板函数在编译时不生成可执行代码
3 m% L7 b5 v+ A' w7 @. |; e; \" U' x 满分:2 分 + _1 Z# C8 f# I1 }' L# Z2 g
$ v( O5 }: o- ^4 O, r Y# c
二、判断题(共 20 道试题,共 40 分。)V 1. C++语言中,标识符不区分大小写。( )
0 d0 g" o8 M5 x: M, F Z; Z8 K0 r3 \% AA. 错误
5 G* [% q, x; }+ z) F+ f( mB. 正确# E. @$ C2 e7 L$ Q
满分:2 分
+ c3 }% S5 r5 ]3 ]: b2. NULL与void *是不同的概念,NULL是一个指针值,任何类型的指针都可赋予该值。而void *是一种类型,是一种无任何类型的指针。( )4 C( ?, m9 h5 y+ M g. t& k; S7 V
A. 错误, {# h3 J/ m4 G. Y: b+ g0 H* _
B. 正确
1 d" I8 T# l/ E& p 满分:2 分
% l; j9 I3 a1 z9 u- ^3. 字符型数据在内存中的存储形式是ASCII码( )
& S5 C) o ]1 X+ x5 aA. 错误% w9 |6 P$ Y& C/ `$ `) l3 o& j: ^
B. 正确
, n- ~5 I! ~# a( [$ N9 \- y 满分:2 分
n; J' ]$ T, l y" A4. NULL是空指针值,它不指向任何地方。( )% s& I$ f+ a: E1 K$ e% u
A. 错误
4 O: O) P' C; ?$ ]7 o8 FB. 正确
' b& s* K5 b$ L, H 满分:2 分, ]/ O1 A8 C7 {( U
5. 系统可以提供默认的析构函数。( )
* c/ u- {) ?. T9 nA. 错误% b. X) ~( k/ v; q/ l
B. 正确
" O* Y" Y6 o$ g B; p2 b( L* X 满分:2 分) L2 [9 X1 e4 J9 s: t2 G
6. 定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )
! S! n8 o0 P2 m2 J+ \3 p9 n. BA. 错误: l9 b* S% x: Q( P4 q" T
B. 正确
/ Y/ n+ b' m5 \6 @: E3 C$ U 满分:2 分1 r, t$ w7 g% e7 F7 S5 z
7. 静态就是让变量和函数在生命的区域内成为私有。( )
( }) R7 Y: p9 F! X! w- j' J2 U& HA. 错误$ |$ X+ x# b6 D' u
B. 正确& q: N2 r# c4 D2 k& m& x
满分:2 分
$ c. ~& I9 i" l$ v9 T4 i; v8. C语言程序总是从主函数开始执行,在主函数结束。( )( D" H, M3 Z8 _ U1 B7 U% R
A. 错误
- s. y7 w z4 e8 cB. 正确+ S1 |. d8 U0 `$ _9 H
满分:2 分
4 T$ S, U% k& e( m8 N2 s9. 字符型变量用来存放字符常量,可以存放多个字符。( )
1 |! o9 B5 P* d% S# s0 E+ Q* A" @A. 错误9 {7 K" J! F3 y; u. j4 [ H! \) S
B. 正确
* T: U4 T* _ a$ o& |) p2 I 满分:2 分5 E* H( `: I1 M4 t6 }% P- N- U
10. 自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( )- F7 b) S# J3 ~( Z1 i9 g+ N
A. 错误
0 m2 g, d/ j& J0 T+ @B. 正确
{3 ^/ h; o/ P 满分:2 分
/ L9 A( b. V, A: Z1 v4 c11. 声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。( )
* Q- E$ m, D( g: O# P9 l, p( HA. 错误" @( _2 ?/ |# \- D1 d- {/ s
B. 正确
& Q- F/ K) {, T 满分:2 分
! S& y9 U6 _: `, d, H12. sizeof运算符用于计算某种类型的对象在内存中所占的字节数。( )- K) _& S5 o8 k; T6 F$ i6 Z& J
A. 错误
# |; u; S8 Q% lB. 正确. i/ j6 `, L8 N8 c& {. r! J, @
满分:2 分
( s& U6 X* t: ?+ T: e3 [. W& r- B13. 一个类的成员函数可以任意被调用( )
4 N& E4 ?1 ]9 e/ l, cA. 错误
* R+ W1 D, K1 Z# Z+ ~" r$ lB. 正确) a! e3 U. k2 c/ L3 U, A
满分:2 分" B" S0 M3 v8 k! u& g/ ~7 l5 U3 l
14. 在使用C语言库函数时,要用预编译命令“#include”将有关的头文件包括到用户源文件中。( )
! I3 H: e* ?7 t7 o8 k- VA. 错误7 z7 Z1 r5 H; a& F) _# M
B. 正确. r( C; y7 w* Z( V8 |7 Q% D' L* ~
满分:2 分8 q: ^1 I9 d0 x; o; Z
15. 一般float类型数据在内存中占4个字节,double型数据占8个字节,long double型数据占8个字节。( )1 w/ F: R+ o+ V
A. 错误
7 D8 V+ d+ b" ?' z4 fB. 正确
9 z- i2 Y! Q, R: M4 y 满分:2 分
6 {$ D' b# |1 t& @) D" u16. 指针在使用前可以不进行初始化( )
, n5 V! I0 U, |- \( A% MA. 错误9 s* H& \+ p* w; i& R) q! t
B. 正确
4 L' F3 j4 l/ W5 Y+ J 满分:2 分% x8 V/ y1 {. ~% k# q
17. 引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间都不如意的问题。( )
! f0 _( Y& a6 p" M7 vA. 错误4 o; ]. E0 Q9 N2 p1 J, X$ f
B. 正确) Z8 {9 f, g5 o2 }2 l
满分:2 分
: d+ D1 l& w; ^# h4 z) ~, t6 E18. 在程序运行过程中,其值不能被改变的量称为常量( ), ~5 X [9 D2 }# l+ _
A. 错误
) m7 ] t+ ^ g* |& F8 K8 ZB. 正确0 v+ O% g- g( ~# i4 Q3 [4 o
满分:2 分
8 b- Q" x- p) z4 J19. C++中函数声明就是函数原型。( )
}: f1 M! n, c' n+ h& {5 ]' }A. 错误3 ^) ^5 v/ S4 W1 @, t
B. 正确
! c4 O, `1 O: R( Q# Q/ G* e 满分:2 分
, Q1 w4 ^0 E' g* ?5 g9 e20. 用一个标识符代表一个常量的称为符号常量,符号常量不同于变量,它的值在其作用域内不能改变,也不能再被赋值。( )6 a' Y5 R ?8 h4 v$ A/ q
A. 错误
+ H, x5 }! h' T6 Q6 _" L1 \B. 正确9 e' x3 Q5 r+ o; z) P# m! K
满分:2 分 |
|