做题笔记

                                                                        C语言笔试题总结

1.   三个私有IP地址范围:10.0.0.0-10.255.255.255172.16.0.0-172.31.255.255,和192.168.0.0-192.168.255.255。末尾全0的表示一个网段,不用于单独的主机IP使用,x.x.0.1一般是路由器的IP地址(大多路由器产品IP地址为192.168.0.1192.168.1.1)。末尾全1的(255)是广播地址,也不用于单独主机IP

2.   物理地址(即实际存储地址)=基址+偏移。逻辑地址=偏移

3.   UML设计关系:

 依赖:用到了别人的方法或变量;关联:对称的,好比你是我的朋友,我也是你的朋友;聚合:非对称的,员工与公司就是聚合关系,还有一个重要特点就是生命周期可以不同,员工离开了公司还是可以活的;组合:生命周期一致,好比人与心脏,一个没了另一个也没了。强度:依赖<关联<聚合<组合。

4.   注意字符串常量后面有隐含的’\0’,指针的sizeof永远是4字节(32位系统)或8字节(64位系统),而不管指针是什么类型的,指针的类型只是决定了它指向的数据的类型。

5.   数据库是的记录可以重复,主键要求既是唯一的,也是非空的,数据库为每个主键默认建立索引,但用户可以通过CREATE INDEX另建其他索引,所以索引个数不唯一,非主键亦可有索引.

6.   循环队列的frontrear必有一个不指向实质元素,不然无法判断队列满或空。

7.   序列9.2.5.7的哈夫曼编码,最上面根结点权值为23,它的某个孩子权值为14,另一个权值为9(实质结点),权值为14的又分出两个孩子,一个权值为7,另一个权值也为7,有一个是实质结点,另一个分出两个孩子,一个权值为5,另一个权值为2,这两个都是实质结点。所谓实质结点就是题目中的叶结点,非实质结点起辅助作用。带权路径长度即为长度的乘权求和。9的长度(距根结点的边的个数)为12的长度为35的长度为37的长度为2,这样结果为9*1+2*3+5*3+7*2=44

8.   请定义一个宏,比较两个数ab的大小,不能使用大于、小于、if语句.

#define max(a,b) ((a-b)&(1<<31))?b:a    (判断相减后的符号位)

9. a[3][4]哪个能表示 a[1][1]: *(&a[0][0]+5)*(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4)
答案: *(&a[0][0]+5)  *(&a[1]+1)

分析: (&a[0][0]+5)相当于数组地址后移5个单位到达a[1][1],*(a+1)相当得到第二个数组,也就是a[1]的地址,*a[1]+1,相当于a[1][1], 因此*(*(a+1)+1)为a[1][1],&a[1]是数组a[1]的指针,那么&a[1]+1会移动到a[2]的地址,*(&a[1]+1)会得到a[2]数组的首地址,所以它是错误的,*(&a[0][0]+4)与 *(&a[0][0]+5)对比也是错误的.

10. 有个表tableQQ,有整型的ID项和字符类型的Nickname项,这两个项都不允许为空
(1)写出建立该表的SQL语句
(2)找出Nickname为QQ的用户,按ID降序排列的SQL语句
(3)写出删除ID为1234用户记录的SQL语句
(4)写出添加ID为5555,Nickname为'1234'的SQL语句
答案:
(1) CREATE TABLE tableQQ
      (
       ID NUMBER(12) NOT NULL,
       Nickname Varchar2(30) NOT NULL
       );  
(2) select * from tableQQ where Nickname = 'QQ' order by ID desc;
(3) delete from tableQQ where ID='1234';

(4) insertinto tableQQ values(5555,'1234');
//删除表
(5)drop table tableQQ;

11.有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade) 
1
问上课程 "db"的学生
2
成绩最高的学生号 
3
每科大于90分的人数 
答案:
    (1)select a.sno, a.cno,b.cno, b.cname from sc a, c b where a.cno = b.cno and b.cname = 'db'; 

    
    (2)select sno, max(grade)fromsc group by sno; 
    
    (3)select cno, count(sno)from sc where grade > 90 group by cno; 
    

12.Internet采用哪种网络协议?该协议的主要层次结构?
答案:TCP/IP协议。应用层、传输层、网络层、数据链路层和物理层。

13. Internet物理地址和IP地址转换采用什么协议?
答案:地址解析协议ARP address resolution protocol

14. IP地址的编码分为哪俩部分?
答案:网络号和主机号。不过是要和子网掩码按位与上之后才能区分哪些是网络位哪些是主机位。

15、如下关于编译链接的说法错误的是(B

A、编译优化会使得编译速度变慢                B、预编译头文件可以优化程序的性能

C、静态链接会使得可执行文件偏大             D、动态链接库会使进程启动速度偏慢

分析:预编译头文件仅仅能提高编译的效率,但其本身不涉及代码的优化级别,更不会修改代码,故同样的内容不可能产生程序性能的优化.

16、如下关于链接的说法错误的是(C

A、一个静态库中不能包含两个同名全局函数的定义

B、一个动态库中不能包含两个同名全局函数的定义

C、如果两个静态库都包含一个同名全局函数,他们不能同时被链接

D、如果两个动态库都包含一个同名全局函数,他们不能同时被链接

分析:对于AB,编译器保证没有同名函数,对于C,静态函数在编译完成之后会在不同的类库,同名函数上加上一些参数或者一些特别的信息,从而在调用时区别.对于D,全局函数是定义在类外的,故它们不能同时被调用.

17.常见的排序算法中,属于稳定排序的有:冒泡排序,插入排序和归并排序,不稳定排序有:快速排序,堆排序,选择排序和希尔排序.

18、在程序设计中,要对两个16K×16K的多精度浮点数二维数组进行矩阵求和时,行优先读取和列优先读取的区别是(B

A、没区别                        B、行优先快

C、列优先快                     D2种读取方式速度为随机值,无法判断

分析:若在内存中,则数据可以”随机存取”,但内存数据被读取或写入时,所需要的时间与这段信息所在的位置无关.但是在读取和写入磁盘时,其所需要的时间与位置就会有关系.因为在BASIC,PASCAL和C/C++语言中,数组的存放是按照行优先来存放的,按行号第一行第二行…以此类推.本体关键是考察内存抖动的问题,如果按列访问则需要跳过一大串内存地址,这样可能需求的内存地址不在当前页中则需要进行页置换,这样便需要硬盘IO,减低速度.

19TCP的关闭过程,说法正确的是(D
A
TIME_WAIT状态称为MSLMaximum Segment Lifetime)等待状态  

B、对一个established状态的TCP连接,在调用shutdown函数之前调用close接口,可以让主动调用的一方进入半关闭状态
C
、主动发送FIN消息的连接端,收到对方回应ack之前不能发只能收,在收到对方回复ack之后不能发也不能收,进入CLOSING状态
D
、在已经成功建立连接的TCP连接上,如果一端收到RST消息可以让TCP的连接端绕过半关闭状态并允许丢失数据。//TIME_WAIT TCP链接断开时必定出现的状态.

分析,对于A,TCP下每条连接都有一个属性叫做maxsegment lifetime,就是说该连接关闭后,要经过2*max segment lifetime的时间,才算是真正的被关闭,才能被重新建立,以防止这条链路上还有东西在传输,停留在TIME_WAIT状态的持续时间是最长分节生命周期(MSL)的两倍,有时候称之为2MSL,但是TIME_WAIT并不是MSL.对于B,在调用closesocket之前先调用shutdown函数关闭发送数据通道,从而进入半关闭状态.对于C,在收到ack之后可以收不能发.

你可能感兴趣的:(做题笔记)