|
一、单选题(共 30 道试题,共 60 分。)V 1. 要使几个不同数据类型的数据共享同一块内存区域,应使用( )0 n9 w% I/ }7 T/ S
A. 数组
8 N& \8 s& |2 j/ {. t7 ?2 k4 d( _* ^B. 结构# _+ b9 y/ z/ N! T6 {% @
C. 联合8 l g( [/ q+ l
D. 文件- w9 t9 p) B# s: q" Y4 C6 p
满分:2 分; _% m% b7 _* M+ H! q+ v5 R+ [( m" Z
2. 下面程序的结果是什么?Int i=3,j=4;i?i++:j++;printf(“%d %d\n”,i,j);( )
! d. p% h" z) V% ?- zA. 3 3
2 \3 r, [8 w& k7 u4 j! bB. 4 4& _& A$ C/ M9 @& W: o
C. 3 4
* L A5 @& ]+ b u+ @8 L [4 CD. 4 37 W& V) F% J% s: U! y% g8 x% {2 Z
满分:2 分3 u' h; G; x% S2 X6 |
3. 析构函数在什么时间开始调用。( )
. g* r) e2 {6 I3 O* ?# QA. 类创建
4 L7 v- r3 l$ a% K7 |B. 创建对象
* T2 p* v* j) u7 ~- @C. 引用对象4 P/ l/ a& T9 o* o4 C5 ~
D. 释放对象
. r, g, I- d0 f8 _ 满分:2 分4 v# R0 x! P5 T8 c. N
4. 已知:print( )函数是一个类的常成员函数,且无返回值。在下列表示中,正确的是( ). a6 Q3 e: f! G) x" Q2 s
A. void print( ) const;# m* o8 s9 L& ]! }3 r" i g) q7 B& u4 J
B. const void print( );4 T6 ` ?! P! ^+ H$ T0 t6 o
C. void print( );4 w. o8 h& y! `
D. void print(const);$ U1 I! i/ ~% @" W8 z
满分:2 分
8 p# ~8 T+ h8 N5. 已知字符'b'的ASCII码为98,语句printf("%d,%c",'b','b'+1 );的输出为( )' ]$ ^ g- S R- i' z
A. 98,b
" S- ?# `1 }2 F- t( TB. 语句不合法
% R/ s( k" n, yC. 98,99
l0 ], `" U8 N7 ?) GD. 98,c
7 _) e. g( D9 U9 k 满分:2 分4 a* c) V7 d! C9 K2 j: \# c
6. 在下边的二维数组定义中,正确的是( )
8 |1 h6 A# F/ {7 j$ {/ {. HA. int a[5][]8 g9 T f! t) ^- v' g+ [- u
B. int a[][5]
) d7 ^$ |( X( G* Y9 \' ~C. int a[][3]={{1,3,5},2}# w: f; @4 ]$ P$ Z- q7 g1 I ?8 G: A( L
D. int a[](10)) P0 ?7 H) V+ L% r8 `
满分:2 分
, |* b `. x$ B; o7. 下面关于类的对象性质的描述,正确的是( )* _4 U+ m# W" ~8 r' A! \. P' \
A. 对象之间不可以相互赋值
7 }* y; U/ g S6 H+ S: mB. 不可以说明指向对象的指针( I8 ] M7 d# N) w' W3 h; S1 N5 E" n
C. 对象不能用作数组元素
2 L' ? p4 f$ }7 I# p% F5 P/ @D. 一个对象能用作另一个对象的成员. X" C8 Y* @# y; E* l
满分:2 分: L1 }8 u: Q2 ~8 r' {* [
8. 下面关于new 和delete操作符的说法中,不正确的是( )
0 P. D. q3 R3 t8 z& z7 bA. 使用new操作符,可以动态分配全局堆中的内存资源
6 P% H [9 c; b5 ?B. 若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用5 M( F, N( { G P) f/ o% ]
C. 实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中
+ s$ G3 y" V; |D. 执行语句A * p=new A[100]时,类A的构造函数只会被调用1次
. V2 L; L; Z$ v& | 满分:2 分 d: H$ b( G8 w/ h* D
9. 下列哪项不是面向对象程序设计的主要特征( )
^8 h, ?! [- m9 K! d' GA. 封装, e: _9 A9 u& T% A
B. 继承 I5 A: G9 a' _5 w' U, a
C. 多态
, f, M1 D h& F6 \8 B, AD. 结构; v J: c, N. ]+ X1 R- t; o6 h
满分:2 分
/ L) h( M2 l5 i10. 要声明一个有10个int型元素的数组,正确的语句是( )1 J q; v- g7 Y3 N- s5 D
A. int a[10];) D6 Q+ m5 T- g+ K4 T
B. int a[2,5];
" {7 z, b& T# u( C. K+ {C. int a[];
% \8 }1 i; h% |D. int *a[10];
p) P* M8 A: L4 `; Q 满分:2 分
e( S! f' x$ T" V& _11. 下列函数中,可以为虚函数的是( )
. y& O; Z% r) w8 f: YA. 自定义的构造函数
. r6 g& J- H7 u. N9 CB. 拷贝构造函数/ X) k7 f3 P g$ ~
C. 静态成员函数0 j1 l/ ~6 q% N7 [7 d: Z+ Z
D. 析构函数$ c1 b n+ N0 @' z% m9 D, W0 D8 U
满分:2 分) N3 _ V0 R1 U' h+ v8 U- u9 P( j
12. 下列的各函数中, 不是类的成员函数的是( )
9 E$ p8 o7 h9 @- xA. 构造函数1 |9 f9 ]. W- ^4 }# U1 E! c* P
B. 析构函数! u" X& Q* E9 t: j* P4 K! O o
C. 友元函数- y" X T5 i: Z3 {5 J5 M
D. 复制构造函数0 O0 l. Q! b8 y
满分:2 分" t, r- d' }9 F% b; u
13. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )
' n# B: N3 t$ ~+ u% d& Q6 }A. 数组首地址
[4 N/ X$ d1 A6 BB. 数组的第一个元素值- ^, K" V7 Z* ^: {4 Z
C. 数组中全部元素的值
: Y: K' M& i8 |0 }4 l7 BD. 数组元素的个数
; L0 Q5 G8 Q7 U' X) K9 [ 满分:2 分
( j& \ g) e! w1 z0 T7 ^14. 以下各选项企图说明一种新的类型名,其中正确的是( )
, N' j+ z1 c. |8 e9 o0 q) k6 aA. typedef v1 int;, V9 W; ]5 k4 p ?
B. typedef v2=int;
, V+ _* ]3 j8 eC. typedef int v3;' l5 q& p% V- e+ N1 h! c4 F/ \
D. typedef v4: int;
9 d9 i" f7 z6 W W4 e$ L 满分:2 分
8 A. \* t3 a) \ q: J: X15. 下列对引用的陈述中,不正确的是( )
, s" d4 H9 r1 A# y! m+ V% {% p oA. 每一个引用都是其所引用对象的别名,因此必须初始化
6 B! L* V- j7 c! a% rB. 形式上针对引用的操作实际上作用于它所引用的对象
\( M j H( zC. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
+ A9 N- ~" p/ o9 ?3 C0 H& gD. 不需要单独为引用分配存储空间
. {3 [1 h0 N1 ^* @& Q- c 满分:2 分9 b$ k1 u# Q( r
16. 下列叙述正确的是( )8 ^' Q8 S4 L# B" r7 k; A
A. 一个程序中可以有多个#include命令行
4 S/ [9 `* Z. W; BB. 在#include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别
5 O+ y4 S& J* B3 i8 X# cC. #include命令行只能放在程序开始位置$ T4 m8 Q0 b4 h& s
D. #include命令后也必须以分号结束% b0 ^- T+ ~& ? H/ i
满分:2 分
+ K% o k* a! v17. 已知函数test定义为:void test() { ………… } 则函数定义中void的含义是( )* o) N8 z0 _6 e; o
A. 执行函数test后,函数没有返回值; B- l9 F1 ?: f) E
B. 执行函数test后,函数不再返回, e2 D+ K* `6 U0 u' e: a
C. 执行函数test后,函数返回任意类型值
3 R& ^/ U+ b* C/ m( @: i8 VD. 以上三个资料都是错误的9 U$ e9 x: z4 X. {) m
满分:2 分! O/ b2 V% i$ P3 |/ d
18. 下面有关重载函数的说法中正确的是( )$ Y5 F$ y8 ?0 ?
A. 重载函数必须具有不同的返回值类型
# g- W2 k5 F7 a6 g9 Z$ b# JB. 重载函数形参个数必须不同
; V, O1 L1 w0 J' C/ L7 RC. 重载函数必须有不同的形参列表
& M: b: q/ W+ ]" \6 ^! D& vD. 重载函数名可以不同' ^ o' Y$ g. J! t3 C9 q2 b4 c
满分:2 分
+ g6 ^8 G6 w, c* Z/ r6 P19. 在下列运算符中,优先级最低的是( )2 R( \2 A, j% D& ] i
A. ||
4 K+ V3 T. I) `. s! C* `8 @B. !=
; `. ?3 M! e' VC. < I4 m5 W) B, F& h9 X
D. +) {) \ X5 N2 O* {1 r' d
满分:2 分2 P: x; a: O4 B6 @
20. 以下哪个不是循环语句( )
& F% F# t7 P( SA. while语句* O3 w( ~# S9 B6 s
B. do-while语句% [8 f6 Q/ N1 n4 J. s) |
C. for语句- z% V2 v/ w$ M( z$ j3 @& E
D. if-else语句
4 x G- i) w1 `4 J9 [: `7 T0 V2 q 满分:2 分3 `. n/ S+ V% i3 W2 E
21. 在C++语言中,二维数组元素在内存中的存放顺序是( )
0 [% s$ f- E) Z" w3 FA. 按行存放* G- \+ x% U. D3 X F
B. 按列存放' Z$ @, i) @4 K/ a* @, r
C. 由用户自己定义" [6 E9 P1 j6 h2 h- [& w* R d6 v
D. 由编译器决定
8 O5 Z' |% R& b3 m1 H 满分:2 分$ m% q( |) ~: w& S. Y% z: H
22. 如果a=1,b=2,c=3,d=4,则条件表达式“a>b?a:c<d?c:d ” 的值为( )
4 N# P) ^# L- T- ^1 DA. 2
8 H& v! t- R0 UB. 3 ^8 X b" S* b" v
C. 1( w: t0 t5 o1 |/ u# r7 F& w0 G7 W
D. 4! [8 S9 L- r: p
满分:2 分
, q3 m0 m" }! @% [23. 如要求在if后一对括号中的表达式,表示a不等于0的时候的值为"真",则能正确表示这一关系的表达式为( )& @" V! B+ b% r9 X. Q9 J& S
A. a<>0% C% b0 K; G" N( {
B. !a& j& a% e+ F1 ]( i. l$ w
C. a=0
0 G, x( `/ L: M6 T* @1 U T- g- ED. a
1 W- K8 M' n( ~* c. j. ^ 满分:2 分/ s; J1 \9 o. W, \5 a- F6 g1 ]( e
24. 设B类是由A类继承的。当创建一个B类的对象时,构造函数的调用顺序是( )
# C8 A) m- v8 u/ Q# UA. 先调用A类的构造函数,然后调用B类的构造函数
5 Y& [. r9 s, ?+ n( N d7 vB. 先调用B类的构造函数,然后调用A类的构造函数& |6 J; v- `- J0 R4 g1 v4 [
C. 不调用A类的构造函数2 D5 h" U7 Z, e1 L4 N& P8 b* W
D. 视定义时A类和B类出现的位置
+ j5 ]7 d& j7 r9 u' y 满分:2 分# i( U/ i$ H7 a
25. 循环体至少被执行一次的语句为( )' a1 ?# b; @" n6 p7 |) S% n
A. for循环9 c c6 ?) g+ e/ f0 t o2 \
B. while循环
5 G- p( v4 Z6 t) n7 SC. do循环
! R' D* ^9 d9 yD. 任一种循环9 Q: k7 @) i8 h2 t$ i
满分:2 分
1 r [! Z$ I& O+ M# K/ @% h" Q26. 当说明一个结构变量时,系统分配给它的内存是( )' G! ]$ {' W: _) D& p
A. 各成员所需内存量的总和
: i" G5 W% j7 e) W' O" sB. 结构中第一个成员所需内存量4 B/ W, \) X! [ [: y& u! [* |, l3 O
C. 成员中占内存量最大的成员所需的容量2 z0 D7 p; H6 k* ^, B
D. 结构中最后一个成员所需内存量
+ B; t% M% g1 K( Z) y: t4 | 满分:2 分3 h" J2 M y6 G
27. 能正确表示x>=3或者x<1的关系表达式是( ) _. I9 _" P D8 I" G
A. x>=3 or x<1
5 I6 }3 Y, I+ T: H9 ]; M( t8 Z X% ^B. x>=3|x<1
2 I7 [, p/ n$ g7 t$ `C. x>=3||x<1
( P; t. Z* H4 K8 o. DD. x> =3&&x<1
5 N2 {: {0 h- R0 V 满分:2 分3 q$ l# n- g( F7 `/ E- W; y, I
28. 下列字符中不能构成标识符的是( )
9 O4 e) U. p5 W, p7 ^& fA. 数字字符6 R. k0 L& s" z# @# D0 Q
B. 大写字母: K+ ?& |3 G6 ?6 Q/ k3 g/ l
C. 下划线字符
, X% ?5 P2 p7 o" V* K! R- h. `D. 连接符
9 M( B3 }. [8 S, `' L y8 Q 满分:2 分
9 w$ a5 f! r" r0 J& Y) ]29. 下列do-while循环的循环次数是( ): 已知:int i=5 do{ cout<<i--<<endl i-- }while (i!=0)3 @+ t; Q+ C2 N5 g/ \7 k* X
A. 0
4 B# q* [- C/ e& `3 @' uB. 2( B% Z; G: o# E$ I/ [4 B. w
C. 5
! D U" q$ b1 x7 U8 G7 ZD. 无限次' E, G( {( v, `) f0 T2 u+ Q
满分:2 分
+ n- Y: g0 m7 W I7 p2 m' i30. 一个类的友元函数或友元类能够通过成员操作符访问该类的( )6 ?8 \2 ~- _0 i6 w# {$ f
A. 私有成员" Q" h" t8 q/ j, T X# ~
B. 保护成员
) T1 C1 [& f2 P0 bC. 公有成员
, ~: R) {. ?, u M. JD. 所有成员+ ^- Y2 ?, Q/ S4 t8 p2 ]: Y+ E# }
满分:2 分 9 T9 B7 {/ P7 M7 a) K7 t) f
. @) t6 C) @# g p0 n* K& |二、判断题(共 20 道试题,共 40 分。)V 1. sizeof运算符用于计算某种类型的对象在内存中所占的字节数。( )
+ _2 ?7 D1 `$ G' @9 wA. 错误
( @6 |% c3 g( P; K6 p3 jB. 正确9 O1 W$ p8 A' f* c1 d
满分:2 分 f. C% ]4 z A; l: R& W3 M
2. C++程序的开发步骤通常要经过编辑、编译、连接、运行调试这样几个步骤。( )8 P. l7 U6 r0 n- r/ ]% l
A. 错误# {7 f8 m; n2 `5 P" s2 M4 [4 L
B. 正确
w# {) l5 s/ X; G 满分:2 分* i: @7 D' t9 N6 @9 N
3. 定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )
3 z# m$ G0 G: l% N" D9 J' ]A. 错误
+ U( g( c7 ~" n! ~9 ^2 ~ d/ ~% C6 gB. 正确
& n: @( Y* E* R 满分:2 分
6 G: E Z* Z, |- I/ G; {# a4. 在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。( )
& @! K, a& `' d; SA. 错误( K. k. X* Y' r
B. 正确
5 I5 O' a% p r+ Y 满分:2 分
( M' ~0 X% P p4 B5 d" P% _5. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是8。( )
! t) k0 ]# |' q8 s5 E' gA. 错误% T( A' {0 i( z+ v' ~0 B5 N
B. 正确8 M! U2 e% `- T& `6 r/ V6 G* m
满分:2 分
& v1 H" J( T3 E9 p5 b* e* s9 S7 X# h# u6. C++中,一个函数必须在函数声明后才能使用( )
3 z$ G- u) S+ ~A. 错误
( ~9 D$ ^; ~8 }) {$ b* ~4 i3 [B. 正确
" Q, N. J- B; c! B 满分:2 分) X* b( O* ^4 a* T
7. 字符型数据在内存中的存储形式是ASCII码( )- _" q5 Z& K4 _
A. 错误+ [) ^3 g; C: b! _, [
B. 正确: N: K5 D7 j% i& Y
满分:2 分. _4 Q2 m6 A0 n$ o* g q
8. 一个类的成员函数可以任意被调用( )
, S: B+ J9 V" S% B# L3 H! O+ ?+ F7 |A. 错误
7 K" j% Z/ j9 o& o! j$ f1 aB. 正确
9 e( B8 Q; k* D" B. B$ Y 满分:2 分
& ]2 q8 U2 [0 d9. 一般float类型数据在内存中占4个字节,double型数据占8个字节,long double型数据占8个字节。( )
$ B7 o* _; A+ y! h; uA. 错误
& k6 r* @7 @9 r% f- [/ \9 vB. 正确
5 w" X: x, g5 p" l8 T1 R 满分:2 分& o# O/ y3 r- I; y
10. 在程序运行过程中,其值不能被改变的量称为常量( )
; E# a7 [% i# e7 e, gA. 错误
& a5 b" y6 O. Y, X' r eB. 正确
( h+ i, K: \5 g) U- ]+ y 满分:2 分
) A9 y) \! O9 m" R11. 声明一个结构并不分配内存,内存分配发生在定义这个新数据类型的变量中。( )
" |! a9 D( }1 Y. U! dA. 错误
" Q/ o% A* q6 ]/ q0 @1 g7 A' pB. 正确6 j6 L$ |7 N% C3 w8 u
满分:2 分8 ^9 b1 T. b6 Q: a
12. C++语言中,标识符不区分大小写。( )
# k3 f3 a" Z& q8 y" Q: |! P8 NA. 错误
2 a) @1 Z3 l3 W2 ^B. 正确
8 F2 g* W3 {9 K# n' Z Y, X 满分:2 分
' T& l* y2 `. l( g) R! C: \13. C++语言程序中,main()函数必须放在程序开始的部分( )' Y( \/ ]4 m8 `
A. 错误
; H- X# U7 R, ]6 T* j- X8 k6 wB. 正确5 C' j( r0 n; m* ^; }
满分:2 分* A6 M6 x) ]8 R* H
14. 自增运算符和自减运算符只能用于变量,不能用于常量或表达式 。( )) k1 K T5 I+ \- `
A. 错误* {7 D# _% E% q/ I5 {3 g
B. 正确
7 c8 w% V- }1 |7 {# r8 G1 ^ 满分:2 分
- b3 n% m& i9 Y3 V2 j! d( u15. 引用的目的主要用于在函数参数传递中,解决大对象的传递效率和空间都不如意的问题。( )
- H+ l& d, L4 t& [$ [A. 错误1 Y& ~8 g. v, h. x w9 O% @5 ?$ K. s
B. 正确
+ v' I4 H% {; {: q% R. z2 D 满分:2 分% D" b1 K( b# O* W7 U* L
16. 在使用C语言库函数时,要用预编译命令“#include”将有关的头文件包括到用户源文件中。( )
* q7 C2 M1 k [; o" U7 h+ i: ]A. 错误
6 @' _% L# t" u( o$ AB. 正确! `' |% F+ M) C) A
满分:2 分$ k4 r8 a _7 X# [
17. C++中函数声明就是函数原型。( )
" [# J1 E7 ^9 J% UA. 错误- D+ ]" D% ?$ _! R u2 U; |$ r
B. 正确9 N/ g! _( F2 l3 }
满分:2 分
( E9 m8 e$ @' Q! y4 C5 O18. 字符型变量用来存放字符常量,可以存放多个字符。( )8 f' |, _; w5 w7 h3 N
A. 错误
+ g2 l; i; N( Z' ^B. 正确
! }4 \+ [, {+ o5 Q 满分:2 分( |! X; T/ W; t' U9 E% [9 e- l! [ P' ~
19. NULL是空指针值,它不指向任何地方。( ); Y. F( {( K6 V* K5 Y
A. 错误, [9 }/ q0 P5 m2 L4 H2 u& a
B. 正确
5 D( B$ t8 _% {/ m" d 满分:2 分
2 z8 @& r1 L' [) @* Z20. 系统可以提供默认的析构函数。( )
; B& X4 R, t$ O+ T4 Q' uA. 错误
) X! l# F) C" H% ^B. 正确
# I. M& a! S2 D/ _" N* E" B+ @ 满分:2 分 |
|