|
一、单选题(共 20 道试题,共 100 分。)V 1. 函数模板:template T add(T x,T y) {return x+y;}下列对add函数的调用不正确的是( )
5 s0 b- `2 i U+ `A. add< >(1,2)
% [8 }& v0 A0 N, ?- z! P7 AB. add(1,2)
+ B! d; i4 f4 _, h# qC. add(1.0,2) 7 H4 D5 ?0 x4 J5 G/ w) q$ A
D. add(1.0,2.0)* F% P& [ K* A' {. I o4 w) r
满分:5 分& t, @' c+ M9 P4 \1 T- Z
2. 以下数组定义中错误的是. g3 K1 F, i ~3 z* q
A. int x[][3]={0}
- Q' r/ U: J; G' Z! }! o, `: [2 aB. int x[2][3]={{l,2},{3,4},{5,6}}1 I. p0 Z/ q8 |5 q
C. int x[][3]={{l,2,3},{4,5,6}}2 I4 P9 H B( g
D. int x[2][3]={l,2,3,4,5,6}6 R# q0 n4 G0 B4 R5 P
满分:5 分 g5 H. ~0 ~" x# b1 Q: r7 F, J
3. 语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,且( )
* I: x) ], {% ~A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
/ M$ {2 S1 \4 w- q2 ]# F3 dB. 若文件存在,将其置为空文件;若文件不存在,找开失败
1 `6 a' \; J s$ ?5 pC. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
8 g! o' b" X% ]. E/ T; q. R) yD. 若文件存在,找开失败;若文件不存在,建立一个新文件
! W* Q3 J. F9 ] 满分:5 分2 B' c/ b: P P T( ~
4. 在C++语言提供的合法的关键字是
) S% ]+ b( \6 D* l7 X- {A. swicth
. ^: @4 K1 w1 F4 b& S' bB. 1 L6 r, \7 A: E; K
cher' I0 i% l) y$ [7 k' f1 \- m
1 I/ E9 O& @. S8 k( S1 l0 R- |C. Case
/ n* S, r2 A9 L' d/ J1 @, ND. default
" q# J [1 q& R. N 满分:5 分- s2 Z; W% M4 J( V$ @% t9 D
5.
8 L" C( Z; P! p3 s4 b# x* R5 i有以下程序段
+ Y ^5 j1 _9 \int k=0,a=1,b=2,c=3;' J7 a& }! {6 z+ }) I r
k=a<b ? b:a;7 I8 t; a6 V& x& N% a- @
k=k>c ? c:k;
, S' `7 _8 [ @4 w: W执行该程序段后,k的值是
9 t2 W8 h8 h5 l# gA. 3+ t; d5 z6 _& i" ]9 J
B. 2( D# t) |0 c5 i
C. 1
- y4 n, [% i6 S1 G1 T* GD. 0: i3 v1 K3 Z4 O; Y0 W! R2 F8 q. S+ o
满分:5 分4 K r- G# u8 C
6. 若有定义:int x=0, *p=&x;,则语句 cout<<*p;的输出结果是
$ m1 ]) T; [& \& V3 wA. 随机值
7 j+ k8 |0 d, }) YB. 0
6 n8 s* u, }0 ~! n7 j$ x4 Q0 M- `C. x的地址
& G: d4 s" S: a% oD. p的地址2 ^2 g) m" M2 k1 M+ O( ?( S
满分:5 分6 l+ m/ w: c8 o1 W5 i0 ]
7. 有以下程序段
) Z( H. Y x, T( Rtypedef struct NODE. @# @4 f" l2 E% S7 n S
{ int num; struct NODE *next;
! ?$ P8 M# @! q( P} OLD;
4 A! I5 u3 c# j9 R# C以下叙述中正确的是
' n4 K$ |1 [9 \ K) p1 u9 LA. 以上的说明形式非法
7 ~2 I; v7 H+ R( i5 {& F' G1 ~B. NODE是一个结构体类型# B5 |. ^) e7 n7 T' d
C. OLD是一个结构体类型
: \# j, |8 q6 a7 H% a- g' fD. OLD是一个结构体变量
& E7 U& E. B. O# v2 } 满分:5 分
' F% p7 O' \# i4 X8. 若变量已正确定义并赋值,以下符合C++语言语法的表达式是 n0 ]& _' h* f, e- \' U
A. a:=b+1
" z' Z w0 c# ]+ _9 ]% o/ J9 W# oB. a=b=c+27 a" o# [4 \2 @9 ?0 B) F
C. int 18.5%3 3 Y' l& B# o3 J o5 q& N
D.
3 C9 h( ]) E! a' y3 ]( B# k. Q1 Qa=a+7=c+b
+ M6 A% o5 A& y/ j" q! `' q' m2 @5 Q- [& G3 V- v4 G
满分:5 分
& }# U/ K, H: A# t9. 对于重载的运算符>>,它是一个/ H1 M- L6 i5 t1 q/ c- F. B
A. 用于输入的友元函数 . W3 X) B( s9 `
B. 用于输入的成员函数* H3 G+ H/ l/ H# q) |4 D: \* K
C. 用于输出的友元函数
$ {( Q2 @) w) x8 i" d) bD. 用于输出的成员函数
6 i( ^* v& g. S 满分:5 分
j4 |9 A/ e9 D" G- X- n10. 在以下四组中,每组有两个分别运算的函数,运算结果相同的是 % g& J% l9 |) Q$ L6 y: [# e2 e, u
int main(int argc, char* argv[])5 N' t# L- h8 {& U
{
" m7 J8 ^7 e F! p int i, j, m=0, n=0; , c) t) u' R9 G+ c7 O" n
for(i=0; i<2; i++) - v" T9 u6 c, ~2 |" X6 n9 Z
for(j=0; j<2; j++)
7 S1 Z) l2 {* m% ?2 P$ d2 A" G7 |/ T* m if(j>=i) m=1; n++; / _0 \! o5 y( ?0 A' v
cout<<n;
9 G4 i! m9 O: F. Y% H9 p/ M! y}; r8 o/ C# v# G& r; L- V
A. 4
) D+ d& a' n; O: J- F* cB. 2. I3 A9 R# ]# {) y* c" O
C. 19 `1 f" N' e! K) @$ h9 W" ]' p( Y
D. 0
3 _) Q* K6 |* P2 c6 O( z 满分:5 分
2 r0 J1 Y( T5 R) N/ O11. 有以下程序. k. J/ C7 K) U) W" g
#include <iostream>* u* `* n: s; ]2 n- U
using namespace std;
2 n: Q! B# x7 B5 f0 Q* l" _$ N: Afloat f1(float n){ return n*n; }% i5 O9 ~# r8 }& F# [8 B
float f2(float n){ return 2*n; }
0 H& B* D, b* g wint main(int argc, char* argv[])
1 O4 F* I$ V+ Y( Q{7 K! b7 i5 X, [! |
float (*p1)(float),(*p2)(float),(*t)(float), y1, y2;; @0 n, x- W- K6 o% _& J- B" m
p1=f1; p2=f2;! I0 D! w- J* t2 Y$ u
y1=p2( p1(2.0) );
5 ?6 [' m" E3 Q4 c0 | t = p1; p1=p2; p2 = t;$ v Q6 B1 l K4 n! D' I9 ?0 z
y2=p2( p1(2.0) );
/ B4 H5 ^8 p- E- ^4 | cout<<y1<<","<<y2<<endl;
$ ^1 ?" w1 |9 `9 t* u return 0;3 W& }9 o' p+ T9 m1 h. A2 C$ ?# `
}" z. W- b( i" l3 @, k( b
程序运行后的输出结果是% h% U5 ?: a: `+ K1 h+ W, {
A. 8,160 k( G% C& m. E, l8 b% }
B. 8,8
- V$ K! Z' _, iC. 16,16 - E9 L& R: {. A% i
D. 4, 8 M5 J4 r& T( p0 b4 X8 D8 s
满分:5 分9 P! k% s$ H0 z( @: t
12. 若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是/ t( n7 Q, [5 x8 ^, S# r( P! \9 R
A. switch(x) { case 1.0: printf("*\n");case 2.0: printf("**\n");}& m5 o: O4 [7 y/ i5 F
B. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");
7 d1 i$ P" B, P+ F1 `+ r" D. SC. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}0 Q5 ?9 E [+ P' p% W, o
D. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");} v( A2 |: ^6 `& @
满分:5 分# n: p* y( P* X: b
13. 在C语言中,合法的字符常量是
# ]: H: H+ P0 P8 RA. '\084': t8 A2 p. P: \' N, [
B. '\x43') O& k+ y; W, \# \# h3 m
C. 'ab'
$ x- e8 _ W/ V- ED. "\0" - K& w4 W, {+ @1 q: c
满分:5 分3 l8 a; g$ Y8 r1 l' n3 `
14. 以下不合法的字符常量是
4 k9 i$ q4 z2 m, S# } y& ^A. '\018'* ^0 d3 G5 j6 z% N& e* J- h2 c
B. 4 `/ q6 V% U, Q: [0 K
'\"'
2 c8 H0 U7 o1 _1 y3 d/ J- P
$ v6 c7 p4 o! P5 x4 p! b# AC. '\\'
8 x) D8 n3 D% \$ W% b, VD. '\xcc'# B U9 B8 W( x0 R% f8 c6 {( |6 V+ }8 y
满分:5 分. d) E5 g) {- E8 A
15. 对于重载的运算符>>,它是一个( )
% z; r1 L! [9 S# nA. 用于输入的友元函数 4 P' c9 T, U4 c" E! F7 F
B. 用于输入的成员函数
0 U6 G/ Z0 D6 YC. 用于输出的友元函数
Y4 K/ W j+ y6 t, S, RD. 用于输出的成员函数
* ^% h4 \: E- N- {# o 满分:5 分! P, d6 X- Q7 R3 ~1 o/ U
16. 执行以下程序后,输出的结果是
$ g+ ], o* r8 Z: w#include <iostream>
1 f7 j( |$ {5 ^2 [- f; `. w#include <cmath>% U" ~! C. a- X! m5 O; [7 Y
using namespace std;
: @1 @3 j Z1 |6 Mint main(int argc, char* argv[])$ m0 z. U' g% j" r' [2 c4 u( W; B
{
+ o3 Q# P% a# p7 s4 [ int y=10;
! Y t1 z; j+ f( _: X do {y--;} while(--y);
5 l9 x6 V& f1 u) s' E' w w; ~ cout<<y--<<endl; 6 \$ D" ~5 n; k2 }8 s6 m
return 0;& l, y# B. Q9 c
}7 r" b0 S' ^& B) D
A. -1
. m# z) L% F D% w- xB. 1
. U& i' }" a4 m6 W- f5 nC. * M( [9 H! y; T4 W) p8 }
8
& R! [& N& m$ J( {# l2 \9 ~8 Y0 y# b
4 A0 n# q3 t+ B: b/ VD. 0
$ A6 {! \1 Y/ L' _. g 满分:5 分, U: H" @( W9 Z1 o9 t; b
17. 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明
: T3 K, ?) c- z9 I' U, O @" k% gA. f()是基类的私有成员/ P- ~) j/ l, E0 p2 h# D3 y
B. 派生类的继承方式为私有
" ?) P* M9 @1 y3 V/ {3 |C. f()是基类的保护成员# h$ A1 {/ K# z1 |- k% M; p
D. 派生类的继承方式为保护7 M) L% _0 A. F$ h) u7 p' x
满分:5 分8 M& V m) f- o' v: H8 C& H
18. 当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式( )
% g; v! w7 f' ]% jA. ios base::in
$ u# b( C. L2 M3 jB. ios_base::binary
' ~4 Z: x$ D6 U+ t1 f; A; o& A% ]' ~8 K; SC. ios_base::in|ios_base: ut
) p- g5 b. G/ ^1 n9 nD. ios_base: ut. g% d" l1 h5 J2 w- H2 I$ v( Y( f
满分:5 分( e, h6 M. g, |* O% I% B2 d) D( S
19. 以下不合法的数值常量是
( s. N! v0 E B# s) XA. 011
) B+ i) i! Y% f' o: I- bB. 1e1
, o9 T* ]) M9 P. @C. 8.0E0.5
b! T$ g7 i: u+ }0 hD. 0xabcd% m7 e/ i" t x+ m7 p/ |1 y% a
满分:5 分; D3 O5 I8 W4 ~+ f
20. 关于在调用模板函数时模板实参的使用,下列表述正确的是
7 L8 e1 I$ g# W' g+ bA. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略
e7 p. U5 v2 C; h, @B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略
/ v! {- F. a8 E5 M0 bC. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略+ b; M4 l. Z' {4 a; S
D. 对于常规参数所对应的模板实参,任何情况下都不能省略
/ `+ g% Y& Z- A9 b' y 满分:5 分
% B& P) o, X4 i( L# F3 N$ E5 r5 I( I, t
|
|