已知a=5,b=5,c=5,那么c执行sql语句语句a+b*c**2-10的值为( )

《数据库系统概论》模拟试卷(一)

┅、单项选择题(每小题2分共30分)

1、( B )是按照一定的数据模型组织的,长期储存在计算机内可

为多个用户共享的数据的集合。

(A)、数據库系统(B)、数据库

(C)、关系数据库(D)、数据库管理系统

2、下列关于索引的叙述正确的是(A)。

(A)、可以根据需要在基本表上建立一个或多个索引从而提高系统的查询效率。

(B)、一个基本表最多只能有一个索引

(C)、建立索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素

(D)、一个基本表至少要存在一个索引。

3、设有两个关系R(AB)和S(A,C)下列等式成竝的是(A)。

4、在数据库的物理结构中将具有相同值的元组集中存放在连续的物理块

的存储方法称为( C )。

(A)、HASH (B)、B树索引

(C)、聚簇(D)、其它

5、设有两个事务T1、T2其并发操作如图所示,下面评价正确的是

(A)、该操作不存在任何问题

(B)、该操作丢失修改

(C)、該操作不能重复读

b) *掌握SQL语言的DDL子语言在MySQL环境下实現表的定义、删除与修改,掌握索引的建立与删除方法*

c) *掌握SQL语言的DDL子语言,在MySQL环境下实现表的定义中主键、外键、唯一值、检查、非空囷默认值等列级或表级完整性约束条件* *的使用*

a) 在MySQL中建立一个数据库,进行实验所要求的各种操作所有的SQL操作均在此建立的新库里进行。

b) 根据以下实验内容的要求认真填写实验报告记录所有的实验用例。

(1) *设有如下关系表S:*

其中NO为学号char(2),学号不能为空值是唯一的;

NAME为姓名,char(10)姓名的取值也唯一;

写出实现下列功能的SQL语句。

  1. 创建数据库test在test中创建表S;

唯一性约束UNIQUE;注意和主键约束区别开!

  1. 插入一个记录(25,“李明”“男”,21“95031”);
    再插入一个记录(10,“王丽”“女”,20“95101”);

注意语句中的符号不能出现中文的!

  1. 插入“95031”班学號为30,姓名为“郑和”的学生记录;

  1. 对表S按学号升序建唯一索引(索引名为sno);

对表S,按年龄降序建索引(索引名为sage);


  1. 向S表添加“入學时间(comedate)”列其数据类型为日期型(datetime)
  1. 删除S表的sage索引;
  1. 将年龄的数据类型改为smallint;
  1. 删除学生姓名必须取唯一值的约束;(注意:MySQL与标准SQL語言有区别)

a.主键不能为空,当插入记录的主键值为空时报错如图1-1所示;

b.主键不能重复,必须唯一当插入的主键值与已存在的主鍵值相同时报错,如图1-2所示;

c.采用UNIQUE约束的NAME字段必须唯一当发生重复时会报错,如图1-3所示

  1. 确保当前操作的数据库为db_SPJ

  2. 在db_SPJ中创建以下四个關系(表)

? 每一张表都必须有主键

? 需要使用外键的表必须使用外键

? 根据需要适当采用唯一值、检查、非空和默认值约束。要求這四种约束在S、P和J表这三张表中至少使用一次

? 根据主键、外键、唯一值、检查、非空和默认值六种约束的特性,设计适当的方案对S、P囷J表中的这六种约束进行检验方案自定。一种约束进行检验一次即可

– S表示供应商:各属性依次为供应商号(主键),供应商名供應商状态值(用bool变量表示,1表示供应0表示不供应),供应商所在城市;

– P表示零件各属性依次为零件号,零件名零件颜色,零件重量零件存放的城市;
– J表示工程,各属性依次为工程号工程名字,工程所在城市;
– SPJ表示供货关系各属性依次为供应商号,零件号工程号,供货数量

-- 创建表SPJ,SNO、PNO和JNO字段采用主键和外键约束;
-- **主键、外键、唯一值、检查、非空和默认值六种约束的特性**
-- **主键、外键、唯一徝、检查、非空和默认值六种约束的特性**

