正确答案: A

用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

题目:下列叙述中正确的是( )。

解析:

用E-R图可以简单明了地描述实体及其相互之间的联系,用E-R图还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。因此,选项A中的说法是正确的, 而选项B与C中的说法都是错误的。 为了建立用户所要求的数据库.必须把概念结构(用E-R图表示的概念数据模型)转换为某个具体的数据库管理系统所支持的数据模型.这就是逻辑结构设计所要完成的任务。在已给定数据库管理系统的情况下,数据库的逻辑设计可以分两步来进行: ①将概念模型转换成一般的数据模型; ②将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。 由此可知,用E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。因此,选项D中的说法也是错误的。

查看原题 点击获取本科目所有试题

举一反三的答案和解析:

  • [单选题]下列程序的功能是:将数据1,1,…,8写入顺序文件Num.txt中,请选择正确的程序段( )。
  • Open"Num.txt"For Output As 1

    Close 1

    print1,i

    input1,I

    print1

    input1

  • 解析:解析:顺序文件的写操作使用“Print#”语句或者“Write#”语句,而“Input#”语句是用于从一个顺序文件中读取数据。使用“Print#语句”向一个顺序文件写数据的格式是:Print#文件号,表达式表。各个表达式之间用逗号或分号隔开,如果省略表达式,则向顺序文件中写入一个空行。

  • [单选题]有一个类A,下面为其构造函数的声明,其中正确的是( )。
  • A(int x){...}


  • [单选题]若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]刚在数组中的位置的式子为( )。
  • i*m+j+l

  • 解析:解析:解此题要注意的问题有两个:一是,二维数组在内存中的存放形式是线性的,且是以行方式排列的。例如:a[3][4]在内存中是以a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],…的顺序排列的。二是,数组的下标范围是从0开始至上限减1为止的。例如:a[5]中5个元素的下标范围是0~4。所以,元素a[i][j]刚在m列的二维数组a中,其上面已经有a[0][?]~a[i-1][?],i行元素,加上其左面的a[i][0]~a[i][j-1],j个元素,再加上自己所处的位置1就是该元素在数组中的位置值了。i行元素的个数是i*m,所以元素a[i][j]在数组中的位置为i*+j+1。得出结论后还应该验证一下,当i=0,j=0时,a[0][0]所处的位置代入式子为0*m+0+1:1,符合题意。故正确答案为D。

  • [单选题]如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。#includeiostream>using namespace std;class Base{ int a,b;public: Base(int x,int y){a=x;b=y;} void show(){couta','bendl;}};class Derived:public Base{ int c,d;public: Derived(int x,int y,int z,int m):Base(x,y){c=z;d=w;} void show(){coutc','dendl;}};int main(){ Base B1(50,50),*pb; Derived D1(10,20,30,40); pb=&D1; pb->show(); return 0;}运行时输出的结果是
  • 10,20

  • 解析:解析:本题考查的知识点是:多态性。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针 (或引用)所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。本题中的show函数就是被重定义的实函数,所以通过基类指针pb所调用的是基类的版本,即输出a和b的值10,20。故应该选择A。

  • [单选题]设x=7,y=9,则以下表达式值为“真”的是
  • x>y Or y>0

  • 解析:解析:在混合表达式中,按优先级有:先运算算术表达式,再运算比较表达式,最后运算逻辑表达式。选项B的运算结果为True。

  • [单选题]有以下程序: #include stdio, h>int a =2;int f(int n){ static int a: 3; int t=0; if(n%2){ static int a=4;t+ =a++;} else { static int a=5;t+ :a++;} return t + a + +;main ( ){ int s=a,i; for(i=0;i3;i++)s + =f(i); prinff("% d \n" ,s); }程序运行后的输出结果是( )。
  • 29

  • 解析:解析:在函数外面定义的变量a是全局变量,其作用范围从定义该变量的位置开始到本文件的结束;在f函数中的if子句(复合语句)和else子句中定义的变量a是局部变量,其作用范围只在其所在的复合语句内;在f函数中定义的第一个变量a是静态局部变量,其作用范围只限于函数f内部,无论被调用多少次都只初始化一次,并且保留上次函数调用结束时的值,该变量不对复合语句产生作用,所以,f函数的返回值是这个a变量和t值相加的结果。

  • [单选题]创建交叉表查询,在交叉表行上不止有一个的是( )。
  • 列标题

  • 解析:本题考查的是交叉表查询的知识。在创建交叉表查询时,用户需要指定3种字段:行标题、列标题和数据表行与列交叉位置上的字段,用p需要为该字段指定一个总计项。对于每一行来说。对应的行标题和值只能有一个,可以对应多个列际题。

  • [单选题]关于下面程序,( )的结论是正确。
  • 程序可以通过编译,但无法正常运行


  • 推荐下载科目: 计算机三级 计算机四级 微软认证 华为认证 计算机一级 软考初级 职称计算机 计算机辅助设计 其他 LTE认证
    @2019-2026 不凡考网 www.zhukaozhuanjia.com 蜀ICP备20012290号-2