|
一、单选题(共 20 道试题,共 100 分。)V 1. 在C++语言中,打开一个文件就是将这个文件与一个什么建立关联( )
( C! J9 {8 ^; C2 \A. 流
9 w' V; C3 f9 e% X8 ^$ T& LB. 类 0 F1 b* k$ u+ Q" x8 e8 P" f
C. 结构1 X9 {( z! q9 [! ?! E
D. .对象1 [) s( O- T ~+ @6 o3 X
满分:5 分
& x3 V0 H! n& I9 ]5 i! [9 `9 o2. 以下程序运行后,输出结果是
5 ?7 p5 [8 h% {4 f' a* |. ? main()
; y4 l1 |0 ?6 \" w- m( a0 c! @6 l8 U0 g { char ch[2][5]={"693","825"},*p[2];
7 F2 S. g3 n, ~% o, U int i,j,s=0;
* o8 k; G/ y A+ r for (i=0;i<2;i++) p[i]=ch[i];
: \( T2 q& e; B7 s* _1 P for (i=0;i<2;i++)
- h3 Q. o2 R9 r. H- y; n$ m for (j=0;p[i][j]>='0' && p[i][j]<='9';j+=2)
1 u0 n& y6 P" W. m. c- e s=10*s+p[i][j]-'0';
' z5 e: W. @) d cout<<s;1 B! U# g$ \3 O) O3 j
}
( B, w+ o1 S7 EA. 6385
9 }4 @+ \4 n4 cB. 22 E- S6 b5 Y# Z# w( C2 P# \
C. 33 1 \( R# ^" ~* d% }! P. i$ \" _, l
D. 693825
. G% A, v5 n' A5 I2 a' W$ ^ 满分:5 分
8 a6 p9 B* D4 @- X7 Z* S% U3. * L0 X- `( |+ T: L
)下列程序的输出结果是( )
, \% O: R2 Q5 e: _+ L#include <iostream>8 }4 [; z$ U+ {- z# `2 R+ E" A
#include <cstring># E7 _7 ~8 y6 J. W. G- ]
using namespace std;" H2 g- [- `+ a% h8 v$ j% X$ r
int main(int argc, char* argv[])/ }/ ~, {7 g/ o& X4 [# L; v
{% o* }" Y* {0 @1 L
double d=3.2;4 K% @: ]9 _$ D e0 o
int x=1.2,y;7 @' y% h/ U' P7 w0 S/ R. W
y=(x+3.8)/5.0;
; Z0 N8 q8 @- W7 i$ U) q cout<<y*d<<endl;
4 @0 d* [# [) K+ V- O3 h* d4 p return 0;9 z/ {$ @6 V F9 X$ Y. F7 w+ C
} ; h% q$ O& R, x/ b' \
A. 3
& W# X* Y# b( Q+ XB. 3.2. j0 W% s1 T- D
C. 0
4 {: f8 n# D$ uD. 3.07* g/ U* g5 G I6 l/ Y: I( X
满分:5 分
& q0 S% i) a& [7 x; _5 ^ f; z4. C++中,封装是借助于什么达到的?
6 @8 c* s) ?% H) K' V; u" B$ j( gA. 结构
! H! z( _: x# i% zB. 类
8 u* ]8 a1 D! ~6 dC. 数组
( x( M; T" Z }4 f9 {) @0 _D. 函数- L: b3 R. G$ ]) K3 ^
满分:5 分' }$ x+ S3 B& f
5. 9 _6 H( d1 y: S* p/ }
有以下程序- n- W3 n: m* J% u
#include <iostream>
! q' ^1 i+ J, W9 F#include <cmath>
3 V( F4 m0 [+ M3 E8 ]; q/ h% ousing namespace std;, W* z9 q' o' V5 _
void sum(int a[])
4 U% v8 h1 }/ i% h{ a[0] = a[-1]+a[1]; }
/ _# }$ s$ x8 L+ W: l+ u/ V: _1 S; t7 w' v* T9 O* d/ R
int main(int argc, char* argv[])* ]1 X3 c( b# }4 a0 Y
{! f/ F) [3 G* C/ W
int a[10]={1,2,3,4,5,6,7,8,9,10};
/ k# J2 g V9 k- B2 z sum(&a[2]);
% j. Z5 q+ U. D- m2 q' Q cout<<a[2];/ t, o1 ]- d/ ~, v4 ] i7 m) q
return 0;
! z8 m1 r5 w$ H( Z9 o9 |}
O$ L% r+ _" v- ~( [+ ?9 {1 h+ a程序运行后的输出结果是6 j% C( q) {9 a: Y, K( k7 ?/ e
- I! R! @ y# E1 t8 VA. 6
' }0 p2 T9 ^& l5 r( T0 I3 cB. 7
2 d" n4 U. P: O+ }% N/ L, ]3 qC. 50 ?6 ~ U1 k7 H' k' Y4 V3 i
D. 8
7 M, y8 d4 ]/ `* s1 B7 f 满分:5 分
0 f# \! C: J$ s& j$ ?8 B5 Y6. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为: l% S: p% L6 a$ i2 i! E/ C
A. 私有继承 2 V3 E/ X- a1 d4 T8 b5 S {
B. 非私有继承 + O2 w- U6 I2 f a
C. 保护继承
; v( |( ]/ A& i) C/ y) dD. 公有继承
' e+ E+ d/ q. N' T6 e; f7 S" l! y 满分:5 分( w4 I6 U! G. g1 t$ V
7. ( M2 |" U* F' x& L. T- q( J/ T7 u
有以下程序6 U9 f) [) m7 r' d% S
main()& r4 p9 o: \# G5 D/ t4 c' P" X
{ char p[]={'a','b','c'}, q[]="abc";
* Q/ ?2 L+ y8 _, z# e" x, X printf("%d %d\n",sizeof(p),sizeof(q));
3 x3 X2 L0 J; O A};
" r8 d8 ^: s; h: j程序运行后的输出结果是
$ B& ^9 B+ @. H, bA. 4 4
" P. Z$ D! [: a# V5 c. eB. 3 3
& g/ X6 u+ `( z5 g3 \) MC. 3 4 % m" X( n: U, i/ r) R+ }: t
D. 4 3( t/ _: s0 H* R% {5 i2 Z5 B
满分:5 分$ Y3 M9 H9 I! ]) y0 ?+ I9 z1 `
8. 5 Q0 c2 a, _* q! S& q+ B
如下代码的运行结果为. D9 K# |3 p& t; r2 P2 w& C
4 A {" B ?4 J* S/ R8 k: \" X
#include <iostream>
& F+ p" D* g/ y4 J9 A3 y#include <iomanip> ^3 B; v9 O# Z7 [* C" S
#include <fstream>
0 E, g4 Z/ X1 ousing namespace std;) {5 [: R4 A2 z1 P# k
class Base {- U# d. d- k5 r" Y/ h7 d
protected:
0 D1 R, y: h, W. K' K Base( ){ cout<<'A'; }
0 c. L9 n& g1 ? Base(char c){ cout<<c;}
! A* }/ A6 b3 g5 ^/ k2 b' D6 i};
3 v# ]5 c# |, ?. y, iclass Derived: public Base{
0 F7 f. J/ ]2 G3 U% m5 spublic:+ B- I1 \/ J, d+ u* R
Derived( char c ){ cout<<c;}
b# l; N5 ^% ~};9 @- x( z% B. L: F5 h, s$ c( g
* b ^0 O% p1 Q3 j; ^1 Y7 w
int main(int argc, char* argv[])
* j4 B. _% @) \6 }& e{
1 I% d" @$ [7 L- N5 G Derived d1('B');
1 B1 a1 S) w- l Base &base = d1;( ~' b3 n" v* T# Q+ L7 f
return 0;
5 ]5 x6 N& S" o$ c9 A7 [ {1 H( K# N2 @# f" u0 t y
- M' d& V& K6 f# e+ j, N! L! y6 \! l
A. B+ d, O0 }0 c4 Z2 C' ^+ z5 o) Z! }
B. BA & k, l7 Z0 y, l" V$ F0 @( J; w
C. AB
4 S7 o1 _! v. c4 t: @/ uD. BB
4 @/ O$ x" B1 i1 r% W 满分:5 分2 S. s5 a& G; O% J' p3 A; b
9. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是
2 M* ~6 a6 d2 ^6 p' qA. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");}
1 ~3 ^% {9 `, V2 M8 DB. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");
H0 W$ @/ V' ~C. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}
& V2 b* T& Y. c/ MD. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}* j$ M. {" q. [# a0 x
满分:5 分$ n/ Q0 o) `# {2 _+ y' J2 Q
10. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是7 {. y4 E1 W4 F9 [
A. 公有类型# I, d0 E; c- |# k
B. 私有类型 n# y3 @5 w) [) d; E
C. 保护类型
& k2 G$ h3 c I" c1 KD. 友元类型
" {8 |+ Y# |' v7 A8 f7 F6 ~ 满分:5 分 ^$ f) Y+ E1 e% n; n3 T
11. 下列关于运算符重载不正确的是* r% I' W3 M: z* I7 k
A. 运算符重载不能改变运算符的操作数个数
; [' F+ n4 r1 S5 SB. 运算符重载不能改变运算符的优先级
' S- Z& G$ ?4 _; {+ D' }C. 运算符重载不能改变运算符的结合性
6 g% P4 E+ G+ h$ p! d3 Q9 SD. 运算符重载能改变对预定义类型数据的操作方式
; \* i; ? [; E, w 满分:5 分
M+ E4 e* N. o' {12. 设 int x=1, y=1; 表达式(!x||y--)的值是 5 [6 j0 j: Z8 x% s& V& t, b
A. 0# g: P+ `( ]5 Z) ?# o
B. 1
4 ~$ {6 v! e: |4 w2 g0 ~' k lC. 2" r+ Z* t! r! _2 C0 f, t
D. -10 i& ?% w5 @% h K% e
满分:5 分, X6 f/ f8 F) C/ M5 \, o
13.
* J: u: t$ ]( S% }1 _& ^8 K: Y% u( ]9 U下程序的输出结果是( )
( M) u9 U. o6 _" p5 D#include <iostream>8 T3 I9 Y O0 d) q& v5 D x# f
using namespace std;
: Q+ K/ r) h, |0 ^% `2 B5 H* C+ c! h$ qint f()
: a0 \9 {4 Q9 s9 d% C. [2 l* R" f{
7 M+ \8 a; F6 ]5 ?$ y) T, E static int i=0;5 l2 G0 A% G& e! s0 M
int s=1;* S% A# C9 W: X' W1 t6 n
s+=i;i++;
1 \1 Y+ {# T" X# p return s;
2 ~1 E& _) ~ W# m9 g& |}
, k- t' q" W, p: |" X0 q
! ]1 r! G3 N8 Z3 X2 Zint main(int argc, char* argv[]); S7 q7 ]4 V. ^7 p% m
{
: ~1 V" A3 b6 |' w* ~* |9 t" B4 P int i,a=0;' g2 j! m0 c# ~7 r
for(i=0;i<5;i++)a+=f();7 l7 [& g/ z/ b) t
cout<<a;
k5 f4 v5 W7 r return 0;$ y6 g' m' J5 M. M% C1 ~
}
6 U; f! i" k9 ^2 x" w! P& ]) K3 u! | c7 w! k9 A2 N
A. 5/ M$ O7 @0 f9 M0 c; |! o
B. 0; H% U, D& h+ P$ Q: L( j, K( }
C. 15
6 S' {& b' w# H4 F x0 L& s, FD. 25/ o& x G) ~" n c
满分:5 分
7 { {( j$ W. z; w14. 在C++语言中,函数返回值的类型最终取决于, s4 a6 }) T- H& e; a5 w n
A. 函数定义时在函数首部所说明的函数类型
* a# A6 Y* T C& IB. return语句中表达式值的类型9 z2 `) v0 K* J4 \
C. 调用函数时主调函数所传递的实参类型 ! J7 R8 |) f; P# n7 ?3 H
D. 函数定义时形参的类型
& m( p0 C& g0 F% P1 t 满分:5 分
6 X5 R4 a, W! G+ n0 a% e0 B15. 下面关于虚函数的描述,错误的是
# r' \2 t# o6 N% m& mA. 在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
- a! Q4 m( V. ~# s4 J" mB. 基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数& P! v; q) q5 E8 d# z# \% z% z
C. ' Y5 x- u Z [4 F* I. \
虚函数可以是另一个类的友元函数,但不能是静态成员函数0 {, ], a) n' I3 y% M, r) [
$ |- o v1 s" @
D. 基类中说明的纯虚函数在其任何派生类中都必须实现
5 ]! Y9 [. y" S# h O$ E8 B, D 满分:5 分/ R8 \- G' l. O$ L% L$ Y( @% Y
16. 设有如下的变量定义: 0 U/ u) ] ?1 M* p1 m- a% X
int i =8,k ,a,b ;
/ v& {7 x" u, S# f0 v: [ Q+ F unsigned long w=5;
+ X/ V5 \1 f- X3 _5 _ double x=1.42, y=5.2;
3 D- j7 n- b. V8 c% p* M9 v4 Q则以下不符合C++语言语法的表达式是 , p& H( @1 v7 t3 y
A. a+=a-=(b=4)*(a=3)
7 L* \! u5 m+ y" Q. D8 VB. x%(-3) ; L1 h7 S e6 s; Q1 B
C. a=a*3=2 1 ^ P7 }4 t; E/ l6 y) k( ]0 f
D. y=float(i)
* Y1 P3 T- s# E% N 满分:5 分$ F8 q% @ w& L7 K! s
17. 下列关于C++关键字的说法中正确的是
- D: k. O; B+ I# eA. 关键字是用户为程序中各种需要命名的“元素”所起的名字
5 O+ Q& j( D- C" C+ v0 VB. 关键字是对程序中的数据进行操作的一类单词
: ]) f. ]# ~2 s- Z; k, M" V$ R* BC. 关键字是在程序中起分割内容和界定范围作用的一类单词# u4 ^' O& y, i; G W7 K8 K( k; i
D. 关键字是C++中预先定义并实现一定功能的一类单词; D& u2 ?% q% Z; ^1 G/ B
满分:5 分$ U- m5 ?. W% h& u7 t$ A
18. 以下关键字不能用来声明类的访问权限的是% \# L- m5 P$ R$ i* L
A. public - b# N% F4 z# Y! Y0 z/ k
B. static
@; I. `# J' `5 \( yC. protected
7 m0 P4 ~ }+ T* u# c. _D. private
% W3 Y; E2 k& V 满分:5 分
; k! x5 Q7 a, K19. 下列有关内联函数的叙述中,正确的是 ) f/ o4 |* Z( Y- w
A. 内联函数在调用时发生控制转移$ B% H# _( ?, x+ h
B. 内联函数必须通过关键字 inline 来定义" i6 W0 N S/ Y6 f5 m) w
C. 内联函数是通过编译器来实现的 ' L7 X/ Z( o9 \5 `" d' m/ r+ y# C
D. 内联函数体的最后一条语句必须是 rennin 语句
& x* h: i8 T' a. k" w 满分:5 分
- y+ \0 H+ F4 ]20. 在一个抽象类中,一定包含有/ ?; s- p/ u+ o, v
A. 虚函数
9 [) h# b( j+ g/ EB. 纯虚函数
, m" L* G6 W" H% V5 K$ }! M' bC. 模板函数
7 T2 `* q/ P2 t: UD. 重载函数
h* U& p2 n$ b: ^ 满分:5 分 & x( y9 F. E% ]0 Z2 s+ b9 ]% |
5 d9 R4 t) x; Z; X" `) X6 u) h, Z |
|