1、中级软件设计师下午试题-3 及答案解析(总分:151.00,做题时间:90 分钟)一、B试题一/B(总题数:4,分数:60.00)1.问题 1 把上面用关系表示的实体,实体与实体之间的联系,用 E-R 图表示出来,要求在图中表示联系的类型(1:1,L:N,M:N)。(分数:15.00)填空项 1:_2.问题 2 使用关系代数表达式写出查询所有年龄在 20 岁以下的学生姓名和年龄。(分数:15.00)填空项 1:_3.问题 3 用 SQL 语言写出查询:查询年龄不在 2023 岁(包括 20 岁和 23 岁)之间的学生的姓名,系别和年龄。(分数:15.00)填空项 1:_4.问题 4 用 SQL
2、 语言写出操作:把数学系全体学生的成绩置零。(分数:15.00)填空项 1:_二、B试题二/B(总题数:4,分数:16.00)5.问题 1 该关系模式满足 2NF 吗?为什么?(分数:4.00)填空项 1:_6.问题 2 如果将关系模式 R 分解为: R1(A#,B#,E) R2(B#,C,D) 指出关系模式 R2 的键,并说明该关系模式最高满足第几范式(在 1NFBCNF 之内)(分数:4.00)填空项 1:_7.问题 3 将关系模式 R 分解到 BCNF(分数:4.00)填空项 1:_8.问题 4 在 E-R 模型中,如果实体间是 1:N 的联系,如何设计相应部分的关系模型?(分数:4.0
3、0)填空项 1:_三、B试题三/B(总题数:1,分数:15.00)9.#include stdio. h void main( ) int digit; long in , s; seanf(“ % Id“, U (1) /U; U (2) /U; while(in 0) U (3) /U; s = s + digit* digit; U (4) /U; pfinff( “sum = % 1dn“, s ); (分数:15.00)填空项 1:_四、B试题四/B(总题数:1,分数:15.00)10.说明 某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从 7201 至 7299。外线号码先
4、拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从 100 到 300 中任意的数字串。市话号码是以局号和分局号组成。局号可以是 455,466,888,552 中任意一个号码。分局号是任意长度为 4 的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。(分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)11.说明 以下函数完成求表达式 (分数:15.00)填空项 1:_六、B试题六/B(总题数:1,分数:15.00)12.说明 编写一个学生类 Student,要求: (1) 学生类 Student 属性有: id: long 型,代表
5、学号 name: String 类对象,代表姓名 age: int 型,代表年龄 sex: boolen 型,代表性别(其中:true 表示男,false 表示女) phone: String 类对象,代表联系电话 (2) 学生类 Student 的方法有: Student (long i,String n,int a,boolean s,String p) :有参构造函数,形参表中的参数分别初始化学号、姓名、 年龄、性别和联系电话。 int getAge ():获取年龄作为方法的返回值。 boolean getSex ():获取性别作为方法的返回值。 String getPhone ():获
6、取联系电话作为方法的返回值。 public String to String ():以姓名:性别:学号:联系电话的形式作为方法的返 import java. applet. Applet; import java. awt.* ; public class Student extends Applet long id; String name, phone; int age; boolean sex; Student(long i, String n, int a, boolean s, String p) id=i; name = n; age = a; sex= s; phone = p;
7、 public void paint( Graphics g) Student x= new Student (5000,“ xiaoliu“ , 89, true, “ 8989898“ ); U (1) /U; U (2) /U g. drawstring( x. getPhone( ), 140,140); int getAge( ) return age; boolean getsex ( ) return sex; String getPhone( ) return phone; String ToString( ) U (3) /U (分数:15.00)填空项 1:_七、B试题七/
8、B(总题数:1,分数:15.00)13.Private Sub Command1_ Click( ) If List1. ListIndex =U (1) /UThen List1. RemoveItemU (2) /ULabel1. Caption =U (3) /U Else MsgBox “请选择要删除的项目”End If End Sub(分数:15.00)填空项 1:_中级软件设计师下午试题-3 答案解析(总分:151.00,做题时间:90 分钟)一、B试题一/B(总题数:4,分数:60.00)1.问题 1 把上面用关系表示的实体,实体与实体之间的联系,用 E-R 图表示出来,要求在图
9、中表示联系的类型(1:1,L:N,M:N)。(分数:15.00)填空项 1:_ (正确答案: )解析:议题一 解答要点 实体联系模型(ER 模型)中的基本语义单位是实体和联系。ER 模型的图形表示称为 ER 图。联系可以同一个或多个实体有关。实体与实体之间的联系可以是一对一,一对多和多对多。利用 ER 模型进行数据库的概念设计,可以分成三步:首先设计局部 ER,然后把各个局部 ER 模型综合成一个全局的模型,最后对全局 ER 模型进行优化,得到最终的 ER 模型。关于 SQI语言,见(13)解析。2.问题 2 使用关系代数表达式写出查询所有年龄在 20 岁以下的学生姓名和年龄。(分数:15.0
10、0)填空项 1:_ (正确答案: Sname, Sage ( Sage 20 ( Student ) ))解析:3.问题 3 用 SQL 语言写出查询:查询年龄不在 2023 岁(包括 20 岁和 23 岁)之间的学生的姓名,系别和年龄。(分数:15.00)填空项 1:_ (正确答案:SELECT Shame, Sdept, Sage FROM Student)解析:WHERE Sage NOT BETWEEN 20 AND 23 或 SELECT Shame, Sdept, Sage FROM Student WHERE NOT (Sage BETWEEN 20 AND 23 )或 SELE
11、CT Sname, Sdept, Sage FROM Student WHERE (Sage 23)4.问题 4 用 SQL 语言写出操作:把数学系全体学生的成绩置零。(分数:15.00)填空项 1:_ (正确答案:UPDATE SC)解析:SET Grade =0 WHERE MA = (SELECT Sdept FROM Student WHERE Student. Sno = SC. Sno)二、B试题二/B(总题数:4,分数:16.00)5.问题 1 该关系模式满足 2NF 吗?为什么?(分数:4.00)填空项 1:_ (正确答案:该关系模式不满足 2NF 的要求)解析:试题二 解答要
12、点 第二范式(2NF):如果关系模式 R(U,F) 中的所有非主属性都完全依赖于任意一个候选关键字,则称关系 R 是属于第二范式的。第三范式(3NF):如果关系模式 R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系 R 是属于第三范式的。BCNF:如果关系模式 R(U,P)的所有属性(包括主属性和非主属性)都不传递依赖于 R 的任何候选关键字,那么称关系 R 是属于 BCNF 的。由题可知,D 并不依赖 B#,所以不满足 2NF。R2,C 和 D 都依赖于 B#,可以满足 2NF;但 C,D 问存在传递信赖,所以不 B2 不属于第三范式,它最高满足 2NF。将关系模式 R
13、 分解到 BCNF,就意味着要打破传递依赖,所以将 R2 中的 C 和 D 分解到一个新的关系中。6.问题 2 如果将关系模式 R 分解为: R1(A#,B#,E) R2(B#,C,D) 指出关系模式 R2 的键,并说明该关系模式最高满足第几范式(在 1NFBCNF 之内)(分数:4.00)填空项 1:_ (正确答案:R2(B#,C,D)最高满足 2NF)解析:7.问题 3 将关系模式 R 分解到 BCNF(分数:4.00)填空项 1:_ (正确答案:R11(A#,B#,E))解析:R21(B#,C) R22(C,D)8.问题 4 在 E-R 模型中,如果实体间是 1:N 的联系,如何设计相应
14、部分的关系模型?(分数:4.00)填空项 1:_ (正确答案:在 E-R 模型中,一个 1:N 联系可以转换成为一个独立的关系模式,相连的实体的键以及联系本身的属性转换为关系的属性,关系的键为 N 端实体的键。也可以与 N 端对应的关系模式合并,将 1 端实体对应的关系模式的键和联系本身的属性加入到 N 端实体对应的关系模式的属性中。更倾向于后面这种方法。)解析:三、B试题三/B(总题数:1,分数:15.00)9.#include stdio. h void main( ) int digit; long in , s; seanf(“ % Id“, U (1) /U; U (2) /U; w
15、hile(in 0) U (3) /U; s = s + digit* digit; U (4) /U; pfinff( “sum = % 1dn“, s ); (分数:15.00)填空项 1:_ (正确答案:if(in解析:3digit=in10 4in=in/10 解答要点 本题的关键一是要考虑负数,还要将各个位数用模 10的方法单独取出来。四、B试题四/B(总题数:1,分数:15.00)10.说明 某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从 7201 至 7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从 100 到 300 中任意
16、的数字串。市话号码是以局号和分局号组成。局号可以是 455,466,888,552 中任意一个号码。分局号是任意长度为 4 的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。(分数:15.00)_正确答案:()解析:电话号码=分机号外线号码 分机号=72017299 外线号码=9+市话号码长话号码 长话号码=区号+市话号码 区号=100300 市话号码=局号+分局号 局号=455466888552 分局号=4数字4 解答要点 数据字典是关于数据的信息的集合,对数据流图中的各个元素作完整的定义与说明,是数据流图的补充工具。一般说来,数据字典应该由对下列六类元素的定义组成。(1
17、) 数据流(2)数据项(3)数据结构(4)数据存储(5)处理逻辑。(6)外部实体除了数据定义之外,数据字典中还应该包含关于数据的一些其他信息。根据题目所给的信息,需要注意的是最后分局号的写法。五、B试题五/B(总题数:1,分数:15.00)11.说明 以下函数完成求表达式 (分数:15.00)填空项 1:_ (正确答案:float t =1.0;)解析:i =100 - sign * i/( t + sign* i) return s六、B试题六/B(总题数:1,分数:15.00)12.说明 编写一个学生类 Student,要求: (1) 学生类 Student 属性有: id: long 型
18、,代表学号 name: String 类对象,代表姓名 age: int 型,代表年龄 sex: boolen 型,代表性别(其中:true 表示男,false 表示女) phone: String 类对象,代表联系电话 (2) 学生类 Student 的方法有: Student (long i,String n,int a,boolean s,String p) :有参构造函数,形参表中的参数分别初始化学号、姓名、 年龄、性别和联系电话。 int getAge ():获取年龄作为方法的返回值。 boolean getSex ():获取性别作为方法的返回值。 String getPhone (
19、):获取联系电话作为方法的返回值。 public String to String ():以姓名:性别:学号:联系电话的形式作为方法的返 import java. applet. Applet; import java. awt.* ; public class Student extends Applet long id; String name, phone; int age; boolean sex; Student(long i, String n, int a, boolean s, String p) id=i; name = n; age = a; sex= s; phone =
20、 p; public void paint( Graphics g) Student x= new Student (5000,“ xiaoliu“ , 89, true, “ 8989898“ ); U (1) /U; U (2) /U g. drawstring( x. getPhone( ), 140,140); int getAge( ) return age; boolean getsex ( ) return sex; String getPhone( ) return phone; String ToString( ) U (3) /U (分数:15.00)填空项 1:_ (正确
21、答案:g. drawString (x. ToString( ) ,20,100))解析:g. drawString(x, getAge( ) ,80,120); retum(“姓名”+name + “学号:” + id + “联系电话:”“ +phone) ;七、B试题七/B(总题数:1,分数:15.00)13.Private Sub Command1_ Click( ) If List1. ListIndex =U (1) /UThen List1. RemoveItemU (2) /ULabel1. Caption =U (3) /U Else MsgBox “请选择要删除的项目”End If End Sub(分数:15.00)填空项 1:_ (正确答案:0)解析:List1. ListIndex List1. ListCount