百度笔试题及答案
这是由百度公司发布的2011年笔试真题及答案公布,请您对下文进行了解:
一、选择题:15 分 共 10 题
1. 在排序方法中,关键码比较次数与记录地初始排列无关的是:
A. Shell 排序 B. 归并排序 C. 直接插入排序 D. 选择排序
选择 A
2. 以下多线程对 int 型变量x的操作,哪几个需要进行同步:
A. x=y; B. x++; C. ++x; D. x=1;
选择 B, C
3. 代码
void func()
{
static int val;
…
}
中,变量 val 的内存地址位于:
A. 已初始化数据段 B.未初始化数据段 C.堆 D.栈
选择 A
4. 同一进程下的线程可以共享以下:
A. stack B. data section C. register set D. thread ID
选择 A, B
5. TCP 和 IP 分别对应了 OSI 中的哪几层?
A. Application layer
B. Data link layer
C. Presentation layer
D. Physical layer
E. Transport layer
F. Session layer
G. Network layer
选择 EG
6. short a[100],sizeof(a) 返回?
A. 2 B. 4 C. 100 D. 200 E. 400
选择 D
7. 以下哪种不是基于组件的开发技术_____。
A. XPCOM B. XP C. COM D. CORBA
选择 B
8. 以下代码打印的结果是(假设运行在 i386 系列计算机上):
字串2
struct st_t
{
int status;
short *pdata;
char errstr[32];
};
st_t st[16];
char *p = (char *)( st[2].errstr + 32 );
printf( "%d", ( p - (char *)(st) ) );
A. 32 B. 114 C. 120 D. 1112
选择 C,因为st[2]的起始地址比st[0]的起始地址高80位,
st[2].errstr的起始地址比st[2]的起始地址高8位
再加上32位就等于 120.
9. STL 中的哪种结构是连续形式的存储:
A. map B. set C. list D. vector
选择 D
10. 一个栈的入栈序列是 A,B,C,D,E,则栈的不可能的输出序列是:
A. EDCBA B. DECBA C. DCEAB D. ABCDE
选择 C
二、简答题:20 分,共 2 题
1. (5 分)重复多次 fclose 一个打开过一次的 FILE *fp 指针会有什么结果,并请解释。
导致 fp 所指的文件被多次释放, 导致不可预期的后果.
5. 一个B类网的子网掩码是255.255.240.0,这个子网能拥有的最大主机数是:
A. 240 B. 255 C.4094 D. 65534
6. 以下代码执行后,val的值是___:
unsigned long val = 0;
char a = 0x48;
char b = 0x52;
val = b << 8 | a;
A 20992 B 21064 C 72 D 0
选择 B,b 的`十进制为 82,二进制为 101,0010
b 左移 8 位为 101,0010,0000,0000
a 的十进制为 72, 二进制为 100,1000
b<<8 | a 为 21064
7. 内存的速度远远高于磁盘速度,所以为了解决这个矛盾,可以采用:
字串2
A 并行技术 B 虚存技术 C 缓冲技术 D 通道技术
9. 同一进程下的线程可以共享以下
A. stack B. data section
C. register set D. thread ID
选择 B,C
10. 以下哪种操作最适合先进行排序处理?
A 找最大、最小值 B 计算算术平均值
C 找中间值 D 找出现次数最多的值
选择 A
一、选择题:15 分 共 10 题
1. 在排序方法中,关键码比较次数与记录地初始排列无关的是:
A. Shell 排序 B. 归并排序 C. 直接插入排序 D. 选择排序
2. 以下多线程对 int 型变量x的操作,哪几个需要进行同步:
A. x=y; B. x++; C. ++x; D. x=1;
3. 代码
void func()
{
static int val;
…
}
中,变量 val 的内存地址位于:
A. 已初始化数据段 B.未初始化数据段 C.堆 D.栈
4. 同一进程下的线程可以共享以下:
A. stack B. data section C. register set D. thread ID
5. TCP 和 IP 分别对应了 OSI 中的哪几层?
A. Application layer B. Data link layer C. Presentation layer D. Physical layer E. Transport layer F. Session layer G. Network layer
6. short a[100],sizeof(a) 返回?
A. 2 B. 4 C. 100 D. 200 E. 400
7. 以下哪种不是基于组件的开发技术_____。
A. XPCOM B. XP C. COM D. CORBA
8. 以下代码打印的结果是(假设运行在 i386 系列计算机上):
struct st_t
{
int status;
short *pdata;
char errstr[32];
};
st_t st[16];
char *p = (char *)( st[2].errstr + 32 );
printf( "%d", ( p - (char *)(st) ) );
A. 32 B. 114 C. 120 D. 1112
9. STL 中的哪种结构是连续形式的存储:
A. map B. set C. list D. vector
10. 一个栈的入栈序列是 A,B,C,D,E,则栈的不可能的输出序列是:
A. EDCBA B. DECBA C. DCEAB D. ABCDE
二、简答题:20 分,共 2 题
1. (5 分)重复多次 fclose 一个打开过一次的 FILE *fp 指针会有什么结果,并请解释。
考察点:导致文件描述符结构中指针指向的内存被重复释放,进而导致一些不可预期的异常。
2. (15 分)下面一段代码,想在调用 f2(1) 时打印 err1,调用 f2(2) 时打印 err4,但是代码中有一些问题,请做尽可能少的修改使之正确。
1 static int f1( const char *errstr, unsigned int flag ) {
2 int copy, index, len;
3 const static char **__err = { "err1", "err2", "err3", "err4" };
4
5 if( flag & 0x10000 )
6 copy = 1;
7 index = ( flag & 0x300000 ) >> 20;
8