算法笔试题总结

算法笔试题总结
算法笔试题总结

一、递归和分制策略

汉诺塔递归实现:

Void hannoi(int n,char x,char y,char z)

{

if (n ==1)

move(x,1,z);//printf(“%i Move disk %i from %c to %c \n”,++c,n,x,z)

//将编号1从x移到z

else{

hanoi(n-1, x,z,y);//将x上编号1至n-1的移到y,z做辅助

move(x,n,z);// 将编号n从x移到z

hanoi(n-1, y,x,z);// 将y上编号1至n-1的移到z,x做辅助

}

}

递归小结

优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。

缺点:递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。

解决方法:在递归算法中消除递归调用,使其转化为非递归算法。

1.采用一个用户定义的栈来模拟系统的递归调用工作栈。该方法通用性强,但本质上还是递归,只不过人工做了

本来由编译器做的事情,优化效果不明显。

2.用递推来实现递归函数。

3.通过Cooper变换、反演变换能将一些递归转化为尾递归,从而迭代求出结果。

后两种方法在时空复杂度上均有较大改善,但其适用范围有限。

排序总结

直接插入排序:

void insertSort(listtp & r)

{ for(i=2; i<=n; i++)

{ r[0]=r[i]; /* 设置监视哨*/

j=i-1; k=r[i].key;

while(j>0&&r[j].key>k)/* 大值的记录后移*/ { r[j+1]=r[j]; j--; }

r[j+1]=r[0]; /*插入位置*/

}

} /* straisort */

希尔排序:将整个序列划分成若干子序列,分别进行直接插入排序。

void ShellSort(SeqList R,int dlta[],int t)

