19.11.11面试C++
试题(数据库):
设有图书管理数据库:
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
检索书价在15元至25元(含15元和25元)之间的图书的书名、作者、书价和分类号,结果按分类号升序排序。
图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))
读者(借书证号C(4),单位C(8),姓名C(6),性别C(2),职称C(6),地址C(20))
借阅(借书证号C(4),总编号C(6),借书日期D(8))
检索书价在15元至25元(含15元和25元)之间的图书的书名、作者、书价和分类号,结果按分类号升序排序。
答案:
SELECT 书名,作者,单价,分类号 FROM 图书;
WHERE 单价 BETWEEN 15 AND 25 ;
ORDER BY 分类号 ASC;
SELECT 书名,作者,单价,分类号 FROM 图书;
WHERE 单价 BETWEEN 15 AND 25 ;
ORDER BY 分类号 ASC;
面试问题:
1.链表和数组的区别:数组在内存中是连续的,链表是将一些列不连续的内存联系起来,链表的插入删除元素相对数组较为简单,不需要移动元素,且较为容易实现长度扩充,但是寻找某个元素较为困难;
2.内存对齐:这就是内存对齐,对齐规则是按照成员的声明顺序,依次安排内存,其偏移量为成员大小的整数倍
为什么要内存对齐?
1.平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。
2.性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。
3.如何保证数据库中数据的唯一性:要想保证数据库中数据的唯一性,必须得添加unique约束
4.linux下查看线程的命令:ps命令,或者top命令,获得线程信息
# ps -eLf # ps axms

浙公网安备 33010602011771号