试题答案

3773考试网专升本考试试题答案正文

2007年浙江省专升本计算机综合试卷答案

来源:福建招生考试网整理 2007-12-12 10:58:40

2007年浙江省普通高校“专升本”联考《计算机综合》试卷

一、  填空题(每一空格2分,共16分)

1480000

2、操作系统,数据库管理软件

310101011

4、剪贴板

5同轴电缆或双绞线

65AH

7DRAM

 

二、  选择题(本题共有14个小题,每一小题1分,共14分,每个小题给出的选项中,只有一项符合要求)

1A   2D   3A   4B  5B   6B  7D   8D  9C  10A  

11D  12D  13D  14B

 

三、  简答题(本题共6个小题,每小题5分,共30分)

1、简述计算机的工作原理。

计算机工作时先将需要执行的程序从外存储器中读入内存中,(1分)由CPU负责从内存中逐条取出指令,分析识别指令,然后执行该指令,(2分)再由指令计数器取出一条指令,CPU重复地工作,直到遇到停止指令然后结束程序的执行。(2分)

2、简述IP地址的定义、组成以及分类。

Internet上为每台计算机指定的地址称为IP地址。它由32位二进制数字组成,分为四段,每段8位。(2分)

IP地址分成网络地址和主机地址两部分。(1分)

根据网络标识的长度和主机标识的长度的不同,IP地址分为A,B,C,D,E五类。(2分)

3什么是网络协议,在Internet上通用的协议是什么?

答:两个计算机间通信时对传输信息内容的理解、信息表示形式以及各种情况下的应答信息所必须遵循的约定称为协议。(3分)

Internet上通用的协议是TCP/IP协议。(2分)

4、简述计算机内部采用二进制的原因。

1)技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”“0”表示。

2)简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。

3)适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的相吻合。

4)易于进行转换,二进制与十进制数易于互相转换。

评分标准:每个1分,有简单解释1分。

5、简述数据库系统的三级模式结构和两级映像。

答:三级模式结构:外模式、模式、内模式、(3分)

两级映像:外模式/模式映像、模式/内模式映像 (2分)。

6简述数据库的完整性概念与数据库的安全性概念有什么区别和联系。

答:数据库的完整性是指数据的正确性和相容性。(2分)

数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。(2分)

其相同点是两者都是对数据库中的数据进行控制,各自所实现的功能目标不同。(1分)

四、  综合题(本题4个小题,共45分)

1、   简述计算机网络系统的基本组成及其各硬件设备功能。(本小题10分)

计算机网络系统由硬件、软件两大部分构成。硬件主要包括计算机、互连设备和传输介质三大部分。软件主要包括网络操作系统、协议软件和应用软件。

组成计算机网络的硬件系统一般包括计算机(包括服务器和客户机)、传输介质和网络互联设备等。(5分)

1)服务器:在网络中提供资源和特定服务的计算机,在其上运行网络操作系统,是网络控制的中心。

2)客户机(工作站):是网络用户入网操作的结点,一般有自己的操作系统。

3)传输介质:网络传输介质是网络中传输数据、连接各网络站点的实体,一般分为两类,分别是有线介质和无线介质。有线介质常用的有双绞线、同轴电缆、光纤,无线介质常用的有无线电波、微波和红外光等。

4)常用网络接入设备:网络接口、 调制解调器、集线器

5)网络互联设备:中继器(Repeater)交换机、 Switch 、路由器(Router)、网关(Gateway)。(5分)

2、现有“学生-选课-课程”关系数据库如下:

学生表SSnoSnameSageSsexSdept,各属性含义依次为学号,姓名,年龄,性别,所在系;

选课表SCSnoCnoGrade),各属性含义依次为学号,课程号,成绩;

课程表CCnoCnameCteacher),各属性含义依次为课程号,课程名,授课教师;

 

试用SQL语言完成以下操作:(本小题3×5=15分)

(1)         检索年龄在1822之间(含1822)的男生的学号、姓名及年龄;

    方法1

SELECT Sno,Sname,Sage              (1分)

FROM S                             (1分)

WHERE Sage BETWEEN 18 AND 22       (0.5)

AND Ssex=‘男                    (0.5)

 方法2

SELECT Sno,Sname,Sage                 (1分)

FROM S                                (1分)

WHERE Sage>= 18 AND Sage <=22        (0.5) 

AND Ssex=‘男                      (0.5)

(2)         检索选修了“王杰”老师所授课程的学生的学号和姓名;

方法1

SELECT Sno,Sname           (1分)