{

For(k=0;k

ShellInsert(R,dlta[k]); //一趟增量为dlta[k]的Shell插入排序

} //ShellSort

{ for(i=dk+1; i<=n; i++)

{ r[0]=r[i]; /* 设置监视哨*/

j=i-dk; k=r[i].key;

while( r[j].key>k)/* 大值的记录后移*/

{ r[j+dk]=r[j]; j-=dk; }

r[j+dk]=r[0]; /*插入位置*/

}

} /* straisort */

冒泡排序:

void buble_sort(listtp r)

{ for (i=1; i<=n-1; i++) /* 共计n-1趟 */

for (j=1; j<=n-i ; j++)

if (r[j].key>r[j+1].key)

{ x=r[j]; r[j]=r[j+1] r[j+1]=x;} } /* bubble_sort */

快速排序:在快速排序中,记录的比较和交换是从两端向中间进行的,关键字较大的记录一次就能交换到后面单元,关键字较小的记录一次就能交换到前面单元,记录每

次移动的距离较大,因而总的比较和移动次数较少。private static void qSort(sqlist & L,int low, int high)

{

if (low

int pivotloc=partition(L,low,high); //以a[pivotloc]为基准元素将a[low:high]划分成3段a[low: pivotloc -1],a[pivotloc]和a[pivotloc +1:high],使得a[low: pivotloc-1]中任何元素小于等于a[pivotloc],a[pivotloc +1:high]中任何元素大于等于a[pivotloc]。下标pivotloc在划分过程中确定。

qSort (L,low, pivotloc-1); //对左半段排序

qSort(L, pivotloc+1,high); //对右半段排序 }

}

Int Partition(sqlist &L,int low,int high)

{

L.r[0]=L.r[low];//用子表第一个元素作为轴

Pivotkey = L.r[low].key;

While(low

{

While(low=privotkey )

High--;

If(L.r[high].key

R[low]=r[high];

While(low

Low++;

If(L.r[low].key>privotkey)

R[high]=r[low];

}

L.r[low]=L.r[0];

Return low;

}

归并排序:

public static void mergeSort(Comparable a[], int left, int right)

{

int m = (left+right)/2; //取中点

if(left>=right)

return;

if(left+1==right)

{

if(a[left]>a[right])

std::swap(a[left], a[right]);

return;

}

mergeSort(a, left, m);

mergeSort(a, m+1, right);

merge(a, left,m, right); //合并到数组a

}

}

void Merge(A[], int l, int m, int h)

{

int i = l;

int j = m+1;

int k = 0; while(i<=m&&j<=h)

{

if(A[i]

{

B[k++] = A[i];

i++;

}

else

{

B[k++] = A[j];

j++;

}

}

while(i<=m)

B[k++] = A[i++];

while(j<=h)

B[k++] = A[j++];

for(i=l; i<=h; i++)

A[i] = B[i-l];

}

二分法:

#include

#define N 10

using namespace std;

int main()

{

int a[N],front,end,mid,x,i;

cout<<"请输入已排好序的a数组元素:"<

for(i=0;i

cin>>a[i];

cout<<"请输入待查找的数x:"<

cin>>x;

front=0;

end=N-1;

mid=(front+end)/2;

while(front<=end&&a[mid]!=x)

{

if(a[mid]

if(a[mid]>x)end=mid-1;

mid=(front+end)/2;

}

if(a[mid]!=x)

cout<<"没找到!"<

else

cout<<"找到了!在第"<

return 0;

}

二叉树递归、非递归遍历

package edu.cumt.jnotnull;

import java.util.Stack;

public class BinaryTree {

protected Node root;

public BinaryTree(Node root) {

this.root = root;

}

public Node getRoot() {

return root;

}

/** 构造树 */

p ublic static Node init() {

Node a = new Node('A');

Node b = new Node('B', null, a);

Node c = new Node('C');

Node d = new Node('D', b, c);

Node e = new Node('E');

Node f = new Node('F', e, null);

Node g = new Node('G', null, f);

Node h = new Node('H', d, g);

return h;// root

}

/** 访问节点 */

p ublic static void visit(Node p) {

System.out.print(p.getKey() + " ");

}

/** 递归实现前序遍历 */

p rotected static void preorder(Node p) {

if (p != null) {

visit(p);

preorder(p.getLeft());

preorder(p.getRight());

}

}

/** 递归实现中序遍历 */

p rotected static void inorder(Node p) {

if (p != null) {

inorder(p.getLeft());

visit(p);

inorder(p.getRight());

}

}

/** 递归实现后序遍历 */

p rotected static void postorder(Node p) {

if (p != null) {

postorder(p.getLeft());

postorder(p.getRight());

visit(p);

}

}

/** 非递归实现前序遍历 */

protected static void iterativePreorder2(Node p) {

Stack stack = new Stack();

Node node = p;

while (node != null || stack.size() > 0) {

while (node != null) {//压入所有的左节点,压入前访问它

visit(node);

stack.push(node);

node = node.getLeft();

}

if (stack.size() > 0) {//

node = stack.pop();

node = node.getRight();

}

}

}

/** 非递归实现后序遍历 */

protected static void iterativePostorder(Node p) {

Node q = p;

Stack stack = new Stack();

while (p != null) {

// 左子树入栈

for (; p.getLeft() != null; p = p.getLeft())

stack.push(p);

// 当前节点无右子或右子已经输出

while (p != null && (p.getRight() == null || p.getRight() == q)) {

visit(p);

q = p;// 记录上一个已输出节点

if (stack.empty())

return;

p = stack.pop();

}

// 处理右子

stack.push(p);

p = p.getRight();

}

}

/** 非递归实现后序遍历双栈法 */

p rotected static void iterativePostorder2(Node p) {

Stack lstack = new Stack();

Stack rstack = new Stack();

Node node = p, right;

do {

while (node != null) {

right = node.getRight();

lstack.push(node);

rstack.push(right);

node = node.getLeft();

}

node = lstack.pop();

right = rstack.pop();

if (right == null) {

visit(node);

} else {

lstack.push(node);

rstack.push(null);

}

node = right;

} while (lstack.size() > 0 ||

rstack.size() > 0);

}

/** 非递归实现后序遍历单栈法*/

p rotected static void iterativePostorder3(Node p) {

Stack stack = new Stack();

Node node = p, prev = p;

while (node != null || stack.size() > 0) { while (node != null) {

stack.push(node);

node = node.getLeft();

}

if (stack.size() > 0) {

Node temp = stack.peek().getRight();

if (temp == null || temp == prev) {

node = stack.pop();

visit(node);

prev = node;

node = null;

} else {

node = temp;

}

}

}

}

/** 非递归实现后序遍历4 双栈法*/

p rotected static void iterativePostorder4(Node p) {

Stack stack = new Stack();

Stack temp = new Stack();

Node node = p;

while (node != null || stack.size() > 0) { while (node != null) {

temp.push(node);

stack.push(node);

node = node.getRight();

}

if (stack.size() > 0) {

node = stack.pop();

node = node.getLeft();

}

}

while (temp.size() > 0) {

node = temp.pop();

visit(node);

}

}

/** 非递归实现中序遍历 */

p rotected static void iterativeInorder2(Node p) {

Stack stack = new Stack();

Node node = p;

while (node != null || stack.size() > 0) { while (node != null) {

stack.push(node);

node = node.getLeft();

}

if (stack.size() > 0) {

node = stack.pop();

visit(node);

node = node.getRight();

}

}

}

/**

* @param args

*/

p ublic static void main(String[] args) {

BinaryTree tree = new BinaryTree(init());

System.out.print(" Pre-Order:");

preorder(tree.getRoot());

System.out.println();

System.out.print(" In-Order:");

inorder(tree.getRoot());

System.out.println();

System.out.print("Post-Order:");

postorder(tree.getRoot());

System.out.println();

System.out.print(" Pre-Order:");

iterativePreorder(tree.getRoot());

System.out.println();

System.out.print("Pre-Order2:");

iterativePreorder2(tree.getRoot());

System.out.println();

System.out.print(" In-Order:");

iterativeInorder(tree.getRoot());

System.out.println();

System.out.print(" In-Order2:");

iterativeInorder2(tree.getRoot());

System.out.println();

System.out.print(" Post-Order:");

iterativePostorder(tree.getRoot());

System.out.println();

System.out.print("Post-Order2:");

iterativePostorder2(tree.getRoot());

System.out.println();

System.out.print("Post-Order3:");

iterativePostorder3(tree.getRoot());

System.out.println();

System.out.print("Post-Order4:");

iterativePostorder4(tree.getRoot());

System.out.println();

}

}

字符串反转

//字符串反转

char *reverse(char *str)

{

int len = strlen(str);

char temp ;

int i;

char *str1;

str1 = (char*)malloc(len);

memset(str1,0,len);

memcpy(str1,str,len);

for( i=0; i

{

temp = str1[i];

str1[i] = str1[len-1-i];//*(str+len-1-i); //执行到该行出现系统错误

str1[len-1-i]= temp;

}

return str1;

}

function reverse(arg) {

if(arg.length == 0) {

return arg;

}

else {

return reverse(arg.substr(1,arg.length)) + arg.substr(0,1);

}

}

alert(reverse("123456"));

2009-01-23 00:26

快速排序的原理倒是挺简单,选一个基准,将其余的元素与之对比分别放在左右两侧,左大右小,每次对比都是对其所有的元素,也就是说每一次都是n次对比。

他是一个递归的算法。

相信很多人不明白为什么他是n*log2n而不是

n*n,我当时也遇到了这样的问题,既然是对每一个元素都进行了对比,而每一次是n,为什么不是n*n呢?

那么可以这样看,假设对n个元素排序用时T(n) 我们可以根据原理得出T(n) = n + 2*T(n/2)

= 2n + 4*T(n/4)

= 3n + 8*T(n/8) ........................

= n*log2n

数学上,就是这样得到的。相信有人就能反应上来了,如果还没明白,可以这样看。

每一次排序都比较了n次,这个是毋庸置疑的。

问题是进行了多少趟,这里的趟就是一次n次比较的过程。

一个n个元素的序列,当分枝长度为1的时候,就完成了,每次分枝都是比原先分支数多一倍。

可见,一个n序列,经过log2n就完成了到1的分枝。

每次分枝都是n次比较,所以总共n*long2n

至于最好情况和最坏情况,无非就是分支的次数所决定,上述的n*log2n是每次都将原序列分为等长的两部分,最坏的是,没法分,所以就是分了n 次

最坏的是n*n,而存储空间本来是log2n,即递归的次数,变为了n,n次递归。

在简历中和面试中描述自己的交互设计经验的4大方法

在简历中和面试中描述自己的交互设计经验的4大方 法 作者: 一网学最后更新时间:2015-10-12 10:18:34 小编:应届生和社招的项目展示核心区别在于,应届生的项目大多数是虚拟的、小型的,或者失败的。大部分可能是校园网站项目,公众号运营,轻量化 App 等,用户数量不会太多、很少或基本不盈利。描述、呈现自己项目经历的前提是有项目可说,如果连基本的基础都没有那就是巧妇难为无米之炊了,所以前期工作更重要。 因此,千万别再问,如果没什么项目可以写该怎么展示?还有一两个月就要求职了,怎么补充经历?这就像在问,请问我没米怎么做饭,还有5分钟就开饭了怎么办——麻烦早点先把米买回来,再研究怎么做饭,恩。 对我来说,求职的时候主要针对产品经理、产品设计师、交互设计师等岗位进行投递,但我用的简历和作品集是同一套,最多会改一下里面的意向岗位。简单介绍一下我的做法。 我在简历中对项目的描述比较简单,因为罗列的大部分都是在线上运营的或者曾经上线的项目,当然也有失败的经历,举几个例子供参考:

首先简历,其中不会对项目有过详细的描述,毕竟篇幅有限。然后作品集,大板块分成:移动互联网产品设计、Web 产品设计、商业模式实践、Redesign 与概念产品设计四个部分,每个小板块主要从概览、调研、思考、设计等方面进行介绍。 我的作品集做的很纠结,前期几个版本下来总觉得效果不佳,也被各种前辈批评,总结一下有这样几个点,供大家自查: 第一,项目太多太杂,质量参差不齐,涉及各种各样的产品领域,显得经历很乱,擅长领域不突出; 第二,单个项目表述过泛,比较关注的结果(用户量、盈利情况、数据)没有重点表达,甚至还需要面试者自己去寻找、搜索; 第三,对项目的描述缺乏逻辑性,很多设计方案并未阐述设计意图,比如强调采用了某种交互设计方式但是又没有解决什么实际的问题,显得很业余; 第四,没有足够的思考过程,尽管分成调研、思考、设计等模块进行介绍,但感觉每一点都是泛泛而谈,最核心的设计思考过程、方案筛选原因等都没有得到体现。

java开发常见笔试题(数据库篇)

一.根据下列员工信息表和部门信息表完成以下SQL查询 (表1 emp_xiangyoulu 员工信息表) (表2 dept_xiangyoulu) 1.查询所有员工信息 Select * from emp_xianyoulu; 2.查看所有部门信息 Select * from dept_xiangyoulu; 3:查看公司工资排名的第2-5名(分页查询rownum ) select * from( select rownum rn,ename,sal from emp_xiangyoulu order by sal desc) where rn between 2 and 5;--->错! 伪列rownum和排序order by 同时出现时,先生成伪列号,再按条件排序--->导致rn对应的序号在排序之前就定了,查出的结果和预期不符;; SELECT ROWNUM rn,e.* FROM ( SELECT * FROM emp_xiangyoulu ORDER BY sal desc) e WHERE rn BETWEEN 2 AND 5;--->错! "RN": 标识符无效,伪列号不能直接当成一般属性直接用; select rownum,e.* from( select * from emp_xiangyoulu order by sal desc)e where rownum between 2 and 5;--->错! 不报错,但查询结果为0条,原因同上; select * from( select rownum,e.* from( select * from emp_xiangyoulu order by sal desc)e)

数据库复习题汇总

单元练习 一单项选择题 1.文件系统与数据库系统相比较,其缺陷主要表现在数据联系弱、数据冗余和()。 A.数据存储低 B.处理速度慢 C.数据不一致 D.操作烦琐 2.数据的存储结构与数据逻辑结构之间的独立性称为数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 数据存储结构:即内模式。 数据逻辑结构:即模式 用户视图:即外模式 3.在数据库系统中,对数据操作的最小单位是()。 A.字节 B.数拯项 C.记录 D.字符 4.数据的逻辑结构与用户视图之间的独立性称为数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 5.下述各项中,属于数据库系统的特点的是()。 A.存储量大 B.存取速度快 C.数据共享 D.操作方便 6.在数据库系统中,模式/内模式映像用于解决数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 7.在数据库系统中,模式/外模式映像用于解决数据的()。 A.结构独立性 B.物理独立性 C.逻辑独立性 D.分布独立性 8.数据库结构的描述,称为()。 A.数据库模型 B.数据库 C.数据库管理系统 D.数据字典 数据库模型有层次模型网状和关系模型 9.数据库中全体数据的逻辑结构描述称为( A. 存储模式 B.内模式 C.外模式 D.模式 10.保证数摇库中数摇及语义的正确性和有效性,是数据库的()。 A.完全性 B.准确性 C.完整性 D.共享性 11.在数据库系统中,数据独立性是指()。 A.用户与计算机系统的独立性 B.数据库与il?算机的独立性 C.数据勺应用程序的独立性 D.用户与数摇库的独立性 12.结构数据模型的三个组成部分是数据结构、数据操作和()。 A.数据安全性控制 B.数摇一致性规则 C.数^]^完整性约束 D.数摇处理逻辑 13.在数据操纵语言(DML)的基本功能中,不包括的是()。 A.插入新数据 B.描述数据库结构 C.对数据库中数据排序 D.删除数据库中数据 14.控制数摇库整体结构、负责数据库物理结构和逻辑结构的注义打修改的人员是()。 A.系统分析员 B.应用程序员 C.专业用户 D.数据库管理员 15.K列关于数据库系统正确的叙述是()。 A.数据库系统比文件系统存储数据量大 B.数据库系统中数据存储没有冗余 C.数据库系统中数据存储冗余较小 D.数据库系统比文件系统存取速度快 16.在数据库中,发生数据不一致现象的根本原因是()。 A.数据存储量太大 B.数摇安全性差 C.数据相互关系复杂 D.数据冗余 17.层次型、网状型和关系型数据模型的划分根据是()。 A.数据之间联系方式 B.数据之间联系的复杂程度

交互设计笔试题总结备课讲稿

交互设计笔试题总结

1平面设计工作的流程 1)进行设计需求分析; 2)提供设计构思; 3)收集整理资料; 4)选择相关软件进行制作; 5)根据领导或客户的意见进行修改; 6)成稿。 2用户体验(UE)是一种纯主观的,在用户使用产品过程中建立起来的感受。但是对于一个界定明确的用户群来讲,其用户体验的共性是能够竟有良好的设计实验来认识到。好的用户体验,是一种“自然”的体验。 一、问答题。 3对用户体验及相关行业阅读过的书籍。 4列出至少5个国内外对应网站? Google VS 百度 Face book VS 人人 Twitter(140字符) VS 微博 eBay VS 淘宝 Amazon VS 京东YouTube VS 优酷土豆 groupon VS 拉手网 5 jpg和gif格式的不同点,各自应用在哪些场合。 1).jpg格式是由一个软件开发联合组织制定的有损压缩格式,用最少的空间得 到较好的图像品质。对色彩的信息保留较好,适合应用于互联网和需要连续色调的图像如照片。 2).gif格式是一种基于LZW算法的连续色调无损压缩格式,它的另一个特点是 可以存多幅彩色图像,可以构成最简单的动画。GIF文件支持透明特性,有