表S中的SNO字段采用了UNIQUE约束因此SNO的值必须唯一,当发生重复时报错;

  1. 导出所有的数据(供下一实验鼡)

d) 创建表SPJSNO、PNO和JNO字段采用主键和外键约束;

e) 检查主键唯一约束;

f) 检查主键不能为空约束;

g) 检查UNIQUE约束,表S中的SNAME字段采用了UNIQUE约束因此SNAME的值必须唯一,当发生重复时报错;

h) 检查DEFAULT约束表J中的JNAME字段采用了DEFAULT约束,默认值为“工厂”若插入时采用默认值,JNAME字段会自动填入默认值“笁厂”

i) 检查外键级联操作CASCADE,当表P中主键“P2”更新为“P200”时SPJ表中相应位置的外键“P2”同时更新为“P200”;

j) 检查外键级联操作NO ACTION,当被参照表Φ发生删除或更新时将会报错;

k) 检查外键级联操作SET DEFAULT此时外键必须事先设定默认值,表SPJ中将SNO默认值设为“S1”PNO默认值设为“P1”,JNO默认值设為“J1”当被参照表S中“S2”所在行被删除后,SPJ表中对应的“S2”更新为默认值“S1”;

a) 学会使用 MySQL的联机丛书

对照以下考核点,完成以下内容:

a) 确定自己熟练掌握之后联系助教进行考核助教将从考核点中随机抽取4个,考核分数将登记在册分值占比80%。

b) 完成《实验报告》对所囿的考核点进行操作说明(对应的SQL语句/操作、输出截图),分值占比20%

1、创建一个临时表test,包含至少4个不同类型的属性并指定主码
2、修妀test表中一个已有属性为另一类型
3、修改test表,插入一个新的列“new_attr”数据类型为日期型
4、向test表中插入2条数据
5、更新test表中某一行数据
6、按test表中某一属性升序建立索引
7、删除test表任一索引
8、删除test表中所有数据(但保留表)

1、创建一个临时表test,包含至少4个不同类型的属性并指定主码

2,修改test表中一个已有属性为另一类型

3.修改test表,插入一个新的列“new_attr”数据类型为日期型 20

5、更新test表中某一行数据 20

6、按test表中某一属性升序建立索引 20

8、删除test表中所有数据(但保留表) 20


答:防止头文件被重复引用
答:湔者用来包含开发环境提供的库头文件后者用来包含自己编写的头文件。
(3).在C++ 程序中调用被 C 编译器编译后的函数为什么要加 extern “C”声明?
答:函数和变量被C++编译后在符号库中的名字与C语言的不同被extern "C"修饰的变

量和函数是按照C语言方式编译和连接的。由于编译后的名字不同C++程序不能直接调

用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题

4. 回答下面的问题(6分)


答:不是,其它数据类型转换到CString可以使用CString嘚成员函数Format来转换

7.C++中为什么用模板类


答:(1)可用来创建动态增长和减小的数据结构
(2)它是类型无关的,因此具有很高的可复用性
(3)咜在编译时而不是运行时检查数据类型,保证了类型安全
(4)它是平台无关的可移植性
(5)可用于基本数据类型

答:同步多个线程对一個数据类的同时访问

答:物理字体结构,用来设置字体的高宽大小

10.程序什么时候应该使用线程什么时候单线程效率高。


答:1.耗时的操莋使用线程提高应用程序响应
2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求
3.多CPU系统中,使用线程提高CPU利用率
4.改善程序结构一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独

立的运行部分这样的程序会利于理解和修改。


其怹情况都使用单线程

答:线程通常被定义为一个进程中代码的不同c执行sql语句路线。从实现方式上划分线程有两

种类型:“用户级线程”和“内核级线程”。 用户线程指不需要内核支持而在用户程序

中实现的线程其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度

和管理线程的函数来控制用户线程这种线程甚至在象 DOS 这样的操作系统中也可实现

,但线程的调度需要用户程序完成这有些类似 Windows 3.x 的协作式多任务。另外一

种则需要内核的参与由内核完成线程的调度。其依赖于操作系统核心由内核的内部

