|
资料来源:谋学网(www.mouxue.com)C++程序设计-[东北师范大学]C++程序设计2022年春学期在线作业1
5 y9 {% p9 Z1 ]( M' M9 g- @试卷总分:100 得分:100$ R- L, |4 a( |) s3 K
第1题,面向对象程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。# f' \# s& x, M
A、对数据的操作9 {+ |8 o$ c2 U9 U: I0 u
B、信息
5 Q% B/ e1 ?' D; s) wC、数据隐藏
# C! B3 E1 p; L. f. }3 yD、数据抽象
: L+ A7 c3 r; }% w$ I/ c/ k! Q正确资料:- f4 {% q, P q" r- {! A- \
. i D# D3 V$ K9 K1 j. h$ R/ @! C1 K+ @ `# z, u
第2题,下面不能作为函数的返回类型的是()。
9 _$ j& K# S( T$ d2 H, AA、new
0 p6 M+ i+ G1 _% |" IB、int
( k. G# z( d! ~+ O! }C、long* k: A0 D( L2 H* R
D、void
* U) J. i& i6 W% h; M正确资料:7 j5 T& A; u4 r' D: I$ O* l( {
3 X/ O" p/ d# ?5 l0 V
2 y7 i& C: Q3 W \0 P第3题,在C++中,函数原型不能标识()。2 K [5 r8 u$ w: o! S
A、函数的返回类型# E p/ ?4 h* o- T5 A! v
B、函数参数的个数
2 Y5 m' W4 x9 F7 J8 r! J2 |6 n7 HC、函数参数类型
. i' t6 ~( ]% J, w. ED、函数的功能
$ y _. T7 i5 e! b$ k1 _7 ?5 v# Q正确资料:
( q3 q9 L+ X4 F
4 z6 s/ v, I* ~3 W: S3 E! T
& y- r* S3 |% I- P9 r; I0 q第4题,下列语句中错误的是()。* Q7 m8 r5 p/ S' R
A、int *p=new int (10); o6 q0 O4 m4 O0 u% ]2 A. P6 I u- W
B、int *p=new int[10];7 i0 [ _6 K. c/ F$ A7 @
C、int *p=new int; y: [3 P) t( c4 l
D、int *p=new int[40](0);6 V! t4 o) l, U- t& M8 B6 R/ R
正确资料:
4 ^- E: d4 R3 q5 k" S; l o/ n0 W7 O* b+ D
! _) R$ N7 R+ u" f
资料来源:谋学网(www.mouxue.com),下列对模板的声明错误的是()。3 m* P+ g. V: U5 V2 [7 n$ t
A、template class T1,typename T2
5 u9 g* d9 d" U6 ]. S5 R/ AB、template class T1, T23 R. o5 ^( c6 ?& y! l. c' K
C、template typename T+ d0 G8 ^4 _( I. [( j4 F
D、template class T1,class T2,class T3' R. l; A5 V6 _; u1 V: A
正确资料:" X" R( S" m0 Y9 ]2 N# D
* w1 ]* }' x7 ?. y
9 w& X& y# F' G$ I# j6 F第6题,考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()。: v* h m; N6 B$ z4 ~% w
A、test(5);+ e8 r ?9 s/ R2 C3 o
B、test(5,8);
, n4 U- s! O2 G5 A# N2 Q/ Z/ hC、test(6,"#")
9 [- Q2 j9 p iD、test(0,0,"*");' |+ Y* e9 Y' x, [1 z0 O* {* k
正确资料:6 U |; ?; D- A9 n$ b
% [ _0 h& K4 Y6 i2 D2 `
5 r G7 N6 @1 [7 B2 _, H
第7题,下面描述中,表达错误的是()。% J3 V4 [+ M1 c6 X1 X
A、公有继承时基类中的public成员在派生类中仍是public的
4 H5 _- U5 @) \+ C2 jB、公有继承时基类中的private成员在派生类中仍是private的% |2 n/ g" S' C1 j6 G
C、公有继承时基类中的protected成员在派生类中仍是protected的3 g6 Q3 l$ F5 B8 t
D、保护继承时基类中的public成员在派生类中是private的% a$ k9 m* W8 v, H, Y
正确资料:5 j0 I/ t" s* n3 w! O' S
3 k. ^6 E1 J0 V
- c8 F5 ~- N% p7 W0 i$ ~第8题,在下面有关对构造函数的描述中,正确的是()。
/ N5 X, D3 A; }7 y# U3 s' b4 xA、构造函数可以带有返回值, Z) ^1 K D+ C3 \1 G
B、构造函数的名字与类名完全相同
6 G0 Y, ?' C: q( \* }) UC、构造函数必须带有参数
$ f( p; @0 g' q$ \D、构造函数必须定义,不能缺省
9 L: K" X P2 C, Z+ p9 B2 L( Z正确资料:- z1 v0 o& p7 n: z
6 k% K, Z0 w/ i4 `2 Q1 R: H
$ j1 M8 G1 F2 [6 [3 F第9题,构造函数是在()时被执行的。7 z' D; d7 B# f% u
A、程序编译# }) T/ D1 i- [; G1 _! U
B、创建对象7 e- T4 J. z) [; m: `! v' Y; a
C、创建类 G! j8 ]1 s" ^4 K. g1 A# G1 s) d0 g
D、程序装入内存
& _( h* S% W8 M2 I* F正确资料:
. ]" ^" U# h- e8 W4 _* \
' c3 o# ^. f* @6 m7 T
0 Q4 H" p0 j7 T l资料来源:谋学网(www.mouxue.com),cout是I/O流库中预定义的()。! F9 F; i* m& U; e
A、类
1 }, I- N. k5 E% i( \3 uB、对象
8 B7 B& s7 M$ R# ^' ~6 JC、文件6 c0 z5 ]; q5 o# m
D、常量
0 J+ h J; ^/ o2 x( j正确资料:
6 o9 D( m' K/ ?7 @ r5 G% z, y
' ?0 j# G: H: C6 F8 O: l
2 L$ D, ^( q# F6 x& c" S" b" A第11题,下列关于纯虚函数的描述中,正确的是()。
1 [; J s( u5 c5 Z& tA、纯虚函数是一种特殊的虚函数,它是个空函数: i& E" i6 f3 U& N! m3 [' G
B、具有纯虚函数的类称为虚基类0 U$ N/ N0 u3 y
C、一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数
" N3 B; w8 A$ D3 I1 ZD、具有纯虚函数的类不能创建类对象
4 _1 N% B! o+ a7 U0 h9 N( @# u- f正确资料:4 A& \; Y& P: D7 N7 i- v o2 U# |+ p3 B3 E
- z6 F# z; `, M0 Q8 d/ z
^- \: E4 W' ?* p资料来源:谋学网(www.mouxue.com),若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()。6 u; Q+ J" L2 ?+ N) u
A、私有成员0 J/ y2 S: n- I8 _+ ~$ d; s c
B、公有成员. d: g/ ~% T6 Z. J
C、保护成员
: o4 s# Z& D! f) e, e( T0 mD、保护成员或私有成员! d8 Y4 ], _( A! s
正确资料:
; G* {; R! O; g, ~: h. m& J! h( W0 ]3 @$ N# k
" w& P3 F; G! K第13题,在多继承的构造函数的定义中,若干个基类的构造函数之间用()分隔开。
0 t2 {; N" h. l }A、::
3 e$ N. a, Q$ P9 e" T$ o1 xB、:
3 F& M' Y5 {# K9 q* o5 ~1 XC、;/ E! L* X& J9 f% b' L0 e
D、,' Q' @( P- E. }$ i+ o
正确资料:
2 t ?& q$ ]; D
, n# |7 ?3 x2 A5 r: b
8 a" ]- |; ?: }( X第14题,下列运算符中,在C++语言中不能重载的是()。
+ w5 ?( N' m) F& }A、** `& y' D& ^9 P/ {" f" b& ^
B、=
5 E R9 Y+ F3 {; m) ]C、::+ p) h! a& m8 y- n T* ^. e% k. B1 \$ |
D、/
" y) E7 @. ^5 u' B" S正确资料:( R# g/ ]9 [1 M) Z8 h1 N- `+ M
" r# S- R( y6 {1 M+ Z
$ G) j. j+ x+ g& I$ E0 ~
资料来源:谋学网(www.mouxue.com),如果一个类至少有一个纯虚函数,那么该类就被称为()。
, d8 n9 O# _( r1 FA、抽象类
# o( t# c2 R* q6 hB、纯基类
7 Z M Z% i; j) e( YC、基类. x9 V5 `: g6 ]$ v
D、虚基类! j. C3 u- G; B
正确资料:# c, o7 U9 C- B: H) f, z3 I
5 A& V6 Y# y( A: I/ E$ H2 F5 i7 x: G6 ]- H4 u+ ~' @. m+ k: C# h
第16题,C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。
1 Q' E& P& N& R) F, T; j( TA、增加了一些新的运算符
7 u5 @! R* p$ `' VB、允许函数重载,并允许设置缺省参数
7 `4 ~/ r" w" G6 }3 w7 \6 \C、规定函数说明符必须用原型' L, S0 r- m# D5 l) T: ?
D、引进了类和对象的概念
) _5 [" A9 _; V a! c正确资料:
9 [5 {* M- R3 x9 C# s: B
# k) g4 M9 A, a/ k" o; w9 I
( c- ?1 K8 k" j* p第17题,对于类定义class A{public:virtual void func1( ){ }void func2( ){ }};class B:public A{public:void func1( ){cout″class B func 1″end1;}virtual void func2( ){cout″class B f
a: _6 U+ z. a; Y9 Q7 s; k' ]1 xA、A::func2( )和B::func1( )都是虚函数1 z! w, ?% }* B) Y
B、A::func2( )和B::func1( )都不是虚函数7 T! K3 h3 a. M1 H, t+ L
C、B::func1( )是虚函数,而A::func2( )不是虚函数
/ b( ^7 _+ [( v/ q" W5 F4 Z( zD、B::func1( )不是虚函数,而A::func2( )是虚函数8 A1 L% a! E) c8 V8 y Q( v
正确资料:3 B8 T0 n) U1 ?8 Z, f
* m3 h7 q% g1 v$ J
/ O# j$ t+ l& ?4 Z3 U* b' o R第18题,将客观实体的特征与行为作为不可分割的整体进行程序设计的方法称为()程序设计。
% o+ ?: \7 q# x+ d UA、面向应用
/ R( o5 L% z- V, v$ B! \7 s0 SB、面向过程
) E! K& v# v2 SC、面向对象
, N L9 O& J, _' d1 J b3 yD、面向系统$ c1 A$ i- R( x& Y2 s: H4 M
正确资料:
* j* l( I7 @8 U. J/ V G- j5 b. ^! K; w0 F2 M/ P. O
. a5 m! C# F0 X9 k9 O9 e- M
第19题,C++利用()实现面向对象程序设计的继承性。" z/ Q4 Z E' H0 o% A
A、构造数据类型-类. l6 S: N' g7 f* d0 ~
B、类的派生机制3 y, k6 v/ [0 s7 |% u8 g! S8 e: P
C、构造数据类型-枚举
: e. _8 l( e; p, {D、函数重载与运算符重载
. N! X/ W d+ E, H正确资料:
- G- u! d) f( B. M' _1 Z" z) P& s! K* C; ~ U; t% ~
% x+ H4 i- n) U/ H' D
资料来源:谋学网(www.mouxue.com),若已定义了person类,则执行语句"person p1=p2;"将调用p1的()。
4 Z4 P8 a+ z1 a# K0 x( PA、构造函数
+ [( i6 ~4 p* L' w4 C5 k& M4 g/ cB、拷贝构造函数- E$ S5 {& {' C. V; F& ?# P0 A
C、析构函数; N; s) \) h* ~6 n: y
D、赋值运算符重载函数
& h6 L; Q6 h5 ^. a, D正确资料:
8 o* j2 [2 h* s- t, ^! t
1 ?1 e8 C4 b, _0 u
; ]9 j |: R. L9 l9 t6 {3 J/ B6 s第21题,静态数据成员是类中所有对象共享的,可以通过类的对象访问。
3 R5 F0 K* H' _2 t DA、错误
- x1 d; w8 |2 O. [B、正确 l2 h. s3 ^6 o+ T
正确资料:; g1 ?# X& |9 ]& w% j
3 {: g+ ^2 [0 l3 R
0 ]: A9 ?' a; P: Q第22题,函数模板是基于不同的数据类型完成类似的操作,而重载函数则是对不同的数据类型完成相同的操作。9 H- n; R S. s; R% ?
A、错误
3 G$ Y5 ^ f1 E0 ]- v& @( }B、正确 ^0 A, C* `# o: b9 o5 I6 c: B( t
正确资料:
. R! z4 t" ^- D0 [$ w
- s# V2 h! ?+ z+ T s
& K+ j7 l6 d# |! j第23题,成员函数体可以写在类的内部也可以写在类的外部。
7 i* q& V" `# X) J5 S; E$ d4 RA、错误
4 j/ Z$ V$ t& i' n. F. M% {3 P0 {B、正确: c$ c# c1 Y7 R9 F, I8 W& k) ^4 E" a
正确资料:: D# j% h9 G$ q: l
8 I* {9 c8 F& i) Q' @5 O6 ]$ G& T$ H* [9 {5 y6 n' {. s
第24题,一个派生类继承多个基类称为多继承。
- ~ }$ f4 p+ H6 b5 `, q% i! `A、错误
( }$ R% m) M" [( H4 sB、正确
! g: A4 c! t6 J9 c: e$ W( e& w正确资料:6 } g+ v* j8 q* a' d4 ]& A
9 k! b! R5 g3 i. l& l1 c3 R- t
- L5 U1 H2 P% Q; c# |* e# ?4 T6 _资料来源:谋学网(www.mouxue.com),赋值号两边的数据类型不一致时,将无法进行赋值运算。" }( T: ^9 p! m3 S7 f& `7 Q7 z) K+ ^
A、错误: a0 a' x/ \7 T& c3 T
B、正确
: | h! f* g W3 L正确资料:
: r- R }$ i' T4 N2 l# `$ L( h( `# L* d% I5 b$ L" @! t$ K
) k' F/ X6 O4 l& B7 v/ j第26题,一个派生类继承多个基类称为虚拟继承。
% N) D5 L- b' C; c/ gA、错误4 [. t0 X$ j$ Z. A* V. b5 A8 |
B、正确) M- V/ ?7 m" ?& D' E7 G* o2 V
正确资料:; h# ? y2 K0 y' m) b0 N
( [; I: t* a1 _4 }' ]0 P' d
" j: `+ d( }9 `) G- M% z
第27题,一个类可以定义多个构造函数和多个析构函数。4 J% `9 m! ?; d( |$ o
A、错误
, a' g: R4 F) _# mB、正确
: s$ W: M5 J7 Z7 A4 h正确资料:
# M) O8 g7 ?; q8 Z4 K0 R. n& `- T" V# |5 f x0 @
% k/ t) C. o |9 d4 J9 k
第28题,虚析构函数的工作过程与普通虚函数不同,普通虚函数只是调用相应层上的函数,而虚析构函数是先调用相应层上的析构函数,然后逐层向上调用基类的析构函数。
) y1 d8 m& {4 TA、错误
$ U3 O- k0 Y5 p0 j1 a; MB、正确9 ?- w6 e4 X) W% M( c
正确资料:/ l6 H3 @. _) W! C1 ^% R$ p r
$ N V+ Y( o/ H
& M3 p: k+ x" o1 e8 T第29题,get()和put()函数的功能是一次读写一个字符,而read()和write()函数是一次读写一个数据块。
! q2 w1 N$ \. I8 S7 l7 u( SA、错误- o& |/ H C0 K8 |% w
B、正确
" h1 x2 M3 K2 H* L g; J正确资料:
, ?7 B; z1 l! _4 f( `
2 l# c) f; c) g
2 ] A1 h$ _" c: r% @" W: k' }资料来源:谋学网(www.mouxue.com),撤销包含有对象成员的派生类对象时,自动调用析构函数的执行顺序依次为派生类、对象成员所属类、基类的析构函数。# V% |4 A+ S$ h" e$ W2 t
A、错误
9 w7 {8 _; Q) z/ v T2 Z) `8 G% c& kB、正确
i$ F' s" P2 _% u* \9 d/ Z正确资料:' P5 o, k" | U
$ L) ~. t5 ?% a/ j- T/ k y7 T- K
2 ~- c/ d' |' R% K3 S: Z第31题,C++利用函数重载实现面向对象程序设计的封装性。
! d' ]9 _( K% R( p4 U$ |, u3 N3 CA、错误" m3 k* }. E! q" R- t& s1 ]
B、正确
" h& t. K5 L8 S9 s. j8 P正确资料:
2 X! {. Z8 w2 p( r
+ X5 s5 l. i; A# a5 n {; m0 F1 ]: j! F5 j9 p. E7 e. r
第32题,C++利用类的派生机制实现面向对象程序设计的继承性。* c& Z7 ~( H$ K9 Z- y0 `
A、错误
6 c3 ~) u! P8 u2 f8 l. DB、正确3 `( @, \7 F, ^* J C& O
正确资料:! R6 `5 S. a% _9 x- u
% s8 q; H4 ~9 ]; G
3 o! ^2 x8 Q' ]4 `, k h3 }第33题,如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。$ l2 m1 f, p5 u9 k2 E) ]. ~* S
A、错误" l1 F# n0 R2 e' v" y
B、正确; i% c7 E% ?! V* y
正确资料:
: K/ M" x' P1 I5 c! c% w8 s4 E6 V4 F. {( T' _( U: h3 t x1 Y+ m
( M# C8 d8 q& Z) d0 z
第34题,若一个类A,它的两个直接基类是从同一个间接基类派生而来的,则类A对基类成员的访问会产生二义性。
" r8 r- b4 K# @8 |- eA、错误, \4 z* w/ ^ B" v, F8 |
B、正确
2 r T! C/ ]+ T正确资料:: k" n9 N6 B# X. @; b1 U
! i+ `0 \7 ?* m" L- _ I2 Z5 s3 p( G/ |" @( R% ]
第35题,一个类的友元一定是另一个类的成员函数。6 ~ Q( Q$ _ ]+ N
A、错误( k' {5 X1 P" m6 q3 ]( C
B、正确
& u5 y, a; W h" Y/ O正确资料:
" B4 {, u1 \" I9 D0 c9 r3 O
& n: t% _" ^; i$ T% h1 t5 u
, m' q/ }$ V! G4 }7 y$ |第36题,函数重载与运算符重载都是编译时的多态。0 w! b0 Y+ C) ^+ h* c
A、错误
2 c. a+ j, J7 `3 ]8 T) d0 F4 ~7 wB、正确- U8 p3 f9 l. _+ O+ ~3 D
正确资料:
, Z; c7 [1 J: S# r5 {/ T
7 r: @% F1 m2 x# ~& w" B
! ]1 B. Y* t* k( f# @第37题,输入输出特性是由C++本身提供的。7 x5 I5 I( J' K/ b( J
A、错误
& E8 k6 r' ~3 d% b+ cB、正确" L* Q7 T% t4 y) V: u ^
正确资料:
7 |9 Z0 y, ]" w! M% R" I( J+ Z1 f* W# b/ l
6 I7 L H, @- D; s* m7 F第38题,无论何时编译器都为类构造一个无参数的缺省的构造函数。( w, g& p: ]# ~2 m
A、错误7 g [6 L' {& t5 C5 [7 r
B、正确3 U% G, w8 | {' d7 G, o# v' T
正确资料:, k T9 E# c) _
9 p! P! y) R# Y( z4 v
) O& m7 S9 |' @1 ^8 M第39题,拷贝构造函数是在用一个对象初始化另一个对象时被调用的。
% w& N) P6 ]6 {A、错误
4 ~7 r6 o$ U- V( x, VB、正确
! x; _0 G& I9 @$ q, a3 _0 E正确资料:: i1 u4 A1 L2 d: X1 N$ n5 P! J
' ?" K' H* B$ e4 }0 z2 I3 J7 x3 {' {
+ S/ l N: S2 H7 @) s
第40题,成员函数体写在类外部的一定不是内联函数,写在类内部的一定是内联函数。- n4 _: t* q5 ?$ F0 N
A、错误& Q4 o; v" V" n6 r" h
B、正确
! L7 U8 M: B6 n' U( m5 p6 T% Z正确资料:
" p7 [( Q: }! ^3 y* T9 E; c. L
c$ Q( \& a, k: N& ~/ j p7 S4 b8 L" t: e
8 S+ u- r7 I2 q- J& [2 i
: s& i3 c2 j" e y4 P
3 t M& k" f" t, \+ k8 {2 w( q+ N' v9 R, k8 z) O/ r( {! w
; U" u* o. I6 k s( F0 B, d% Q$ C) e; c7 V2 ?/ g' f8 S% C* O
2 G. m4 l8 t. [0 ?
( [, j0 L- m! u
. u, e. e6 Z3 H
" Z m5 q. a7 J) H- |5 V; I
6 G: l/ Y' E, H* z o ?5 f% n% C
|
|