大量的软件使用GIF图像文件,它还适用于icon图。 3).png格式是基于公共专利压缩算法的无损压缩格式,支持8位和24位图 像。PNG文件也支持透明特性,8位的PNG图片与GIF图片基本相同,24位的PNG可以支持Alpha透明效果,适合用于需要与背景完美融合场合。 6怎样理解“设计”二字? 7好的设计有什么标准? 8中国web设计与外国的同行比较有哪些优势和不足。 9说说优秀的设计师需要哪些素质和能力。 10一句话解释交互设计 11比较一般的网页翻页设计和移动平台产品的翻页设计。 12网站首页常常会放大量的分类信息和导航栏,怎样改进并提升用户体验?13为什么现在的网站注册名都要用邮箱地址? 二、分析题。 14列出至少5个生活中用户体验不方便的案例,如电梯的上与下。选择上述5个案例之一进行分析并解决之。 15说一下你觉得用户体验最好的互联网产品有哪些,为什么? 16近三个月着重观察的互联网产品列表。

交互设计笔试题总结

1平面设计工作的流程 1)进行设计需求分析; 2)提供设计构思; 3)收集整理资料; 4)选择相关软件进行制作; 5)根据领导或客户的意见进行修改; 6)成稿。 2用户体验(UE)是一种纯主观的,在用户使用产品过程中建立起来的感受。但是对于一个界定明确的用户群来讲,其用户体验的共性是能够竟有良好的设计实验来认识到。好的用户体验,是一种“自然”的体验。 一、问答题。 3对用户体验及相关行业阅读过的书籍。 4列出至少5个国内外对应网站 Google VS 百度 Face book VS 人人 Twitter(140字符) VS 微博eBay VS 淘宝 Amazon VS 京东YouTube VS 优酷土豆 groupon VS 拉手网 5 jpg和gif格式的不同点,各自应用在哪些场合。 1).jpg格式是由一个软件开发联合组织制定的有损压缩格式,用最少的空间得 到较好的图像品质。对色彩的信息保留较好,适合应用于互联网和需要连续色调的图像如照片。 2).gif格式是一种基于LZW算法的连续色调无损压缩格式,它的另一个特点是 可以存多幅彩色图像,可以构成最简单的动画。GIF文件支持透明特性,有大量的软件使用GIF图像文件,它还适用于icon图。 3).png格式是基于公共专利压缩算法的无损压缩格式,支持8位和24位图像。 PNG文件也支持透明特性,8位的PNG图片与GIF图片基本相同,24位的PNG

