|
一、单选题(共 20 道试题,共 100 分。)V 1. 下列哪个是C++语言的有效用户定义标识符?' h* n' ]0 |5 T( D3 `3 R. l
A. enum
: }' d ^1 f( o; UB. 2b % b7 P) f8 V, B/ J) ^
C. foo-9
5 l" e1 f$ x; ^0 v4 ^6 |D. _320 J" D- S v9 v9 @" g
满分:5 分9 g; M3 z {4 V+ H- B7 @; L7 z
2. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为
" `% D: W- f0 b* XA. 私有继承
, b' [# h( b# s0 mB. 非私有继承 1 N! N) }$ [% C2 d7 F( h) g; ^
C. 保护继承 # m5 V9 _( O3 ? q6 h" L& Z
D. 公有继承
$ A' J+ L: ^. D2 S: E 满分:5 分4 {+ ^- A* C- F6 Z5 s# H9 B
3. 有如下程序:5 e7 D, E) l" P ~* N3 j" x
#include<iostream> ; ?' q+ B- s, ?" b+ R. g
using namespace std;
8 V4 @* g) Y) O7 _' G: Eclass Sample{ ]) h+ J" Q* m( J* J/ A
public:1 Z0 t0 H! R! G- M
Sample(){} $ m6 ]9 a# d" w) l- i+ F- E' i
~Sample(){cout<<'*';}1 s1 J# X$ e/ I O% w% P! l
};
0 M0 Q9 K7 P/ a& G8 f4 |5 Dint main(){& a% e9 a' }7 I0 D, X2 m
Sample temp[2], *pTemp[2];
- c- H* Q! \3 ]4 P: X4 P4 X- weturn 0;# V4 B7 h0 X# s
}
. V. x1 E4 |8 O5 B8 x+ y: e执行这个程序输出星号(*)的个数为( )
" |5 n. U7 |" A9 X$ A6 yA. 1
$ v8 O9 P* n8 K1 }8 Y5 [. u5 sB. 2
5 `5 E, q( r: R: aC. 35 I$ R5 m8 [5 ~% P
D. 4+ ~) N2 q* i0 U: x
满分:5 分0 C) d, V a6 g
4. 有以下程序
( v* c. X) l6 W. K5 `int fun1(double a){return a*=a;}
* a7 j% H! v0 ~+ }int fun2(double x,double y)7 K' |/ N G, P8 d" {, g' k3 {
{ double a=0,b=0;" t: T; x B$ I+ e/ L' F
a=fun1(x);b=fun1(y);return(int)(a+b);
+ S5 g8 X, y* H! n! @ A3 w1 y! ^}
. _3 F: @, H" o/ cmain()$ A1 |, d! w3 c4 n
{ double w; w=fun2(1.1,2.0);……}$ P% k% B# l$ v/ e- i- _9 I
程序执行后变量w中的值是" H. x* Q9 Q5 K; I
A. 5.21
6 n5 `* z; q0 S2 p7 n/ MB. 5: {! N7 F$ s, u @% C! R3 f
C. 5.0
$ F, n9 c( J. w! B$ p! B5 sD. 0.0* `+ L) L2 x3 V# o6 S5 |
满分:5 分
: a3 U) M' G3 l* d* w7 z& V& M5. 下面程序的运行结果是
* M& U4 Q! ~ X#include <iostream>; _7 l/ R0 O1 S! x" V- C! u
#include <cmath>' g) v: j3 e0 { A0 y* b
using namespace std;
: t( A3 U+ D8 j& j/ |int main(int argc, char* argv[])
$ g4 e O4 @6 n" J{( {9 X4 I! c, i) t
char ch [7]={"65ab21"};
3 l- ]+ r2 w% N1 J, N int i,s=0; & a4 W/ X5 l5 D8 e+ u! V: [
for (i=0;ch [i]>='0'&&ch [i]<='9';i+=2) 2 |, i" ^/ N7 L# _% i
s=10*s+ch[i]-'0';
$ X* L" y9 l) P: D3 P% M* U% ?/ K1 \ cout<<s<<endl;% I0 w( K `" V& A
return 0;
6 R: h! A! A; P, L0 l}
, a! M3 _2 \$ p/ i9 X |A. 12ba561 e- w9 |4 t& S" ^1 f
B. 6521% j7 Z& c% C4 O9 M; w
C. 6
5 k6 {* O- @5 G" RD. 62- D: F1 ^" c( f1 d4 \# y0 p7 R" a
满分:5 分
0 k& [9 }" G. U& X1 ~: y6. 有如下程序6 b; _; I) Y/ Y
#include <iostream>
/ h& ]( p$ O7 x9 @! |#include <fstream>' v+ I+ t* Q5 D6 ~& r9 `
using namespace std;+ D8 z8 l- x, P: r
int main( ){
# A+ v+ \2 e8 X4 t cout<<setw(8)<< _<<12.345<<setw(8)<<_<<34.567;
- U1 D1 X% M. z T: ?$ X3 H return 0;
0 x; s2 i! A! f. u: M1 Z1 h}
8 E: r7 K8 m: o4 C! W& A5 N若程序的输出是:
: F" x5 U3 C% a) `& d, R**12.345**34.567
5 a! g% k D0 U7 t8 Q; Z7 O/ O则程序中下划线处遗漏的操作符是9 j/ d- O S+ T/ q+ P: r
A. setprecision& f0 f2 m" N+ I! ?9 y
B. fixed
9 V2 J% W6 G+ Y! @/ l/ xC. setfill('*')
! i- z* B' {: l$ s" x) k: T. F( p5 fD. setw(8); b' k2 l2 H2 V4 B; j0 l
满分:5 分
; z, }2 u! [: i! ~2 W7. 设变量已正确定义,则以下能正确计算f = n!的程序段是, f! Z% D/ x0 U- L. J
A. f=0; for(i=1;i<=n;i++) f*=i;4 o5 U; \) V k7 e# ^9 J& V4 _- Z& ~$ ~
B. f=1; for(i=1;i<n;i++) f*=i; & c9 l8 i& v6 E# J/ S! N5 a* m
C. f=0; for(i=n;i>1;i++) f*=i; 0 _: q" P' Q7 |$ [0 Q
D. f=1; for(i=n;i>=2;i--) f*=i;* w: w/ n: l8 W8 B1 o
满分:5 分
: F8 m9 J) A0 @4 X k1 s+ x8. 有如下类定义:
2 f6 e; d/ ~3 O$ r& ^3 Pclass MyBase{1 a9 g( U. \+ E1 I' O/ u, p
int k;
* i- @+ F3 A* d* d3 M2 U3 kpublic:
* @4 g" [0 H7 R. q* W6 j# L8 n MyBase(int n=0):k(n){ }
, |+ z4 e8 h, n5 i& z9 T, W7 [4 f int value( )const{ return k;}: H5 {. N1 B/ L# j- s5 A D
};
# r8 D7 c& c" K; v/ s- M( m) P6 kclass MyDerived: MyBase{' R' X# R8 Q, F. x. f) Z
int j;
/ ^: O. z! C2 R9 U/ z* J7 Z4 Z# _public:
6 l- T7 n1 x* Z( |. y MyDerived(int i): j(i) {}
: t2 O0 V9 n* W: q& x5 L int getK( )const{ return k; }, {- g9 x8 c1 j# K. N# g, n7 i
int getJ( )const{ return j; }5 w- C6 S" a) Z0 Q5 \
};) m3 y/ l4 F9 F1 X
编译时发现有一处语法错误,对这个错误最准确的描述是/ V, _" r3 f f o
A. 函数getK试图访问基类的私有成员变量k
$ D: V7 }2 N. d* |' uB. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private. V6 C( i$ h& [. R3 d% ^$ e
C. 类MyDerived 缺少一个无参的构造函数
) Y, i, Z- y; H0 @$ CD. 类MyDerived的构造函数没有对基类数据成员k进行初始化
5 c+ p2 X% M0 U3 i6 _/ c: v- M! q 满分:5 分& Z* \1 `3 P+ J0 }7 F7 @
9. 在C语言中,合法的字符常量是
6 I# ]7 v/ T& R& L' j7 i- vA. '\084'" h4 S, Z! @" l1 }: s
B. '\x43', m6 o3 N( _* X) H& R/ W
C. 'ab'
. U; I# ?2 C, ^6 cD. "\0"
" v: h) l) t1 o 满分:5 分
* ?; `) @9 @, ~. D5 t6 g6 G10.
; [& H! L# U) |/ x+ N以下程序运行后,输出结果是 # Y4 D( } {9 g
8 @# [/ @% ], p* _" @0 u7 c) v( b/ A/ }
#include <iostream>
7 X1 Y3 M! z' H0 j, x2 a, @#include <cmath>1 s) {+ T1 L4 f/ P s
using namespace std;1 _4 s# G L9 O9 ~
void fut (int **s,int p[2][3])
+ T! Y! m# L! L; X8 ~ ~# r{
/ O. @& [. s3 B; ] **s=p[1][1];% Z4 _6 U& J/ t7 V$ p7 X
} . @; {* R- y5 s5 s4 Y1 R/ @" @
int main(int argc, char* argv[])
. K7 ?5 Y5 y; C{
! U4 A4 k* ]2 L/ e+ d3 N int a[2][3]={1,3,5,7,9,11},*p; & i+ l/ ~: i$ A
p=new int; ' j8 E$ j8 O: M) H
fut (&p,a); , i7 ]$ W, t* C' P. Z( I" Z( q6 w7 K
cout<<*p;
$ y: S2 ~+ {6 V R' E) y return 0;
. b% \6 a$ K5 b2 {7 q/ \}
* f- p) e0 m! b* |& N1 Z! F
' z( w# h z* h) dA. 9
% X$ g& U$ z. ?1 N6 pB. 0$ [1 }; Q' S5 H9 v
C. 3
4 m3 l- W0 [) e) O. J! i, K' W8 PD. 7
5 R8 U F: \8 A# s6 y 满分:5 分
% `3 G# B( y; o. D" [11. 3 a2 G1 i3 @ G X8 [0 y: d
下列程序的输出结果是( )
) K& x6 f5 T) J5 f# N" S- B) E& Z#include <iostream>- @8 d. O: G" ]
#include <cstring>! T* S' H4 }& O( k. z/ |
using namespace std;
( q" X& a1 I3 b' g! Z3 U" Aint main(int argc, char* argv[])6 ~0 n) G& G. F4 e0 S" |; A
{
/ x9 I' @+ c% c) C# U5 [ wchar_t c='M';
7 n- `0 {0 N- X) p+ L cout<<c<<endl;' n% ]) B& f! W
return 0;% e, o: {8 g9 J
}
: X2 H/ g9 w% G9 Z$ pA. m
# P& s F/ s6 C5 ?' X7 L0 U0 WB. 777 l# i- y7 j; r1 L( m
C. M# l6 t% \+ K; G
D. 103
2 T3 D6 s" l" \: W) c b1 w 满分:5 分
; n$ C) |& {' l) R& t5 e0 b/ A12. 下列描述中错误的是( )0 \' [4 v& p: ~( e r
A. 析构函数可以被继承
4 V* q! q# g5 f1 ?2 H1 o9 a4 UB. 虚函数不能被继承 U0 h1 r( X2 _9 l6 H
C. 派生类可以有多个基类
9 i' h \9 Z4 I2 zD. 纯虚基类的子类可以是虚基类
& o. z f9 i; ?2 X6 h6 k7 m e. z: B 满分:5 分
- j! Q4 }% V6 A# u: M( m13. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是$ O- m. B6 |. k- W( `& h8 T3 H
A. 派生类的对象可以赋给基类的对象
& q0 T% O$ Z2 \2 ?' MB. 派生类的对象可以初始化基类的引用 R; T0 M. ]9 R+ d* q7 R! ~) l) v9 Z
C. 派生类的对象可以直接访问基类中的成员6 [0 d0 z$ V5 M2 j- k
D. 派生类的对象的地址可以赋给指向基类的指针' q; S+ h4 b2 |2 S; `" Y0 v
满分:5 分! z3 ]6 s z4 G& k) g) v+ v
14. 已定义以下函数- ~* A$ b2 B+ v3 x& f3 S
int fun(int *p)
8 K `2 A/ b+ x# G3 u{ return *p;)) I( W3 r* Y3 |) H m
fun函数返回值是1 Z/ y/ N- V& b2 H+ |
A. 不确定的值 d) Y, ?* Q) Y0 ~
B. 一个整数
8 o& s* @' y: ^- JC. 形参P中存放的值, `. T( [3 r1 W9 |6 C
D. 形参P的地址值 k v( p8 H# C( c1 z/ m
满分:5 分- s4 s: {8 t! P# m
15. C++语言中关于构造函数的说法正确的是( )1 c: z; N, M' f. g2 |# ?
A. 构造函数的函数名不必和类名相同 ; \0 F5 K) X+ ~! m+ {1 y
B. 构造函数只能每一个
" x; G V0 w% NC. 每个类必定有构造函数
6 |" X- [( K' W& O8 }6 L FD. 构造函数必有返回值6 f; r! u$ }7 c2 f9 @9 R9 r
满分:5 分, a1 I1 B( k9 I1 a7 I4 `4 H
16. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明
8 Q% y. Q/ B- L% }7 D3 ?A. f()是基类的私有成员
3 C' m4 x( b/ z5 u2 o8 fB. 派生类的继承方式为私有
' a' g) Q% x( z* O) x nC. f()是基类的保护成员
! Q. L$ s: {! G% M3 V) r2 ?" d9 o- TD. 派生类的继承方式为保护, L/ ?1 L: J7 V) i$ v% a5 h
满分:5 分
8 g- n2 q' a. Q6 b! Y17. 以下叙述中错误的是
( R5 b% W4 Q: N; @5 d% f2 [A. C++语句必须以分号结束) N* n2 `; H, V
B. 复合语句在语法上被看作一条语句
$ _+ F; T* Q& u+ D/ G% bC. 空语句出现在任何位置都不会影响程序运行
. p. |4 n9 a$ W9 E9 Y3 ^( fD. 赋值表达式末尾加分号就构成赋值语句! a3 d/ m3 R& M' g |
满分:5 分& r! Y/ i9 @1 R# p) e( v
18. 在类声明中,紧跟在“public:”后声明的成员的访问权限是% r* `) ?4 h# M' i- n$ P
A. 私有
5 j0 B, [* I+ Y$ MB. 公有
: k( B5 i+ V3 ` F: g/ F$ zC. 保护2 Y% @* c8 F( e5 |3 ?$ C+ V
D. 默认 |$ `, j) o! ]
满分:5 分
; G- @6 c; A. w% ^( _2 m/ ]( l19. 下列程序的运行结果是
U: i9 p5 R2 C- S; z9 v; Nvoid fun(int *a, int *b)
( E! z+ C! ]0 f9 e @+ b, o1 i{ int *k;
3 G8 f- E' A v7 Zk=a; a=b; b=k;2 K: w0 }0 s' T. f1 k
}
/ p- b% d" X6 G; h7 Umain()
9 F8 l. _% d9 Q6 P$ ]! i9 G{: w$ E0 L# s& g# D
int a=3, b=6, *x=&a, *y=&b;! R$ e6 R0 Q6 z( z/ |+ M
fun(x,y);( E0 P0 E3 M! q# y+ F) B5 H( s# v
cout<<a<<b;2 L) W7 Z, n" C3 E' w P. b* u
}
- e8 ]7 `( S' j: g- {6 f% bA. 6 3
! P: k7 ^2 D* o4 G0 {- \B. 3 63 D9 i: L7 Z6 S" H% J+ T
C. 编译出错
4 ~0 B6 k- h* W2 U" UD. 0 0
( ]8 }7 F# s, N ]0 |! I 满分:5 分; c: d' W1 p- P# g9 \+ L m0 C
20. 以下程序的输出结果是2 J, @& H3 `6 t1 E/ Y' E7 P
#include <iostream>
% h; E7 J2 n$ @& l2 ~9 ousing namespace std;
7 T% M- G% H. Q- T/ M3 i! mlong fun( int n)- N7 N( \ R) f& L
{
0 E) y5 C: L0 Y4 v9 ?2 r long s;1 \, y4 M; e; O8 p! e
if(n==1 || n==2) s=2;" D9 r: J4 r* w/ C# [
else s=n-fun(n-1); _8 ?( U. G" W( K: z
return s;
4 [. w8 U0 j" ` f}2 E+ N1 n3 p$ `$ a# C) F
int main(int argc, char* argv[])
5 E6 g, I, n, W2 P{
+ O( ^; {: D& A cout<<fun(3);; A0 }0 o! R, X# z
return 0; @% G( W0 l2 p
}# ~8 U' {' s E9 I: k# H6 G
A. 1: i: B4 }. s' J0 m) L9 ?! y8 H
B. 2
4 `: r) K @. m* A2 O. XC. 3
9 [* {3 i2 c1 E% f/ w/ W) _D. 4
2 P+ [; T3 l2 n$ W# V( \. x 满分:5 分
2 U& O( o+ I4 f [; n7 C' M/ P7 s
; h" e3 ]! }6 D: a, p& I9 D |
|