好文档 - 专业文书写作范文服务资料分享网站

华南理工大学高级语言程序设计(C)期末练习题

天下 分享 时间: 加入收藏 我要投稿 点赞

.

《高级语言程序设计(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=5)

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]的地址是( )。

(a) &a[2][1] (b) *(a[2]+1) (c) a[2]+1 (d) *(a+2)+1 32.已知char *a[]={ \\basic\\\\; 则 cout<

(a) t (b) 一个地址值 (c) java (d) javac++ 33.若用数组名作为调用函数的实参,则传递给形参的是( )。 (a) 数组存贮首地址 (b) 数组的第一个元素值 (c) 数组中全部元素的值 (d) 数组元素的个数

34.设有变量定义 int a[]={3,5,7,9,11}, *p=a+2, y ; 执行语句 y=*p ; 后,变量y的值是:( )

(a) 6 (b) 7 (c) 8 (d) 9

35.设有变量定义 int a[3][4]; 能够表示元素a[2][1]的值有:( ) (a) *a[2]+1 (b) &a[2][1] (c) *a[2][1] (d) *(a[2]+1)

36.设有说明语句char *s=”ABCD”; 下列选项中,输出字符 ”CD” 的代码是:( )

(a) cout<<*s+2; (b) cout<

(c) cout<

37.一个5个元素的一维数组,其元素类型是整型指针。正确定义是:( ) (a) int p * [5] (b) * int p[5] (c) * p int[5] (d) int * p[5] 38.有变量说明

struct ptype{int x; int y; }; ptype point, *p = &point;

以下正确的引用是:( )

(a) *p.y (b) p->x (c) point->x (d) (*point).y

39.已知int a[][3]={{0,1},{2,3, 4 },{ 5, 6 },{ 7 } }; 则 a[2][2]的值是( )。 (a) 1 (b) 3 (c) 6 (d) 0 40.有int ary[5]={1,2,3,4,5}; 以下表达式值等于3的是( )。 (a)ary[ary[1]] (b)ary[3] (c)*(ary+3) (d) *ary+3 41.有关类和对象的说法不正确的是( )

(a) 对象是类的一个实例 (b) 一个类只能有一个对象

(c) 任何一个对象只能属于一个具体的类

.

.

(d) 类与对象的关系和数据类型与变量的关系相似

42.若有以下说明,在类外使用对象objX成员的正确语句是( )。 class X { int a;

void fun1(); public:

void fun2();

};

X objX ;

(a) objX.a=0; (b) objX.fun1(); (c) objX.fun2(); (d) X::fun1(); 43.在类定义的外部,可以被访问的成员有( )。

(a) 所有类成员 (b) private或protected的类成员 (c) public的类成员 (d) public或private的类成员

44.说明一个类的对象时,系统自动调用( );撤消对象时,系统自动调用( )。

(a) 成员函数 (b) 构造函数 (c) 析构函数 (d) 友员函数 45.下面对构造函数的不正确描述是( )。

(a) 系统提供默认的构造函数 (b) 构造函数可以有参数,所以也可以有返回值 (c) 构造函数可以重载 (d) 构造函数可以设置默认参数 46.下面对析构函数的正确描述是( )。

(a) 系统不提供默认的析构函数 (b) 析构函数必须由用户定义 (c) 析构函数没有参数,也没有返回值 (d) 析构函数可以设置默认参数 47.关于类的静态成员的不正确描述是( )。 (a) 静态成员不属于对象,是类的共享成员 (b) 静态数据成员要在类外定义和初始化

(c) 静态成员函数不拥有this指针,需要通过类参数访问对象成员 (d) 只有静态成员函数可以操作静态数据成员

48.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。

(a) public成员 (b)private成员 (c) protected成员 (d)友员 49.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。

(a) public成员 (b)private成员 (c) protected成员 (d)友员 50.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。

(a) public成员 (b)private成员 (c) protected成员 (d)友员 51.不论派生类以何种方式继承基类,都不能直接使用基类的( )。 (a) public 成员 (b)private成员 (c) protected成员 (d)public 成员和protected成员 52.在c++中,可以被派生类继承的函数是( )。

(a) 成员函数 (b)构造函数 (c) 析构函数 (d)友员函数 53.在C++中,要实现动态联编,必须使用( )调用虚函数。

(a) 类名 (b) 派生类指针 (c) 对象名 (d) 基类指针 54.下列函数中,不能说明为虚函数的是( )。

(a) 私有成员函数 (b) 公有成员函数 (c) 构造函数 d) 析构函数

.

.

55.在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )。

(a) 相同 (b) 不同 (c) 相容 (d) 部分相同 56.下面函数原型中,( )声明了fun为纯虚函数。

(a) void fun()=0; (b)virtual void fun()=0; (c) virtual void fun(); (d)virtual void fun(){ }; 57.若一个类中含有纯虚函数,则该类称为( )。

(a) 基类 (b) 纯基类 (c) 抽象类 (d) 派生类 58.下列流类中可以用于处理文件的是( )。

(a) ios (b) iostream (c) strstream (d) fstream 59.在下列选项中( )是istream类的对象。

(a) cerr (b) cin (c) clog (d) cout 60.要求打开文件 D:\\file.dat,并能够写入数据,正确的语句是( )。 (a) ifstream infile( “D:\\\\file.dat”, ios::in ) ; (b) ifstream infile( “D:\\\\file.dat”, ios::out ) ; (c) ofstream outfile( “D:\\\\file.dat”, ios::in ) ;

(d) fstream infile( “D:\\\\file.dat”, ios::in | ios::out ) ;

二.写出下列程序的执行结果

1.#include using namespace std; int main() { int i=1; switch(i) { case 1:i++; case 2:i++;

case 3:i++; break; default:i++; } cout<<\}

2. #include

using namespace std; int main() { int i = 1; while( i<=10 )

if( ++i % 3 != 1 ) continue;

else cout<< i <

3.#include using namespace std;

.

华南理工大学高级语言程序设计(C)期末练习题

.《高级语言程序设计(C++)》练习题一.单项选择题1.用C++语言编制的源程序要变为目标程序必须要经过()。(a)解释(b)汇编(c)编辑(d)编译2.执行C++程序时出现的“溢出”错误属于()错误。(a)编译
推荐度:
点击下载文档文档为doc格式
  • 正文标题

  • 上下篇章

  • 相关推荐

  • 精选图文

5lqdb91du94ncj33s2bw8iiwn4795r0189g