.
《高级语言程序设计(C++)》练习题
一.单项选择题
1.用C++语言编制的源程序要变为目标程序必须要经过( )。
(a) 解释 (b) 汇编 (c) 编辑 (d) 编译 2. 执行C++程序时出现的“溢出”错误属于( )错误。
(a) 编译 (b) 连接 (c) 运行 (d) 逻辑 3. 按C++标识符的语法规定,合法的标识符是( )。
(a) abc (b) new (c) π (d) \ 4.计算表达式x=a=4,b=x++ 后,变量x,a,b的值分别是:( )
(a) 4,4,4 (b) 4,4,5 (c) 4,5,5 (d) 5,4,4 5.表达式1/2*2.0的值是:( )
(a) 2 (b) 1 (c) 0.5 (d) 0
6.下列选项中,( )不能交换变量a和b的值。
(a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=a–b; (c) t=a; a=b; b=t; (d) a=b; b=a; 7.有以下变量说明,下面正确的语句是( )。
int a=10, b; int &pa=a, &pb=b;
(a) &pb = a; (b) pb = pa; (c) pb = &pa; (d) *pb = *pa; 8.执行下面语句序列后,a和b的值分别为( )。
int a = 5 , b = 3 , t ; int &ra = a ; int &rb = b ;
t = ra ; ra = rb ; rb = t ;
(a) 3和3 (b) 3和5 (c) 5和3 (d) 5和5
9.设X为整型变量,不能正确表达数学关系 1<X<5 的C++逻辑表达式是( )。 (a) 1< X <5 (b) X==2||X==3||X==4 (c) 1
10. 设 int a=1, b=2, c=3, d=4; 则以下条件表达式的值为( )。
a
(a) 1 (b) 2 (c) 3 (d) 4 11. 以下逗号表达式的值为( )。
( a = 5/2, a*5 ), a*5
(a) 2 (b) 10 (c) 15 (d) 50
12. 设 int x=1, y=3 , 能正确表示代数式3x|x-y|的C++表达式是( )。 (a)abs(x-y)*3*x (b)3x(abs(x-y))
(c) 3x||(x-y) (d)3*x*(x-y)|| 3*x*(y-x)
13.已知 int i=0, x=1, y=0 ; 在下列选项使i的值变成1的语句是( )。 (a) if( x && y ) i++ ; (b) if( x = y ) i++ ; (c) if( x || y ) i++ ; (d) if( !x ) i++ ;
14.已知int i=0,x=0; 下面while语句执行时循环次数为( )。
while( !x && i < 3 ) { x++ ; i++ ; }
.
.
(a) 4 (b) 3 (c) 2 (d) 1 15.已知int i=3;下面do_while 语句执行时循环次数为( )。
do{ i--; cout<
(a) 1 (b) 2 (c) 3 (d) 无限 16.下面for语句执行时循环次数为( )。 for ( int i=0,j=5;i=j; ) { cout << i << j << endl;
i++; j--; }
(a) 0 (b) 5 (c) 10 (d) 无限 17.执行以下程序段后,屏幕的显示结果是( )。
i=10; s=0; do{ s=s+i; i++;} while(i<=10); cout<
(a)10 (b)11 (c)12 (d)21
18. 已知 int x=1, y=0, w ; 执行下面程序段后,w的值为( )。 if(x) if(y) w=x&&y; else w=y;
(a)0 (b)-1 (c)1 (d)不确定
19.执行语句 x=1; while( ++x<7 )cout<<’*’; 后输出结果是:( ) (a) ***** (b) ****** (c) ******* (d) ******** 20.执行以下程序段后,屏幕的显示结果是( )。 int i=0; do { i++;} while(i<=0); cout<
(a) 0 (b) 1 (c) 2 (d) 3 21.以下正确的函数原型为( )。
(a) f1( int x; int y ); (b) void f1( x, y ); (c) void f1( int x, y ); (d) void f1( int, int );
22.有函数原型 void fun2( int ); 下面选项中,不正确的调用是( )。 (a) int x = 21; fun2( x ); (b) int a = 15; fun2( a*3 ); (c) int b = 100; fun2( &b ); (d) fun2( 256 );
23.有函数原型 void fun3( int * ); 下面选项中,正确的调用是( )。 (a) double x = 2.17; fun3( &x ); (b) int a = 15 ; fun3( a*3.14 ); (c) int b = 100; fun3( &b ); (d) fun3( 256 );
24.有函数原型 void fun4( int & ); 下面选项中,正确的调用是( )。 (a) int x = 2.17; fun4( &x ); (b) int a = 15; fun4( a*3.14 ); (c) int b = 100; fun4( b ); (d) fun4( 256 ) ; 25.有声明 int fun5( int ); int (*pf)(int) = fun5; 下面选项中,正确的调用是( )。
(a) int a=15; int n=fun5(&a); (b) int a = 15; cout<<(&pf)(a); (c) cout<<(*pf)( 256 ); (d) cout << *pf( 256 ); 26.以下对一维数组 a 的正确定义是( )。
(a) int n = 5, a[n]; (b) int a(5);
(c) const int n = 5; int a[n]; (d) int n; cin>>n; int a[n]; 27.下列数组定义语句中,不合法的是( )。
(a) int a[3] = { 0, 1, 2, 3 }; (b) int a[] = { 0, 1, 2 }; (c) int a[3] = { 0, 1, 2 }; (d) int a[3] = { 0 };
28.已知 int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a ;则不能表示数
.
.
组 a 中元素的式子是( )。
(a) *a (b) *p (c) a (d) a[ p-a ] 29.以下不能对二维数组a进行正确初始化的语句是( )。 (a) int a[2][3] = { 0 };
(b) int a[][3] = { { 0,1 }, { 0 } };
(c) int a[2][3] = { { 0, 1 }, { 2, 3 }, { 4, 5 } }; (d) int a[][3] = { 0, 1, 2, 3, 4, 5 };
30.已知int a[][3] = { { 0, 1 }, { 2, 3, 4 }, { 5, 6 }, { 7 } }; 则 a[2][1]的值是( )。
(a) 0 (b) 2 (c) 6 (d) 7
31.已知int a[3][3] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } ; 则不能表示数组元素a[2][1]的地址是( )。