国家二级(C++)机试模拟试卷269
选择题
1.分析下面程序,该程序的运行结果是( )。
#include
class TestClass
}
public:
static int m;
TestClass ()
{
m++;
{
TestClass(int n)
{
m=n;
}
static void test()
{
m++;
}
};
int TestClass∷m=0;
void main()
{
TestClass A;
TestClass B(3);
A.test();
TestClass∷test();
cout<<\\(C)
A. m=3
B. m=4
C. m=5
D. m=6
解析:由主函数main入手,首先定义TestClass对象A,B:对象B构造函数值为3,构造函数中m++,所以这时m=4。主函数中调用A.test(),因为“static int m;”,m被定义为类TestClass静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的m为前面进行加1操作后的4,即m现在的值为5。
2.下列函数的运行结果是( )。
#include
int add(int a,int b);
voidmain()
{
extern int x,y;
cout<<add(x,y)<<endl;
}
int x(20),y(5);
hat add(int a,int b)
{
int s=a+b;
return s;
}(A )
A. 25
B. 30
C. 20
D. 15
解析:由主函数main入手,定义外部变量x和y,调用函数add。因为x,y为外部变量,所以“intx(20),y(5);”的赋值在add也是有效的,即add函数的运算结果为25。
3.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为( )。(A )
A. 并运算
B. 交运算
C. 差运算
D. 除运算
解析:关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
4.字面常量42、4.2、42L的数据类型分别是( )。(C)
A. long、double、int
B. long、float、int
C. int、double、long
D. int、float、long
解析:本题考查整型变量的类型和浮点变量的类型,42默认为jnt型数据,42后面加上L后,表示long型数据,4.2默认为double型数据。
5.已知枚举类型声明语句为:
enum COLOR { WHITE, YELLOW, GREEN=5, RED, BLACK=10 };
则下列说法中错误的是( )。(D)
A. 枚举常量YELLOW的值为1
B. 枚举常量RED的值为6
C. 枚举常量BLACK的值为10
D. 枚举常量WHITE的值为1
解析:C++语言规定枚举常量的默认值依次等于0,1,…,n-l。也可以给枚举常量赋初值,方法是:在枚举常量的后面跟上\\
6.将以下程序写成三目运算表达式是( )。
if(x<y)min=x;
else min=y;( B )
A. min=(x>y)?x:y
B. min=(x<y)?x:y
C. min=(x<y)x:y
D. min=(x<y)?x,y
解析:题目给出的程序是求x,y中的小值。即如果x小于y,那么min=x,否则min=y。条件运算符为“?:”,(x<y)?x:y足“j x小于y时取x,否则取y。
7.以下程序段是函数返回a所指数组中最大的值所在的下标值,横线处的语句为( )。
fun(int*a,int n)
{
int i,j=0,k;
k=j;
for(i=j;i<n;i++)
if(a[i]>a[k])_______;
return(k);
}(A)
A. k=i
B. k=j
C. i=j
D. i=n
解析:函数fun中首先定义整型变量k用来存放返回最大值的下标,并将其首先指向第一个元素,即k=j。然后在for·循环中依次将当前元素a[i]与标识为最大值的元素进行比较,如果当前元素火于这个标识元素,那么将最大值标识为当前元素,即k=i。
8.有如下程序:
#include<iostream>
using namespace std;
class GA{
public:
drtual int f(){return1;}
};
class GB:public GA{
public:
virtual int f(){return2;}
};
void show(GA g){cout<<g.f();}
void display(GA &g){cout<<g.f();}
int main()
{
GA a;show(a);display(a);
GB b;show(b);display(b);
return0;
}
执行这个程序的输出结果是( )。(C)
A. 1111
B. 1211
C. 1112
D. 1212
解析:本题主要考察虚函数。虚函数指在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义类GA的对象a,执行show(a)、display(a),输出11,定义了类GB的对象b,执行show(b),仍然输出1,display(b)执行会调用派生类的f函数,因为f函数为虚函数,输出2,所以本题答案为C。
9.下列程序的执行结果为( )。
#include<iostream.h>
void main( )
{
int a=3,b=0;
int * p=&a;
b
本文档预览:3600字符,共17307字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载