第一题:已知存在以下表
S 表保存着学生关系,有两列,其中SNO 为学号,SNAME 为姓名
C 表保存着课程关系,有三列,其中CNO 为课程号,CNAME 为课程名,CTEACHER 为老师
SC表保存着选课关系,有三列,其中SNO为学号,CNO为课程号,SCORE 为成绩
1. 找出没有选“小易”老师课程的所有学生姓名
2. 列出有三门(包括三门)以上课程分数>90的学生姓名及其平均成绩
select S.SNAME
from S
join SC
on S.SNO=SC.SNO
join C
on SC.CNO=C.CNO
where CTEACHER<>"小易"
step1:找出列出有三门(包括三门)以上课程分数>90的学生编号
select SNO
from SC
where SCORE>90
group by SNO
Having COUNT(CNO) >=3
step1:找出对应这个学生编号的学生名和他的平均成绩
select S.SNAME,avg(SCORE)
from S
join SC
on S.SNO=SC.SCO
where S.SNO in (select SNO
from SC
where SCORE>90
group by SNO
Having COUNT(CNO) >=3)
group by S.SNO
第三题:
从数字集合{1,2,3,4,… ,20}中选出4个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?
从17个位置选出4个数!
第四题:
将4个不一样的球随机放入5个杯子中,则杯子中球的最大个数为3的概率是?
4*5*4/5*5*5*5=16/125
第五题:
下面程序的功能是输出数组的全排列,选择正确的选项,完成其功能。
void perm(int list[], int k, int m)
{
if ( )
{
copy(list,list+m,ostream_iterator(cout," "));
cout<
return;
}
for (int i=k; i<=m; i++)
{
swap(&list[k],&list[i]);
( );
swap(&list[k],&list