C++编程题、红与黑/蘑菇阵

问答题

题1:SQL 查询语句中 WHERE 、 GROUP BY 、 HAVING 这些关键字区别和用法总结错误的是?

A: HAVING在查询语句中必须依赖于GROUP BY
B: WHERE 子句用来限制 SELECT语句从表中指定选取的行
C: GROUP BY 子句用来分组WHERE子句的输出结果集
D: HAVING 子句用来从分组的结果中筛选列

提示:并不是删选列,而是删选行

题2:定义学生、教师和课程的关系模式

S (S#,Sn,Sd,Dc,SA )(学号、姓名、所在系、所在系的系主任、年龄)

C ( C#,Cn,P# )(课程号、课程名、先修课)

SC(S#,C#,G)(学号、课程号和成绩)

则该关系为?

答案:第二范式

提示:范式是符合某一种级别的关系模式的集合。满足最低要求的范式是第一范式(1NF),在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推;

第一范式:主属性(主键)不为空且不重复,字段不可再分(存在非主属性对主属性的部分依赖)

第二范式:如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖

第三范式:如果关系模式是第二范式,没有非主属性对主键的传递依赖和部分依赖

BCNF范式:所有属性都不传递依赖于关系的任何候选键。题目中关系模式满足第二范式,但在关系模式S中,学生所在系依赖于学号(S#→Sd),但系本身确定了系主任(Sd→Dc),存在传递依赖,不满足第三范式

题3:设有一个数据库mydb中有一个表tb1,表中有六个字段,主键为ID,有十条记录,ID从0到9,以下代码输出结果是?

<?php
    $link = mysql_connect("localhost","mysql_user", "mysql_password")
            ordie("Could not connect: " . mysql_error());
    $result = mysql_query("SELECT id,name,age FROM mydb.tb1 where id < 5");
            ordie("Could not query: . mysql_error());
echo mysql_num_fields($result); 
mysql_close($link);
?>

提示:mysql_num_fields() 返回结果集的字段数(列数),可以看到 selete 后面接了三个字段,所以返回三.另外还有一个函数,mysql_num_rows() 返回结果集的条目数(行数)

题4:在下面的两个关系中,职工号和部门号分别为职工关系和部门关系的主键(或称主码)职工(职工号、职工名、部门号、职务、工资) 部门(部门号、部门名、部门人数、工资总额) 在这两个关系的属性中,只有一个属性是外键(或称外来键、外码、外来码),它是 ?

A: 职工关系的“职工号”
B: 职工关系的“部门号”
C: 部门关系的“职工号”
D: 部门关系的“部门号”

提示:外键是指关系中的某个属性(或属性组)虽然不是该关系的主码或主码的一部分,但却是另一个关系的主码,在职工关系中,部门号不是其主码,而是部门关系的主码,所以部门号是职工关系的外键

题5:语句 SELECT IF(-1,5,2) 的返回值是?

答案:5

提示:if(条件,表达式1,表达式2),如果条件为真(非0),执行表达式1,否则,执行表达式2.

题6:数据库中存在学生表S、课程表C和学生选课表SC三个表,它们的结构如下:

S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩,请检索选修课程号为C2的学生中成绩最高的学号?

A:

SELECT S#,SUM(GRADE)FROM SC WHERE 
       GRADE>=60 GROUP BY S# ORDER BY 2 DESC 
       HAVING COUNT(*)>=4 WHERE C#="C2" AND
       GRADE >=(SELECT GRADE FORM SC WHERE C#="C2")

B

SELECT S# FORM SC 
       WHERE C#="C2"  AND GRADE  IN 
       (SELECT GRADE FORM SC WHERE C#=“C2”)

C

SELECT S# FORM SC 
     WHERE C#=“C2”  AND GRADE NOT IN
     (SELECT GRADE FORM SC  WHERE C#=“C2”)

D

SELECT S# FORM SC 
      WHERE C#=“C2” AND GRADE>=ALL 
      (SELECT GRADE FORM SC  WHERE C#=“C2”)

编程题

题1:红与黑

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动,请写一个程序,计算你总共能够到达多少块黑色的瓷砖

输入描述:输入包含多组数据。每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:

  1. ".":黑色的瓷砖;
  2. "#":白色的瓷砖;
  3. "@":黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的温柔香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值