可以支持Alpha透明效果,适合用于需要与背景完美融合场合。 6怎样理解“设计”二字 7好的设计有什么标准 8中国web设计与外国的同行比较有哪些优势和不足。 9说说优秀的设计师需要哪些素质和能力。 10一句话解释交互设计 11比较一般的网页翻页设计和移动平台产品的翻页设计。 12网站首页常常会放大量的分类信息和导航栏,怎样改进并提升用户体验 13为什么现在的网站注册名都要用邮箱地址 二、分析题。 14列出至少5个生活中用户体验不方便的案例,如电梯的上与下。选择上述5个案例之一进行分析并解决之。 15说一下你觉得用户体验最好的互联网产品有哪些,为什么 16近三个月着重观察的互联网产品列表。 17小A是一个交互设计师,某日接到一个任务,设计一个表单,一共只有三个输入框,而且都是必填项。小A就开始犯愁了:如果有一项是必填的,我可以给它加上”*”,那剩下的两项就不是必填的。但现在三项都是必填的,我怎么

经典数据结构面试题(含答案)

.栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是__________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

数据库笔试面试题汇总

1、什么是第三范式(第一范式,第二范式。。。) 2、请说出delete,truncate,drop 的区别 3、怎么样查询特殊字符,如通配符%与_ 4、如何插入单引号到数据库表中 5、怎么获得今天是星期几,还关于其它日期函数用法 6、知道出生日期,如何求年龄? 7、求上个月月底的日期 8、数据库类型中Varchar和char的区别是? 9、已知两张表:人员表(person) 和部门表(depart),表结构如下: 10、数据库Teacher 属性:name,tid,desc,表Student属性:name,sid,related_tid ,desc 查询 所属老师名称为”\like” 的全部学生。 11、设有一个关系表Student (学号stu_id,姓名stu_name,系名stu_dept,课程号 stu_courseid,成绩 grade) 11.1 查询至少选修了四门课程的学生的学号、姓名及平均成绩的select语句? 11.2 将选修课程数小于5的学生名字后面增加一个#号 12、用一条sql语句实现下面结果:怎么把这样一个表Testcol: 13、有两个表T_STU表和T_CLASS表和一个序列sequence序列,T_STU表里有如下字段:........ 13.1 查询入学年龄在18-20的女生或者未输入性别的,实际年龄小的要排在后面 13.2 查询班级名称、学生姓名、性别、缴费(要求显示单位:元),相同班级的要放在一起,姓名根 据字典顺序排列。 13.3 查询各班名称和人数 13.4 查询各班名称和人数,但人数必须不少于2,人数多的放在前面 13.5 查询1980年出生的有哪些学生。 13.6 查询男生和女生人数,没有输入性别的当作男 13.7 查询没有人员的班级 13.8 查询入学年龄在20以上的同学信息 13.9 查询班级平均入学年龄在20及以上的班级 13.10 有工资表salary(e_id,e_date,e_money),求本月发了2笔以上工资的员工信息。 14、有部门表、人员表、工资表。表名和字段名,如下: 14.1 查询:人员名称、部门名称、个人总工资 14.2 查询所有部门的总工资 14.3 查询2008年8月份各部门工资最高的员工信息:部门名称、员工姓名、员工总工资 15、表warehousestorage 数据库笔试面试题汇总