FROM S,SC,C                (0.5)

WHERE S.Sno=SC.Sno         (0.5)

AND SC.Cno=C.Cno            (0.5)

AND C.Cteacher=王杰    (0.5)

 

方法2

SELECT Sno,Sname                (1分)

FROM S                       

WHERE Sno IN                    (0.5)

  (SELECT Sno

FROM SC                          (0.5)

WHERE Cno IN                    

(SELECT Cno

FROM C                            (0.5)

WHERE Cteacher =王杰’))       (0.5)

 

(3)         CREATE  语句创建选课表(假设学生表和课程表已存在,需定义主码和外码,学号为字符型,长度为10,课程号为字符型,长度为7,成绩为短整型)

CREATE  TABLE  SC                    (1分)

(Sno CHAR(10) Cno CHAR(7)Grade  SMALLINT,     (1)

PRIMARY  KEYSnoCno),               (0.5)

FOREIGN  KEYSno REFERENCES  SSno),      (0.5)

FOREIGN  KEYCno REFERENCES  CCno));

(4)         查询每个学生的学号、姓名、平均成绩总成绩;

  SELECT  SnoSname , AVG (Grade) SUM (Grade)     (1)

FROM   S,SC                                    (1分)

WHERE  S. Sno=SC .Sno                     (0.5)

GROUP  BY   S.Sno                           (0.5) 

评分标准:AVG (Grade)SUM (Grade)有错误,第1句仅给0.5分,WHERE GROUP  BY语句顺序有错误,最后两句仅给0.5分。

(5)         从学生表中删除选修成绩出现过0分的所有学生信息。

    DELETE  FROM  S                            (1分)

        WHERE  Sno   IN                           (1分)

              (SELECT Sno  

                FROM  SC

WHERE Grade=0)                             (1分)                            

 

3 在上题的“学生-选课-课程”数据库中,它们的主码分别是SnoSnoCno),Cno,并且其他属性都允许为空值(NULL)。用下面的SQL语句创建了两个视图:
        CREATE  VIEW  CS_S  AS  SELECT  
SnoSnameSage

FROM  S     WHERE  Sdept=‘计算机系’;

CREATE  VIEW  S_G SnoGavgAS  SELECT   Snoavg(Grade)

FROM   SC  GROUP  BY  Sno 

  若用下面的SQL语句对上述视图进行修改,它们能被成功执行吗?为什么?
(1) UPDATE CS_S SET 
Sname ='王萍'  WHERE  Sno  = 'S200500101'
(这里假定在表S中存在学号Sno  = 'S200500101'的行。)
(2) INSERT INTO  CS_S  VALUES('S200502189', '
杨青', 21 )
(这里假定在表S中不存在学号Sno  = 'S200502189'的行。)
(3) UPDATE  S_G SET 
Gavg = 85  WHERE  Sno  = 'S200501001'
(这里假定在表SC中存在学号Sno  = 'S200501001'的行。)
要求:
   
首先回答这三个SQL语句中哪个(些)能被成功执行,哪个(些)不能被成功执行,再进一步说明能被成功执行或不能被成功执行的理由。(10分)

答:

第(1)和(2)两个SQL语句能被成功执行;第(3)个SQL语句不能被成功执行。 因为对视图的修改最终要转换为对基本表的修改。(2分)

对于第(1)个SQL语句能被成功执行的理由是:执行这个SQL语句将转换成执行如下的SQL语句:
UPDATE  S  SET  Sname ='
王萍' WHERE  Sdept=‘计算机系’AND Sno  = 'S200500101'

3分)

 对于第(2)个SQL语句能被成功执行的理由是:执行这个SQL语句将转换成执行如下的SQL语句:
    INSERT INTO S  VALUES('S200502189', '
杨青' , NULL, 21'计算机系')

INSERT INTO S  (SnoSnameSage Sdept )

 VALUES('S200502189', '杨青' 21'计算机系')

转换后的这两个SQL语句,在本题意的假定下是能够被成功执行的。所以第(1)和(2)个SQL语句能被成功执行。3分)

对于第(3)个SQL语句不能被成功执行的理由是:由于视图S_G中的一个行,是由表SC中若干行经过分组求平均值得到的,因此对视图S_G的更新就无法转换成对基本表SC的更新。所以第(3)个SQL语句不能被成功执行。2分)

 

4假设某商业集团的管理系统涉及商店、商品和职工三个实体集,它们分别具有下列属性,商店:商店号,商店名,店址,负责人;商品:商品号,商品名,产地,价格;职工:职工号,姓名,性别,工资

