|
资料来源:谋学网(www.mouxue.com)C++程序设计-[东北师范大学]《C++程序设计》2023年秋学期在线作业1
& ^1 W# ~& l1 d; ~试卷总分:100 得分:100! [8 U! O. \' A
第1题,面向对象程序设计将数据与放在一起作为一个相互依存、不可分割的整体来处理
5 a8 y' |* ?1 G; L3 iA、对数据的操作
8 g8 \ @4 O; v VB、信息- X# Z1 r( [0 R2 Y2 c! x, y* U5 I2 Z
C、数据隐藏
- [" i0 i `' ND、数据抽象
( n- g" w+ g4 Q p正确答案:4 v0 `. ~! t g/ W
9 r/ _& T3 Y9 H' w
l: h' m5 z4 ]/ j第2题,下面不能作为函数的返回类型的是; j/ X' D: d! M/ m8 T
A、new' ]5 {) D6 `7 U& Z8 ~
B、int
: H/ J" K0 B; d" ]8 B* A! zC、long L2 y$ ~, G4 @8 h6 y1 N
D、void- d1 h# l3 C! }7 Z3 Q
正确答案:2 u' l2 f/ u$ q: M: O( M, o
% }5 a! `" E+ w* G0 J
+ q; s0 y, o( E, a. }
第3题,在C++中函数原型不能标识
) q* A" {, f5 b) `; F- hA、函数的返回类型
. D* y* T. T* R) `* } NB、函数参数的个数' v: Y0 ^' n# ~% q, D+ I- u
C、函数参数类型- k& t; Y+ y0 k+ n7 I
D、函数的功能
$ L$ D4 W' H# {( |5 k; T正确答案:- h3 ^$ Q4 V2 o
) F5 K- y1 L5 r' G9 G, S
0 S* \7 T3 c t第4题,下列语句中错误的是% T+ E; F: \! \' x7 u
A、int *p=new int (10);
9 e8 V8 X K* h% F4 s) i6 hB、int *p=new int[10];9 z$ R* x& R% m
C、int *p=new int;
4 H6 a1 w/ t7 b- ?: @D、int *p=new int[40](0);
3 @5 I! _/ K9 A正确答案:
' ]9 m. x, j& q& X+ K/ E9 p+ C$ U$ h, E$ ?% C
: l# a. J" A7 H0 W: T% [
资料来源:谋学网(www.mouxue.com),下列对模板的声明错误的是4 m# i2 Z# [% f6 [
A、template class T1,typename T23 J. q5 V/ N/ f1 P2 @. Z9 x" P
B、template class T1, T2# Z2 P) K- p- [/ L7 D0 B! r. B
C、template typename T
4 y0 e3 W1 [7 Y) ID、template class T1,class T2,class T3
- b: k9 y. [; `2 M9 I4 }* o2 d8 K: `% I正确答案:
7 e$ z, b' O: Y# F* q2 S3 B! r# i- [, Q
; L0 d# t: s" ^- j% u* G+ E* @: G7 L第6题,考虑函数原型voidtestintaintb=7char="*"下面的函数调用中属于不合法调用的是3 f3 M. ^( V$ r6 t1 N# p
A、test(5);
/ t3 p1 q8 T. g! O6 ~- R+ YB、test(5,8);5 l& ]; I" {& \/ U8 @9 J0 ]$ V
C、test(6,"#")
1 p; q6 @" m0 d" p. P1 B' ~ {D、test(0,0,"*");
! J) b/ C! N' E" g正确答案:5 m6 f2 |: m0 w& Q, ?
; T1 A6 k2 f2 f& D8 r
. q) f$ t7 V, l0 ~) b( q
第7题,下面描述中表达错误的是
. L. _* e3 z$ w. n4 DA、公有继承时基类中的public成员在派生类中仍是public的4 R; J- y" G: O
B、公有继承时基类中的private成员在派生类中仍是private的
2 ]+ {4 b; J, x% C4 w: q' m8 zC、公有继承时基类中的protected成员在派生类中仍是protected的7 U- s. ?( p* f0 k2 e( z% ~
D、保护继承时基类中的public成员在派生类中是private的
7 ]" ]% ]: H$ ~0 H9 J正确答案:, w' F0 f) h, X6 T2 F" M
1 U4 S4 `/ a; D7 R9 o' S: A; `1 I1 _) [8 c; [
第8题,在下面有关对构造函数的描述中正确的是( c1 C) E/ Y) X; K
A、构造函数可以带有返回值
+ r& s5 p; k+ R! L# E$ b. lB、构造函数的名字与类名完全相同. P5 l2 z, W! Y) v
C、构造函数必须带有参数
% H2 i7 l# ~& [& ^D、构造函数必须定义,不能缺省
: E# [4 f& M5 [. N2 y0 u9 ^正确答案:8 n5 j' j4 ]! W1 W$ p2 ~4 A
( e# c; Y% ^/ ?6 W. E2 [
$ {. q; n- N+ W) R第9题,构造函数是在时被执行的. t# R& j6 C# S5 Y
A、程序编译4 H9 W: {* d5 F$ M2 ? m& j
B、创建对象9 O g. R. n8 j( R7 E1 O5 v) i! ^
C、创建类' J7 P g, m0 b" p2 S2 M
D、程序装入内存
/ V6 O) Q# D P# S S V正确答案: C" c8 T! d" R9 E
3 }8 s5 R% I b: x( D
' L8 w- X( ?0 a/ P2 t ?4 U( k7 z0 \资料来源:谋学网(www.mouxue.com),cout是I/O流库中预定义的8 ?# c+ K/ e$ x
A、类- D5 H, f! f, z+ p4 i: `3 j
B、对象
, u' E4 [3 V# x' MC、文件# I, l" R( c, P2 R0 C, E7 {
D、常量0 M S7 z7 d- w2 e% ]* {/ {1 S
正确答案:6 e, `8 @) E: S# T l. _2 {
$ t" ~9 I& e" j) w0 }) I" K: @
8 p4 f& p& M& K @ I/ c$ c% h/ C8 o第11题,下列关于纯虚函数的描述中正确的是: f0 H' E% \# i6 l% w n
A、纯虚函数是一种特殊的虚函数,它是个空函数
0 c/ x9 c1 |- m4 \* dB、具有纯虚函数的类称为虚基类
1 n1 `+ W ~8 WC、一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数# n% w! t u0 l$ i
D、具有纯虚函数的类不能创建类对象. l8 _2 x ^0 j6 N( h
正确答案:
0 H! \, P9 i) w' }& R( R" F/ W. _5 r2 ?% z) p0 C0 M" S
1 z+ O W1 v! V8 J; }
资料来源:谋学网(www.mouxue.com),若派生类的成员函数不能直接访问基类中继承来的某个成员则该成员一定是基类中的
: x5 j9 ~8 V% ]A、私有成员
1 N2 v% `' T$ k$ R' O8 t6 X2 UB、公有成员
j+ D; a3 b/ _. B$ e; b, M& }& P% \C、保护成员4 |& A7 R6 ^( I% D% [. e3 W7 m
D、保护成员或私有成员
" B+ v! J& R& X" L# F- O& w4 W正确答案:( O; H& E7 [* }2 l5 `) F# A
2 D: X i6 n. K. ?
, M' I# o/ j8 A4 X第13题,在多继承的构造函数的定义中若干个基类的构造函数之间用分隔开& y6 b2 e+ u) U$ R$ P! l- n) g
A、::
D, P5 E, L9 [, k& wB、:8 F9 F2 c. @" P6 [% ~% U: s
C、;' X* R! t0 w" N, n6 x9 M% n! r
D、,
9 `( H3 g2 i2 K% x正确答案:
' n% D9 n0 V `. a$ I7 X4 x
! d) g" _8 N$ m' ^6 b) x' T9 ^; x9 O
9 b0 P( F/ H6 M; r3 c; c8 _4 l第14题,下列运算符中在C++语言中不能重载的是
' e4 Q' C# X$ H9 }1 R+ P; N% _A、*
: X" w; {. j- S' h4 MB、=! y7 ~( W# q$ A8 w5 r& B5 n
C、::
, @$ Q" J k" V' k( i9 b! ZD、/" @- n; |: K6 _3 K0 l
正确答案:/ C4 q; P! p; N
: ]. |- |. f( i3 M2 J2 d: l$ L* V
) g! ?, h/ o6 @( S
资料来源:谋学网(www.mouxue.com),如果一个类至少有一个纯虚函数那么该类就被称为' f& z* p9 `6 q1 w9 }
A、抽象类 ?3 O' P# A6 a* v
B、纯基类
+ K5 C2 A7 Y+ H3 O, t0 gC、基类
% }, ^4 i9 i: c& ND、虚基类# b- A/ C( j, M4 p# c9 ~4 D
正确答案:
; K* n$ G! d; |4 m+ ]& D+ Z
1 r+ k' p9 F8 ?' X( A" ?% X9 n
4 U& R- [; L) @7 z* g第16题,C++语言对C语言做了很多改进C++语言相对于C语言的最根本的变化是
% P2 X' {5 }8 AA、增加了一些新的运算符9 C( B6 u, Y' s1 g5 X
B、允许函数重载,并允许设置缺省参数
C2 `# R) k7 V7 ^* X$ C5 {) ]: aC、规定函数说明符必须用原型
- x& n& _7 d$ R9 uD、引进了类和对象的概念
1 p+ P' v, i Z7 y) H2 P9 y0 z正确答案:
: @& g, r* ~ v8 p! I( h* n6 R; I: M' `+ U) p
% F a1 N1 ?1 E3 u第17题,对于类定义classA{publicvirtualvoidfunc1{}voidfunc2{}}classBpublicA{publicvoidfunc1{cout″classBfunc1″end1}virtualvoidfunc2{cout″classBf8 E: L7 ? M& u- K# R- C
A、A::func2( )和B::func1( )都是虚函数
9 _+ M; G" q9 `0 UB、A::func2( )和B::func1( )都不是虚函数
# C" @: N6 H4 v+ T9 }8 u5 iC、B::func1( )是虚函数,而A::func2( )不是虚函数7 s2 B! C* w) o3 a2 Z5 F" e. n) o
D、B::func1( )不是虚函数,而A::func2( )是虚函数! W% j* S: z! l. {; N
正确答案:8 Z9 \' M1 O8 N, f# G* q) F
- F/ Z7 u% `4 G C: P( B
1 p& Y' y I0 k3 k第18题,将客观实体的特征与行为作为不可分割的整体进行程序设计的方法称为程序设计& p: G8 y9 K7 B% C
A、面向应用
5 Q8 \3 a( J. A5 J) I; B4 YB、面向过程6 u- N0 i# L8 W* A
C、面向对象& d2 Q! N0 J) s; j. H
D、面向系统
$ I4 N& `0 |" ?正确答案:
X: ~2 i9 n9 a+ L9 H* J0 X" k" ]/ T) Y4 w: l
( u5 t2 ]" l2 x- L% C第19题,C++利用实现面向对象程序设计的继承性
' _! |# Z$ X) wA、构造数据类型-类+ h5 a Y+ b2 e' z, T" z$ V* t# s$ F' I
B、类的派生机制
8 `. ]2 W8 b: v9 o. o4 O. uC、构造数据类型-枚举
+ ^$ I0 |5 E! lD、函数重载与运算符重载
! r) I1 ?: L" R! C/ k/ U正确答案:. O' A6 f, R) u) y9 F: d. x
1 U# i: m5 n5 f
# L7 R$ t0 o y" d2 Y; C; N资料来源:谋学网(www.mouxue.com),若已定义了person类则执行语句"personp1=p2"将调用p1的' b0 O8 j6 Q) A$ x5 y# n# i0 N: r
A、构造函数7 r, x1 b5 H2 D6 m% d7 E
B、拷贝构造函数
( ]6 u6 L! h) k$ _& I8 |" t4 }0 LC、析构函数
7 T8 Q' i5 I8 w7 x/ ED、赋值运算符重载函数& i# S/ l% g `
正确答案:
& d6 j" M7 ~: A( J* K3 h* [( {, \& _5 H/ x
d& Q' b7 _; e6 X第21题,静态数据成员是类中所有对象共享的可以通过类的对象访问* v7 @0 F/ }3 I2 v$ {' G
A、错误4 ~' k3 r( h: `- e/ z! d5 c
B、正确 F1 ?1 l) a. Q/ b
正确答案:3 l q! K" u3 S) X6 d
I D0 ?+ X' Z. a2 w
4 p* G3 g3 k* z* g! _+ H ?! J
第22题,函数模板是基于不同的数据类型完成类似的操作而重载函数则是对不同的数据类型完成相同的操作
+ b& x7 K+ d+ I% [0 EA、错误
: O* b% \/ |: ]6 IB、正确
+ K, z' S( S6 }8 L/ H+ K, U4 [正确答案:/ l' j9 d5 z; g+ d1 x" g5 U! y
7 Z0 b6 ]( T9 P/ \6 G! {+ U# j, ?! F7 z
第23题,成员函数体可以写在类的内部也可以写在类的外部
4 M# `, t- u. ?4 D- l2 F8 [: rA、错误$ I: L3 J7 B: n7 u( b. v
B、正确; c) a1 [ U3 x1 m
正确答案:
- t6 i) R- {! u8 U
* z, w; @( V7 V0 \" a+ V$ I1 k5 ?5 ~6 O' d( s: `' `
第24题,一个派生类继承多个基类称为多继承
$ c. p; J9 D5 e# X% L5 |$ ?' Z8 ZA、错误
% t; q- x2 g& c T# ]4 W' y+ oB、正确
( c/ G8 O2 p1 u* z$ W' Q正确答案:
# I5 s( p2 k+ {" i; |4 T7 H
+ v- E6 N1 j( I/ ~+ ~) f
( L& j0 O" e* a1 U+ e! Q资料来源:谋学网(www.mouxue.com),赋值号两边的数据类型不一致时将无法进行赋值运算 H8 e7 K6 i* ~6 {
A、错误
! s6 }* l2 I n0 _' u& oB、正确
# g( B( S4 r. g, o1 F, b正确答案:
* {! |7 t+ ~6 c# C& g& I# F
" E: h2 e, w) \# e/ t* Q6 f! c' @# L
第26题,一个派生类继承多个基类称为虚拟继承5 \! z& r$ y5 l& O" q! X
A、错误
. \/ o8 p1 h( Y o! N# f: iB、正确
( M. @2 E6 `7 [正确答案:' p- Q7 @' i5 z" G4 O3 D" ?
( |" d* ^* \5 K8 V) w0 C) m& [* r/ d5 l+ P3 @4 I
第27题,一个类可以定义多个构造函数和多个析构函数! L4 I+ _5 g, ^. m3 j, ~6 O
A、错误% |- O! A% h5 }: r# `0 h+ P
B、正确
* M1 I1 m$ v' o8 j9 }; [: ]" v正确答案:, L& U- A: h, }$ \3 @$ h
; e8 ^- S) c% L0 y; S& M
/ H5 l0 g( ~! L1 G$ [! M/ i第28题,虚析构函数的工作过程与普通虚函数不同普通虚函数只是调用相应层上的函数而虚析构函数是先调用相应层上的析构函数然后逐层向上调用基类的析构函数
' j! p$ g) {9 W U, F, `A、错误) W q1 _" r. ~7 }. `$ |
B、正确# s2 l6 t3 d& Q% ~
正确答案:
, [. f! n" T$ c5 g* \3 m! N4 T, p, s1 u8 j! D& c5 G, J: ]
+ j$ n, n" `; h0 f; ~4 m第29题,get和put函数的功能是一次读写一个字符而read和write函数是一次读写一个数据块9 E6 i+ Y& U6 d, q) h2 [# T- |6 D
A、错误
5 I2 A5 x+ l4 g2 e1 f9 xB、正确* J n& t' x( b0 C" s5 Q. F ]9 H- L5 r
正确答案:( Z; R) u. Q- K; `6 }3 P
* K* y: \1 f6 B# M, P# l0 ^! W
9 ?# w5 i s0 Z& [* y5 P资料来源:谋学网(www.mouxue.com),撤销包含有对象成员的派生类对象时自动调用析构函数的执行顺序依次为派生类、对象成员所属类、基类的析构函数. f7 g* m+ z9 C; m
A、错误
" x) ]& d) V; Q$ @2 oB、正确: w3 q* L8 p" \$ \
正确答案:
& g) y- ~8 B' r, X* U3 X7 a- Q: u/ }
9 @0 K% g, s2 C5 G' P! `0 f
第31题,C++利用函数重载实现面向对象程序设计的封装性 J& ^: o+ [; r$ F- q( F! X
A、错误! n4 w" u, ~ R& i z4 d& z
B、正确
. Z1 Z3 d5 p* B J; V0 G, L正确答案:
# u! A; S2 H9 o) @) q* N7 m i
$ |4 x+ q2 }; q9 c
第32题,C++利用类的派生机制实现面向对象程序设计的继承性
6 y6 C- M/ w3 Q! l/ d4 vA、错误
9 b. {+ H1 `6 M) wB、正确
; J G6 R, K0 Z$ Y: z7 \( ]正确答案:7 Y/ j# a# ]5 C- A2 Q' Y* S( i" q
5 `# y: m( A$ B6 o: @! V& p7 ?1 | r! Q
第33题,如果一个类只定义了一个带参的构造函数则系统会给它提供缺省的无参构造函数
) V* d8 F5 N( A' a) gA、错误; V0 {. q/ Z* K1 P# e3 y
B、正确; ~. \3 k1 A( U. C3 F
正确答案:# Z0 s6 k2 ^: p2 K/ O
: p& |" P. d& o* O3 l/ E+ }
% `: E6 M# g1 W4 Z% o
第34题,若一个类A它的两个直接基类是从同一个间接基类派生而来的则类A对基类成员的访问会产生二义性
: a& K' ^( z+ s6 b0 j, iA、错误
, ]" T! r4 J* p0 Z' o/ T& K& N/ y" }B、正确
$ I) f% f8 `/ t8 Z正确答案:% G( W; h1 N% l& r9 e! z+ ]
, @6 v. c1 o( d' w6 p* i6 W
! f9 Z# h: I3 }) o8 L H$ R* C* E- }第35题,一个类的友元一定是另一个类的成员函数! E9 v6 F3 f3 ~, R7 M# c* b5 b* p
A、错误 x& R8 H( |: A# ~+ n
B、正确
+ j1 h# |9 c( c5 [: D& a正确答案:A
6 Q. i6 ], y* [0 M; y2 R' ~& s
, A& L# ~& _* \: M0 x3 K6 C+ x+ V* Y! ?3 R( _3 q, I: M
第36题,函数重载与运算符重载都是编译时的多态/ u* V# [( n8 j
A、错误! e3 e+ D: j1 Z8 U4 V
B、正确) q \7 _! e4 o% m
正确答案:
; l' V! X. r0 K6 [3 ?8 }2 ^) h/ | q/ J/ |0 U& N
' z$ _* R6 W* g; y4 I第37题,输入输出特性是由C++本身提供的
% o2 ~/ Q3 A! K; s4 m9 s9 qA、错误7 g6 B& T/ T3 ]
B、正确+ ]5 i% a+ H1 n$ A3 E
正确答案:
$ ?6 Q* T% u" r% I% |9 M {. W" e
# i. L) \* T" f: ^; ?
/ ?7 {: J) k5 z7 |* A! j# [, p$ W( K第38题,无论何时编译器都为类构造一个无参数的缺省的构造函数' U% k& w% V, Y/ Z! ~9 x) H, E
A、错误, q3 a/ ?7 s* ~( [! d, ?' \
B、正确0 [# e% \5 L6 i! a
正确答案:$ p$ l/ O( m6 T- M6 P
4 p/ [# e4 W7 s$ y# `% V' J3 X K( @; o- R1 _
第39题,拷贝构造函数是在用一个对象初始化另一个对象时被调用的, H8 n4 T& z' L# d2 D; T
A、错误$ j9 y7 e1 w4 T- p; J! ?
B、正确. m, M. T; u( t
正确答案:
. z! }3 Q" q n! b
. B7 p7 G$ d5 g! ^' B% ~" F1 h' W! |+ h( w2 q! R
第40题,成员函数体写在类外部的一定不是内联函数写在类内部的一定是内联函数4 n3 ^8 X( w9 J7 ]6 N, v. o
A、错误
7 D5 A0 w7 `" S% y! }+ WB、正确
/ a( W- S1 A3 Y正确答案:0 N" b3 e- E+ u' e7 I
$ k) s& s: n9 i* t1 T# y" ~/ |4 K$ i: F" g3 }! _& G
' h6 R# e8 G6 l( O: r( b1 }7 @& O' Q. M0 J
r. n3 N- ]* _( G5 o; J
+ J# l, @6 @; L8 S6 r: n' ]5 Q& B+ I3 q
" z% j7 I& B; y' |& A& }3 q
8 j. E+ y: {# g, B4 m A# @, e0 s a5 r! x1 `" D
2 P2 [ h5 ~. E6 _0 T7 M% V4 Q
9 M2 _% M7 N# E- W) r
! u1 A0 C- z( \. z: X c. m x
) y8 g' G/ y( Y1 w/ O |
|