|
一、单选题(共 20 道试题,共 100 分。)V 1. 在C++语言中,打开一个文件就是将这个文件与一个什么建立关联( )
2 ?/ h0 X; h3 w$ |3 F/ sA. 流
& E/ Y* o0 B& h5 x; e" ]B. 类 4 j4 T4 t" w1 \6 D
C. 结构
5 M. \7 u' P0 M0 TD. .对象6 q( l& t! }9 D' e- r7 D# u8 K
满分:5 分
+ I9 s/ }8 ]$ B" i6 J9 J: U5 j3 g0 V2. 以下程序运行后,输出结果是 ; C1 l* ]' j5 ^5 @" [8 R
main() ( O8 f8 Y( T4 W/ x- B/ t! u9 @
{ char ch[2][5]={"693","825"},*p[2];
4 n% P1 w, F$ j } int i,j,s=0;
/ m% u% P1 \8 i" d0 R1 s; Y1 ] for (i=0;i<2;i++) p[i]=ch[i]; # v, C3 j+ m" d6 ~- v5 ~! m
for (i=0;i<2;i++)
! c. w6 {0 D& n+ v& a ^ for (j=0;p[i][j]>='0' && p[i][j]<='9';j+=2) # K. d2 W- d& i( @
s=10*s+p[i][j]-'0';
3 r# O$ m$ ] g4 I3 \; _ cout<<s;' @% S! F, _2 p! [
} ' \9 Y$ e. r; T" @3 e i5 Q g
A. 63859 ?* m! P' H8 w: n/ g
B. 22" \& W# Y2 ^3 p2 S& u- l- L
C. 33
A5 C) G2 [7 M8 a8 BD. 693825, D2 D( u7 N4 [/ l" I# p) G e
满分:5 分 U( y: g, Y( g8 t/ h' D1 i) b6 M
3. . G: L( B* R% _/ a7 E
)下列程序的输出结果是( )- n% m3 r0 w& D. |- ?
#include <iostream> D+ e' G4 A4 r4 Z5 m
#include <cstring> Y) \, ]- i9 z2 }
using namespace std;$ i) Q ]1 b' S7 C* a$ f. p
int main(int argc, char* argv[])
* M2 |: g* l4 ~{/ G; p4 D9 l# ~
double d=3.2;
O5 U% s# K! V$ U int x=1.2,y;7 S, r7 G, p3 O: g9 H( Z
y=(x+3.8)/5.0;' l# i4 k7 o4 v: D" o
cout<<y*d<<endl;0 {4 r& i+ S+ g1 ^0 v$ S
return 0;) T: Y. U' i' P6 k2 m9 v
} 3 R. e4 t# u1 r' S" M' G3 W
A. 3
3 B0 k) V. R. y5 }$ QB. 3.2+ Y* b9 B d% z8 ~
C. 0( J% v( V: ?3 K& g+ ]( P( G" \9 b
D. 3.07! z4 x) v+ z: {7 e
满分:5 分$ V. m* p7 C* L" t) c0 G; B% Q
4. C++中,封装是借助于什么达到的?
5 |1 _' B6 D. |0 cA. 结构
) R3 h0 e: u7 V" a' Z y+ a- r- YB. 类
3 p# X4 _6 q/ y- lC. 数组
4 M+ b0 \6 ]! i; ?& Z5 r$ UD. 函数
" h4 A9 T) Y5 e1 x1 a9 g 满分:5 分/ z3 @) p6 }3 J) u# D4 ]: ?
5. " i% g7 F% M3 D# D7 g7 K
有以下程序. X' a+ c3 q" X5 E, ]9 M* @- n
#include <iostream>
# o' {! }& H* O#include <cmath>! L9 p) K+ l! @6 f* g/ f. J, p
using namespace std;' T+ O" M$ [" Q
void sum(int a[])/ { T$ D' r- w# s1 g
{ a[0] = a[-1]+a[1]; }
: j7 ^3 H# E6 D# H) z# i5 _* N6 j" ?9 a# b4 n8 R
int main(int argc, char* argv[])
8 u5 M, ^% ^7 c: ~4 M7 ]+ B* ~{/ Y$ m" p. B% ^# |" W; J6 }
int a[10]={1,2,3,4,5,6,7,8,9,10};( n& Y& K& j) |4 b0 t% V( y
sum(&a[2]);' h! g0 t. T" g% @& d, q
cout<<a[2];- ]* z) T, t! Y4 G# i
return 0;& }5 d! o7 `" F3 ~* J/ @
}4 K7 h% m( Z' e- p4 Q6 ? `. j
程序运行后的输出结果是
( X9 G! S. o: {3 }1 ^3 b! n& p6 e* G2 L
A. 6* @+ }# A% O$ J z
B. 7. g; L* F- N( O8 t- N! a: @8 S. ]
C. 5
% T% W$ |0 j1 u9 x8 WD. 8, H7 g& d( s* {9 s8 z( R
满分:5 分
2 A- Z( k" E% w) a. {2 g6. 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为
H* p- z) I4 ]% G, MA. 私有继承 ; p6 k! C: Y [
B. 非私有继承 r0 c! k9 H- }8 ]+ W8 m/ f
C. 保护继承
, c- r6 |. m/ H4 g$ H" d: CD. 公有继承
$ H, I4 R) [! d! w! D _# h 满分:5 分4 I; ~, S2 j1 P
7.
6 L& f# X& F2 {5 w& i5 |! Z. c. x有以下程序1 w$ g9 {1 q* X
main()
( t( J. G; q) Z N! T0 b{ char p[]={'a','b','c'}, q[]="abc";3 o$ r m: V& q& A. J0 y
printf("%d %d\n",sizeof(p),sizeof(q));
2 {7 b& h, t2 Y* U# @0 N& X- ?};; v# N0 U; x9 i# I3 f) B) N
程序运行后的输出结果是, [/ B# k7 h& g |! q
A. 4 4 . V4 F2 S9 u( X" k
B. 3 3 ) q- }. l* g! p* q/ m3 }* O O
C. 3 4 7 w& N" o) f* a, T* b1 _ k3 a j" \
D. 4 3: o( ]( H6 o. M
满分:5 分
/ R8 k. {' S9 v/ t4 M* g- Y$ C/ ^8. 7 b# s7 }& `$ w
如下代码的运行结果为
9 J+ P, `( m3 E: N6 B& A# c# W5 ~& Y. i( l4 @
#include <iostream>7 g# c8 J2 k S- S/ H |
#include <iomanip>
$ G0 y3 i" X& k; n#include <fstream>, ^- E6 A' \; i" V5 i1 _
using namespace std;- n7 U, f4 q7 A/ q3 j- }6 f* k
class Base {0 C" ]4 y9 A @" Y# t% G) h( Q1 h
protected:" ~* K" a# Y' D5 y, a! Z4 _
Base( ){ cout<<'A'; }* H- m7 U% ~5 I+ |) y
Base(char c){ cout<<c;}7 C. o8 J# Y7 X3 C% y- u
};
# j0 J. B( I- j! m! Xclass Derived: public Base{
* j) j2 Q. ~; P) P3 q/ e, Xpublic:4 G9 H% v. s, O$ Q
Derived( char c ){ cout<<c;}
2 I( V/ ^7 S+ B) s2 s+ P$ P# r; M};
1 L3 _- L$ d0 D0 s+ E) V5 ]- w) N4 g/ _; g; E. Y( k
int main(int argc, char* argv[])
7 _% H# e' Z- D) V{# h! t9 u5 t# e. |& ~: A
Derived d1('B');' c F+ _* ~1 z% m; k
Base &base = d1;
( ?7 k$ c/ W G9 s4 c5 t return 0;
" p8 f, I8 B9 o1 H) {% L- J0 v3 M
, B: B5 \9 _9 Q9 V+ `5 |6 i! E
+ L: F! ?9 L. Z: j% n0 f: h% x7 j; sA. B1 r5 z% J% ~/ d9 R
B. BA
9 |7 ~; W/ T9 d7 E: JC. AB $ a5 i( Y& S8 Q$ A' [8 s1 B
D. BB
+ u) E# H% G5 H; c$ Z5 v. _) d% y 满分:5 分2 v8 v5 o5 z# m! X
9. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是* e8 |) }) U6 H" J1 [
A. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");}+ V) P0 x% b( `# B. t: ?7 ^
B. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");
! }+ S- \7 W6 f$ P# V iC. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");} @" ?7 `' D: x( z3 u( |
D. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}2 u- R" |4 r7 |% g Q+ G/ i/ K& {5 i$ A" @
满分:5 分! Q7 j5 c, P1 ?9 L$ H/ z0 V; b3 @, V
10. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是
! O( Q6 q* { n0 {A. 公有类型
+ d2 z% r/ w0 v3 w* m6 M# zB. 私有类型
+ l' P, l. P$ M$ P( tC. 保护类型1 o( ?5 C: h4 e8 H; C; l
D. 友元类型
& a: E, u' @, w/ v4 f, S! z' W u 满分:5 分
% L0 ?; r. f. Q* F9 O11. 下列关于运算符重载不正确的是
+ L' _) F1 h' I' hA. 运算符重载不能改变运算符的操作数个数
( ~$ \4 ?* N1 y a* g- sB. 运算符重载不能改变运算符的优先级
3 ~, Z' a3 E X* [. S7 y9 rC. 运算符重载不能改变运算符的结合性. w* c1 v; T4 n. C5 K
D. 运算符重载能改变对预定义类型数据的操作方式
, N9 E& ?! v% E 满分:5 分
* W3 C% C+ [- O4 v4 e0 Y12. 设 int x=1, y=1; 表达式(!x||y--)的值是
, y$ P1 q% B0 f! d7 K* }0 J$ u& {A. 0, r9 K0 G {1 X2 C0 r5 N1 l
B. 1
! l0 [6 ~* c% d2 H! g$ oC. 2
1 ~( }( Z; ?, Y( C0 `( QD. -1
# M" y; P- s! x! n* B: B6 D7 l 满分:5 分& [7 @& p P5 w: V+ ~: |3 Y
13. 9 Y3 i, n$ n; Q
下程序的输出结果是( )" ?; G% t8 B, E1 l. e7 e/ r3 P
#include <iostream>
4 B; C' S+ H: {% `5 X- B5 ?! vusing namespace std;$ W) }; x3 U. a4 }7 `
int f()4 w3 B' P: ]3 P' F! w& k5 \" w
{ 4 T }2 I% p. D1 n* S
static int i=0;; P6 W b* F6 L* ^" V7 B- [8 u: M
int s=1;
8 u3 g5 c. k* ? V* x5 m( @7 C s+=i;i++;* w0 H& o- c% j. H, Q. K
return s;: z7 S% h# ]" } D' i+ |1 ]3 t
}2 H' ~$ l7 m D) h7 r; L
7 L. F, [' ]/ I) G- n7 Q- H: J2 ^- G
int main(int argc, char* argv[])
7 v/ |' m& ~; i* T6 V. u{
% a- x6 I( Z- a7 w int i,a=0;
' B- u, u/ O5 L+ A& J8 t2 e for(i=0;i<5;i++)a+=f();
4 o4 t* K } j4 h$ U2 e# `8 j cout<<a;
2 y3 n1 h' J' h8 X$ g$ s1 R; w) C return 0;
, Z6 J, {- c" s9 p* v}
$ a1 |4 H8 B* r; o r
2 N4 ^7 z) o/ g# p6 T5 M& eA. 5
& L y: r, Q$ jB. 0
4 a' D# X9 `$ s" gC. 15
! P2 @2 q; g$ G' t8 a& t0 aD. 25$ i( T. n, c* z# W3 D. b9 E7 M
满分:5 分9 Q3 s5 z9 C' y( @
14. 在C++语言中,函数返回值的类型最终取决于
- K0 O: s3 X- ]% r6 t* ^A. 函数定义时在函数首部所说明的函数类型
; @. f7 e9 i) t, hB. return语句中表达式值的类型& g: r. |! @3 Z2 j) A
C. 调用函数时主调函数所传递的实参类型 5 T b+ u; C. g' a$ B! b/ B
D. 函数定义时形参的类型
5 C" G5 t0 X" B g/ r4 p 满分:5 分
+ j9 c" I/ D6 i* t) s15. 下面关于虚函数的描述,错误的是
9 n# I" ~) h3 p1 G1 E5 V KA. 在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数1 f$ X1 Z( u5 U
B. 基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数; p) q; g0 c( i" i$ w+ k7 r
C. 6 P; V) F) o M( S9 c4 c6 d
虚函数可以是另一个类的友元函数,但不能是静态成员函数, B L3 s r- I" P
- B7 c* D4 { S( \% g* s- S
D. 基类中说明的纯虚函数在其任何派生类中都必须实现
& z- Y& \* `, t2 M5 S; |$ f 满分:5 分& o8 ], N1 y% \2 x4 ]7 O+ V8 ]
16. 设有如下的变量定义:
$ u2 z+ K: `3 w- \ int i =8,k ,a,b ; 5 q% s% R* |. L; s! a6 Y
unsigned long w=5; * B z+ ?$ [+ C9 l5 s: {) @
double x=1.42, y=5.2; " a0 V! D7 W6 u$ ^7 t$ E( @) ?
则以下不符合C++语言语法的表达式是
0 B& ?- U* h+ i2 XA. a+=a-=(b=4)*(a=3)! z( l$ E2 c* _: Y2 S, B! H( D) f
B. x%(-3) 9 {' i) R- U0 ?3 S v, l; e
C. a=a*3=2
. |" G' R3 a$ K9 y5 S$ Z" ID. y=float(i) 3 o7 V# r, Y; S. R5 P
满分:5 分! a; D" B& y! _, C: |4 @3 W
17. 下列关于C++关键字的说法中正确的是
& \ ~7 }4 d. }2 ^: p3 `A. 关键字是用户为程序中各种需要命名的“元素”所起的名字" ~9 R; _3 _0 ], l O# o
B. 关键字是对程序中的数据进行操作的一类单词
2 v" n7 P, h+ G2 R9 h! sC. 关键字是在程序中起分割内容和界定范围作用的一类单词0 ]2 a1 W) D+ \3 l
D. 关键字是C++中预先定义并实现一定功能的一类单词! ]$ h4 w, D' F; h5 p/ i& }$ `. O
满分:5 分
% j( v* C7 d) P4 d+ ]18. 以下关键字不能用来声明类的访问权限的是6 k1 B' e" C( d1 |/ b9 _# F1 m
A. public
- R6 f0 |; J2 V# TB. static
$ W; |. t2 X! L9 c8 LC. protected
9 d# \- g7 x4 C0 c9 C+ YD. private
, c7 i1 h$ _+ @) E 满分:5 分; N) }3 r% A% b5 a p9 v! v
19. 下列有关内联函数的叙述中,正确的是 5 P/ q- T3 ]8 S' a
A. 内联函数在调用时发生控制转移/ A4 u0 r3 G& a% Y( c
B. 内联函数必须通过关键字 inline 来定义
5 K2 y/ S' U8 S2 {; K8 t8 sC. 内联函数是通过编译器来实现的
- [ Z' r9 R; KD. 内联函数体的最后一条语句必须是 rennin 语句
( A' b# [' ]$ L" K' R! R4 h; f 满分:5 分
' F$ D7 q- M6 O* O: ? N, |20. 在一个抽象类中,一定包含有6 T* ^/ V' i% }% a
A. 虚函数 6 H# N3 i" ?: n% ]# F6 N4 _
B. 纯虚函数
4 q2 s& ?6 W G9 _6 PC. 模板函数
! V# T( ]7 L' K! S/ KD. 重载函数
5 T& B0 `% m- p ^8 P3 o! V2 N 满分:5 分 7 q* L% U+ M- ^, x! R# F
% S# l9 k0 d1 s |
|