|
一、单选题(共 20 道试题,共 100 分。)V 1. 函数模板:template T add(T x,T y) {return x+y;}下列对add函数的调用不正确的是( )' ?. G4 p5 ^' ^9 h8 S
A. add< >(1,2) ; i4 I2 `( `1 v
B. add(1,2)
4 x& R$ ?8 T, e3 I: uC. add(1.0,2)
3 {' L& w; V$ @2 i' h) W: A& G. SD. add(1.0,2.0)4 ]- s6 J% }7 s$ U& Y
满分:5 分
) B5 Z$ T3 t- M8 z/ {7 Q7 {2. 以下数组定义中错误的是
D- i* c8 q- W! a7 f ^7 wA. int x[][3]={0}3 r% S: T0 Z9 W& ^! A; J/ K+ K6 v
B. int x[2][3]={{l,2},{3,4},{5,6}}: _" q- N' Z- t7 S9 H2 x
C. int x[][3]={{l,2,3},{4,5,6}}. I1 b, _# R0 c5 J1 O5 U p3 x
D. int x[2][3]={l,2,3,4,5,6}; U" y6 y; p9 Q+ L2 c# a8 m: y
满分:5 分
* b8 g% d0 X$ x8 C3 \' H3. 语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,且( )
0 q2 `9 S y0 O: H3 [7 Z8 W0 N, }+ s3 VA. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
! E, R+ `# M1 E2 Y! {$ o- f FB. 若文件存在,将其置为空文件;若文件不存在,找开失败
4 T4 o8 s5 ]: l0 C8 B0 T( i- W) nC. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件4 |0 q- L& \$ u+ w
D. 若文件存在,找开失败;若文件不存在,建立一个新文件# y$ F8 c7 d. g
满分:5 分) E4 N* N9 g0 |* ~
4. 在C++语言提供的合法的关键字是: Z) |& V$ `* h2 o
A. swicth& a) \* @- r7 `: b( a R
B.
- s* O1 ~! {. a z% [; Zcher3 x' i9 G5 ?( R0 V+ E0 v, r
5 l0 Y# Q) N3 j6 G6 ^) TC. Case
+ {! d/ b( W/ O; T% a, u- kD. default
+ i2 e( Y1 h- Q 满分:5 分+ G# d+ T: G- U O; }) C
5. 8 d; A. n2 y! w' o% m3 b; O; {! Y6 e
有以下程序段
% V) z" |, v" V& @* }% h5 F+ @; e# M3 k( Oint k=0,a=1,b=2,c=3;
5 Z8 e" J% `$ ck=a<b ? b:a;' ?- l- O" B1 K; z4 t
k=k>c ? c:k;, o' M. z, `# Y* s# M' ?# P
执行该程序段后,k的值是
" x. Y" t M5 [' WA. 3' b: k: k& _0 e, k/ @8 p
B. 2# F% Q* q, A. X9 n3 _/ F. X% P
C. 1
- d0 U. j9 g K3 a0 s8 HD. 0
/ o+ R" k) g5 D% U7 x) x* ~% Y2 e 满分:5 分
& x* [9 A" j" U8 L6. 若有定义:int x=0, *p=&x;,则语句 cout<<*p;的输出结果是9 t' Q0 O1 U' W6 H1 `
A. 随机值
9 y! L' N/ l' W$ S6 c. EB. 0 , t3 a2 y: D3 U' H" J
C. x的地址: ?& A% O6 n" Z* Z; Z
D. p的地址4 @! m- C& G$ K& D1 b
满分:5 分
1 }7 B& ~& T1 s8 D$ [3 K2 `$ w. r* u: u7. 有以下程序段
7 w, C+ v( t; w: {typedef struct NODE+ v5 }: V7 r9 U& J. e
{ int num; struct NODE *next;
7 I: B1 v4 ~: E4 @5 b% m/ r6 U2 F} OLD;
2 ]$ E4 k3 w3 r' c以下叙述中正确的是
+ j2 n! i. i' Y5 L0 sA. 以上的说明形式非法
4 ?' L# {) i8 o8 @8 DB. NODE是一个结构体类型
3 ]5 f* F& l+ L; zC. OLD是一个结构体类型 / p4 I8 V, A5 Q1 Z2 Q9 R5 G
D. OLD是一个结构体变量
& U9 Y* {5 U5 K% F 满分:5 分/ @+ h9 a' |0 j. N$ p
8. 若变量已正确定义并赋值,以下符合C++语言语法的表达式是5 j/ T- N" F+ n) q2 ^3 i
A. a:=b+1
* i$ g% L3 F! s# w1 HB. a=b=c+2
8 ~" B' p% w" [+ b& P. qC. int 18.5%3 * z9 V/ e. M4 i" n% q$ l5 i
D.
% I' O% I6 l8 m5 F, E0 S* b0 ?/ a5 ka=a+7=c+b
* f) l7 I b# u2 l {4 e6 _
% o0 H0 [1 V. m4 K 满分:5 分- j- T, U" A, E7 W
9. 对于重载的运算符>>,它是一个
& h+ [5 A, O& ^1 O6 C7 NA. 用于输入的友元函数
4 G/ ?9 y r; x* G3 F9 S$ @B. 用于输入的成员函数 m1 [8 u; t: ]' L: N/ ~ {
C. 用于输出的友元函数
) j7 v T& |, g: N3 J# q+ FD. 用于输出的成员函数3 v% i" M; d* a/ r
满分:5 分$ S8 H, H/ D6 l( w7 A, y6 G
10. 在以下四组中,每组有两个分别运算的函数,运算结果相同的是 8 B8 G1 C* G; u& k/ h3 b- v
int main(int argc, char* argv[])9 W( w- _9 G N% ?6 t* n' D
{
' J$ \5 X D1 ?6 \+ C/ E$ M" W' U int i, j, m=0, n=0; $ Y5 I" e: c5 p+ X+ Q" |
for(i=0; i<2; i++) 0 b' ?9 \* D& O: s$ X# ]* V
for(j=0; j<2; j++) 9 V2 ?$ u/ O1 ?- x9 a$ [' Z
if(j>=i) m=1; n++;
7 L/ U& [* F+ P8 O6 I3 U cout<<n; & k! x# o3 b0 ^. Q
}
' `& H: |/ O; M: TA. 4
% s |. j! R8 z) V+ P$ oB. 2
1 w) P6 Y, c+ H/ x" I2 nC. 1
4 z. x1 F8 y* U# P% V, U' F+ P" ?D. 0: V$ E- o4 R2 P4 }1 F4 @! D4 {: g& k
满分:5 分
8 |5 Y7 Q- |8 P11. 有以下程序. I* H% E1 O2 \
#include <iostream>! g2 }: u' M, p* V% u8 i- |
using namespace std;! H A, p \) w3 D2 K. c/ C# J) _
float f1(float n){ return n*n; }* ?7 h, H! R0 e" \
float f2(float n){ return 2*n; }
; K( N5 b1 x) Gint main(int argc, char* argv[])6 b. \: Y9 N' B. X& X6 W. N
{: u. T+ i' u9 j ~/ t
float (*p1)(float),(*p2)(float),(*t)(float), y1, y2;
$ f; t1 h0 g% {3 F, c3 N; v p1=f1; p2=f2;- y' [3 Z \: l8 ^
y1=p2( p1(2.0) );' T! Y. M& E8 `& l" r% e% j
t = p1; p1=p2; p2 = t;- q$ m4 w: L' Y6 m
y2=p2( p1(2.0) ); ' j- S* ]' ~! K A) i
cout<<y1<<","<<y2<<endl;
6 P7 ^0 U7 a! e) m9 X' z/ C6 S# C return 0;
4 a/ M) A2 T* J4 b! o& N/ j}
) T5 c, V, v" l8 C程序运行后的输出结果是+ A0 Z4 P. b3 N G# c3 n! e/ {
A. 8,16# X) ?" F" o. S0 x: X4 Z
B. 8,8
4 X; f: C. e- U; t3 ]* Z4 o- yC. 16,16
; _4 J# I, G2 k+ T% j7 v! y& jD. 4, 8; p7 W) R: {- l, P3 P) Z# @
满分:5 分2 |+ f4 }: w& G% w. V( F0 o
12. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是* F2 c* i( p; Y% z. U
A. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");}
+ O7 j) y: Q% J! |( PB. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");; n9 Y: J4 M% ]; O/ C( `! Q w
C. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}
2 e0 M, f! i: t' wD. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}( \; ]+ @% C% _# ^# x9 e
满分:5 分! J) ?# i4 R+ | _
13. 在C语言中,合法的字符常量是
& O* g* [7 [; ~$ P0 h; YA. '\084'
/ w& e& _3 B S) N7 vB. '\x43'
r7 w; u+ u$ B$ S4 Z& wC. 'ab'5 @8 F* p+ M* z& r
D. "\0" 1 W2 t6 p8 d. F1 ?$ r3 g! c
满分:5 分! N$ T) S. y4 ~! S6 T% w+ @. b
14. 以下不合法的字符常量是
: v; G0 |$ e4 p8 o: d2 {! u/ i- e; KA. '\018'
: C8 K- U$ K& w' V! h7 }B.
: a0 d- u+ e1 D6 } '\"' C8 r( E& `- E
5 Y8 ~3 M2 i+ E9 E, A' |% f2 JC. '\\'
7 a+ {- `$ n7 ~D. '\xcc'
1 | P7 A1 T: d' C% @- I, q 满分:5 分
+ J& ~2 E8 B4 d15. 对于重载的运算符>>,它是一个( )' u/ P! O0 a. C$ |) r9 n
A. 用于输入的友元函数 0 d9 } d2 G4 {/ Y" D. a' O$ J
B. 用于输入的成员函数3 _7 B8 `% Y/ p9 i. P- f, j/ i, e
C. 用于输出的友元函数' ]% i3 n5 w: J; d( M0 M5 A! Z( ~
D. 用于输出的成员函数$ H8 Z" E, ?, l
满分:5 分# ?/ ^* J3 _8 z; g4 S
16. 执行以下程序后,输出的结果是# {8 N# X# s, z, o V
#include <iostream>& j6 G0 X2 l$ r$ g
#include <cmath>
6 w# d& V3 b% ausing namespace std;% a9 t! `% I% h5 P
int main(int argc, char* argv[])
0 {* g1 j1 ~- M" _9 [{# p* a/ n; x( L! J
int y=10;
k4 z6 k5 N0 t7 W# m: h do {y--;} while(--y);. h: a2 R3 p; L' k
cout<<y--<<endl;
! \1 J6 Q( i8 b return 0;0 q/ [/ s6 F* W( E
}+ }/ k) K% k( Z) z
A. -1
: J3 D" }5 C+ k8 m( [B. 1
! i! n, Y7 e! S! {5 c" ~' O3 RC. 2 g9 v" {: b( S' w7 m4 u
8
2 y& V/ H8 \, {, ]. H: K: u
+ j' ?! y$ S Z: {( v2 wD. 03 R/ }* s3 ?! g
满分:5 分1 V# p) X A3 h. i9 e: _, f
17. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明* e" q4 k+ Q) d1 e
A. f()是基类的私有成员
) p4 b0 Z4 L9 z6 ^ N$ e, J! {, BB. 派生类的继承方式为私有
7 d( x6 h! F t& VC. f()是基类的保护成员
9 [: I) ]+ R2 e7 e7 ]D. 派生类的继承方式为保护7 `% J5 R* `' r6 c/ }& d, v2 z y* D
满分:5 分
: [2 t9 o, L6 S6 r$ T4 n18. 当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式( )1 y3 R+ @$ D4 o& y( @% e' [7 d
A. ios base::in8 `: z3 [8 Q/ [- |! C8 q O' B& v
B. ios_base::binary
% X3 l' w9 `6 ^# I! H3 RC. ios_base::in|ios_base:ut ' p N7 O* ]* ~$ j+ D2 M" y" N3 k
D. ios_base:ut
2 l3 E! i3 d' I( S C 满分:5 分
& T! `) ]* q* X4 @ c19. 以下不合法的数值常量是
: q- q+ F$ R7 ?7 O9 } lA. 011( b& g2 B- I& P1 K+ D) t+ }, B4 H2 ?
B. 1e1% T4 G5 B5 c1 D# p
C. 8.0E0.5* d F+ f( H. z
D. 0xabcd, g$ I6 j d. d, d ?2 a# x; F
满分:5 分: ~3 N w r( l! I+ @# w! [
20. 关于在调用模板函数时模板实参的使用,下列表述正确的是
. {- M J) |8 C" c& \/ n2 L! u: ]' MA. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略' `% C; \: f% L2 i3 X
B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略: F4 `! [. L, }2 D8 m- b, ?/ j! O
C. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略2 X5 g6 {- M4 j4 w9 a. W# E4 S
D. 对于常规参数所对应的模板实参,任何情况下都不能省略' C2 X- v* J; E/ c
满分:5 分
5 }; b; `% a8 s' ^
3 @. B! C+ X( _0 W |
|