|
一、单选题(共 20 道试题,共 100 分。)V 1. 下列哪个是C++语言的有效用户定义标识符?
$ m2 A/ s# l4 N6 H/ n5 jA. enum
0 ^9 ?# Y' M; I# d; bB. 2b # X5 }4 O0 H5 W% p+ h9 ~
C. foo-94 P9 v" F8 h1 |+ p, D- n& U. N9 ?' F
D. _32
/ s$ {9 }* ~: e8 |8 z( i1 I( c 满分:5 分, t* y2 N9 ]' N q0 s
2. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为
/ F' X5 ^8 }! C/ f" eA. 私有继承
; c3 A" m, Y0 H7 w& a0 k4 ~. [0 KB. 非私有继承
( Z# }' N% A3 u8 B7 ~+ YC. 保护继承 , A/ O" ?0 a; G
D. 公有继承
$ I- `4 {2 L( ?" \3 `7 g; n( p 满分:5 分. b: O$ V% f6 d
3. 有如下程序:
4 @$ S; Z R4 {, g#include<iostream>
( u* y% n" A# a% B7 qusing namespace std;3 ?0 v% J& V3 E) w! z) T
class Sample{
" M4 i: \" a1 Wpublic:: |: b$ W, K$ r5 R9 j2 D" v
Sample(){}
- D8 u* v- Y" H6 F ~Sample(){cout<<'*';}
8 w6 n/ F4 h. E' A; ~3 \};
4 k) U: q8 e1 \) M6 ^int main(){0 D* S* I, i, I6 X! e
Sample temp[2], *pTemp[2]; ' y: T0 {1 t. e) q, l
eturn 0;
3 p& p: l. N* G}- L2 J0 K6 }- y$ T1 B C
执行这个程序输出星号(*)的个数为( )' j1 F, Z* O4 x7 q1 c7 k
A. 1
, J; F) O0 n+ \- C; JB. 2+ U' p% B. R4 s$ s& g6 I% c
C. 3+ R6 p5 a/ u) s
D. 4
1 S9 w/ W& C- i- P 满分:5 分" c, S1 [6 \& O: \' G
4. 有以下程序
0 l) C/ ^5 U6 B- B7 I1 vint fun1(double a){return a*=a;}
! f+ W) v& d3 z1 ~8 I) fint fun2(double x,double y)
) q# T, h, g+ P6 @+ V( D) s2 f{ double a=0,b=0;
+ \( B2 v5 v8 u2 A& u% G! F6 n F/ I a=fun1(x);b=fun1(y);return(int)(a+b);
3 c) }) R2 \5 \" k0 C0 K K8 X}
2 L% }; X9 V/ n ~7 \6 wmain()
) \- s; v$ [( Q* B& R, m{ double w; w=fun2(1.1,2.0);……}
) F3 x: H1 o E, Y1 g程序执行后变量w中的值是
% J: v, ~7 c- V( H, z: RA. 5.21
: }6 H2 s5 s/ C! ^B. 5
9 f5 u& u( f; C V4 m9 y- _/ j4 wC. 5.0
/ l" s. j( g1 e0 t) H3 l3 A& S( AD. 0.0/ W4 [2 d6 F3 C. r$ {2 M
满分:5 分
; ~* w0 `% a" b I+ R5. 下面程序的运行结果是; s3 Q4 F) p6 q% h! K
#include <iostream>8 H( h8 P- F6 F) I# |9 J! g' ]: d
#include <cmath>
; i- C/ b* [$ h7 R0 V( y, Susing namespace std;' M4 E! y/ B: a) P
int main(int argc, char* argv[])/ | p8 j/ g" c8 a, X" \8 `
{
) s) j9 Q# @2 w! a4 N4 s char ch [7]={"65ab21"}; # \2 W1 K+ b/ A# h3 s# p0 ^) C0 M/ H
int i,s=0;
; ?* U0 s# Q8 z1 ^ for (i=0;ch [i]>='0'&&ch [i]<='9';i+=2)
, U+ _+ w7 x. f& j* d s=10*s+ch[i]-'0';
* ^7 W" N E1 y cout<<s<<endl;6 K' m+ f3 o( @$ I+ S9 q( Z
return 0;
8 H% u9 u+ R* {7 H7 p) B+ ]4 d* `}1 v# {; \+ t, u$ Y0 K1 b* {! y
A. 12ba56
- R: g/ N4 d' M8 `. G' N: FB. 65210 W5 z$ }3 s- H* C$ _5 h
C. 6
0 Y7 Y; Z6 E* L9 T: @) |0 PD. 627 V6 X$ A- v" H7 G
满分:5 分
0 R7 H- ]1 |# N3 ?. M6. 有如下程序+ Q2 S1 M" E. a% p0 _3 I
#include <iostream># G- M6 K* j( P# K0 C
#include <fstream>
7 k1 x7 q& x9 r' e" \using namespace std;
4 K; t" ?. q* T4 j% e- qint main( ){# ~2 B2 L/ f5 ~" Q
cout<<setw(8)<< _<<12.345<<setw(8)<<_<<34.567;
; P) s1 W6 q6 [ return 0;
1 D9 M% n: ]+ u2 M: { N! D# z}
& i1 s+ E2 L. N8 w9 r若程序的输出是:
/ j- `2 t) w0 l' ^**12.345**34.5671 i- R+ h6 S' y0 w8 c* a9 \
则程序中下划线处遗漏的操作符是/ @8 g+ j2 n( c
A. setprecision* j) K4 a8 {4 i. T7 x5 _' I
B. fixed 1 A, R. Z# d! v' _" Z! P; ^& h
C. setfill('*') 7 ^1 E7 ~# d: o8 H b8 `$ ]2 f
D. setw(8)
- J. \% n9 S @6 d% q 满分:5 分* M' i4 N3 A$ ]% o
7. 设变量已正确定义,则以下能正确计算f = n!的程序段是
+ Y' I6 A/ |$ J V d$ |8 h6 T$ iA. f=0; for(i=1;i<=n;i++) f*=i;
& t$ C% G4 u, }6 {- }. o0 yB. f=1; for(i=1;i<n;i++) f*=i; % K4 {" r9 E1 `( l' n+ |! O
C. f=0; for(i=n;i>1;i++) f*=i;
5 P& D0 J" F9 c1 TD. f=1; for(i=n;i>=2;i--) f*=i;
, d9 J/ l b3 k- k5 M) J' i 满分:5 分* C9 c7 Y+ q, {/ I
8. 有如下类定义:
2 ^+ {# v: P7 I6 Q0 D- wclass MyBase{5 C5 g' v4 C/ N7 n
int k;
' _ f+ _" F% ^% U$ Bpublic:
X' l- @* S# k5 s0 q MyBase(int n=0):k(n){ }7 k1 i) r5 q1 m
int value( )const{ return k;}
' Z# p& z0 y) l, ~7 A8 s};
& Q2 \5 @) ~& l8 y! Gclass MyDerived: MyBase{
9 W; ~6 z& l4 W/ I int j;) u7 A$ o4 O9 {; p. T
public:
- T7 T! y6 a+ G( l MyDerived(int i): j(i) {}
: S O$ p. _+ ?' F% M9 t( Y& \! a int getK( )const{ return k; }
5 w4 O4 k! _; q* s v int getJ( )const{ return j; }' O5 N' L" y' T4 n
};
# @1 s" |9 ]& F( r编译时发现有一处语法错误,对这个错误最准确的描述是
5 Y+ T: C- O( p- s, k2 RA. 函数getK试图访问基类的私有成员变量k
+ l0 v- A* E3 W( FB. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private
- U2 q7 c% C, @! r+ }C. 类MyDerived 缺少一个无参的构造函数
8 a5 M0 k: k6 o4 U& b zD. 类MyDerived的构造函数没有对基类数据成员k进行初始化
1 q, r8 V7 V- E; F" K 满分:5 分- B+ J, G# }/ o( t+ D
9. 在C语言中,合法的字符常量是
5 v, ~& o8 Q1 i* V- GA. '\084'# T5 g& L" p& r) N5 k6 l3 Q" Q
B. '\x43'! D- d8 F( F8 s! e
C. 'ab' ^; D1 N# ~. {3 B0 P
D. "\0" / T4 }9 g3 y$ B1 `7 |5 F" y; s8 h. T
满分:5 分
. ?9 `: l' S/ n9 Y6 J2 g10.
3 L& O( a" `+ ?6 {) u4 I以下程序运行后,输出结果是 3 f6 O/ g; k) A' @4 x! {* v' \
/ O8 f4 t& _" [( Z. j
#include <iostream># }' m! V) B6 | h0 |1 @& D A" i7 [
#include <cmath>4 q. h* e3 }2 L# g
using namespace std;, l2 q# {/ x% t8 Y8 O- Q$ }3 I7 r
void fut (int **s,int p[2][3])
6 |! c: j. _, m+ D3 A# n% k0 }; I4 k{ ; M g2 b$ _% K R7 _/ h
**s=p[1][1];
% w8 H1 i+ f; z( P9 n$ s% r% E' K}
) g5 B* y3 C7 Y+ r7 iint main(int argc, char* argv[])" ~2 p( H1 z# c
{! m" U1 I5 F7 J# _
int a[2][3]={1,3,5,7,9,11},*p;
1 L& D4 l- z& b6 Y7 a p=new int;
& }) X0 W4 }( k fut (&p,a); % u! D0 Q( E+ r+ \
cout<<*p; 7 Y% f6 O" k$ v) z0 d
return 0;
7 S, V" D( l @' h7 A& T7 ?' H5 n}- j/ l1 t/ I! g3 N
) f: w) s! I! }1 i" I+ v, v2 P
A. 93 C/ ?0 r3 C' K
B. 0" g3 T/ ?, |, G
C. 3/ J3 o% f% _! N7 n7 b R: w ]
D. 7
5 O' @$ a) R+ [! [' h6 o 满分:5 分
* F, ?2 L4 F6 P+ X: \7 e11. 9 f) e6 f# e! J( p+ P- N ~
下列程序的输出结果是( )9 W9 R4 c; s$ `# d
#include <iostream>
& q9 ]6 W- I9 i' t* s- E& d0 a#include <cstring>) t- d0 T9 R1 u- p& \5 U
using namespace std;7 l7 w/ k1 G$ k+ @" N, U" [1 W% [
int main(int argc, char* argv[])( h% O% R' ]" A% k" ^1 M _1 t
{! {+ S) R$ U6 N7 z6 r
wchar_t c='M';+ p- g6 b& e6 |' ~! ?* q% h% i
cout<<c<<endl;
2 ]0 @. [2 S _. f2 q9 \ return 0;
N, y9 d4 q% S% s% Q, W}5 L/ {' s7 p7 n- ]4 K- [
A. m
4 ^$ {. Q) W6 d7 d# p) {B. 77, o# y* c, S8 [
C. M4 V3 F4 v' Z0 O3 d0 }9 j
D. 103
2 F# p* Y9 {3 u3 I4 h8 @ 满分:5 分$ u& c2 F7 ^/ ]7 G" K7 {
12. 下列描述中错误的是( )
+ h) R; ?' |0 P1 w. h3 _, `A. 析构函数可以被继承6 t/ D) f& N# l. m
B. 虚函数不能被继承
: y* K: s ]1 N& eC. 派生类可以有多个基类8 B; M: Q0 P1 x$ o; k; @! k
D. 纯虚基类的子类可以是虚基类# m) N# d+ A4 m1 B
满分:5 分
H5 ?0 o2 T! N/ F5 A( e( q13. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是
- T E5 V6 Q$ o( H0 i! DA. 派生类的对象可以赋给基类的对象
, m ^- l) A+ w+ k6 w1 r* rB. 派生类的对象可以初始化基类的引用& c R) `& A+ _4 P
C. 派生类的对象可以直接访问基类中的成员
# ~8 o. ?/ i, ], {) M' \D. 派生类的对象的地址可以赋给指向基类的指针+ Z1 P3 V2 [) q7 f6 F0 D
满分:5 分- z! j! s. r. W. R
14. 已定义以下函数
/ S3 c# V0 ~* ]% O0 jint fun(int *p)0 ~ U7 Q0 g1 V9 W( K' z
{ return *p;)2 s; X: o2 R6 g/ a- k
fun函数返回值是
8 F! `5 Q! a7 ]4 @% hA. 不确定的值
~1 k0 N$ p! i8 V" nB. 一个整数
6 M) Q6 g, _' G+ f d8 uC. 形参P中存放的值
. Z+ j4 r( }3 n% n+ x( _2 f7 \, m2 eD. 形参P的地址值* n2 v/ `: F/ |1 L* n1 ?9 L
满分:5 分
5 {( ~' l6 O. z15. C++语言中关于构造函数的说法正确的是( )
0 S: P) M. Y0 w6 ~( c) hA. 构造函数的函数名不必和类名相同
1 z" S6 T8 r3 I" N- KB. 构造函数只能每一个
% u {' W2 c9 ?; kC. 每个类必定有构造函数 & E! T+ {5 L1 @. |# E
D. 构造函数必有返回值# M4 b# k1 Y4 u& P3 n
满分:5 分
, T3 V! n9 H7 h1 I16. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明; u' B: h; Z) h* ^
A. f()是基类的私有成员
' l6 t. A( N6 GB. 派生类的继承方式为私有# R# h$ M7 w" `5 \6 M' Z
C. f()是基类的保护成员8 a/ {/ Z/ C. V/ }, V
D. 派生类的继承方式为保护
$ F- H0 m C( l" v/ e 满分:5 分
( Z: |" G) u4 m# S7 {9 [: J17. 以下叙述中错误的是* P" |2 s0 i+ |, J, L6 c( N8 m
A. C++语句必须以分号结束
0 {$ `! k; `/ mB. 复合语句在语法上被看作一条语句
2 W# Z" Z6 f% H0 u- S( ~8 j- B5 gC. 空语句出现在任何位置都不会影响程序运行
: ~6 _5 E* ?: [7 `D. 赋值表达式末尾加分号就构成赋值语句' w& r1 {- i4 v2 o2 K
满分:5 分
9 t/ C) ?( G+ U2 c& ?18. 在类声明中,紧跟在“public:”后声明的成员的访问权限是
# T) R& N; V% n' L' IA. 私有
/ S: Q' R' W$ R- yB. 公有5 `0 z! v3 r! F! @$ V6 N
C. 保护5 n0 l: Y! a. K& c" J
D. 默认
4 T3 V4 s0 j: P 满分:5 分
/ c" A1 Q# l% V: p19. 下列程序的运行结果是
. {* b" a. y# z1 m4 k5 e/ }! p5 Xvoid fun(int *a, int *b)
! ` I! y! e/ C' Q# {' p3 j5 B{ int *k;
& _. W+ A7 p) mk=a; a=b; b=k;% V3 i, V z; Z- L2 y- }
}
1 o9 U8 b# l: X% Qmain()8 D/ U2 {6 E& u$ H$ z# Z
{
8 i6 L4 `; j2 h2 y int a=3, b=6, *x=&a, *y=&b;7 e7 {( N9 t# X# {8 r0 C
fun(x,y);4 C; c g4 k3 H( F* g R/ D A+ f
cout<<a<<b;+ D# V4 J! n& Q& m+ U* \) n( y' v
}6 H: a* V" D! v* J* f
A. 6 3 ! @0 |! a. T2 E* g3 U
B. 3 66 |+ N, s7 e/ N( O
C. 编译出错7 y& R+ P9 ], l% o* T# a3 b
D. 0 0
* i! M1 k) I1 H9 F/ z% F2 T 满分:5 分
/ o7 ^7 @7 q9 [- d$ d4 h- y7 X20. 以下程序的输出结果是2 Y- g/ d( r( a- C, h; ~" T
#include <iostream>
! }8 p% R: r' b5 _9 Z7 nusing namespace std;3 e$ F4 E z7 E
long fun( int n)4 I: \( r' _' T! S
{ # m7 y7 X8 ~/ s( d" ?, k
long s;; ~: s& T6 M1 K/ W
if(n==1 || n==2) s=2;
/ O, i2 [: l1 R9 W! ` else s=n-fun(n-1);# a& ~) ?+ _3 K0 U* }
return s;& _0 S6 E8 O: x
}
; A; W2 D1 g; ~, p { T H) n9 pint main(int argc, char* argv[])" y5 N5 w t5 ~8 H F7 o- W
{
; Q/ z3 ]; N0 \1 W cout<<fun(3);8 u0 A6 v+ m& a! C1 I
return 0;/ K& o$ i# ~- f% d7 J& b
}
^) L" q: h( X: t- _A. 19 y' R* S J- U0 X$ Z. p
B. 26 o! `* _3 ?* Z- z$ S( p3 \
C. 3; A# g$ ]( A; D, ]
D. 4
$ E6 n* o+ |6 Y7 X( w 满分:5 分
# y% N& s, O# r; O8 G; J+ ~. [9 ^& s- Q6 y& G- E; R" b& g6 `
|
|