|
一、单选题(共 20 道试题,共 100 分。)V 1. 函数模板:template T add(T x,T y) {return x+y;}下列对add函数的调用不正确的是( )' p/ W5 C K& b" O6 f% R J$ ]: q$ v
A. add< >(1,2)
3 Q- N) ~0 B+ j2 f z4 Z2 J; qB. add(1,2)
8 s" U8 N V# ]% ~; QC. add(1.0,2)
9 k4 f3 H2 |# \. T, ~9 y* c/ LD. add(1.0,2.0)
n: X! W, ]) A$ v" l( I6 D! d 满分:5 分
' h& K* s. H& p! U2 b2. 以下数组定义中错误的是
7 {. [4 n2 R; RA. int x[][3]={0}- a g$ w$ `2 ?
B. int x[2][3]={{l,2},{3,4},{5,6}}* y8 t: ~* H' e _$ ?+ S- r' V3 q7 {- f
C. int x[][3]={{l,2,3},{4,5,6}}
( B5 e. d' @) kD. int x[2][3]={l,2,3,4,5,6}7 T# ]. Q: ?$ k2 Z, m" k3 g
满分:5 分
: S N$ t j0 Z6 u2 z& q3. 语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,且( )( _; M$ Q1 Z7 \
A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
" [* n) b0 L DB. 若文件存在,将其置为空文件;若文件不存在,找开失败
3 s; {6 t* Z; i& {. N) hC. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件5 w# X, ~/ a& {7 t& h
D. 若文件存在,找开失败;若文件不存在,建立一个新文件% [2 F3 J, W; Z* ?: @" V* l, S% `
满分:5 分$ k* D: g7 v! q& q
4. 在C++语言提供的合法的关键字是; k- W" ~# `9 f& K/ V# c
A. swicth
: l: w7 T# s( k) \B. ; R/ l; X8 P0 O3 L! }4 e
cher
: f) I% C7 I3 \' H/ @4 l1 {" X2 u- j9 m, z
C. Case- p& ?3 g$ Q1 t& b/ Z7 B
D. default : ~/ m8 T* h8 o5 W
满分:5 分
9 G0 I4 b% W% c/ R* }- A5. 7 s* u ^# Z; `$ K
有以下程序段' @ g m0 D, ~8 R
int k=0,a=1,b=2,c=3;" Z. d$ P5 t: z& z4 ^7 F6 V: D
k=a<b ? b:a;
& x3 ^ B* A5 A9 E! t0 b ck=k>c ? c:k;
! X( c$ m; ]* g执行该程序段后,k的值是
3 Z/ J' U+ B4 x% JA. 33 n0 B5 `6 v1 x" f
B. 2
' [5 f2 q. Z; Y% v- c# ]C. 1
6 X# R: @% W0 S- |2 ZD. 0
! y" G! d$ V6 ]8 n 满分:5 分) L- v3 C+ U1 Z/ }
6. 若有定义:int x=0, *p=&x;,则语句 cout<<*p;的输出结果是) q' H) m7 v" g: Z9 m6 b1 d. M
A. 随机值 8 Z( V6 V; e7 j q" s
B. 0
3 \4 k* j# S {8 t& y: v4 ^1 ]C. x的地址
& g) W5 P% u" y. k" z& YD. p的地址
. A8 W- }& y* } n% a: H 满分:5 分- r: X9 D! }* v+ }
7. 有以下程序段
* Z- G+ t) @- T$ ttypedef struct NODE
* _) S8 s/ W0 c& Y' m{ int num; struct NODE *next;( x# x4 ^; k/ a& Z' E3 U- D. l* [
} OLD;1 P+ i8 x" B: p$ M6 {# t
以下叙述中正确的是3 Q7 Z9 L* J2 K5 Q+ C
A. 以上的说明形式非法 ! q/ p; h. e5 V* t
B. NODE是一个结构体类型, G2 d, V/ O. l
C. OLD是一个结构体类型 j2 v" ^! q0 h6 p/ g% a
D. OLD是一个结构体变量
( p1 I5 E* p+ F7 a2 W 满分:5 分1 Q2 g& R: K. u7 D8 \( Y& p- }. v
8. 若变量已正确定义并赋值,以下符合C++语言语法的表达式是
6 O: v$ ?& U* H2 i8 ]A. a:=b+1
; r- C5 v4 f# K' @+ ^8 t/ b3 m8 yB. a=b=c+20 F0 j6 [+ t3 N, E
C. int 18.5%3
5 {7 w2 t% P2 L" o8 iD. - G0 f- _* m/ ~* ]& f
a=a+7=c+b, G. N5 D: m, X
- C: z' K) Z* c
满分:5 分
" g5 ?" l3 M/ ^) ]5 ]$ J9. 对于重载的运算符>>,它是一个. @5 _' N* I# o9 {! [# f
A. 用于输入的友元函数
6 K: J" k8 W6 o! a% q" @! oB. 用于输入的成员函数8 q! P" }& p( `, L/ T4 O+ e% {
C. 用于输出的友元函数( f @: N: ^: J1 r5 V
D. 用于输出的成员函数# v8 ?/ L" r2 ^3 m5 S) l: o
满分:5 分
! K6 {8 Q) A- B# f10. 在以下四组中,每组有两个分别运算的函数,运算结果相同的是 7 O0 i; E6 s0 I
int main(int argc, char* argv[])
" v' R* m) D+ |$ |" t W7 T3 T/ L1 F{: p* d( Q& i& C
int i, j, m=0, n=0; 8 n# U4 E' B' |5 I. Z2 L6 K. H! A
for(i=0; i<2; i++)
% e( f7 Y) Y4 Q! r* C; X/ O2 \ for(j=0; j<2; j++) / G* ?* [% ~- Q0 c; b) f) j, m z
if(j>=i) m=1; n++;
' R d5 A5 U3 n$ ~ cout<<n;
+ l7 r; p8 F6 M9 ^3 O8 p# j0 |}. Q m+ s0 B. L+ S, h5 w
A. 4- i- f6 J2 ` }7 J/ Q: }
B. 2
5 `# u: G/ j6 i7 J4 HC. 15 l7 C R7 f% J( s/ m9 Q& w- B
D. 0
~" E& a+ b5 a 满分:5 分0 D9 D! c, ?& F8 S7 t" S4 f0 L
11. 有以下程序+ S# L' e- Q& H; V% Q
#include <iostream>
& e- D3 G! o6 M8 v; iusing namespace std;$ q7 l3 @; R4 W
float f1(float n){ return n*n; }$ f! c% {& B5 C7 u# @
float f2(float n){ return 2*n; }5 Y" S+ {9 g( J8 B( g
int main(int argc, char* argv[])* _/ i8 }, p) f# Y: {$ L6 D
{
8 c1 \6 i, ~3 C; Z6 R float (*p1)(float),(*p2)(float),(*t)(float), y1, y2;
( I: `. d S* |% W) x p1=f1; p2=f2;) O% E* G. J) N: m) S3 U3 h
y1=p2( p1(2.0) );7 }% |! G& l) U6 p) E
t = p1; p1=p2; p2 = t;
% ^' u) H2 a3 _. b. ^) d4 {6 [ y2=p2( p1(2.0) );
! p9 t* A o: R& u: S cout<<y1<<","<<y2<<endl;
/ Y8 p7 Z! f+ { N. G9 A return 0;- z1 q: |8 f/ K% Z. H
}3 H Q7 R1 b s9 ~
程序运行后的输出结果是5 f9 n6 q: W9 d/ ~, F5 `: [, W4 z6 P
A. 8,16- d u" z/ t3 J. ]2 d3 s7 w4 S
B. 8,8
7 Z8 P0 H+ |8 ~C. 16,16 - H) i5 j) ~( U0 r4 n
D. 4, 8
% [. J. @* m! c: | 满分:5 分0 ?5 h: T2 O* D. W' J
12. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是& s+ S- d0 k$ L9 _) _) A; o' z3 c
A. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");}. L; F! m$ L# n( D. o) l( J
B. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");
) D2 i; | F1 S2 v" C8 CC. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}; o6 c" K3 X# \3 n
D. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}
7 `6 _& \9 g* P 满分:5 分
9 V: ~, |4 j( M6 H* u: P13. 在C语言中,合法的字符常量是+ R" B9 D% h) J% N2 w& e" c, s
A. '\084', m; B* H3 j& L
B. '\x43'
7 `7 y* n( d- q2 C) p3 W& R' _C. 'ab'% U, l/ C6 s' E: f
D. "\0" ) }' X0 z' n; A) T9 Q
满分:5 分% ~# c/ O- W- F9 a- f- D
14. 以下不合法的字符常量是
' B4 L# }& H& c; L2 P1 vA. '\018'6 o$ v, t& {3 `) @
B. 3 q! J8 K9 Q" ?3 a" o7 G
'\"' . z% S, ?+ N0 }: C$ I. v
9 m' s' }# P, G# H) y- X
C. '\\'
- o6 V" _ O+ W8 Q: HD. '\xcc'# m0 d) U' Y3 N; p8 O
满分:5 分/ D: @5 u+ n4 D9 s4 t$ n$ _
15. 对于重载的运算符>>,它是一个( )
8 [/ [2 z4 ^- B6 D, [) C1 z6 sA. 用于输入的友元函数
: _& y4 ?$ f" VB. 用于输入的成员函数
6 A) R! J. ?. [: F9 MC. 用于输出的友元函数
/ C4 c- k( n4 R; q8 Q2 LD. 用于输出的成员函数& s5 ? }* }; j% u
满分:5 分( B7 `- k9 F: S0 r
16. 执行以下程序后,输出的结果是4 M: ] L9 R$ s; V
#include <iostream>
& Z7 F$ c& V! R1 P0 R) s9 S#include <cmath>
" C4 R# J( M+ x n# H7 N; ~! Musing namespace std;
k; C" U n! s( H& [& ]int main(int argc, char* argv[])
4 p* h k% r6 _% r- i{+ v; n; R+ k, N
int y=10;9 O5 j& r/ o! g% [- l
do {y--;} while(--y);
* l' `' P. U, m$ k cout<<y--<<endl; ( t: ?# U r8 _: X0 @
return 0;
a2 U) G$ j+ {6 V3 M2 \" T& d! [) ?}5 [) Y1 _1 k3 R: u$ ^; m! C
A. -11 W# I0 [5 H& [8 U9 a# W
B. 1
M9 ?4 m# L" c0 |, sC. 9 p7 i9 {* M) d% ^% R2 S
8
/ p5 y& ~1 F& ~- I- X, c0 b2 `6 Q5 b3 z$ A3 Z9 U
D. 0
+ v. F& t/ ^( e9 w3 }. [% q1 ?8 h 满分:5 分
" D$ s3 W- i4 W. E17. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明
+ H& t( A6 v9 `: H8 AA. f()是基类的私有成员/ Z8 s. P, c5 c9 I' R7 O
B. 派生类的继承方式为私有
0 i) ]* h( [: S d$ x* tC. f()是基类的保护成员
! M" Q+ }" h" O! y' e# N5 x+ zD. 派生类的继承方式为保护- a( N9 ^& P. J
满分:5 分
' F6 z% Z. x6 r6 V3 q6 d18. 当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式( )
! k) F! @! X5 `& A+ n2 x3 y7 U$ LA. ios base::in* T4 e. T' q5 _1 j) v2 c" |
B. ios_base::binary 7 Y( t7 ?6 T G( O* |
C. ios_base::in|ios_base: ut ! i# i7 Y) B% l& R: g2 } D6 i
D. ios_base: ut
4 [& O$ ~' o+ { q0 v 满分:5 分
/ L( |4 J5 A2 \4 T9 z7 W: Y# A3 ?2 L19. 以下不合法的数值常量是+ Q( D" z% x/ o/ L# q* O% x; w6 n
A. 011/ L- C; v, L4 A$ ~, s+ U$ f
B. 1e1! a" u! D; A' A( \8 }. n1 {
C. 8.0E0.5
- E* f" o# V9 \+ `; pD. 0xabcd8 Q! _, b5 F# A3 G2 T' @, S/ u6 m
满分:5 分8 I. U0 l$ k% v4 a* i
20. 关于在调用模板函数时模板实参的使用,下列表述正确的是
3 V* X1 k9 C1 @2 h& f; cA. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略
7 V( j5 R% m: s' a$ M# o$ ]7 WB. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略4 X5 r2 c5 t2 L. a8 d
C. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略3 M/ d; j( B. }" \. g
D. 对于常规参数所对应的模板实参,任何情况下都不能省略5 t( W8 P K; k* K$ U( J% b1 X
满分:5 分 6 `& b7 ]. C6 C+ J, K6 D1 n
+ M, ~/ y" a. S* m& W5 ~) J0 o/ W |
|