|
一、单选题(共 20 道试题,共 100 分。)V 1. 函数模板:template T add(T x,T y) {return x+y;}下列对add函数的调用不正确的是( )
- q- a- E8 g* iA. add< >(1,2) / i! Q. k6 ]' X% |5 {
B. add(1,2)
6 D2 t4 ?- z3 j- VC. add(1.0,2)
% e, n' L" q1 U( x0 uD. add(1.0,2.0)4 I) { t$ ]; B
满分:5 分) q; x e6 K. R8 s' x
2. 以下数组定义中错误的是: m2 m+ ]4 W, o& r: y) s- N% Q% y6 i
A. int x[][3]={0}
* r8 B$ H, u( Q+ k/ t, I4 ]0 pB. int x[2][3]={{l,2},{3,4},{5,6}}
5 n6 Z' H$ w1 b# XC. int x[][3]={{l,2,3},{4,5,6}}0 k+ `( X, ^' N7 m" a
D. int x[2][3]={l,2,3,4,5,6} N' d j9 @! Y! _8 D, R- l
满分:5 分
: \' V* E6 h$ x6 \, u3. 语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,且( )
# `& v3 H4 I# w5 r* J RA. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
$ y0 Z" z; S3 R0 W, rB. 若文件存在,将其置为空文件;若文件不存在,找开失败
$ {# U8 }' B. \" b& u7 qC. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
: l4 Q( f2 T! x9 ] c3 aD. 若文件存在,找开失败;若文件不存在,建立一个新文件
E* F# y" r+ i$ }+ F; @ 满分:5 分3 e, l4 h9 V" F$ x) t
4. 在C++语言提供的合法的关键字是
( s H1 n* X0 F# b$ R$ l, LA. swicth G/ j1 W( _; n2 @9 G9 E/ `7 ^5 g
B. ) S' _' {) d" q4 X
cher! i+ [( I! G n* a8 W' Q
' N f, a5 h1 Y# R+ W5 @ V2 N
C. Case
6 h0 x5 g, b2 y& _D. default
: R2 d( x- L* T 满分:5 分
s) x7 l2 |* t0 R5. 3 L: ]" l2 X3 {6 {/ q3 q( i
有以下程序段; `- _: l* n# F* c
int k=0,a=1,b=2,c=3;- a4 e% m* ?6 C6 g
k=a<b ? b:a;
' q- I. N) J; h2 xk=k>c ? c:k;
+ J) k- I( J0 _9 r! G9 d执行该程序段后,k的值是- h. I, v. n2 v. ^7 O/ G% u
A. 3% M O( j! T; b; A' l" y
B. 2
: w2 y/ } c3 g3 o0 c0 I/ u @C. 1
& Y# z$ C7 S1 PD. 0
# S [$ j+ R* [3 O 满分:5 分* ~) c6 n- Q* z+ v' L7 J: c
6. 若有定义:int x=0, *p=&x;,则语句 cout<<*p;的输出结果是7 b2 K; E+ o d0 C0 P# X7 t: M
A. 随机值
- N( @7 g6 ?+ a3 W. e% QB. 0 ; O: ?: q5 U1 Q& K) M& b
C. x的地址
$ p! J9 k3 G9 @* S, f0 h/ g5 aD. p的地址
* {& g7 j( `8 B% L 满分:5 分
; s4 q4 u' F& f' v* b0 C% c7. 有以下程序段
8 [7 z% _1 F1 X: X) ktypedef struct NODE
0 l% O8 w+ ^+ ~2 O' c. Y{ int num; struct NODE *next;
( X, j* t5 O6 I* n} OLD;- J W6 E! z% o( Q5 J9 g
以下叙述中正确的是
{* }8 m: ?3 E* H0 @4 L; l) BA. 以上的说明形式非法 $ B' t/ {$ D7 o, J$ {: J
B. NODE是一个结构体类型
4 h8 Y, s# u( D8 k8 TC. OLD是一个结构体类型
* r2 m# L$ G/ o7 rD. OLD是一个结构体变量
+ `. U( H# c, H* d! o3 P% q 满分:5 分
! P8 P+ q: d) f) I5 a' G8. 若变量已正确定义并赋值,以下符合C++语言语法的表达式是* p( i2 T7 x: S% p, A- O1 f
A. a:=b+1
: Y% X+ G7 _0 g6 x9 }6 m/ T0 N0 WB. a=b=c+2( [# F& `8 T, k9 t
C. int 18.5%3 3 X! Z+ X9 r. }: L8 H
D. 4 m5 i K) E( \* L5 b P" m
a=a+7=c+b$ V H Q+ s6 E9 ] s. ^ B
) `) |: V- U1 T3 F& i* u5 Q
满分:5 分5 R9 P9 j) v) m. ?
9. 对于重载的运算符>>,它是一个
4 \) n; ?8 M- i5 k! r! Z8 i! a! hA. 用于输入的友元函数
0 M+ ?# J( e2 ~1 w, LB. 用于输入的成员函数
, l+ J: z0 w, P% ?: YC. 用于输出的友元函数
$ J7 `- h# U, p. iD. 用于输出的成员函数
& \3 G* S$ w0 r' T' m 满分:5 分
! W! V1 O8 J% Z3 i( ~& x10. 在以下四组中,每组有两个分别运算的函数,运算结果相同的是
0 `7 d7 L# q9 E0 ?/ j+ Tint main(int argc, char* argv[])
2 B- L, U) C0 Y- \{
0 @0 s5 g) S1 S, B7 E5 s! ^ int i, j, m=0, n=0;
1 Q2 O% G: b g" D4 W y for(i=0; i<2; i++)
, G5 I, O2 F& j( T for(j=0; j<2; j++) 7 H# O: H4 [+ j
if(j>=i) m=1; n++;
h" ? q s2 h1 L8 | cout<<n; $ _; G( L/ |/ _5 O0 V2 g+ W: z! J
}* E/ K4 y! d$ ^7 t& ^
A. 4! y3 }6 u& b6 W* a+ a
B. 27 a, w1 X) x; K4 { H
C. 1
, Z" K* h% I3 y+ ?5 {D. 0, |: }/ `$ m% [, H/ @
满分:5 分
8 D$ L, `7 h" c5 s+ H+ s11. 有以下程序' q6 v D, I$ [! L
#include <iostream>' r3 W5 q" d1 c0 {
using namespace std;6 O! M# \0 H) }0 ^6 M
float f1(float n){ return n*n; }0 S2 U/ a u) `
float f2(float n){ return 2*n; }
2 v3 t( c# L- ?- D: Gint main(int argc, char* argv[])7 |4 ] m$ T0 L, j9 a" i
{
" B" b8 [* C; N3 J# Y3 {! s( o float (*p1)(float),(*p2)(float),(*t)(float), y1, y2;- D' {! m+ |% K6 H: O% v: t
p1=f1; p2=f2;4 [+ F2 A% }* b W+ R
y1=p2( p1(2.0) );
* n2 E4 S. i) J9 o$ V x' \ t = p1; p1=p2; p2 = t;% w% ^: Q- G8 Y& g1 r# I3 O
y2=p2( p1(2.0) ); , ?+ c- K& q4 Q! l6 C
cout<<y1<<","<<y2<<endl;9 q3 c+ F" ^% x) y
return 0;) y1 S+ z/ B* J% }2 x$ e N
}
/ K$ v; O) R; e0 H. h程序运行后的输出结果是
( S9 B) Z. I' d& i& v4 [A. 8,165 [- E# p0 A( t8 v8 e
B. 8,8 * f- }9 U3 Y8 N# C6 U
C. 16,16
# O0 U6 g" D7 @ s( F! _D. 4, 8
& G2 [0 y* ?: a: a9 E. Y4 h 满分:5 分& X/ w4 e0 N9 x1 c! }
12. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是
$ b H5 b9 m; ^7 P4 d" p8 ZA. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");} E$ U1 a; a2 O& g3 A
B. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");! ?! _7 _. G. I! l% l
C. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}
: J" {9 B) V. @7 n% l& a2 m" q2 `D. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}
Z, l, M. Q$ z' a" b1 ^. f# S$ `, } 满分:5 分+ V! c5 x$ \ `2 I$ W" e8 _
13. 在C语言中,合法的字符常量是
/ ]8 v9 `. W w/ o3 \# W4 kA. '\084'& \ I1 s$ _' ]+ J, _) q3 h
B. '\x43'
: n+ b0 H: l8 W$ I0 _C. 'ab'2 P- \$ e& ?& I: a: ~4 \
D. "\0"
+ e! X3 _: I( w( n* v, C 满分:5 分3 m( D& ?3 q+ |7 b# x
14. 以下不合法的字符常量是8 v h0 q8 q( N6 V, V2 o2 K( o
A. '\018'
; d {' y2 y# [2 f; @& ~B. + Q0 x: A* R7 Z& t" k, Y: N/ C
'\"' # x8 ^+ P( t' R* O) x
e9 J2 v" k. X, `2 M a- d0 t# mC. '\\'
; a! L2 r" G/ Q9 g T7 T" d/ L ID. '\xcc'' X {; G ]- W% z
满分:5 分
+ ?! h" W0 X6 C5 [& |, ~0 N/ M$ d15. 对于重载的运算符>>,它是一个( )
# r4 V9 ?6 W+ X2 RA. 用于输入的友元函数
# I0 n, X( e8 t5 Z1 w2 SB. 用于输入的成员函数% d9 h6 t/ U; z8 g/ F/ b
C. 用于输出的友元函数
* B; i2 B2 x1 z$ RD. 用于输出的成员函数$ m) w' l1 i |7 ~9 ?5 O% y7 ]3 u, e& ~' D
满分:5 分
' `: L7 F, F$ f4 T. |16. 执行以下程序后,输出的结果是% \- r' w2 p7 ?3 |1 p: ]1 v
#include <iostream>
4 K- s3 z! a1 r, B) H0 I# n" q#include <cmath>9 L M2 E2 e5 |% U2 [
using namespace std;0 i, }$ Q3 R9 ?) J4 `3 [6 H
int main(int argc, char* argv[]), K' d* F, n& ]" Q' P
{
; V. e/ I/ t/ |6 k+ ?# I; d1 a7 g3 ` int y=10;
* `* O6 |' C- @# R' i! n do {y--;} while(--y);
, N3 k% v. _9 r# m: `" h cout<<y--<<endl; - B, K, }( g5 _+ n) C# ]2 d
return 0;$ \( H8 U9 w5 C, B7 k
}0 _# }7 ~2 P% |1 Q4 M p1 b W
A. -1
& f, a, g7 S$ y/ A$ O) \B. 1
, ]7 D2 |$ j0 R% V1 f3 l6 LC. . u: e2 _& X1 |6 S W- P y
8, G9 [( m# x% M& ~: A v8 L
2 u$ [% {3 K) s0 A6 s) @D. 0) U6 @& `* q6 e9 d
满分:5 分
2 a* O$ B0 \9 s9 r5 Y' @" K2 m17. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明
6 |( _1 D) p; B/ z5 f2 P5 }A. f()是基类的私有成员/ y2 A) w @" {# i7 v7 P
B. 派生类的继承方式为私有
8 X+ p$ L% u3 e& |2 r% w4 U. PC. f()是基类的保护成员
; p3 Z4 D. c: k* @6 y+ p5 DD. 派生类的继承方式为保护3 d' H- a- R. y3 u; G( e7 f
满分:5 分. s1 [: G! p( \# d6 z
18. 当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式( )
' w, [! y6 ?: L# _( \A. ios base::in
" Q3 h V; h H$ F* l; w" F$ Q6 [B. ios_base::binary 3 i: L; A0 h& \+ }3 B; h" a- Y7 h, B/ n
C. ios_base::in|ios_base: ut # q# L1 ]2 j* Q3 b; I3 A, W: f
D. ios_base: ut# p, N7 p- Y$ Z" C8 p' E
满分:5 分0 m6 O# e, n( I7 f
19. 以下不合法的数值常量是
D" k5 i3 m7 T9 {% S% QA. 0112 {% N% N2 _7 E2 A J) I J( m
B. 1e1; B# U& X9 q( K) E
C. 8.0E0.5
5 w( K' {5 j; y; o9 G% t( PD. 0xabcd" ^. Q. ]/ P$ ^* w6 W0 j- q
满分:5 分
9 H7 T+ Y; c9 P* }' U& C, {20. 关于在调用模板函数时模板实参的使用,下列表述正确的是
* X2 _) W. I: y2 A3 u& yA. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略1 F. M4 d& g, F: U- L
B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略7 m1 I( ~+ I$ B# q, K3 r8 w
C. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略
( r( y* I1 I( I) ? wD. 对于常规参数所对应的模板实参,任何情况下都不能省略: v. Y. ]3 p: C* `9 ~$ f9 l
满分:5 分
3 O9 Z; r5 t6 c7 l0 B3 M8 s( F
+ h' {3 [$ Q7 C+ }( R+ C% B+ _ I |
|