国家二级C++机试(选择题)模拟试卷472
选择题
1.下列关于栈的描述中错误的是( )。(B)
A. 栈是先进后出的线性表
B. 栈只能顺序存储
C. 栈具有记忆作用
D. 对栈的插入与删除操作中,不需要改变栈底指针
解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端:栈底(bottom):不能入栈也不能出栈的…端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。
2.有以下程序:
#include<iostream>
using namespace std;
class R
{
public:
R(int r1,int r2)
{
R1=rl;
R2=r2;
}
void print();
Void print()const;
private:
int R1,R2;
};
void R::print()
{
cout<<Rl<<’’,’’<<R2<<end1;
}
void R::print()const
{cout<<R1<<’’,’’<<R2<<end1;}
int main()
{
R a(5,4);
const R b(20,52);
b.print();
return 0;
}
执行后的输出结果是( )。(C)
A. 5,4
B. 4,5
C. 20,52
D. 52,20
解析:此题中,语句R a(5,4)调用构造函数R(int r1,int r2)但未有输出结果;b.print();调用常成员函数(因为b是常对象)void prin()const,输出结果是20,52。
3.有如下程序:
#include
using namespace std;
class XA{
int a;
public:
static int b;
XA(int aa):a(aa){b++;}
int getA(){return a;}
};
int XA∷b=0;
int main(){
XA d1(4),d2(5);
cout<<d1.getA()+d2.getA()+XA∷b+d1.b<<end1;
return ();
}
运行这个程序的输出结果是( )。(C)
A. 9
B. 11
C. 13
D. 15
解析:在类XA的构造函数中,定义了用成员变量a的值初始化变量aa,同时静态成员变量b值加1。所以当在主main函数中定义类XA的对象d1(4)后,变量b的等于1,定义对象d2(5)后,变量b的值等于2,所以表达式d1.getA()+d2.getA()+XA∷b+d1.b等于4+5+1+2+1=13。
4.下列描述中错误的是( )。(A)
A. 在数据库系统中,数据的物理结构必须与逻辑结构一致
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库设计是指在已有数据库管理系统的基础上建立数据库
D. 数据库系统需要操作系统的支持
解析:在数据库系统中,物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
5.有三个关系R、S和T如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:关系R与S经交运算后所得到的关系是由那些既在R内又在S内的有序组组成的,记为R∩S。
6.下列for循环的循环体执行次数为( )。for(int i(0),j(10);i=j=4;i++,j–)(D)
A. 0
B. 1
C. 4
D. 无限
解析:循环条件i=j=4;是个赋值语句,使得i,j的值非0,所以是死循环。
7.下列选项中,正确的C++标识符是( )。(D)
A. 6_group B>group~6
B. age+3
C. _group_6
解析:C++中标识符的命名遵循如下规则:不能是C++关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括“,”、“;”、“,”、“’”、“””+—之类的特殊符号。总之标识符中除了能使用26个英文大小写字母和数字外,只能使用下划线“”。
8.在函数中,可以用auto、extem、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(A)
A. auto
B. extern
C. register
D. static
解析:此题考查的是存储类型。C++语言变量的存储类型分为如下几种类型:auto—函数内部的局部变量;static—静态存储分配;extern—全局变量;register—变量存储在硬件寄存器中。
9.“商品”与“顾客”两个实体集之间的联系一般是(D)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:实体集间的联系的个数可以是单个也可以是多个。两个实体集之间的联系实际上是实体集间的函数关系,这种关系有三种:一对一的联系,简记为1:1:一对多或多对一联系,简记为1:m或m:1;多对多联系,简记为m:n。本题中“商品”与“顾客”两个实体集之间的联系是多对多联系。因为一种“商品”可以被多个“顾客”购买,而一个“顾客”也可以购买多个“商品”。
10.语句int*p=&k;定义了指针p,与这个语句等效的语句序列是( )。(A)
A. int*p;p=&k;
B. int *p;p=k;
C. int*p;*p=&k;
D. int *p;*p=k
解析:此题考查的是指针的赋值。题目中的语句int*p=&k;定义了一个int类型的指针p,并将变量k的地址&k赋给指针p。所以等效语句是:int *p;p=&k;。
11.有如下程序
#include<iostream>
using namespace std;
本文档预览:3600字符,共7450字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载