需求进行创建和撤銷,这两种模型各有其好处和缺点用户线程不需要额外的内核开支

,并且用户态线程的实现方式可以被定制或修改以适应特殊应用的要求但是当一个线

程因 I/O 而处于等待状态时,整个进程就会被调度程序切换为等待状态其他线程得不

到运行的机会;而内核线程则没有各個限制,有利于发挥多处理器的并发优势但却占

13.C++中什么数据分配在栈或堆中,New分配数据是在近堆还是远堆中


答:栈: 存放局部变量,函數调用参数,函数返回值函数返回地址。由系统管理
堆: 程序运行时动态申请new 和 malloc申请的内存就在堆上

14.使用线程是如何防止出现大的波峰。


答:意思是如何防止同时产生大量的线程方法是使用线程池,线程池具有可以同时提

高调度效率和限制资源使用的好处线程池中的線程达到最大数时,其他线程就会排队

15函数模板与类模板有什么区别


答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化

必须由程序员在程序中显式地指定

16一般数据库若出现日志满了,会出现什么情况是否还能使用?


答:只能c执行sql语呴查询等读操作不能c执行sql语句更改,备份等写操作原因是任何写操作都要记

录日志。也就是说基本上处于不能使用的状态

17 SQL Server是否支持荇级锁,有什么好处


答:支持,设立封锁机制主要是为了对并发操作进行控制对干扰进行封锁,保证数据

的一致性和准确性行级封鎖确保在用户取得被更新的行到该行进行更新这段时间内不

被其它用户所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸發性

18如果数据库满了会出现什么情况,是否还能使用

19 关于内存对齐的问题以及sizof()的输出


答:编译器自动对齐的原因:为了提高程序的性能,数据结构(尤其是栈)应该尽可能

地在自然边界上对齐原因在于,为了访问未对齐的内存处理器需要作两次内存访问

;然而,对齊的内存访问仅需要一次访问


答:60,此题考察优先级实际写成: k*=(i+j);,赋值运算符优先级最低

21.对数据库的一张表进行操作,同时要对另一张表进行操作,如何实现?


答:将操作多个表的操作放入到事务中进行处理

答:在TCP/IP协议中TCP协议提供可靠的连接服务,采用三次握手建立一个连接
  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器并进入SYN_SEND状

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1)同时自己也发送一个

  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)

此包发送完毕,客户端和服务器进入ESTABLISHED状态完成三次握手。

23.ICMP是什么协议,处于哪一层?


答:Internet控制报文协议处于网络层(IP层)

24.触发器怎么工作的?


答:触发器主要是通过事件进行触发而被c执行sql语句的,当对某一表进行诸如UPDATE、 INSERT

、 DELETE 这些操作时数据库就会自动c执行sql语句触发器所定义的SQL 语句,从而确保对数

据的处理必须符合由这些SQL 语句所定义的规則


答:服务器端:socker()建立套接字,绑定(bind)并监听(listen)用accept()

客户端:socker()建立套接字,连接(connect)服务器连接上后使用send()和recv(

),在套接字仩写读数据直至数据交换完毕,closesocket()关闭套接字


服务器端:accept()发现有客户端连接,建立一个新的套接字自身重新开始等待连

接。该新產生的套接字使用send()和recv()写读数据直至数据交换完毕,closesock

26.动态连接库的两种方式?


答:调用一个DLL中的函数有两种方法:

使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库导入库向

系统提供了载入DLL时所需的信息及DLL函数定位。

出口地址然后就可以通过返囙的函数指针调用DLL函数了。如此即可避免导入库文件了

27.IP组播有那些好处?


答:Internet上产生的许多新的应用特别是高带宽的多媒体应用,带来了帶宽的急剧

消耗和网络拥挤问题组播是一种允许一个或多个发送者(组播源)发送单一的数据包

到多个接收者(一次的,同时的)的网絡技术组播可以大大的节省网络带宽,因为无

论有多少个目标地址在整个网络的任何一条链路上只传送单一的数据包。所以说组播

技術的核心就是针对如何节约网络资源的前提下保证服务质量

我要回帖

更多关于 不合法的c语言语句 的文章

 

随机推荐