1、 高级语言程序设计(C+) 练习题2015.4一单项选择题1.用C+语言编制的源程序要变为目标程序必须要经过( )。(a) 解释 (b) 汇编 (c) 编辑 (d) 编译2. 执行C+程序时出现的“溢出”错误属于( )错误。(a) 编译 (b) 连接 (c) 运行 (d) 逻辑3. 按C+标识符的语法规定,合法的标识符是( )。(a) abc (b) new (c) (d) “age“4计算表达式 x=a=4,b=x+ 后,变量 x,a,b 的值分别是:( ) (a) 4,4,4 (b) 4,4,5 (c) 4,5,5 (d) 5,4,45表达式 1/2*2.0 的值是:( ) (a) 2 (
2、b) 1 (c) 0.5 (d) 06下列选项中,( )不能交换变量a和b的值。(a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=ab;(c) t=a; a=b; b=t; (d) a=b; b=a; 7有以下变量说明,下面正确的语句是( )。 int a=10, b; int (a) (b) pb = pa; (c) pb = (d) *pb = *pa;8执行下面语句序列后,a和b的值分别为( )。int a = 5 , b = 3 , t ;int int t = ra ; ra = rb ; rb = t ;(a) 3和3 (b) 3和5 (c) 5和3 (
3、d) 5和59.设X为整型变量,不能正确表达数学关系 1X5 的C+逻辑表达式是( )。(a) 1=5)10. 设 int a=1, b=2, c=3, d=4; 则以下条件表达式的值为( )。an; int an;27下列数组定义语句中,不合法的是( )。(a) int a3 = 0, 1, 2, 3 ; (b) int a = 0, 1, 2 ;(c) int a3 = 0, 1, 2 ; (d) int a3 = 0 ;28已知 int a10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 , *p = a ;则不能表示数组 a 中元素的式子是( )。(a) *a (b)
4、 *p (c) a (d) a p-a 29以下不能对二维数组a进行正确初始化的语句是( )。(a) int a23 = 0 ;(b) int a3 = 0,1 , 0 ;(c) int a23 = 0, 1 , 2, 3 , 4, 5 ;(d) int a3 = 0, 1, 2, 3, 4, 5 ;30已知int a3 = 0, 1 , 2, 3, 4 , 5, 6 , 7 ; 则 a21的值是( )。(a) 0 (b) 2 (c) 6 (d) 731已知int a33 = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; 则不能表示数组元素a21的地址是( )。(a) 则 coutx
5、 (c) point-x (d) (*point).y39已知int a3=0,1,2,3, 4 , 5, 6 , 7 ; 则 a22的值是( )。(a) 1 (b) 3 (c) 6 (d) 040有 int ary5=1,2,3,4,5; 以下表达式值等于 3 的是( ) 。(a)aryary1 (b)ary3 (c)*(ary+3) (d) *ary+341.有关类和对象的说法不正确的是( )(a) 对象是类的一个实例(b) 一个类只能有一个对象(c) 任何一个对象只能属于一个具体的类(d) 类与对象的关系和数据类型与变量的关系相似42若有以下说明,在类外使用对象objX成员的正确语句是(
6、 )。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下面对构造函数的不正确描述
7、是( )。(a) 系统提供默认的构造函数 (b) 构造函数可以有参数,所以也可以有返回值(c) 构造函数可以重载 (d) 构造函数可以设置默认参数46下面对析构函数的正确描述是( )。(a) 系统不提供默认的析构函数 (b) 析构函数必须由用户定义(c) 析构函数没有参数,也没有返回值 (d) 析构函数可以设置默认参数47关于类的静态成员的不正确描述是( )。(a) 静态成员不属于对象,是类的共享成员(b) 静态数据成员要在类外定义和初始化(c) 静态成员函数不拥有this指针,需要通过类参数访问对象成员(d) 只有静态成员函数可以操作静态数据成员48当一个派生类公有继承一个基类时,基类中的所
8、有公有成员成为派生类的( )。(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)p
9、rivate 成员(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)
10、相容 (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
11、 (d) cout60要求打开文件 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#includeusing namespace std;int main() int i=1;s
12、witch(i) case 1:i+;case 2:i+; case 3:i+; break;default:i+; coutusing namespace std;int main() int i = 1;while( iusing namespace std;int main() int i=1;while (iusing namespace std;int main() int a=0;for(int i=1;iusing namespace std;int main()int i,j,k;for( i=1; iusing namespace std;#includeint f(int)
13、 ;int main() int i;for(i=0;iusing namespace std;int f(int);int main() int a=1, i;for(i=0; iusing namespace std;int main()void f(int m ) cout1)f(m-1); int main() f(4); coutusing namespace std;int main() int i, count=0, sum=0;double average;int a= 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ;for( i=0; iusing namesp
14、ace std;int main()int a= 4,3,1,-7,10,12,-2,6,9,25;int i, m ;m=a0;for(i=1;iusing namespace std;int f(int b , int m,int n) int i,s=0;for(i=m; iusing namespace std;class A public: int f1(); int f2();void setx( int m ) x=m; coutusing namespace std;class B1 public:B1(int i) coutusing namespace std;int ma
15、in() int x , y, k ;cinx ;k = _ _(1) _ ; switch (k) case 1 : y=2*x; _ _(2) _ ; case 0 : y=x+10;coutusing namespace std;int main() int nl = 0, ng = 0 ;char ch ;cin.get(ch) ;while (ch != ?) if( _ _(3)_ _ )+ nl ;else if ( ch= 0 int main() int i;for( i=100;iusing namespace std;int main() double sum=0; long n, k=1; int sign=-1 ; cout n;do sign = -sign ; sum+= _ _(7) _ ; k+= 2 ; while ( _ (8) _ ) ; cout