|
一、单选题(共 20 道试题,共 100 分。)V 1. 下列哪个是C++语言的有效用户定义标识符?
7 h, b5 ~# F' I; i, ] J3 x GA. enum# t! b1 D! T: Y) q: o
B. 2b 9 H! h4 G5 P! k) F# N( }: Z0 F2 E
C. foo-9 W) [& C9 R/ y; O# Y G6 V7 M" Z
D. _32' _: _8 G/ o2 L
满分:5 分
- E6 P) N/ L( ^2. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为; @1 Y) V1 S/ f* m# P' T2 y% o, ?" F' p0 g
A. 私有继承
- A' C6 A) {6 d% n1 n" c9 gB. 非私有继承 M) [1 M4 A" H0 Y" k( ?
C. 保护继承
" M" l0 f, u% A. }: hD. 公有继承' v4 T6 K! h3 B" F
满分:5 分9 y- J0 D% x- R4 Z8 w
3. 有如下程序:# o/ f+ A i7 ~ k$ [6 z
#include<iostream> # `0 ^) d5 G ]- P0 g- G
using namespace std;5 J" }+ u: Q$ r9 j" N% i7 k2 q2 K
class Sample{8 X' @& E/ |- z- Q/ Z3 ~
public:2 e& r( L" d2 u! A
Sample(){}
6 N0 {6 l5 b# Y/ i5 S ~Sample(){cout<<'*';}
# r" U$ S: T5 f3 }2 I};* X$ ]* V+ C6 v) ?0 p
int main(){
& a9 u' K$ A$ N& g8 w0 B. r Sample temp[2], *pTemp[2];
t1 p. [# W% }9 T/ Jeturn 0;( Y v" w4 g. r# I7 \/ k: H1 l, Y3 I
}: [- m, _- f( {# a0 p
执行这个程序输出星号(*)的个数为( )$ N" B8 [8 E4 S+ Z' M2 |; ^5 k3 h
A. 1# J5 G) [( i9 {/ ]9 Z! z0 @
B. 2
- a- O0 s* {. x6 R! y/ h; aC. 37 r9 R0 T; [& o" w/ [0 L3 h. s8 n
D. 47 X! l1 T" L7 X- C
满分:5 分. ^9 |5 S$ O2 F' l1 K
4. 有以下程序
3 W7 p; v$ J" z8 Z5 j7 n, wint fun1(double a){return a*=a;}
3 N$ f! F. u7 B2 j( B/ L! A1 Fint fun2(double x,double y)
1 x. u0 u; z8 r1 ?% g# y M! ~. J& o{ double a=0,b=0;
R: O9 S: U9 [( j% ]. S a=fun1(x);b=fun1(y);return(int)(a+b);
( W2 X9 i* ~$ X( R! I+ Q9 Q}- @7 E9 P1 z5 o; I% Q, i' F
main()
8 I6 ^4 z( q$ s* d- k{ double w; w=fun2(1.1,2.0);……}1 u- C# K" w- g4 M9 V: u4 U9 d
程序执行后变量w中的值是
5 ^/ K' U( z. A2 @1 O" YA. 5.21+ u S q% K6 W( U6 g+ j& ]9 p: v/ i
B. 5& ~7 M* w( w& z; m; b
C. 5.0
; `, F; o* l5 i( d, Z ^D. 0.0: b2 Z+ F; P- m, d- n
满分:5 分
& V+ Q$ `- Z$ B8 K; v0 k5. 下面程序的运行结果是, n1 k3 P2 N2 p4 D. k
#include <iostream>
8 c7 ]% F) j$ K- m$ }1 T#include <cmath>
( G: ]9 U7 Z* ]: r% S( Susing namespace std;
2 d' |. v# z3 t4 lint main(int argc, char* argv[])
. Y% J8 H: {: ^+ ?& |{& O4 ~) F; H: G/ V! P
char ch [7]={"65ab21"}; : X6 ^2 W* x( I3 G2 e- E" d
int i,s=0; 0 l B4 |+ R5 O; n: y8 F' z; D' J
for (i=0;ch [i]>='0'&&ch [i]<='9';i+=2)
3 e3 o: r4 `+ e) u. x s=10*s+ch[i]-'0'; 1 @. T* A9 b% |/ g* p
cout<<s<<endl;6 H$ _. Q5 G$ D' }+ K1 g9 H x
return 0;
2 y0 m, n9 s# Y! n0 H; R- t}1 O8 _6 o5 N5 m) I1 h! b
A. 12ba568 w/ |% H! t0 a/ Z
B. 6521
$ A! c2 I$ v5 _# |, ~( LC. 6
+ D0 g' d. h) O6 XD. 62$ `, Y) A. s; J/ ^8 V
满分:5 分3 w x) D# G- N2 @! P
6. 有如下程序( u' B k* `% ~7 e5 r2 s
#include <iostream>
- j% b& D; Y) V, r Z: z, @; C#include <fstream>: ~3 l, y/ G2 }0 ?+ T5 ~$ Q
using namespace std;) W; B z# u4 {0 O, w
int main( ){
9 |0 W( ^) a2 M cout<<setw(8)<< _<<12.345<<setw(8)<<_<<34.567;* T1 ^6 G Z, E2 O: Y, b
return 0;
! u2 Z! Z6 a# {7 \# \( B% _/ _8 t6 p}
4 f: d2 ]9 y: }, a, `若程序的输出是:
/ Y+ b( g J% c$ I' M9 I% j**12.345**34.567% c) s7 g7 {1 O* j
则程序中下划线处遗漏的操作符是8 h3 \7 @) C- ~5 ?: H
A. setprecision) g! R) \. ]6 F! A+ ^) H% T) ^
B. fixed
2 N; K. P5 W* J" C( }+ j. xC. setfill('*')
1 K7 s/ F4 O4 \, d2 }D. setw(8)
! S+ G4 k5 H: S, w9 ]3 ^ 满分:5 分
1 g2 o$ W6 [+ J, Y7. 设变量已正确定义,则以下能正确计算f = n!的程序段是) T6 ~4 d5 h/ }5 B. n. K7 O
A. f=0; for(i=1;i<=n;i++) f*=i;
" l% S" W+ C: H b/ ]9 x" x; xB. f=1; for(i=1;i<n;i++) f*=i;
( V' L8 i' t/ Q6 G" Y; e/ `C. f=0; for(i=n;i>1;i++) f*=i; % h: g4 c1 V: T6 k- X8 k9 k
D. f=1; for(i=n;i>=2;i--) f*=i;
2 R/ Z8 I ?) I/ J; X5 A, R& m 满分:5 分% b# b; X/ a4 q
8. 有如下类定义:7 \; W' R& g. D' i6 U {# v9 Z; O
class MyBase{
( G. i9 p3 h; \ y3 ` int k;
+ F7 p' ?0 m3 B: @1 @0 cpublic:( I- I. P% Z3 C, u
MyBase(int n=0):k(n){ }
D% @2 `7 C' H* [ int value( )const{ return k;}
) n8 v: [0 K- j# N0 \};9 L2 k' R% Q" K' g
class MyDerived: MyBase{
% ]3 |5 q) x' q9 L2 X0 ?. Q int j;) E2 R' v5 @3 Z
public:) k3 U* J j) f3 M4 w
MyDerived(int i): j(i) {}
; f: f2 h3 z3 u/ L( u int getK( )const{ return k; }" x6 O( [; o! V1 Z
int getJ( )const{ return j; }
- i8 H' k/ { P7 Q};9 ] s- F" m1 `5 E6 n# C
编译时发现有一处语法错误,对这个错误最准确的描述是
' i* z h: b g2 y& d. iA. 函数getK试图访问基类的私有成员变量k & \9 l- _/ p5 j% K* Z2 i1 I) d4 G
B. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private( }" y( B4 t! L+ m
C. 类MyDerived 缺少一个无参的构造函数
7 p$ V9 j* R4 j' z: h# t2 sD. 类MyDerived的构造函数没有对基类数据成员k进行初始化
- ?3 V% M4 t& G9 A; {; M 满分:5 分
) _& ?' R3 t' g3 f5 F+ x9. 在C语言中,合法的字符常量是
4 P& } F' _3 r3 D# L$ FA. '\084'
) o" h6 B4 F5 U2 U( R B5 x! D# BB. '\x43'$ T8 R8 C; s. p# f8 i. d, w
C. 'ab'2 ~' c" S! l! c" a O; E
D. "\0" 6 e) T; e: ?6 Q5 W4 _/ h0 C
满分:5 分
K6 v) E* ~; A10.
5 O7 b2 M( }+ J! F9 l/ V9 \以下程序运行后,输出结果是
# Q: V5 m3 M! m0 S9 V+ d9 l4 R) m! ?2 R+ l
#include <iostream>* J; \! M3 Q5 e. g$ o. X
#include <cmath>. Q. s( `- J( y S/ A) t7 h( d
using namespace std;, C; z8 U4 @8 e' ]9 F0 _ j
void fut (int **s,int p[2][3])
X+ f$ K/ [3 m7 H{ ( s8 I0 K) `9 e7 t" o# G
**s=p[1][1];. Q+ i: m* W4 Y
}
9 p7 c- A& w$ ]3 {& j( d% p9 Lint main(int argc, char* argv[])
5 Q( [( }' k% P4 T1 i, [{2 f" ^" Y0 Z# d. [9 _1 C
int a[2][3]={1,3,5,7,9,11},*p; ) w/ |& n& S. R6 ]$ u' f3 Y5 ^
p=new int;
+ e+ s: r7 U% ^* T fut (&p,a); + u3 @2 t. X/ X$ C$ \% f5 |
cout<<*p; 6 @' r1 h3 q+ k1 V3 H! ~/ ]
return 0;
% k0 D8 I; F) |}/ X- }& m! j! E
$ A# D; g" G3 y8 rA. 9
0 C. g" L7 x! ^ S o' CB. 0
6 i3 y0 Y, R2 M* HC. 3
6 J- P+ k, Z0 f4 GD. 7" h: n( ^* k0 y' |- u0 m
满分:5 分) R. {% Z! q% d# ^6 j
11.
- M- T# @2 C6 e4 x8 l) \6 J, k下列程序的输出结果是( )
n0 y+ [4 J2 z6 n#include <iostream>& F! C4 ^+ a4 I
#include <cstring>4 n' w, M: D% n" u: ?
using namespace std;( D0 f6 l- ^/ ]0 n- U1 n; L
int main(int argc, char* argv[])
/ n# B' L1 h: P% c: ~2 C* W. F{
4 ]8 ~( H+ B& z4 o! P wchar_t c='M';
8 X( b8 @- z( B+ N1 T" M cout<<c<<endl;
|* M7 Y) K: w$ a% P' B5 l return 0;
* f1 M. f1 y' e! K0 u' ~- H}8 u9 e- _% P8 C3 x; {
A. m
( L0 z6 F6 R0 ~2 b4 pB. 77- y* I2 f3 h+ A
C. M$ l( e4 `- z- e
D. 103
- Y% o0 |2 u1 w 满分:5 分* Q5 c: R8 g9 F+ U8 H$ a
12. 下列描述中错误的是( )
! U& Q& X; c* E v" H: u* nA. 析构函数可以被继承( }8 K$ Q' p2 M- L8 W5 h
B. 虚函数不能被继承
0 }' Q: J+ G h+ O# W" i2 U1 E2 }C. 派生类可以有多个基类3 j, _) ^! H, ]/ R7 M' J0 R
D. 纯虚基类的子类可以是虚基类
, d; f+ K5 b8 F0 F' P 满分:5 分" x1 x' n8 M _1 |. \
13. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是1 I1 Q5 r; _: ^) ~0 X/ t7 A! L
A. 派生类的对象可以赋给基类的对象
6 X' f! z9 t1 ~+ N* `9 s3 Y9 xB. 派生类的对象可以初始化基类的引用
9 ?* n7 a" d v7 v% k% A3 ^C. 派生类的对象可以直接访问基类中的成员7 y$ j8 i8 v- K0 Q
D. 派生类的对象的地址可以赋给指向基类的指针1 E, h* L) _3 ~, z4 ]4 g
满分:5 分
! Q( s' q1 `( S8 A" T$ B* e2 ~14. 已定义以下函数
2 U) A/ k+ m: E0 u" v' @% K3 w$ M% S$ Iint fun(int *p)" N" A. {# }7 P: W* Z' G
{ return *p;)
& u4 x1 q% u+ y& |% K4 Z& N+ hfun函数返回值是8 @6 f5 {- x2 {: `
A. 不确定的值
- K% l, k O" K' Z4 B6 nB. 一个整数 r: j C1 o; e6 R* |6 C. U* O
C. 形参P中存放的值! b0 i! A! X: Z2 J4 ~
D. 形参P的地址值
8 T% \2 ?: i& g, ] t9 }; D( s% k 满分:5 分8 p% V6 ~! I, o" s
15. C++语言中关于构造函数的说法正确的是( )
. g J I- t; ?& E- aA. 构造函数的函数名不必和类名相同 # |2 G* h8 Y9 @, `/ |
B. 构造函数只能每一个
5 S! ~6 ?1 a/ e- DC. 每个类必定有构造函数
+ E/ M- y. P, n# I' b yD. 构造函数必有返回值
/ ~1 _1 I, B* @9 b0 n6 R) g I+ g 满分:5 分9 A: q: c( O7 j, I+ O: H N ^7 _8 H
16. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明: w( J& t& ~; ?" `# o8 L
A. f()是基类的私有成员
' r) e2 k" s# O# hB. 派生类的继承方式为私有+ @3 f' K# D0 ?, C: L7 `; a
C. f()是基类的保护成员- l: I- R- D/ T- g( Y' K/ ]' ^6 c
D. 派生类的继承方式为保护) Z% L! f- H7 l$ H3 i" W! U
满分:5 分) [, F: o, U6 d5 @/ S4 T+ d( x6 n* {
17. 以下叙述中错误的是
. {) p+ u$ R. ]1 l+ P6 |6 FA. C++语句必须以分号结束' ]3 n& N; D% o/ x
B. 复合语句在语法上被看作一条语句
" X! c" H/ ]& X- n) |, v1 oC. 空语句出现在任何位置都不会影响程序运行; R6 x2 K) r. h' M; W3 O
D. 赋值表达式末尾加分号就构成赋值语句
. R5 J( i+ j& ~+ n- l% m" S( g 满分:5 分( W0 }1 t% L" e# V! ^5 D
18. 在类声明中,紧跟在“public:”后声明的成员的访问权限是4 |6 M* `, r/ Z& ^, e9 I
A. 私有
) d8 F% ^% A% z7 G# ]B. 公有- j! X" F. H4 s" y) u% N, R
C. 保护
* |, v: {" W! V4 JD. 默认
( y! r; f2 {2 \( J 满分:5 分
. V, `" q( k- P& H19. 下列程序的运行结果是
, B0 ~- }1 ^* @- |7 r g* r, Ovoid fun(int *a, int *b)
$ B" I7 J( w4 J7 r- f. \: k+ W: {5 U{ int *k;" ]' {0 |" e* A: s6 G- x
k=a; a=b; b=k;) _* H; V4 S% F
}
8 u1 I6 z1 C- b7 [7 @main()/ U" r# n3 n% U; j
{
' M! U8 |; y% W! x7 E- J6 G+ ~. X int a=3, b=6, *x=&a, *y=&b;
. @7 h3 D; t* K5 r7 @0 afun(x,y);/ m& x! v! l8 [$ {: Z1 ^7 }
cout<<a<<b;2 [% R' G. f+ t1 ?3 Y* O$ c J
}! S* T0 a e% p( O. I3 W4 m, r
A. 6 3 7 v5 l3 y: ` \$ q4 g( i4 u5 z, k
B. 3 62 |/ V- f5 L& ?& o$ G
C. 编译出错- M7 ~9 w, ^8 U: _( r8 h/ h
D. 0 0
U- ^# Y; P4 ^/ C0 _ 满分:5 分
! V2 q% f# c: ~- r20. 以下程序的输出结果是
2 [5 ^- c3 ]* I) N; `4 t7 O7 d# p#include <iostream>
1 D* O' x5 K; B `* s' ^- `* m4 Tusing namespace std;
+ Z1 [: ^0 ]8 i4 b6 P& _" Glong fun( int n)
$ d) X( v" u# E P& {1 y/ f{
1 c9 n3 a5 y6 U5 _6 [$ W long s;- x5 w6 B( w5 y( Y% \
if(n==1 || n==2) s=2;# n: _3 a: ?- ]+ L/ b+ l0 u! Z" ^& m
else s=n-fun(n-1);+ c5 x; b }$ r) A- E! ^, Q. f; I
return s;
1 P" B2 d+ n0 W& q}
& b7 g+ w2 r( h. L& Oint main(int argc, char* argv[])
; M4 F) f4 U: u6 B" n. ^{
7 I% U, B; r; O; B8 [ s; }1 z cout<<fun(3);/ y+ P# C( m- g
return 0;3 o7 D! Y7 {, E% [
}1 T9 j- b S* T2 a: w
A. 1$ x2 m6 `# R( E
B. 2) J' f+ V. W6 R3 F3 s
C. 3 ]) r1 s: x% i& H2 C/ r
D. 4
* X! o4 ]0 F# v0 p5 y! `. L; {7 `' v; Q& k 满分:5 分
a2 D3 N( P8 l8 d' E
+ N% t5 b* b: ~! t1 n$ n |
|