|
一、单选题(共 20 道试题,共 100 分。)V 1. 下列哪个是C++语言的有效用户定义标识符?
8 |+ i0 _+ b8 ]: G; Q+ {1 o: hA. enum
5 w7 g& E" c. p3 M' jB. 2b + \3 C$ K* G% D* N6 Q
C. foo-97 q- {+ E2 o. m; L7 W% G" k1 \8 r
D. _32) X6 L5 [' V: x3 H
满分:5 分# p4 w0 z9 ^( j; z
2. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为
" K: G! D! c1 t: Z% uA. 私有继承
|5 M! n0 t9 W4 x2 |7 F) \% ~B. 非私有继承 V" ~, \3 `* G6 T. I
C. 保护继承
7 O9 W2 l6 W9 B/ ]1 UD. 公有继承
! }$ P2 i' T. L5 S; s 满分:5 分
2 | w! M! L' x8 w5 z% ]0 X3. 有如下程序:
- I! Y1 e& ], J- U#include<iostream> * h$ d# t! Y5 Q8 g6 M! ]
using namespace std;0 u/ C# L0 K# O: V; z8 d. ?7 Q
class Sample{
/ H6 ~5 M; \4 y ?+ spublic:
( D& m! W" }; u: @& i Sample(){}
# l6 M) H0 u) u/ S4 [' e ~Sample(){cout<<'*';}
, r: H! w! T, B$ |" @8 e8 i& B. g" M};& d B% F+ ~) b# r7 g' {
int main(){0 Y9 `8 {& y1 R
Sample temp[2], *pTemp[2]; + Q) b- u0 b7 P! ~5 k! r
eturn 0;0 @3 i, |5 v: r7 R
}9 P$ ]5 H" i6 C6 W4 Z/ H. V
执行这个程序输出星号(*)的个数为( )
. Q" `- `3 c1 \) gA. 1
C$ _9 [ G* B. ]) U3 ^$ WB. 2# C4 J, P. M0 e2 ] j
C. 3. C+ l. r7 k6 c
D. 4# c* d _8 q, l+ G, ~4 M
满分:5 分* n/ ~( @1 p/ i3 ?9 R
4. 有以下程序
4 `5 x( C& E0 S' A4 m9 Iint fun1(double a){return a*=a;}5 A/ [ K7 g1 Z/ O# K: s2 X
int fun2(double x,double y)
9 {; J9 k2 j: O" ~2 L! V{ double a=0,b=0;* K: {+ t' U* U( C9 I4 o% y
a=fun1(x);b=fun1(y);return(int)(a+b);
- O0 ?1 b6 X/ h8 G9 M6 O}. \) W8 R, ]) R c, K' W
main()
, N& w) G) n. a1 y: i/ C! A{ double w; w=fun2(1.1,2.0);……}
. F& \) D5 ^2 z; m程序执行后变量w中的值是
/ c6 k7 m( ^) ]) K) [A. 5.21
; N O- {' T5 l% b3 E- A) S! G/ }B. 5
" t) c( c0 I; P1 K1 @& D! o% P2 QC. 5.0
; h( u* y. q/ Q. S sD. 0.0' d' y2 X7 w, [# t
满分:5 分
6 Q* j& t$ v% J, @' X( r+ z9 t5. 下面程序的运行结果是
) z8 L( M. V/ I#include <iostream>) K1 Y l |" Z$ }
#include <cmath>
' }2 a) u0 P+ O; ?9 B5 X- Wusing namespace std;1 Z+ m2 a- P9 ^. m) E- M' S
int main(int argc, char* argv[])
; }- z+ `; } ]% N O. H{/ s' u6 r2 w3 ?. H
char ch [7]={"65ab21"}; 3 z: c. ^4 M/ A: y) v! f. Y- Z1 q" x
int i,s=0;
$ Q7 E9 w7 Z2 v for (i=0;ch [i]>='0'&&ch [i]<='9';i+=2) 2 }0 L% K' D5 ~3 ^
s=10*s+ch[i]-'0';
9 u1 {: k1 @( a+ j K cout<<s<<endl;
1 w$ \ q+ d9 @9 @ return 0;0 g+ Q/ ^9 T9 U& t
}* M$ ^; B0 U: G9 o3 \( `; R7 |
A. 12ba56
3 C" d( |0 _4 M, Y- hB. 6521, a$ T. l. P$ P" n8 w
C. 6 A0 B# E b* t/ Q6 f" E4 ?
D. 623 P; e2 k3 R' j. [8 N2 B) b# U
满分:5 分( u& D( l9 b& E
6. 有如下程序
8 h4 L( l6 U$ }' k* H% |#include <iostream>6 Q2 ]8 }/ Q2 I# f
#include <fstream>7 W* {) g& J8 ]# o7 [6 Z0 c
using namespace std;
0 T- F$ O0 _" ?; B" L( w! S) Bint main( ){7 h* P# M& R7 D9 `% u0 [ v
cout<<setw(8)<< _<<12.345<<setw(8)<<_<<34.567;
# V6 |0 L! ^6 A) s$ \% V return 0;
/ r4 x% _- ]4 |+ o/ |}
0 i; z2 ?! d1 u$ [' W. F5 F; @4 }若程序的输出是:3 c! V1 a0 E) Y$ D1 t, C* J
**12.345**34.5678 ]( \; K: {/ G% R' B4 l: l( J* y# E" o
则程序中下划线处遗漏的操作符是
% m7 n! h' V% M4 A% b3 \. A/ n: F/ AA. setprecision
! k3 b# h, V% sB. fixed
9 B# ~/ P$ y2 A( zC. setfill('*')
) l; r# T' ?8 M; TD. setw(8)
6 R2 j/ ]$ ?5 {2 H 满分:5 分/ E4 s/ r( K1 x# ^) E0 [
7. 设变量已正确定义,则以下能正确计算f = n!的程序段是
8 S# w% o, _5 ?3 PA. f=0; for(i=1;i<=n;i++) f*=i;
- u& t) b$ `9 D" o3 f& T6 nB. f=1; for(i=1;i<n;i++) f*=i; / Z# E6 Z) r) [0 h7 x! Z5 V
C. f=0; for(i=n;i>1;i++) f*=i; # a+ H3 l) Y/ r- [0 e* x7 i
D. f=1; for(i=n;i>=2;i--) f*=i;2 _% ?: L7 R/ y4 j3 e
满分:5 分- g' q6 @3 b6 L. h4 P
8. 有如下类定义:: \4 T/ t8 Y- E0 Y* z" b8 `( o( C1 f$ h
class MyBase{
0 D- x0 Y$ ?3 d" b# h7 u* P' ~ int k;2 ~4 |, Z0 m7 v
public:
( L( Y A- L9 ]; K9 G7 @/ e, i MyBase(int n=0):k(n){ }
% s% A& C# H+ H% Y8 Y! P int value( )const{ return k;}4 I. D4 j4 x) E1 K, x
};0 K0 m! \/ t5 ^
class MyDerived: MyBase{
3 E/ t2 i4 M: R4 w0 {6 k int j;
5 | a. u( T' ?3 _% wpublic:
( \1 |' L, m' C% `6 T, W MyDerived(int i): j(i) {}
2 ~( Q& K) S, z1 ~7 b q9 x: } int getK( )const{ return k; }: ~$ r' j, U6 @# V( Z
int getJ( )const{ return j; }
* g! p M% v f/ J5 {};! C6 z4 e: N) i" Y
编译时发现有一处语法错误,对这个错误最准确的描述是7 d1 |6 T$ _6 X' I. _
A. 函数getK试图访问基类的私有成员变量k 5 F! l2 |$ _$ n5 B
B. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private
( T+ {) v* `7 E) J$ ~0 g4 V$ aC. 类MyDerived 缺少一个无参的构造函数
* v; }" n( K+ h7 h0 F5 ?! aD. 类MyDerived的构造函数没有对基类数据成员k进行初始化
# K% u B1 h0 [$ z& S9 a 满分:5 分+ z# [8 |/ i3 q n. ]
9. 在C语言中,合法的字符常量是5 v, ^% z% `$ q9 b6 S& g% p* K
A. '\084'5 W5 y+ }+ z8 L& {7 `* c: v
B. '\x43'3 M2 ~" G- x: w8 Q' Y8 r
C. 'ab'6 M. u4 i6 a9 A- P0 G/ C
D. "\0"
- J8 g6 o+ K9 p F* N6 j 满分:5 分$ ` c6 ?8 ^ `% @* g% E: W
10. $ H8 i4 z. ~$ h0 o# I5 w- e/ q
以下程序运行后,输出结果是 * ~0 P- ^& M% D" I) n1 P. D0 h7 H% @1 q
" S0 z4 ^1 X; d0 O1 O: o- F5 N
#include <iostream>
3 x0 D- N7 u8 J; S/ V/ Z$ _+ K! \) s, V#include <cmath>
$ A: A+ q1 K1 d( n7 R4 x- N4 L# wusing namespace std;
8 U* o- Y, [8 N8 E- lvoid fut (int **s,int p[2][3])
9 B6 F9 M& |2 ~ {{
# [/ O/ h+ U9 ^& A+ o2 {/ M3 K8 C9 j **s=p[1][1];
) ?- d* T, |9 e* u* O}
8 ^! F/ ?" m+ H& Z3 pint main(int argc, char* argv[])$ q" v o9 N/ z4 u" }# ?
{* h# \& M0 j" ?$ E, w4 h
int a[2][3]={1,3,5,7,9,11},*p; 8 Y/ p8 c. q7 X* R
p=new int;
. [5 X# ~& y+ N; B2 } fut (&p,a); 7 ^+ @, F4 i+ o* ]/ X+ c
cout<<*p; 4 X3 y# I T8 @5 ]" q( d4 A0 o n
return 0;. {, r! l) D, D3 O
}0 S5 c3 Y9 M" I- b5 j
! t. ^) z% C1 n) u
A. 9
, X0 k9 H! y2 f7 e9 DB. 0" y0 e, n3 c- T$ J6 t: }2 G% D
C. 3
- z2 V) ]- l) F1 L( z- jD. 7
( v) a# T0 u+ i* N" a 满分:5 分8 @1 n! a! c2 q
11. 7 ^4 {( e: U1 |+ n
下列程序的输出结果是( )
+ }9 T3 O% C9 `! y" w* N% s#include <iostream>
' _) }2 S; W7 W6 L! ^1 x( K: Q; W#include <cstring>
' V! Z; X, S u$ D' p& I# _1 P* [3 Jusing namespace std;8 h$ ^- b# F' w+ R- y
int main(int argc, char* argv[])/ X+ d6 \( D; B1 \6 X3 L
{
7 D* R& `1 R- |* ~ wchar_t c='M';
* L4 e( C1 o1 v, K: L- Z- e cout<<c<<endl;
5 U' s7 T6 \$ E1 C; b* j return 0;* e- @7 c6 g& U' E
}
6 E* I" l. v0 |A. m
' j f6 X" \1 @' B$ PB. 77
0 e8 p J; ?5 M5 \: U5 lC. M4 O8 l! Y* x4 N4 i( z* }
D. 103
8 {' n0 M4 `* I 满分:5 分
0 n0 m! L7 g- Q12. 下列描述中错误的是( )
1 l- Y% m4 O7 {A. 析构函数可以被继承
( j5 J* A' U" N9 o6 U1 g) iB. 虚函数不能被继承 o# k+ x. x; U) L$ \
C. 派生类可以有多个基类! T+ N1 l6 X! n5 e5 s
D. 纯虚基类的子类可以是虚基类/ L g. K5 e, n T% W
满分:5 分) {- z6 m1 n0 Y, s' T3 n
13. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是. M) b8 K: O7 C& H/ g1 R
A. 派生类的对象可以赋给基类的对象
( Z- b) W W; uB. 派生类的对象可以初始化基类的引用
9 z1 O& L3 l6 w f4 cC. 派生类的对象可以直接访问基类中的成员2 v0 D6 m# w5 P0 H y8 G
D. 派生类的对象的地址可以赋给指向基类的指针
9 y9 o' N8 o3 ^$ B9 l+ Y1 i U 满分:5 分- \: }9 _/ {& ]$ ?
14. 已定义以下函数- Q* I$ Y8 G- B l" g8 f3 `; K3 N
int fun(int *p)( {; l" d* b. ]! f
{ return *p;)
4 `, h/ H9 o3 D% I( k; ]9 p& @: d6 |3 wfun函数返回值是4 P! `1 ~! {. n* A# w( \% ~
A. 不确定的值2 v! c4 ?6 k- I m1 H
B. 一个整数
7 P6 \2 R. _) r' X# |C. 形参P中存放的值% X( ^3 M. M' H7 _/ P
D. 形参P的地址值
8 q. ?2 m9 `6 _6 }% `: [0 a; Q! { 满分:5 分
* K6 c+ y8 I6 d w; S+ X2 u15. C++语言中关于构造函数的说法正确的是( )$ H* Z2 y) y. L" p! R
A. 构造函数的函数名不必和类名相同
8 J# Z* [" A1 l, ]9 [* cB. 构造函数只能每一个' L! Z6 M; C J7 Y7 w+ |
C. 每个类必定有构造函数 ' n( ~* |, C3 |) w1 E7 S
D. 构造函数必有返回值. \8 v5 N6 X- E8 q+ f9 @' C
满分:5 分' D. o/ I7 @( h2 ]8 q% f% R
16. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明" G! `0 _6 C8 S, s6 x1 x! K' A7 Q5 i
A. f()是基类的私有成员' a; L' j; P/ P
B. 派生类的继承方式为私有5 v! g+ F2 T- X* H8 R8 b! ?1 ?
C. f()是基类的保护成员
% j7 P3 S$ D# C5 `D. 派生类的继承方式为保护$ R8 S- d% X4 j6 Z4 a) C. k
满分:5 分+ E. G/ u. [4 c7 \1 Q+ d
17. 以下叙述中错误的是( t# S) Z3 |9 D5 f# g/ k
A. C++语句必须以分号结束
) V- O% R8 w/ W* W# b& V5 g1 EB. 复合语句在语法上被看作一条语句
- C) ]2 P* n" [# F8 |1 O/ l/ QC. 空语句出现在任何位置都不会影响程序运行$ z) K3 f8 Z( s5 D1 |& j4 i
D. 赋值表达式末尾加分号就构成赋值语句6 T( L' b( m. C/ g" \6 o
满分:5 分
+ C. B+ s. @4 C! O18. 在类声明中,紧跟在“public:”后声明的成员的访问权限是
. k4 c) `/ i" b+ E( k1 L* j5 rA. 私有- q- \$ G8 S% ?* Z2 v3 t
B. 公有/ i3 q+ e6 d6 a `# C
C. 保护
2 S9 }& j+ D! `# j# ID. 默认
" B9 e4 x: f: ] 满分:5 分
/ E# ]8 Z4 W# r9 t19. 下列程序的运行结果是
% I8 B/ c( ^; |+ qvoid fun(int *a, int *b)( n; y5 ] k. N4 G
{ int *k;
) f2 F1 N! p5 X, Xk=a; a=b; b=k;- {- s6 u: ~: b9 F
}
1 a# I* L1 w6 t g) k' xmain()
( k Y* J2 N+ Z3 a3 d- M. ]{ p% v) w; F2 I$ c2 J
int a=3, b=6, *x=&a, *y=&b;
+ E4 {8 N: R4 ]# Y! k8 F* l: Hfun(x,y);
9 S- `* u' K. O5 {7 ~ |- ~+ pcout<<a<<b;
) Q# ^) u: b3 }7 w" q6 g- x}
0 s4 ^% ^2 r+ _- nA. 6 3 - e; z7 L: J1 z* U' L) ]
B. 3 6
* k; t* u7 i( w! WC. 编译出错
7 E- M3 e/ B( M# T# V f7 R5 mD. 0 0
9 q8 J' m/ p+ l5 y% n/ R3 o 满分:5 分8 P0 r) _3 O$ S
20. 以下程序的输出结果是
% t8 m+ ^ r! }8 W- I7 B1 b. a. p#include <iostream>2 f- V' }" D; _! i+ A7 a
using namespace std;
! z8 T6 G$ S1 j6 Llong fun( int n)9 p& d, k. n$ S
{
# P5 Q% Y9 x. K* J$ L! H2 K: \ long s;
' g2 m. E/ o. z [" |% ~4 G if(n==1 || n==2) s=2;
1 e* O5 |1 E8 `+ h# j" \ else s=n-fun(n-1);8 X4 V& t" G2 d
return s;+ X8 f! t X9 p
}( B8 }4 E" B- \0 v
int main(int argc, char* argv[])& e- M( y9 R% D$ W
{. r/ w; D1 @% q7 D1 {9 O$ E
cout<<fun(3);4 J. P' F1 [' I3 g N7 O* g# J- Y
return 0;* Y8 }- `& Z. \6 d- a+ a+ l
}1 i/ D7 _ B" o6 ^0 D/ Z, V, m) C
A. 1
! V" v( s4 u: k+ zB. 29 B% h8 B$ _2 b! A3 i# d) Z
C. 3
7 L! t6 T9 c' I8 b; q1 T) ^D. 40 T8 b& [, L. ]
满分:5 分 , r# z* b8 h) {: M8 h: ?0 ^. r7 q
( z7 S* I6 d* j5 I9 F% k |
|