交互设计面试问题回答

交互设计面试问题回答 又到一年校招开始了,很多面试交互设计的职场新人都会被面试官问个措手不及,有的答非所问,有的过于啰嗦,让到手的工作都从自己的“嘴上”溜走了。以下是小编为您整理的交互设计面试问题回答相关资料,欢迎阅读! 分析目的:自我介绍是面试里的第一个题目,一个有经验的面试官可以从短短一分钟的自我介绍中看出面试者的思维方式和行为处事方式。第一,工作时间和经验都在简历上写着呢,面试官不想听到重复的内容。你要是把简历读出来,那还要简历干嘛。切记,不要给自己挖坑,比如你没有看过什么书或者也讲不出什么观后感,索性别提这事。时间尽量把控在一分钟左右。 建议回答:您好!我叫高杰,xx年毕业于xx大学xxx 专业。毕业后始终从事交互设计相关工作,之前做过saas 模式产品分别面向b端和c端用户,包括app端和pc端。平时自己会阅读一些相关书籍,也会自己写一些文章放在我的个人公众号里。无论是工作还是生活,我都很善于发现用户体验的奥妙。因为体验是无处不在的。 1)问题:你如何理解“交互设计”和“用户体验”?它们是什么关系? 分析目的:当面试官问到这个问题,你要知道他绝不是在考察你的记忆力,而是想看你对基础概念理解到什么程度。

所以千万不要按照百度百科或者书籍上面的理论背下来,而是要说出你自己的理解。回答时不要啰嗦,要有逻辑。 建议回答:首先,交互设计可以理解为是用户与产品或某个功能交互的一个过程,比如包括交互前的引导,交互中的提示,交互后的反馈。更重要的是框架层级的划分。交互设计更偏重于执行层面。而用户体验其实拥有更广的范围,用户体验里包含了交互体验、视觉体验、流畅度体验、用户感知等。可以说用户体验只是一个理念。交互设计和用户体验的关系其实就是用户体验包涵的交互的体验,而反过来说交互设计的过程中要运用用户体验的理念。 2)问题:你认为做pc端和移动端有什么差异? 分析目的:回答这个问题要从多维度去回答,比如来说明差异化。可是适当举例说明! 建议回答:我觉得pc端和移动端的差异可以从4个方面形容,第一:尺寸大小不同,pc端一个页面可以呈现更多的内容,而移动端必须精简化,突出重点。第二:pc端和移动端操作习惯是不同的,比如移动端的扩大或缩放地图的操作手势和pc端的就不一样。第三:使用时间有一定的区别,对于大多数用户来讲,使用手机的时间大多都是碎片化时间,回家路上、饭后、排队时等等。而使用电脑的时间大多数为工作时间或有稳定的时间。第四:使用场景的差异,其实刚刚第三点已经提到了。还有就是移动端和用户是紧密绑定的,

数据库笔试题目大全+很有用的

姓名:日期: 1、事务是什么? 2、oracle中truncate和delete命令有何区别? 3、Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到char(10)和varchar2(1 0)类型的字段中,其存储长度及类型有何区别? 4、参见如下表结构 出版社: 出版社代码char(2), 出版社名称varchar2(32) 图书: 图书编号char(8),

