重庆大学网院2018年C++程序设计语言 ( 第1次 )答案参考

[复制链接]
发表于 2018-6-14 21:43:56 | 显示全部楼层 |阅读模式
扫码加无忧答案客服
重庆大学网院2018年C++程序设计语言 ( 第1次 )答案参考
3 h/ x7 e  n. h6 u7 `8 ]. a一、单项选择题(本大题共60分,共 20 小题,每小题 3 分)
& H, X" t, G4 {' F1. C++程序中,数据的两种表现形式是( )。1 A6 E+ g: [5 S8 D+ e2 \
A. 常量和变量
  R$ y, T( V8 r4 ?$ z4 l- z7 mB. 常量和矢量. O5 }# W# m5 o0 _
C. 变量和矢量. S/ C0 N% r' W
D. 矢量和标量$ m3 c$ r% q1 B4 Z4 [, l' ?, y. X
2. C++程序中,定义引用变量时,( )。+ Z; ^7 [& e2 v2 B' z
A. 使用的运算符是*/ b. q  z. B( X9 N
B. 使用的运算符是()
& l, e* a6 D( r0 E' |C. 使用的运算符是&
$ |4 L% I$ G) i# V9 _D. 使用的运算符是[]
  K) q3 I( P7 C+ j4 u3. 下列关于函数的说法中,不正确的是( )。
# ?( X1 s& {' |/ c9 MA. 在不同函数中可以使用相同的名字命名变量
9 x0 g; O1 q% c4 ?( \6 t6 V7 s: ^B. 形式参数是局部变量: G0 i! a, g1 W3 u& F
C. 在函数内部定义变量的作用域在本函数中
. o' P) j( q+ ~D. 在一个函数内的复合语句中定义变量的作用域也是整个函数
+ x- e; R/ E- F8 o5 Z( _4. C++程序的函数调用中,使用数值参数传递时,( )。
8 y* ^/ G' }# v' Z4 `5 w6 h* QA. 能够在被调函数中通过形参修改实参
. ]" z8 G! G+ G2 S: }* A, q1 ?4 cB. 实参和对应的形参数据类型可以不一致
9 H5 [8 U6 s/ ?1 r  _" p6 |C. 形参不能够从实参获取数值1 @8 `8 D; v8 a3 P- H6 `$ _
D. 不能在被调函数中通过形参修改实参
- \& V, p) u* O- [1 X5. C++语言中,定义一个文件流对象的正确语句形式是( )。- n9 k9 \- W: }! w% L( h& K; A' p
A. void *sp;0 W: n% X, D5 c9 M! M5 N3 m1 K) f
B. fstream sp;
0 p/ j/ R3 h8 T" e: }2 W, o  r! yC. FILE &sp;
- @' C* a% t2 sD. filestream *sp;
9 T% s" l. l! }& T8 O1 @' ~6. 对于字符常量'B',与其对应的转义字符书写形式是( )。' p% \# V" J: M
A. '\101'
/ y+ Q6 ]: q' u2 e+ oB. '\x42'& J. ~: L5 e6 d2 G- a- i
C. '\x41'
7 b+ d1 a9 g+ {4 PD. '\A'3 Q/ T- X; a8 o* b: q
7. 下列( )项不属于静态联编。
: K5 }* T: M# d2 hA. 非成员函数调用# H1 G6 l( v, j# S
B. 非虚函数调用
1 ]. `* E/ T3 A2 A+ Z* `& V7 [3 yC. 虚函数调用# n! {2 x- t* t* P$ X
D. 函数重载调用  C- ]9 l. U# n' ~
8. 下列不是异常错误的种类的是( )。9 o9 x, ^+ h6 ~. j" R
A. 编译错误
8 ?* _# e  \+ o+ Z1 YB. 逻辑错误, a# I5 o5 N2 s# m5 c
C. 运行时错误& P/ a; y. e3 j8 ^9 j3 F
D. 服务器连接错误, W8 G; S. X6 @4 T7 d
9. 下面( )项能够正确地定义类A以保护方式从B类继承。. O2 B5 V( H- L2 `7 Y7 i0 K3 d
A. protected class A : B{…}
6 e# X  Y* R6 p# Y+ v) B4 IB. class protected A : B{…}6 A: {, q2 }4 J, M/ n. r
C. class A : private B{…}
+ A2 a  C# k* ?8 }3 h# ED. class A : protected B{…}+ u0 A0 T8 S4 v  f& U2 i& L" k) s
10. C++语言中,表达式18/4*sqrt(4.0)/8的数据类型是( )。1 s, ^; S; R+ T
A. int* P0 |) |( g7 k% |/ b
B. float  }0 K. i7 w6 J; h# D+ J' `3 g
C. double, X! u& G8 z1 y- a& w& O
D. 不确定的+ e6 w6 v' G9 E0 Y. x
11. 线性表的存储结构主要包括顺序存储结构和( )。
6 ?+ K' B/ r+ E7 c7 ~A. 反序存储结构: W4 u7 \9 g- H$ x* O* y; D5 [' k3 V
B. 链式存储结构( ]' S4 z7 ?( y9 {: X$ q
C. 散列存储结构$ W( z  h  N- n
D. 二叉树存储结构  ~8 u1 O' i% {) V
12. STL有大量用来处理容器的算法,STL算法由( )实现。3 p5 P6 Z1 y. C% t; Q
A. 模板类
+ `8 J1 e% \% yB. 类
# W4 A% S& _0 U) h' Q7 O4 z. LC. 成员函数
9 m( ^, x) L! x2 uD. 模板函数- u; V. x3 l! M1 y0 _5 H
13. 类A从类B派生而来,下面( )可以在类A的构造函数中调用基类B的构造函数# E; S8 p% c9 v7 m( x+ \
A. class A : public B {public: A(int i){B(i)};}
/ P  I/ E# G: Q$ |) \3 s: [B. class A : public B {public: A(int i):B(i){};}) w2 J9 y8 H- P
C. class A : public B {public: A(int i):B(int i){};}
! f9 J! V% S0 j2 }1 r, c/ BD. class A : public B {public: A(int i){B(int i)};}+ [% X& h+ {' _6 F/ c! e- U3 S
14. C++的函数有函数头和函数体两部分组成,下面所列的函数头书写格式中不正确的是( )。
# k/ u/ s& x: GA. main(int a,int b)
, x+ s2 N7 U. mB. main(int a,int b=1)$ K1 n  {% f# m' O; O) {2 V& c' Z: ?
C. main(int a=0,int b)) Y  W# n4 r8 A, k  [* L: l) S  h
D. main(int a=2,int b=3)8 X2 n7 N/ A, }9 ~% B
15. 下列存取控制符中,( )能够限定类外代码不能访问被它修饰的成员。
4 ~' N0 N2 S! NA. private
/ J0 c9 G( m0 A- W9 [1 yB. public, }4 z* c2 ~1 |
C. protected5 l: M3 f3 E2 x8 E$ T; v
D. private和protected都可以! C* I* ]1 ?! H! r9 P
16. 有如下代码定义一个对象和对象引用,以下( )能够正确地使用对象引用来调用成员函数。 A a,&b=a;
! \2 m. u5 q8 |A. b->show();
& l) |3 Z- p) ]& D4 DB. (*b).show();7 k4 }+ o0 Q9 Y7 S2 p/ U
C. b.show();) P: J4 z- z7 G/ B  z6 @5 e
D. (*(*b)).show();" t! u1 h8 O- C/ d; b5 b6 W0 Z
17. 下列程序代码运行后的输出是( )。 #include using namespace std; class A{ private: int x; const int y; public: A(int x, int y) :y(y){ this->x = x; } void show(){ cout << x << "," << y << endl; } }; void main(){ A a(1, 2); a.show(); } : n# s5 c) R/ v& Y+ U: m/ y
A. 1,0* j6 J4 b0 Y$ _. e
B. 2,1
+ m1 c% @/ T( D4 ]- [C. 1,2
: \  d% y. H8 ]3 b1 {D. 1,(随机数)
. A( X0 z' A# W: r0 j) A18. 下列( )项的代码,能够正确地将类A的函数show申明为纯虚函数。) g) ?7 f$ u. y1 P, O- B# C) Q
A. virtual class A{ void show()=0;}! b# x9 t8 v& g! ]: t+ U# _1 F, a
B. class A{ void show()=0;}
. t% N6 s3 w" p% _+ @* vC. class A{ virtual void show();}
' I/ `* u8 i4 c' P, _D. class A{ virtual void show()=0;}
' s  H) M0 u8 M2 s5 w1 ?  B# J) K19. 下列的代码运行时不会发生拷贝构造函数调用的是( )。
2 }9 N% r, w$ Y+ a/ X. gA. Point p1(1,2); Point p2(p1)6 \8 Y% V2 M6 |3 Q. v5 k
B. Point p1(1,2); Point p2; p2=p1;
" \! t# _5 a, a/ ~3 M! _5 X2 Z( GC. void printPoint(Point p){……}
0 `; k$ A6 b& C! `2 FD. Point createPoint(){Point p; …… return p;}: K6 C3 ^3 f& R8 I- k: t
20. 类A是类B的基类,下面( )项表示的代码执行完成后,不能够正确调用B类的析构函数。
4 N3 S! p7 G, `$ m4 J+ v3 jA. B *p=new B(); delete p;5 I0 N: C* z# N  H
B. A *p=new B(); delete p;  [, ]* c  _% {, f5 X- C9 ~
C. A a; B b; a=b;
6 ?9 p6 t3 ]- @; n3 ED. A *a; B b; a=&b;
/ z2 _4 K! U7 C2 o二、多项选择题(本大题共20分,共 5 小题,每小题 4 分)8 B6 u* ?! n9 f3 G9 B0 l1 ~/ L
1. 在定义类模板时需要主要一下问题(    )。
5 h' |- t& R* A3 I. W% ]1 h( HA. 如果在全局域中声明了与模板参数同名的变量,则该变量被隐藏掉。9 |4 w) r8 J! \5 _
B. 模板参数名不能被当作类模板定义中类成员的名字。
" _* y" h1 X2 Q% TC. 同一个模板参数名在模板参数表中只能出现一次。  X- X2 M8 k4 i. w1 w
D. 在类模板的前向声明和定义中,模板参数的名字可以不同。
4 H7 v1 Y" v# K9 J) r/ Z4 C  H  h  P2. 异常错误大概分为三类,分别是(    )。
. v9 R5 N) m1 e) f9 u0 |- V3 bA. 编译错误。
- f7 g& Z  T' j: F; R- l. x. _B. 运行时错误。# Q8 U: @* d9 b; C1 j" E% d+ z
C. 逻辑错误。
( T# C6 G6 ~/ Q" `D. 硬件错误。7 ^$ f- q) p% B( K* E+ b( k! ~
3. C++支持的多态特征包括(  )。
6 X5 v, ]4 z5 c0 M/ c4 sA. 重载多态9 V5 \+ H7 Y* k9 a
B. 强制多态
% j3 f' m, R5 w; }; P5 vC. 包含多态
/ x; [$ f/ J+ O5 T/ d& XD. 参数多态! E- F) C; h: H2 i
4. 类与类之间的关系包括(  )。+ n/ I! H& q- M4 Z0 i( t; w4 i$ G
A. 继承8 b4 r" d0 `2 C$ ]: l/ R
B. 引用
0 Q( ]4 f' V$ P3 g+ H, ^C. 赋值+ z; R& O* w2 _. C8 u3 r
D. 组合
: j) l+ Y( W$ a2 ~- L5. STL的三个基本组成部分是(    )。
1 v+ Y0 {6 T2 MA. 容器( j- E$ k3 [, H& o
B. 模板5 i5 p5 }8 h% G& E' V3 U: U
C. 算法& g: `9 V  q: A. [6 D
D. 迭代器
3 `- d, ?  ^) S) ^) W- t  c三、判断题(本大题共20分,共 10 小题,每小题 2 分)
( D! Y" X! b' E* h0 e1. C++语言中,文件是指具名存放在外部存储设备上的一组信息,它们以二进制代码形式存在。. u' g# U! q+ `1 ^# j3 [$ I1 _
2. C++语言中,定义多维数组时,每一维的长度都必须用单独的一个方括号(数组运算符)括起来。! R. [0 ]; f( j# F9 V
3. C++程序中,文件的随机读写方式有利于数据文件的修改操作,从而提高这类文件处理的效率。2 N5 U2 j: R( I. b4 a7 G
4. C++语言中,函数模板本质上和函数的重载是相同的,可以相互替代。, n3 I! K. ~, i( S4 ^. w
5. C++程序中,可以通过输出文件流对象和插入操作符(<<)配合将数据写入到数据文件中。
' L- c" I1 d( s* m% @& Z; C9 _6. 运行时错误是在编译调试时是无法发现的,只有在运行时才出现,并且运行时会一定出现。9 M  ^  _3 k' N/ k- z4 S7 w* f6 `
7. 模板参数名不能被当作类模板定义中类成员的名字。  g1 @9 w( G3 A5 T
8. 为了确定线性链表第一个结点的存放位置,必须使用一个指针变量指向链表的表头。2 |% s  W" f; a* T3 ]) C
9. 类的友元关系是单向的,类A是类B的友元类,反过来类B不一定是类A的友元类。但是友元关系是可以传递的,如果类A是类B的友元类,类C又是类A的友元类,那么类C肯定也是类B的友元类。
8 P2 q0 L- T% ]0 J* j+ l10. 组合表示的是“有一个”(has a)的关系,是一般和特殊的关系;而继承表示的是“是一个”(is a)的关系,是部分与整体的关系。  b' ^( t+ u  p6 Q2 N9 F9 S+ k: e/ q
答案:& M7 C6 s$ q) y2 [& I+ b
一、单项选择题(60分,共 20 题,每小题 3 分)
- `5 c0 h3 r, L; [+ N# o( P5 n1. A 2. C 3. D 4. D 5. B 6. B 7. C 8. D 9. D 10. C 11. B 12. D 13. B 14. C 15. D 16. C 17. C 18. D 19. B 20. B % C1 X. O) i. S/ \2 t+ y! C
二、多项选择题(20分,共 5 题,每小题 4 分)
6 R7 Q2 U, a. f  |  p1. ABCD 2. ABC 3. ABCD 4. AD 5. ACD * c1 C4 p$ Q+ k: ^/ z
三、判断题(20分,共 10 题,每小题 2 分)
# P; Y: d4 [1 W) O0 Z$ C! R8 J1. √ 2. √ 3. √ 4. × 5. √ 6. × 7. √ 8. √ 9. × 10. × - d3 u. p% T; l" G& G

, k' I# H6 x) \8 {- {& [) ?% M3 L" c
快速回复 返回顶部 返回列表