2024年4月2日发(作者:)

一、选择题:(1题1分)

1.下列哪个是C++语言的有效标识符?

A)_No1 B)No.1 C)12345 D)int

2.下列选项中,不全是C++语言关键字是:

A) const, break, default B) long, void, auto C) virtual, extern, include D) this, class, else

3.在C++语言中,不合法的实型数据是

A) 0.123 B)123e4 C) 2.1e3.5 D)123.0

4.下列程序的执行结果为

#include

void main( )

{ int a=3,b=0;

int *p=&a;

b=+a++;

cout<<*p<<","<

}

A)3,3 B)4,3 C)3,4 D)4,4

5.下面关于C++语言的描述错误的是

A)C++语言支持数据封装 B)C++语言中引入友元没有破坏封装性

C)C++语言允许函数名和运算符重载 D)C++语言支持动态联编

6.判断char型变量c是否为小写字母的正确表达式是

A)'a'<=c<='z' B)(c>=A)&&(c<=z) C)('a'>=c)||('z'<=c) D)(c>='a')&&(c<='z')

7.若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于

数组的第一个位置上)

A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1

8.下面程序的运行结果为

#include

void main( )

{ char a='3';

switch(a)

{ case '3': cout<<"3";

case '2': cout<<"2"; break;

default : cout<<"1";

}

}

A)3 B)321 C)31 D)32

9.有以下程序

#include

void main( )

{ int i=1,j=1,k=2;

if((j++||k++)&&i++)

cout << i << "," << j << "," << k;

cout<

}

执行后输出结果是

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3

10.下列程序的输出结果为

#include

void main( )

{ char *a[ ]={"hello","the","world"};

char **pa=a;

pa++;

cout<<*pa<

}

A)hello B)the C)world D)hellotheworld

11.存在定义int a[10], x, *pa;,若pa=&a[1],下列的哪个选项和其他3个选项不是等价的

A)x=*pa; B)x=*(a+1); C)x=*(a+1); D)x=a[1];

12.下列语句的输出结果

cout << strlen("t"065xffn");

A)5 B)14 C)8 D)输出项不合法,无正常输出

13.有以下程序

#include

struct STU

{ char num[10];

float score[3]; };

void main( )

{ struct STU s[3]={ {"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;

int i;

float sum=0;

for(i=0;i<3;i++)

sum=sum+p->score[i];

cout << sum; }

程序运行后的输出结果是:

A)260 B)270 C)280 D)285

14.下列程序中画线处应填入的语句是

class Base

{ public:

void fun( ){cout<<"Base of fun"<

};

class Derived : public Base

{ public:

void fun( )

{ __________ //显示基类的成员函数fun

cout<<"Derived of fun"<

}

};

A)fun( ); B)( ); C)Base::fun( ); D)Base->fun( );

15.如果表达式x*y+z中,"*"是作为友元函数重载的,"+"是作为友元函数重载的,则该表达

式还可为

A)operator+( operator*(x, y),z) B)or+( operator*(x, y),z)

C)or*( operator+(x, y),z) D)or+( operator*(x, y))

16.一个函数功能不太复杂但要求被频繁调用,应选用

A)内联函数 B)重载函数 C)递归函数 D)嵌套函数

17设变量a是int型,f是double型,i是float型,则表达式10+'a'+ i * f值的数据类型

A)int B)float C)double D)不确定

18.建立派生类对象时, 3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、

c(派生类的构造函数),这3种构造函数的调用顺序为

A)abc B)acb C)cab D)cba

19.只能作为成员函数重载的运算符是

A)= B)++ C)* D)>

20.以下哪个特征不是面向对象思想中的主要特征?

A)多态 B)继承 C)封装 D)垃圾回收

二、基本概念填空题(1题2分)

1.假设fin是一个文件流对象,则关闭文件的语句是 【1】();。

2.要采用“cin,cout”进行输入输出时,必须包含的头文件是 【2】#include

3.语句int *i; i = new int[10]; ,释放指针i的语句是 【3】delete []I; 。

4.C++的编译预处理的功能分为三种:宏定义、【4】文件包含和条件编译。

5. 若已知a=10,b=20,则表达式 !a

6.将以下程序写成三目(条件)运算表达式是 【6】max=a>b?a:b 。

if(a>b) max=a;

else max=b;

7. C++语言的基本控制结构为顺序结构、选择结构和 【7】循环结构 。

8.在内存中,存储字符 'X' 要占用1个字节,存储字符串 "X" 要占用 【8】2 个字节。

9.假定int类型变量占用四个字节,如有定义int x[10]={0,2,4};,则数组x在内存中所占字

节数是【9】12 。

10.类中数据成员和成员函数的默认的访问权限是 【10】private 。

三、阅读程序(1题3分)

1.下面程序的运行结果是258

#include

void main( )

{ int i=1;

while(i<=8)

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

else cout<

}

2. 下列程序的输出结果是2

#include

void main( )

{ int a[3], i, j, k=2;

for(i=0; i<3; i++) a[i]=i;

for(i=0; i

for(j=0; j

a[j]=a[i];

cout << a[2];}

3.有如下程序,该程序的输出结果是:4

#include

long fib(int n)

{ if(n>2) return (fib(n-1) + fib(n-2));

else return (2);

}

void main( )

{ cout << fib(3) ;}

4.有如下程序,该程序中的for循环执行的次数是6

#include

#define N 2

#define M N+1

#define NUM 2*M+1

void main( )

{ int i;

for (i=1; i<=NUM; i++)

cout << i;

}

5.以下程序的输出结果是。2 4 6

#include

void fun( )

{ static int a=0;

a+=2;

cout << a << " ";

}

void main( )

{ int cc;

for (cc=1; cc<4; cc++)

fun( );

cout << endl;

}

6.下面程序的输出结果是xyabcABC

#include

#include

void main( )

{ char p1[10], p2[10];

strcpy(p1, "abc");

strcpy(p2, "ABC");

char str[50]= "xyz";

strcpy( str+2, strcat(p1,p2));

cout << str;

}

7.下面程序的运行结果为21

#include

class A

{ int num;

public:

A(int i) {num=i;}

A(A &a) {num=++;}

void print( ){cout<

};

void main( )

{ A a(1), b(a);

( );

( );

}

8.下面程序的运行结果为55

#include

class A

{ static int n;

public:

A( ){n=1;}

A(int num){n=num;}

void print( ){cout<

};

int A::n=2;

void main( )

{ A a, b(5);

( );

( );

cout<

}

9.下面程序的运行结果为3,3

#include

void swap(int &a, int b)

{ int temp;

temp=a++;

a=b;

b=temp;

}

void main( )

{ int a=2, b=3;

swap(a, b);

cout<

}

10.下面程序的运行结果为

call f1 in Derived