国家二级(C++)机试模拟试卷291
选择题
1.程序流程图中带有箭头的线段表示的是( )。(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。
2.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。(C)
A. 需求分析阶段
B. 概念设计阶段
C. 逻辑设计阶段
D. 物理设计阶段
解析:逻辑结构设计的任务:概念结构是各种数据模型的共同基础,为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。它包括从E.R图向关系模式转换和逻辑模式规范化及调整、实现。
3.设有以下定义和程序:
#include<iostream.h>
class TestClass1
{
public:
void show1()
{
cost<<’’TestClass1’’<<endl;
}
};
class TestClass2:TestClass1
{
public:
void show2()
{
tout<<’’TestClass2’’<<endl;
}
};
class TestClass3:protected TestClass2
{
public:
void show3()
{
cout<<’’TestClass3’’<<endl:
}
};
void main()
{
TestClassl obj1;
TestClass2 obj2;
TestClass3 obj3;
}
则以下不合语法的调用语句是( )。(C)
A. obj1.show1();
B. obj2.show1();
C. obj3.show1();
D. obj2.show2();
解析:TestClass1为TestClass2的私有基类,所以派生类TestClass2中继承过来的showl()为私有的。TestClass3为TestClass2的受保护派生类。所以TestClass3定义的对象不能访问TestClass中的show1()。
4.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。(D)
A. 数据与程序独立存放
B. 不同的数据被存放在不同的文件中
C. 不同的数据只能被对应的应用程序所使用
D. 以上三种说法都不对
解析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。所以选项A,选项B和选项C都不正确。
5.下列程序的输出结果是( )。
#include<iostrearn.h>
void main()
{int n[][3]={10,20,30,40,50,60};int(*p)[3];
p=n;cout<<p[0][0]<<’’,’’<<*(p[0]+1)<<’’,’’<<(*p)[2]<<endl;}(B)
A. 10,30,50
B. 10,20,30
C. 20,40,60
D. 10,30,60
解析:如果数组元素都是相同类型的指针,则称这个数组为指针数组。指针数组一般用于处理二维数组。声明的格式为:<数据类型><(*变量名)><[元素个数]>。p表示指向数组n的行指针,初始化“(*p)[3]=n;”,地址的等价形式:p+i、p[i]、*(p+i)都表示数组第i+1行的第1个元素的首地址。*(p+i)+j、p[i]+j、&p[i][j]都表示数组第i+1行、第j+1列元素的地址。值的等价形式:*(p+j)+j)、*(1)[i]+j)、p[i][j]都表示数组第i+1、第j+1列元素的值。所以本题中分别访问数组元素p[0][0],p[0][1],p[0][2]。
6.下面程序的输出结果是( )。
#include
#include
using namespace std;
class point
{
private:
double x:
double y;
public:
point(double a,double b)
{ x=a;
y=b;
}
friend double distances(point a,point b);
};
double distances(point a,point b)
{
return
sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main()
{point p1(1,2);
point p2(5,2);
cout<<distances(p 1,p2)<<endl;
return 0:
}(B)
A. 2
B. 4
C. 8
D. 16
解析:分析题目,最终要实现的结果是sqrt((a.x—b.x)*(a.x—b.x)+(a.y—b.y)*(a.y—b.y)),其中的a.x和a.y分别指p1(1,2)中的1和2。这样容易得到结果是(1-5)*(1-5)+(2-2)*(2-2)=16,再开方得到结果为4。
7.执行下列语句段后,输出字符“*”的个数是( )。
for(int i=50;i>1;i-=2)cout<<’*’;(B)
A. 24
B. 25
C. 26
D. 50
解析:本题考查for循环语句,题目中每执行完循环体后,i都会减2,那么只有50到2之间的偶数才能输出“*”,所以总共输出25次。
8.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。(A)
A. 学生成绩管理系统
B. C语言编译程序
C. UNIX操作系统
D. 数据库管理系统
解析:软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、C、D都是系统软件,只有A是应用软件。
9.有如下程序:
本文档预览:3600字符,共17990字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载