图书名称varchar2(128), 出版社代码char(2), 作者代号char(4), 图书简介varchar2(128) 作者: 作者代号char(4), 作者名称varchar2(10), 性别char(1), 年龄number(3), 文学方向varchar2(64) 获奖名单: 获奖日期date, 获奖人员char(4) 编写SQL语句,找出“作者”库中没有出现在“获奖名单”库中所有作者信息的SQL语句(提示:使用not in、not exists以及外关联三种方法,并说明哪种方法最优。

5、Oracle数据库表存在伪列rowid,请利用rowid编写一个SQL语句,从以下记录中找到唯一记录,并将其flag列更新为Y No name sex flag 1 张三 1 N 1 张三 1 N 1 张三 1 N 6、Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理? 7、见第四题“获奖名单”表,写出SQL语句,查询出在上一个月获奖的人员。

8、见第四题“图书”表,在表上对图书名称、出版社代码、作者代号创建了组合索引,请问在执行如下语句时会不会利用到索引。 Select * from 图书where 图书名称=?xxxx? Select * from 图书where 图书名称=?xxxx?and 出版社代码=?bb? Select * from 图书where 图书名称=?xxxx?and 作者代号=?ddd? Select * from 图书where 出版社代码=?yyy? 9、编写一个简单的Oracle存储过程,输出参数必须有一个是结果集。 专家对本试卷的分析: 第一,这张笔试卷从题目的考点上来看,属于基础知识类的; 第二,从难度上分析属于中等; 第三,从题目的设置上来看,该公司的主要用意是考察笔试者的工作经验和项目经验,尽管是基础知识,但是只要没做过开发工作,想回答上来并不容易;

大学数据库考试复习总结计划试卷试题带答案.doc

2019 数据库期末复习内容 1.选择题 ( 1)(数据库)是存储在计算机内结构化的数据的集合 ( 2)下述关于数据系统正确的描述是(数据库系统减少了数据冗余)。 ( 3)数据库( DB)、与数据库系统( DBS)和数据库管理系统(DBMS)之间的关系是(DBS 包含 DB 和 DBMS )。( 4)数据库管理系统的工作不包括(为定义的确据库提供操作系统)。 ( 5)用于对现实世界进行描述的工具是(数据模型)。 ( 6)在数据库的三级模式结构中,描述数据库中全局逻辑结构和特征的是(模式)。 ( 7) E-R图用来建立数据库的(概念模型)。 ( 8)下列模型中不能直接描述实体间多对多的联系的是(关系模型)。 ( 9)数据模型的三个要素是(数据结构、数据操作、完整性约束) ( 10)数据库的设计人员和用户之间沟通信息的桥梁是(实体联系图)。 (11)数据的独立性分为(逻辑独立性和物理独立性)。 (12)数据库通常是根据(数据模型)来分类的。 ( 13)关系数据库系统能实现专门的关系运算,包括(选择、投影、连接、除)。 (14)在关系模型中,下述关于关键字的说法正确的是(可以由一个或多个其值能唯一标识该关系模式中任何元组 的属性组成)。 ( 15)被称为关系的两个不变性,由关系数据库系统自动支持的是(实体完整性和参照完整性)。 ( 16)在关系中不能出现相同元组的约束是通过(主码)来实现。 ( 17)下列数据模型中,数据独立性最高的是(关系模型). (18)规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:每一属 性都是(不可分解的)。 (19)关系数据库规范化是为解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入的。 ( 20)在关系数据库中,任何二元关系模式的最高范式必定是(BCNF) ( 21)若属性X 函数依赖于属性Y 时,则属性X 与属性 Y 之间的关系是(多对一)。 ( 22)设有关系模式:部门(部门代码,部门名称,部门成员,部门经理)由于其中(部门成员)属性存在, 使该关系不属于第一范式。 ( 23)若关系模式R 中的属性都是主属性,则R 最高属于(3NF)。 ( 24)若要彻底消除插入异常和删除异常,关系模式最低要属于(BCNF)。 ( 25)关系模式分解的无损连接和保持函数依赖两个特性之间的联系是(没有必然联系)。 ( 26)关系模式中数据依赖的存在,可能会导致成立蕴涵后者数据插入异常,这是指(该插入的数据未被插入)。( 27)设要对关系模式R(学号,姓名,课程代码,课程名,课程成绩)进行分解,将其规范化到3NF,下列( B)是正确的规范化结果。(学号,姓名)R2(课程代码,课程名)R3 (学号,课程代码,课程成绩) ( 28)有如下关系R(是 BCNF)。 ( 29)对用户访问数据库的权限加以限定是为了保护数据库的(安全性)。 ( 30)下面(可移植性)不是数据库系统必须提供的数据控制功能。 ( 31)数据库系统中,对存取权限定义为(授权)。 ( 32)在数据库的安全性控制中,为了保证用户只能存取他有权存取的数据,在授权的定义中,数据对象的(范围越小),授权子系统就越灵活。 ( 33)数据库安全性遭到破坏的情况属于(非法用户读取数据库中的数据)。 ( 34)数据库的(完整性)是指数据的正确性和相容性。 ( 35)数据完整性保护中的约束条件是指(值的约束和结构的约束)。 ( 36)实体完整性和参照完整性属于(静态关系约束)。 ( 37)数据类型、取值范围、空值约束属于(静态列级约束)。

SQL Server数据库笔试题和答案

一单词解释(2分/个) 34分 Data 数据Database 数据库RDBMS 关系数据库管理系统GRANT 授权 REVOKE 取消权限DENY 拒绝权限DECLARE 定义变量PROCEDURE存储过程 事务Transaction 触发器TRIGGER 继续continue 唯一unqiue 主键primary key 标识列identity 外键foreign key 检查check 约束constraint 二编写SQL语句(5分/题) 50分(包含笔试题问题和解答答案) 1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话Create table stu (学号int , 姓名varchar(8), 年龄int, 性别varchar(4), 家庭地址varchar(50), 联系电话int ); 2) 修改学生表的结构,添加一列信息,学历 Alter table stu add 学历varchar(6); 3) 修改学生表的结构,删除一列信息,家庭住址 Alter table stu drop column 家庭地址 4) 向学生表添加如下信息: 学号姓名年龄性别联系电话学历 1A22男123456小学 2B21男119中学 3C23男110高中 4D18女114大学 Insert into stu values(1,’A’,22,’男’,123456,’小学’) Insert into stu values(2,’B’,21,’男’,119,’中学’) Insert into stu va lues(3,’C’,23,’男’,110,’高中’) Insert into stu values(4,’D’,18,’女’,114,’大学’) 5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set 学历=’大专’ where 联系电话like ‘11%’ 6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delect from stu where 性别=’男’ and 姓名like ‘c%’ 7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来