如果规定,商店有若干职工,每个职工只能服务于一家商店并有相应月薪,商店聘用职工记录“参加工作时间”;每家商店经营若干商品,各商店经营的商品不完全相同,每个商店对每个商品有相应的月销售量。

(1)       试画出相应的ER图;5分)

(2)       将该ER图转换为关系模式,并标出各关系的主码和外码。(5分)

解答:(1)该商业集团管理数据库的ER图见图1

 

 

 

m

n

1

m

商店名

商店号

店址

商品名

产地

价格

负责人

商品号

商店

商品

职工

聘用

销售

月薪

姓名

月销售量

参加工

作时间

职工号

性别

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


1  ER

 

 

评分标准:本小题共计5分,其中3个实体各占1分;画出2个联系各为0.5分,标出2个联系的对应关系各为0.5分。

2)转换为关系模式:

                                                                                                                                                                      

方法一:

商店(商店号,商店名,店址,负责人);

职工(职工号,姓名,性别);

商品(商品号,商品名,产地,价格);

聘用(职工号商店号,参加工作时间,月薪);

销售(职工号商品号,月销售量);下划线的为主键,带波浪线的为外键。

                                                                                                                                                                      

评分标准:关系模式共计5分,其中每一模式各1

 

方法二:

商店(商店号,商店名,店址,负责人);

职工(职工号,姓名,性别,商店号,参加工作时间,月薪);

商品(商品号,商品名,产地,价格);

销售(职工号,商品号,月销售量);下划线的为主键,带波浪线的为外键。

评分标准:共计5分,关系模式职工占2分,其它每一模式各占1分。

 

 

 

五、  程序设计题(本题共3个小题,每小题15分,共45分)

1、   编写程序,任意输入一个正整数,求出该正整数中最大的数字和最小的数字,如果该整数是个位数的话,最大的数字和最小的数字就是它本身。

解答:

#include <stdio.h>

 

void main ()

{

         int a=0;

         int max=0, min=0;

         int temp;

 

         while(a<=0)

         {

                   scanf("%d", &a);

         }

        

         if(a>0 && a<10)

         {

                   printf("max=%d,min=%d\n",a,a);

                   return;

         }

 

         max=a%10;

         min=a%10;

         while(a>0)

         {

                   temp=a%10;

                   if(max<temp)

                   {

                            max=temp;

                   }

                   if(min>temp)

                   {

                            min=temp;

                   }

                   a=a/10;

         }

         printf("max=%d,min=%d\n",max,min);

}

评分标准:

循环输入一个正整数2分;

判断是否是个位数3分;

求最大数字和最小数字8分;

其余2分;

2、   编写程序,学生的记录由学号和成绩组成,学生用结构体表示,按学号由小到大输入10个学生的成绩,按分数降序排列该组学生。

解答:

#include <stdio.h>

 

struct student

{

         int num;

         int grade;

};

 

void main()

{

         struct student s[10];

         int i,j;

         struct student temp;

 

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

         {

                   scanf("%d", &(s[i].grade));

                   s[i].num=i+1;

         }

 

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

                   for(j=i+1; j<10; j++)

                   {

                            if(s[i].grade<s[j].grade)

                            {

                                     temp=s[i];

                                     s[i]=s[j];

                                     s[j]=temp;

                            }

                   }

 

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

         {

                   printf("num=%d, grade=%d\n", s[i].num, s[i].grade);

         }

         return;

}

评分标准:

定义结构体2分;

输入成绩3分;

输出结果2分;

排序6分;

其余2分;

3、   编写程序,计算当x<0.97时下列多项式的值,直到|Sn-Sn-1|<0.000001为止。

解答:

#include <stdio.h>

#include <math.h>

 

double fact(int n)

{

         int i;

         double s=1;

 

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

         {

                   s=s*i;

         }

 

         return s;

}

double temp(int n)

{

         int i;

         double s=1;

 

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

         {

                   s=s*(0.5-(i-1));

         }

         return s;

}

void main()

{

         double sum=0, item0=1, item1=1,x;

         int i=1;

 

         scanf("%lf", &x);

 

         do

         {

                   item0=item1;

                   sum=sum+item0;

                   item1=temp(i)*pow(x,i)/fact(i);

                   i++;

         }while(fabs(item1-item0)>1e-6);

 

 

         printf("sum=%lf\n", sum);

}

评分标准:

求阶乘3分;

求分母3分;

累加7分;

其余2分;

触屏版 电脑版
3773考试网 琼ICP备12003406号-1