正确答案: B C D 你的答案: A B (错误)
the return value of main function if program ends normally
return (7&1)
char *str="microsoft"; return str=="microsoft"
return "microsoft"=="microsoft"
None of the above
解析:
main函数成功的话应该是返回0
按位与 7&1 = 111 & 001 = 001 即 1 C.str这个指针就是指向"microsoft"这个字符串常量的地址,所以,str == "microsoft" 自然是成立的, D. 两个相同的字符串常量是放在同一个内存地址的,所以也相等, 答案为BCD
3. 常量存储区
给出以下定义,下列哪些操作是合法的?
1
2
|
const char *p1 = “hello”;
char * const p2 = “world”;
|
正确答案: A 你的答案: A C (错误)
p1++;
p1[2] = ‘w’;
p2[2] = ‘l’;
p2++;
解析:
p1是指向字符常量的指针,p1本身不是常量,所以p1++合法,A正确。
p2本身是指针常量,可以指向非常量的字符。但是"hello"这样声明的字符串是存储在只读存储区的,不可修改,所以B,C,D都错误。
4. 计算机网络,IP地址分类
正确答案: C 你的答案: D F (错误)
IP地址采用分层结构,它由网络号与主机号两部分组成
根据不同的取值范围IP地址可以分为五类
202.112.139.140属于B类地址
每个C类网络最多包含254台主机
IPv6采用128位地址长度
私有地址只是ABC类地址的一部分
解析:
最初设计互联网络时,为了便于寻址以及层次化构造网络,IP地址采用分层结构,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
1. A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
3. C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
4. D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5. E类IP地址
以“llll0”开始,为将来使用保留。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
另外IPv6地址长度为128位,是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。
5.计算机网络:路由转发,TCPIP16页
路由器转发数据包到非直接网段的过程中,依靠下列哪一个选项来寻找下一跳地址( )
正确答案: B 你的答案: D (错误)
帧头
IP报文头部
SSAP子段
DSAP子段
解析:
路由器工作在OSI的网络层,转发的数据包是IP报文。
IP报文的头部有源IP和目的IP
路由器根据目的ip计算出iP所在的网段,根据网段转发到不同的端口。
如果在路由表中没有该网段的转发端口,则转发至默认路由端口
6. IPV6占16个字节,128位
7. 多线程
正确答案: A B C D E 你的答案: A C (错误)
在并行程度中,当两个并行的线程,在没有任何约束的情况下,访问一个共享变量或者共享对象的一个域,而且至少要有一个操作是写操作,就可能发生数据竞争错误。
原语Compare-and-swap(CAS)是实现无锁数据结构的通用原语。
获得内部锁的唯一途径是:进入这个内部锁保护的同步块或方法。
volatile变量具有synchronized的可见性特性,但是不具备原子特性。
减小竞争发生可能性的有效方式是尽可能缩短把持锁的时间
8. 动态库的调用
调用动态库的方法有哪些?
调用一个DLL中的函数有两种方法: 1.载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。 2.运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibrary或LoadLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。