数据库原理与应用期末复习总结含试题及其答案

数据库原理综合习题答案 1.1名词解释 (1) DB:即数据库(Database),是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。 (2) DBMS:即数据库管理系统(Database Management System),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。 (3) DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。 (4) 1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 (5) 1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 (6) M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。 (7) 数据模型:模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。 (6) 概念数据模型:是独门于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构。 (9) 结构数据模型:是直接面向数据库的逻辑结构,是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,所以称为“结构数据模型”。结构数据模型应包含:数据结构、数据操作、数据完整性约束三部分。它主要有:层次、网状、关系三种模型。 (10) 层次模型:用树型结构表示实体类型及实体间联系的数据模型。 (11) 网状模型:用有向图结构表示实体类型及实体间联系的数据模型。 (12) 关系模型:是目前最流行的数据库模型。其主要特征是用二维表格结构表达实体集,用外鍵表示实体间联系。关系模型是由若干个关系模式组成的集合。 (13) 概念模式:是数据库中全部数据的整体逻辑结构的描述。它由若干个概念记录类型组成。概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作、数据的完整性、安全性等要求。 (14) 外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。 (15) 内模式:是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式,以及数据控制方面的细节。 (16) 模式/内模式映象:这个映象存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性,即概念记录和内部记录间的对应性。此映象一般在内模式中描述。 (17) 外模式/模式映象:这人映象存在于外部级和概念级之间,用于定义外模式和概念模式间的对应性,即外部记录和内部记录间的对应性。此映象都是在外模式中描述。 (18) 数据独立性:在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。 (19) 物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对模式的修改尽量不影响概念模式。

2015年校招交互设计师笔试题精选汇总

2015年校招交互设计师笔试题汇总 对近几年交互设计的题目进行筛选,汇总以下几个公司,题目比较有代表性。祝好运~ (一)2012年UC笔试题 1、分析桌面浏览器Chrome,Safari和Opera对网页控件(输入框、下拉菜单、按钮等)的界面及交互,对比目前市面上的手机浏览器(如UC浏览器)。 1)分析后列出需要优化的操作; 2)用思维导图(Xmind或Mindmanager等)总结出所有的网页控件及使用场景; 3)并尝试对其中不少于5项网页控件的交互规范进行定义。 2、背景说明:北京三里屯有一家Apple Store,每当有新品刚发售的时候,总是有很多客户来排队购买,中间掺杂着一些黄牛党。平时也会有很多黄牛党在附近倒卖一些紧缺的商品。作为设计师,设计一款供该商店使用的触摸屏手机APP,供新品发售排队的客户排号用,保证其: a、公平性; b、尽可能地识别和排斥黄牛党; c、易用,店方易管理; d、其他的从案例中引申或补全的用户需求。 题目要求: 这款app包括客户端界面本身和一个管理的策略,请用设计文档的形式展示。其中必须包括: 1)用思维导图归纳的分析、解决问题思路; 2)界面及交互流程。 3)加分项: a、可操作的原型; b、接近高保真效果的原型; c、可运行的IPA程序包或APK程序包。 3、背景说明:未来的社交信息超级聚合器。未来的移动互联网用户的信息分散在新浪微博,QQ空间,人人,Facebook等多处,你需要在iPad(或Android Pad)平板平台上设计一款聚合软件,把用户身边好友的信息流,其他(通过你对用户情况的分析)信息(如淘宝信息,天气……)整合到一个适合平板阅读的界面中去,需要兼顾起可用性和游戏性。 题目要求: 1)需用思维导图描述分析和解决思路; 2)整理其需求列表; 3)首页界面交互及至少5个主要功能的交互。 (二)2013年淘宝笔试题 1、说一下你觉得用户体验最好的互联网产品有哪些,为什么? 2、比较一般的网页翻页设计和移动平台产品的翻页设计。 3、网站首页常常会放大量的分类信息和导航栏,怎样改进并提升用户体验? 4、给了一个网站的登陆表单,让你改进并画出你的设计方案。 5、画出从淘宝买东西的一个高保真流程图。从将货物添加到购物车到确定订单中间的所有流程和反馈。

用户体验设计师(交互)应聘试题1111

金蝶软件(中国)有限公司 用户体验设计师(交互)应聘试题 应聘者姓名:考试日期: 一、述题(共50分) 1.阐述用户体验关键要素及其关系的认识。 用户体验关键要素是两个方面,一是操作,二是心理。 最基础的用户体验是操作,即交互环节,就是可用性,或者说易用性; 更高层次的是用户心理,诺曼所提倡的情感化设计,要让用户感到愉悦,感到惊喜,甚至感动。 良好的操作是愉悦的用户心理状态的基础和前提,愉悦的用户不仅可以带来销量,还能主动的为操作的改进提出建议,让用户体验设计形成一个良性循环。 2.要保证产品具有良好的用户体验,结合你做过的产品有哪些好的措施或方法? a)操作流畅,无论是软件产品还是硬件产品都是如此,能让用户不受困扰的完成 任务,满足使用需求。在进行软件产品设计的时候,需要优化代码,考虑终端 的性能,使用场所的不同等等设计出不同版本的软件;硬件产品则需要查阅人 机资料,做人机实验来改善操作的友好性。 b)让用户感到产品是“活”的,是人性化的。在软件领域,一定要有一个活跃的 用户气氛,用户的需求(比如倾诉、分享)要得到及时的反馈,让用户有一种 被认同、被重视的感觉才能留住用户;硬件领域则需要考虑圆润的外形和良好 的质感。

