|
资料来源:谋学网(www.mouxue.com)C++程序设计-[东北师范大学]《C++程序设计》2023年秋学期在线作业1
; B1 j' J1 w- d4 `( c$ P试卷总分:100 得分:1003 Q0 o- Q8 m; `( `5 d2 |5 B
第1题,假定classA为一个类,则执行"classA x(5);"语句时将自动调用该类的()。5 _0 M( I* p" A1 Y8 \) b
A、无参构造函数$ X8 D9 k1 r6 m. e- F# R" w
B、带参构造函数* m* q) x) j( ]% Y; I
C、复制构造函数8 z; B/ T& ]% ]! K- \7 l
D、赋值重载函数8 O3 ~ I7 g0 s% x
正确答案:
# ]% G9 }" y! g" z: g' `5 G
/ m, r6 \4 w3 R( c6 v7 J
) H# q! C8 ?, ?第2题,下列格式控制符中不是定义于iostream.h中的是()。8 z& w; J! n/ c B! ~
A、endl
, N4 K$ ~6 f7 Y/ F C/ @9 x1 MB、hex
4 s0 Y; R4 r0 }/ Y8 r4 G: ^% v* DC、flush9 y, Z7 v+ {% W0 T. @
D、setw2 Z1 z" h& ]- u$ {1 e; [* |
正确答案:
) {3 R* G' }6 S4 j1 Z, N) _4 U* w8 K' A
, C: [3 v! C5 U0 I" Q: W第3题,下面关于运算符重载的描述错误的是()。! Z: Z q. T& ]! T0 B
A、重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构" B7 h9 z' `, T+ U* d `
B、不是所有的运算符都可以进行重载3 Q D4 C% w% c+ h
C、运算符函数的调用必须使用关键字operator
2 r J6 C. _6 c( r6 eD、在C++语言中不可通过运算符重载创造出新的运算符, U% N+ @5 S9 \6 v0 M
正确答案:
( [, L$ H- m' I- ?
! i' {7 S& |' K! B" u3 S7 j# `. y7 [- ~ |5 y2 J. M4 K
第4题,read()函数的功能是从输入流中读取()。1 V5 s- J1 C+ ]" ~( w
A、一个字符
/ _( p/ [/ k$ ?3 f. M. _! wB、当前字符
7 A0 @; R9 Q6 \2 N3 n% F5 ~C、一行字符
& W$ c1 N+ k! `9 c2 J" I5 I; @D、指定若干个字符* J, r0 j/ G$ k, K7 z
正确答案: s8 r- L3 X8 _1 w8 J
3 L, k* _* f. a
% G! h" ?! j! [8 i/ b. F
资料来源:谋学网(www.mouxue.com),当将一个类A说明为另一个类B的友元后,类A能够直接访问类B的()。
% z B/ j" k- w. E0 e. W% sA、只能是公有成员
+ i- H0 B% _6 U' v6 xB、只能是保护成员+ S4 Q% k0 l1 A. G& @5 E
C、只能是除私有成员之外的任何成员
' P6 Y# H S: `D、具有任何权限的成员( L; M) t! Z; S/ ^6 `
正确答案:
5 J* X" _- N8 F6 ]% Q- F- d+ d* }# r( t% W# z
6 Y1 Y4 v2 V2 ^6 E/ @. n第6题,在一个类的定义中,包含有数据成员和()的定义。9 ~6 f) I9 F# y1 \! c" C9 m
A、数据
: t' e9 a& y( W% aB、函数
|2 R n2 a$ I1 ^0 H6 M& XC、成员函数
+ G O# L8 n6 f! R2 \" v5 lD、友元! i1 w: z5 V* M3 f, r1 v
正确答案:' W0 ]9 i1 s# X; j
# b( W4 z8 L8 y$ a: u8 }4 y: e
3 z A- y% v1 P. h) Z
第7题,假设定义了一个具有构造函数的book类,构造函数只有一个非默认的整型参数,则下列的类型转换错误的是()。6 l) f! ?/ d& A
A、book(12); W! }( v) t( B
B、(book20);; _. v2 z! q7 K" _, B
C、book x=2;
" G, }; d( r% D0 gD、book x=book(2);. V6 Z$ w b% }- s& ~
正确答案:
' E, e ~0 G4 a
# Z' p- c0 T3 W+ Z7 h N3 N/ e4 } z+ C- S# S
第8题,假定一个类A只含有一个整型数据成员x,当用户不定义任何构造函数时,系统为该类定义的默认无参构造函数为()。
# z- b) a/ }/ J5 g7 u2 N& i$ s0 dA、A(){x=0;}
2 W G6 x5 P) W# k- h& J/ G6 b) jB、A(int a=0):x(a){}
! B8 T; }2 `- B i5 j+ BC、A(){}% r% g) @6 a! e+ U1 L
D、A(int a):x(a){}
# l( V5 `8 k* S+ |9 S5 `& r ?/ Q: {正确答案:
2 y; w" t4 T' {* x; @( f$ R; h1 `; }. q; M# |; w( x
5 Z/ E2 \$ |. Y1 k9 o$ G
第9题,要想以读方式打开文件"D:\File.txt",以下不能实现目的的语句是()。1 Z) ]- O& c( `# \
A、ifstream inf("D:\\File txt",ios::in);: O9 {& }8 n# b8 X; |& f2 s* |
B、ifstream inf("D:\\File.txt");# G% g3 T# I8 u( X+ U! ^* Y: Q
C、ofstream inf("D:\\File.txt",ios:ut);+ z4 R: f& D# B/ B1 R
D、fstream inf("D:\\File.txt",ios::in|ios:ut);7 f+ O0 Y: Z. `8 ?6 l
正确答案:2 J/ y+ i2 c/ J1 d: m9 J
+ i E3 R3 P% ~7 @
7 g+ K: K2 P7 B+ o) V9 ~资料来源:谋学网(www.mouxue.com),决定C++语言中函数的返回值类型的是()。
4 M. L/ P! q `$ v1 g fA、return语句中的表达式类型+ _" e7 {$ r* I2 t: F) b/ f
B、调用该函数时系统随机产生的类型
: U, \' s! h; {C、调用该函数时的主调用函数类型
- [$ [ o" U, \$ kD、在定义该函数时所指定的数据类型
. r' c+ H3 A J, E正确答案:
& |( Q2 b# M6 y+ @6 R! d- U" s2 u# ?1 o
3 L7 T, D8 I, F1 G# O7 L2 X* U第11题,下列输出字符'A'的方法中,错误的是()。& |% S4 ~, `" H, g* N
A、coutput('A');; G9 N3 m8 z! {+ d
B、cout'A';
) ~+ H* z8 t( X; s+ z9 g# `' v9 H( pC、cout.put('A');2 i* Q. V- c u/ z# t
D、char a='A';couta;4 Z0 ] D. p: z
正确答案:A& [. z& ]3 o! c b. y4 x
" a3 z; E- K9 x$ }6 U# i. q) A; _& t' f1 D+ q
资料来源:谋学网(www.mouxue.com),下面对静态数据成员的描述中,正确的是()。1 e$ y/ ^# y5 H: k
A、静态数据成员可以在类体内进行初始化
8 l" c1 _8 ~- k; y) c% ZB、静态数据成员不可以被类的对象调用* o3 T6 @9 T( H/ @( u/ V X4 q" c
C、静态数据成员不能受private控制符的作用
2 ^) W7 G3 d( d6 j6 I5 tD、静态数据成员可以直接用类名调用
3 Z$ X/ n/ O, N( g% v正确答案:
" v- q# U& A5 j: g" M
: ^9 _- v) u& _/ K
3 L# t! L0 s9 l& V2 F! r; i第13题,当使用fstream流类定义一个流对象并打开一个磁盘文件时,* V a/ y5 [- y, N
文件的隐含打开方式为()。
, Z9 z) t H9 n4 V$ R fA、ios::in
8 A2 Z, S) a$ Z5 @5 }7 ]; j( h. m7 vB、ios::out$ L( Q8 W1 ?# u
C、ios::in|ios::out
. M5 B+ l6 A% n& T# m3 ~; KD、以上都不对
, N5 r( K) x* C+ c7 U8 J正确答案:
: ?0 c1 j. l' c; w! a) j/ a: C& H+ F/ ^
; a7 o8 R- b# |3 J+ v
第14题,使用派生类的主要原因是()。
, |" x/ e! _# k7 i+ g/ XA、提高代码的可重用性# `- b& f( b$ P% x
B、提高程序的运行效率" C8 o; }9 m. c f9 f
C、加强类的封装性; e$ b: ?+ e" y& l6 k8 }% ~
D、实现数据的隐藏4 I: u& G; [8 d) ]' t# C0 S6 W8 q. g
正确答案:A
: A% k6 {4 ?, ~3 W
" n1 h7 `8 X1 z5 A+ t, @6 n/ H
3 u. Y, Z; ]4 ]& F资料来源:谋学网(www.mouxue.com),C++利用()实现面向对象程序设计的继承性。9 ^/ E# G0 d& W3 O) Z ~8 Z$ S
A、构造数据类型-类* |; L/ W$ ]0 M5 G
B、类的派生机制' l( _$ i" [, g8 g. y9 h
C、构造数据类型-枚举, D; z' Z& [; p& K% C. @
D、函数重载与运算符重载
* n8 T, v1 B( G+ b" m% b正确答案:( M, s" X# T4 ~9 I Q
, P5 n1 I" O5 K) w6 F. i }
1 Y+ I7 B# v; T6 L1 }第16题,假定classA为一个类,f()为该类公有的数据成员,x为该类的一个对象,则访问x对象中成员函数f()的格式为()。
/ @3 ]9 i0 g/ E7 n1 K1 ]" lA、x.f' y! `2 T& @# R1 {7 |9 g
B、x.f()
5 W# \8 X$ r, T8 z! R7 VC、x-f
) ^: [8 r0 {% D# WD、x-f()1 v& I& l6 I b+ b3 K
正确答案:
7 `! |4 l& u3 h1 }
5 U& g) a* o) }- o' z. a t" F3 J' t7 O& Q2 W
第17题,C++的继承性允许派生类继承基类的()。
! j5 H+ a5 V& a9 VA、部分特性,并允许增加新的特性或重定义基类的特性
" [4 [- n+ ], aB、部分特性,但不允许增加新的特性或重定义基类的特性" U5 P2 e3 v% g% T+ A/ z8 @- ~$ \
C、所有特性,并允许增加新的特性或重定义基类的特性/ _* q% v$ G8 G: B8 U! g* F4 r
D、所有特性,但不允许增加新的特性或重定义基类的特性
! L! z O' V% }正确答案:
5 X% ~/ o4 ~% h- U$ y
' R& U* W( p6 J$ C% a' a/ r/ w. N0 ^5 d
第18题,下面对于指针的描述不正确的是()。, W' D: [' m. s/ E7 X
A、指针是地址变量
! D& D7 c: I) [$ a1 OB、指针不能用除0以外的常量赋值- X1 a3 ]4 b' ^
C、两个指针变量的加减法无意义 u3 ]3 W+ b7 a
D、指针指向不同基类型的变量长度不同( q1 ?: I% u' C. n! o+ B$ R
正确答案:
0 B j" ]3 G' ?! I# ~2 b
& n9 L0 D; p9 e1 v
' B4 o. K9 H& |: m; f8 @6 D第19题,在I/O流库中定义的控制输出宽度的函数为()。
# V: m7 T! v2 q. `" U. W: U0 cA、width()2 x0 n( q! r' k2 s* [
B、fill()
' k z" T9 c7 WC、precision()
1 W2 d$ k& j0 VD、setw()
2 G5 y* p* P9 Q" L6 K) j% ]正确答案:A3 G0 |1 j% r& O8 J
' r) b9 u5 {" o- z) G6 O
i* e" s* \9 v
资料来源:谋学网(www.mouxue.com),如果一个类至少有一个纯虚函数,那么该类就被称为()。
+ a+ ^. \) e/ G/ CA、抽象类+ A7 r$ k* }7 `; A6 v
B、纯基类5 a- m! V/ {% G5 |
C、基类
6 i2 \6 j! j& u4 Z2 a2 ID、虚基类
% d5 e; K1 e& d) p正确答案:A
5 G( q3 Q3 n7 j+ q. j6 @3 X
) r" {, P3 N) E4 C; O% I. B) ]8 Q- p# Y$ x7 a) Q" t
第21题,静态的成员函数没有隐含的this指针 ,所以它们只能访问静态的数据成员。2 q& b1 B# o& R9 k5 }' l
A、错误
0 e6 J' N, a0 Y) C# |) F$ SB、正确# x2 K" I- ?3 Z ` C
正确答案: d6 m2 W3 x/ m/ O# l
7 d" Q$ b/ [2 y6 v* T2 O9 o# m9 r# `
第22题,凡是左操作数必须为本类对象的运算符均应以类成员函数的方式重载。 H& W" Z& s# w
A、错误
' ~( g1 U& O, I6 o2 ZB、正确9 o& r8 f4 ~- q# n/ @* {3 O. Y
正确答案:2 `% ^. \, y( |; ^3 l
r2 z0 V, N+ J8 k' j# C3 ~
: _2 N0 w" _& o$ e& |第23题,原型说明中没有指出返回类型的函数(包括主函数main),C++默认该函数的返回类型是void
; I) }5 P5 ?. @% DA、错误7 {; N7 t) N4 w1 K, C
B、正确4 @( v2 r1 X. k) x7 V4 j0 g( R) R# P
正确答案:A; E% B- z6 _" K2 C) t
- K7 t3 f4 `$ s
* C( q( P a; V5 N1 w) c
第24题,如果要在程序中使用IO流库,应包含头文件iostream.h。
) s8 _. Z5 ]& z% LA、错误7 C0 \' B9 y; j7 c2 h3 y3 Z; H4 e& m9 g
B、正确" H f# O) C; C7 L
正确答案:
9 K2 H7 s0 A/ l# r0 ~4 b& {
. R' q; D- ~3 N# ~1 u/ L2 t2 e& P& x0 v! J# N- I
资料来源:谋学网(www.mouxue.com),C++利用类来实现面向对象程序设计的继承性。% ?+ I8 Z/ B$ c$ A0 y/ R0 N0 N
A、错误
; e! ^5 r, P @5 J$ [B、正确5 G/ C8 T |+ D+ o! G1 K
正确答案:A
( M8 ?7 D0 ]4 B8 e4 q
/ s3 ]2 j& G( L* X! S7 n) V% p" c0 ^2 y7 v. a) {, m
第26题,IO流库重载的插入和析取运算符能处理所有的数据类型(包括自定义类型)。
9 d% g4 [3 o0 P5 ]0 C( A4 nA、错误
5 h, b2 d, V" I' hB、正确
& f3 Q. |. b$ ^. S0 H正确答案:A/ _ A( S7 _5 k, m( B
) V% q+ C4 P' i8 [( v. L+ O% j
* Q. T9 G9 O! [& |) d( q- P第27题,C++不允许定义有默认参数的函数。7 s9 E$ |% X4 y5 u$ f# K- T
A、错误
7 t: i( U. c1 `) I5 k1 d9 w0 o2 OB、正确- h0 P4 r- }' E5 J, I7 A5 P
正确答案:A6 X# s& p: b1 C' y6 T9 ^/ `+ ?
' k5 ]# p4 b& H0 ~5 x3 V1 ^+ x9 q! i( I& T% {
第28题,在面向对象的程序设计中,将一组对象的共同特性抽象出来形成类。
. q, Z P* C8 J/ t# J5 [/ {! o) HA、错误1 J, V6 E( w4 ^9 p4 A
B、正确
9 Z; s" b0 Z) D4 @4 M. ]正确答案:; I( r0 _$ @) E. h) [2 ^
$ h b/ X: j4 Z0 M9 Q9 K
0 A1 X4 {- n7 j/ d8 U y- }/ g第29题,一个类的友元一定是另一个类的成员函数。/ d" H T0 T+ e, b( H
A、错误
2 v4 J* P/ e8 f0 m& P( H8 G1 M. GB、正确8 u/ B- A! q" ~7 q9 S
正确答案:A
) t2 n/ _, s4 t; L& i4 O# c. Z% i' }+ |. \) {& @) q
$ X4 s B F a; k& H& N
资料来源:谋学网(www.mouxue.com),cout通常与显示器相连,cin通常与键盘相连。
2 \! b0 o! t! b- u) ]0 f+ `1 mA、错误
2 ^; A! f5 ]( K9 vB、正确- h2 ]8 |- B" A) p9 \( M
正确答案:3 K( Y( i8 s0 C4 u; E
% a% }. |5 `' X, Z- w0 y$ n1 j
/ z) @4 {1 k0 S: P0 E第31题,IO流库中定义的格式操作符ws表示跳过输入流前面的空白字符。
4 e: R! J$ S5 |* H* BA、错误
& N" q5 Z6 a$ y9 WB、正确
9 v) a9 @# d% u9 W4 \正确答案:
7 R/ i( o, C& ]9 e5 R( g+ K' I: b1 U5 s1 n0 e/ l: \
8 D. B' `8 e0 V0 b& ?" X第32题,在C++中,构造派生类对象时,总是先从基类的初始化开始的。
! ?+ ^; T' }0 i& _8 b! xA、错误
5 d5 h' [ J: n; d! |B、正确/ A' H0 T6 `% [8 G0 {6 R
正确答案:
4 k5 G3 N9 R+ x/ j
: |, J0 |8 B, j8 e% T8 r8 n0 \9 @# U/ C0 D$ Q
第33题,在一般的成员函数中都隐含有一个this指针,用来指向对象自身,而在静态成员函数中是没有this指针的。
& k6 n# \9 }* TA、错误9 N' R$ g" ]/ \
B、正确
9 h) h& O2 i* s# w+ X正确答案: o5 M7 o7 o( ?& c
( _5 l K1 V9 m- K- x$ C; ?7 P. [: d" E: [0 {. M4 Q
第34题,类和对象之间的关系是抽象和具体的关系。* p+ F1 \+ r( A D
A、错误- i$ Z2 o( N4 i% Q9 A6 h6 M5 m
B、正确% r1 A1 q4 r e
正确答案:
" d+ m% n r4 h; Z2 p
' H) y" H. \. y4 ~& m2 N+ s) r3 q6 |! O, r4 I
第35题,公有继承方式下,基类成员的访问权限在派生类中保持不变。
3 m5 t# c& \2 P7 b, @- S* qA、错误7 ^1 _& {- z8 c5 \2 b
B、正确
; `, U5 [) a* N% \) C1 p3 C正确答案:3 e/ n. p' g& B! ~) x+ H# X
& x2 l7 [$ t) l3 @ {$ y( q9 ~
2 `! H+ q5 u' j9 O& _, S! y/ N9 }* k第36题,若左操作数为基本数据类型或其它类对象时,此运算符应以友元函数的方式重载。
+ D5 q0 O" `9 f7 W/ \ Z' \+ LA、错误
9 p0 E8 H: s, U# d: fB、正确% p- B2 q6 f7 C
正确答案:
( r8 P1 L# Y5 {" M2 [
( j- \3 p/ A0 O I5 V: v3 L' T1 i7 K1 X/ B5 F/ a
第37题,编译时的多态是通过动态联编来实现的,运行时的多态是通过静态联编实现的。
2 G1 q: h: K4 v# Y, xA、错误
. k9 D7 D" {4 U6 DB、正确
* m9 ~% i4 P H7 b正确答案:A. U! m+ ?, @: I1 W9 F$ k7 j# |- C/ H
+ ~2 E* R- D0 F+ x# \6 B
+ T/ V6 C0 V1 p6 o* y+ e8 p6 Y9 P- w; O
第38题,构造函数是不能说明它的返回值类型的,但可以说明为void类型。
' H& X& r1 f8 N3 r) g4 nA、错误
9 f5 ] p7 k" D0 ZB、正确; X1 g" K. U& i
正确答案:A
+ }- S) P% g8 ^/ B: M- j5 ~8 R/ V
! {1 ~; h% h K S
& r. b( ]; @" h. m) T( [+ g5 |第39题,C++对由const修饰符定义的常量进行严格的类型检查,但对用define定义的常量则不进行类型检查。! `$ a; o& X0 w7 [
A、错误 F# h3 X; F- i- J
B、正确
5 n0 E1 v6 E0 \5 K正确答案:
) W8 G; p# O' F/ S! [: t) v _: s
$ m9 Z# C% @0 b L; q. D7 C4 ?7 ?. V! S
第40题,构造函数和析构函数既可以由程序员调用,也可以由系统自动调用。) K4 N" \8 \2 n$ F
A、错误& Y% w: E" L% k7 N% x J0 J
B、正确
; d `3 r8 M) s! z- I0 l正确答案:A, J% C4 _* ~' E7 l/ V
$ X! K( K9 @% h1 V0 O: A( w1 j! ~; u0 c
; m" D! H7 q) `4 J9 h! L
: w1 W" Z. g ~ X# F& n; j$ G
1 b8 n" u! V# N* F; ?
8 l- L v5 E; T% D/ n) W
- U3 w% v3 X! C' @% S; ~. v/ l! {7 R7 @ n2 ]
9 l% L- ?3 k& }) P7 n0 u
! I5 ~3 \: Z; `2 \" j5 S8 X* H/ a/ T
/ q2 a0 T0 M* R6 ^+ m3 o; `. r5 V: Z* |8 k
& C2 Z' `* y d( Q
7 T+ r- O3 _; d' |, O; t. k
|
|