综合指导

当前位置 /首页/人在职场/综合指导/列表

面试题总结

数据库问题

面试题总结

1、Student(S#,Sname,Sage,Ssex)学生表(列名含义:学生编号,学生姓名,学生年龄,学生性别)

Course(C#,Cname,T#)课程表(列名含义:课程编号,课程名,授课教师)

Score(S#,C#,score)成绩表 (列名含义:学生学号,课程编号,成绩)

Teacher(T#,Tname)教师表 (列名含义:教师编号,教师姓名)

查询不同老师所教的不同课程的平均分,从高到底查询。

答案:

select Teach.T#,Score.c#,avg(score) as 平均分

from Teacher,Student,Score,Course

where Teach.T#=Score.T# and Score.C#=Course.C# and Student.S#=Score.S# group by Teach.T#,Score.c#

order by avg(score)

2、在数据库中,语句 select lower(Sunshine) ,rtrim(我是小清新) 的执行结果是: ___sunshine ________和 _________我是小清新__。

3、student 学生表(学号,姓名,性别,年龄,组织部)

course 课程表(编号,课程名)

sc 选课表 (学号,课程编号,成绩)

(1)、写一个SQL语句,查询选修了“软件测试”的学生学号和姓名

(2)、查询‘张三’同学选修的课程名字

(3)、查询选修了5门课程学生学号和姓名

答案:

(1)、select student.学号 ,student.姓名 from student ,course ,sc

where student.学号=sc.学号 and sc.课程编号=course.课程编号 and course.课程名称=软件测试

select 学号,姓名from student where 学号 in

(select 学号 from sc where 课程编号 in

(select 课程编号 from course where 课程名=软件测试))

(2)、select course.课程名 from course ,student,sc

where student.学号=sc.学号 and sc.课程编号=course.课程编号 and student.姓名=张三

select 课程名 from course where 课程编号

in(select 课程编号 from sc where 学号

in (select 学号 from student where 学生名=张三))

(3)、select 学号 ,姓名 from student where 学号 in(select 学号 from sc group by 学号 having count(学号)=5)

4、如何查找和删除数据库中的重复数据?

答:

* from table_name where column_name in (select column_name from table_name group by column_name having count (*)>1)

学生表(学号,姓名,年龄,籍贯)

课程表(课程号,课程名)

成绩表(学号,课程号,成绩)

查询“英语”课程比“高数”成绩高的所有学生的学号和姓名?

select 学生表.学号,学生表.姓名 from 学生表

where 学生表.学号 in (select 成绩表.学号 from 成绩表 where ((select 成绩表.成绩 from 成绩表 where 成绩表.课程号=(select 课程号 from 课程表 where 课程表.课程名 = ‘英语’))> (select 成绩表.成绩 from 成绩表 where 成绩表.课程号= (select 课程号 from 课程表 where 课程表.课程名 = ‘高数’)) group by 成绩表.学号)

)

C++问题

1、若有宏定义 #define MOD(x,y )x%y

则执行以下语句后输出的结果 (B)

int a=13,b=94;

printf("%dn",MOD(b,a+4);

A:5 B:7 C:9 D:11

char str[15]=”hello!”;

printf(“%dn”,strlen(str));

这段程序的输出结果是多少

A. 15 B. 14 C. 7 D. 6

2、用C或Java 实现九九乘法表,并设计测试用例以及使用的测试方法 #include

int main()

{

}

(java)public class ChengfaBiao{

} public static void main(String[] args){ } int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ } t(i+"*"+j+"="+i*j+"t"); int i,j; for(i=1;i<=9;i++) { } return 0; for(j=1;j<=i;j++) { } printf("n"); printf("%d*%d=%2d ",i,j,i*j); t("n"); }

3、全局变量和局部变量的区别,是怎么实现的?

答:

局部变量:指在函数内部定义的`变量,作用域为定义局部变量的函数,且只有在程序执行到定义它的模块时才能生成,一旦退出模块,则变量消失。

全局变量:在所有函数外部定义的变量,从定义的位置开始,到程序结束。在程序执行过程中一直有效。

4、关键字static 的作用:

答: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。

2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。

测试题

有一个类,

(1)、一个int 数组,长度为m,随机插入1n(n>0)不能重复

(2)、实现输的排序,升序和降序的功能

根据上述要求编写测试方案:

数组的长度、数值的类型、验证结果

答:

采用边界值法:对长度为m的数组分别输入m和m+1个数

采用错误输入法:对int 类型的数组非法字符,小数,和超出in范围的数值

验证结果:对输入的数据排序,预期结果和实际结果是否相同

TAG标签:面试题 #