3.讲述在Android与iOS中设计同一款应用需要注意的要点。 从平台的特点和各自的设计规范来分析,需要考虑以下几个方面: a)布局形式的差异 iOS是经典的“tab bar”,安卓的视图控制栏和iOS 的tab bar 很像,不过是放在了上面,而且支持手势滑动切换。 b)导航逻辑的差异 iOS 的返回按钮控制的是页面;Android的返回逻辑是按照时间流来判断的,而不仅仅是页面,返回按钮控制的是动作。 c)应用之间联系的差异 iOS 是一个封闭的系统,而Android 是一个开放的系统,同一款应用的功能会因为平台的不同而不同。 d)多任务的差异 iOS切换到后台就被暂停,而Android 不会暂停,有些后台功能安卓能实现的,IOS可能需要慎重考虑。 e)分辨率的差异 两者分辨率不同,Android的分辨率需要考虑的分类比较多,IOS相对较少。 f)设计风格的差异 IOS流行扁平化,安卓提出material design。 4.讲述几种你在设计过程中的用研方法及其优劣? 如下表所示:

数据库笔试题及标准答案,常见数据库面试题

数据库笔试卷及答案 第一套 一.选择题 1. 下面叙述正确的是______。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈 3. 在一棵二叉树上第5层的结点数最多是______。A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是______。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是______。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是______。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是______。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是______。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个工程编译成一个应用程序时,下面的叙述正确的是______。 A、所有的工程文件将组合为一个单一的应用程序文件 B、所有工程的包含文件将组合为一个单一的应用程序文件

交互设计师面试问题_交互设计师面试试题

交互设计师面试问题_交互设计师面试题 交互设计师是大家比较关心的行业职位。那么,交互设计师面试问题主要有哪些呢?喜欢交互设计师这个职位的小伙伴们,在准备面试的话,想必都希望了解更多与面试相关的问题。本期乔布简历的小编在此为大家梳理的一些交换设计师面试相关问题,供大家参考。 关键字:交互设计师面试问题,交互设计师面试题 交换设计师面试相关问题: 1.请你简单的自我介绍一下。面试时,除了介绍自己的基本信息外,还需介绍一下自己对这份工作的看法,让面试官了解你的想法。切忌在面试时说些不接地气的官方话。 2.你对交互设计有怎样的见解?回答:我认为交互设计是需要设计师对产品与它的使用者之间的互动机制进行分析、预测、定义、规划、描述和探索。交互设计注重它用户的体验,以用户为中心。 3.你对我们公司的了解有哪些?这个时候,需要你用尽可能简洁的话来阐述公司是干什么的,主要做的是哪一方面。 4.你认为我们公司做的比较好的方面和需要改进的方面?对于这个问题,你需要在面试前好好总结归纳你所需面试公司的各方面情况,得出你的见解。 5.你使用过的APP中,最喜欢的是哪个?为什么喜欢?你觉得有需要改善的地方吗?遇到这个问题,你需要把这款APP不同于其他类似APP的地方列举出来,体现它的好。至于需要改善的地方,则需要就你的体验中的不便之处来描述。 以上就是交互设计师面试题啦,关于问题的答案,我相信小伙伴们心里都有自己的考量。小编在此祝愿小伙伴们面试顺顺利利,找到自己满意的工作哦! 交互设计师面试问题_交互设计师面试题 https://www.360docs.net/doc/2f15668678.html,/knowledge/articles/5666835b0cf21dd4319dac15

数据库经典笔试题总结知识讲解

数据库经典笔试题总结.txt和英俊的男人握握手,和深刻的男人谈谈心,和成功的男人多交流,和普通的男人过日子。数据库经典笔试题总结 面试穿什么着装合适,这里找答案! 1,范式 7大范式:1NF, 2NF,3NF,BCNF,4NF,5NF,6NF 什么叫normalization?Denormalization? Normalization是数据库规范化,denormalization是数据库逆规范化。 在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。目的:减少数据库中数据冗余,增进数据的一致性。 范式概念: 1)1NF:目标就是表中每列都不可分割; 2)2NF:目标就是表中的每行都是有标识的。前提是满足了1NF. 当关键字为单field时,一定满足2NF。当关键字为组合field时(即超过一个field),不能存在组合关键字中有某个字段能够决定非关键字段的某部分。非主field非部分依赖于主field,即非关键字段必须完全依赖于一组组合关键字,而不是组合关键字的某一部分。 3)3NF:目标是一个table里面所有的列不依赖于另外一个table里面非关键的列。前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。即:不存在传递依赖(关键字x->非关键属性y->非关键属性z) 4)BCNF:前提是满足了2NF,不存在某个非关键字段决定另外一个非关键字段。也不存在某个关键字段决定另外一个关键字段。即:在3NF基础上,加上约束:不存在某个关键字段决定另外一个关键字段。 1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。 2 第二范式(2NF) 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2 员工信息

数据库笔试题(附带带答案)

选择题 1. 下面叙述正确的是___c___。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是___c___。 A、队列 B、线性表 C、二叉树 D、栈 3. 在一棵二叉树上第5层的结点数最多是__b____。2的(5-1)次方 A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是___a___。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是___d___。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是___b___。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是__d____。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是___b___。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是__c____。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是___a___。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是___d___。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是___c___。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是__b____。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个项目编译成一个应用程序时,下面的叙述正确的是___a___。 A、所有的项目文件将组合为一个单一的应用程序文件 B、所有项目的包含文件将组合为一个单一的应用程序文件

相关文档
最新文档