1 操作系统
【多选】下列不属于异常(exception)分类的是()
A:错误(faults)
B:中断(interrupts)
C:陷入(traps)
D:中止(aborts)
【判断】在各类操作系统中,文件系统的设计属于分离上层应用对存储的使用和底层存储硬件的一种分层设计方案
【判断】数据库中锁都是互斥的,针对同一对象不可同时加多把锁。这一说法正确吗?
2 数据类型
【多选】unsigned long long map;
int port;
……
map = 1 << port;
与上面最后一句等价的语句有
A:map = ((unsigned long long)1) << port;
B:map = (unsigned long long)(1 << port);
C:map = ((int)1) << port;
D:map = (unsigned long long )(((int)1) << port);
CPU异常是指指令执行的时候产生的错误。异常通常被分为这三种不同的类型:faults,traps和aborts。
3 数据大小
【多选】1.以下选项中对于sizeof的描述正确的是:
A:对于字符型指针char *p; sizeof§ = 1
B:对于字符型指针char *p; sizeof(*p) = 1
C:函数的参数描述如下:int func(char a[100]), 那么在函数体内sizeof(a)=100.
D:32位CPU环境中,函数的参数描述如下:int func(char a[100]), 那么在函数体内sizeof(a)=4.
答案解析:
A. sizeof§=指针的长度; C, sizeof(a)= 指针的长度
【多选】设有一联合体变量定义(如下),执行下列语句后,关于联合体变量x描述不正确的有()
union data
{
long a;
float b;
int c;
char d;
};
union data x;
x.a=111111;
x.b=2.1546;
x.c=2222;
x.d=‘R’;
A:x.a值为111111
B:x.b值为2.1546
C:x.c值为2222
D:x.d值为’R’
答案解析: [“A”,“B”,“C”]
联合体与结构体的定义相同,其本质区别就在于内存使用方式的不同。联合体所占用的内存空间为最长的成员所占用的空间,各个成员变量全部是从低地址方向开始使用内存单元;当修改一个成员变量时同时其它成员变量的值也被修改了,上述执行后的结果只有x.d的值是字符’R’,其它成员变量的值都不再是原先所赋的值。
4 指针
【多选】有如下定义,则编译时会报错的选项有() WORD32 const constValue = 10; WORD32 * const pPointA; const WORD32 * pPointB;
A:constValue = 1;
B:*pPointA++;
C:*pPointB++;
D:*pPointA += 1;
E:*pPointB += 1;
答案解析:[“A”,“B”,“E”]
WORD32 const constValue: constValue是整形常量,内容不可变。 WORD32 * const pPointA; pPointA是指向变量的常量指针,指向的内容可变,指针本身不可变;pPointA++是指针先加1,后读取内容;而pPointA += 1则时对pPointA 的内容加1 const WORD32 * pPointB; pPointB是指向常量的指针变量,指向的内容不可变,指针本身可变