早一个星期给我的,吓的我不感去拉,C的还算勉强,网络那些看的我头大
1、 选择题(答案为一个或多个)
1、对于栈中的元素进行引用,复合下列哪些规则(A,C)
A:LIFO B:LILO C:FILO D:FIFO
2、单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针p指向的单链表结点之后,下面的操作序列中哪一个是正确的?(C)
A: p->link = q->link; q = p->link;
B: p->link = q; q->link = p->link;
C: q->link = p->link; p->link = q;
D: q = p->link; p->link = q->link;
3、在一种语言中,运算符是从右向左结合的(例如:a+b+c =a+(b+c))下面表达式“7-(16/(3+1)*2)-4”的结果是(C)
A、-1; B、1; C、3; D、7; E、9;
4、程序的局部变量存在于(B)中,全局变量存在于(A)中,动态申请数据存在于(C)中
A:数据段 B:堆栈 C:堆空间
5、循环链表指(A、C)
A:最后一个节点的指针域总是指向链表头 B:可疑自由膨胀的链表
C:链表含有指向上一级节点的指针域 D:以上都不是
6、下列是一个C语言函数:
int f (int a)
{
int b;
switch (a)
{
case 1 : b = 10;
case 2 : b = 20;
case 3 : b = 30;
default : b = 0;
}
return b;
}
在其它函数中调用f(1),f(2),f(4),的返回值依次是:D,D,D
A:10 B:20 C:30 D:0
7、进程和线程的最主要区别在于:(B、C、D)
A:进程是UNIX下的概念,线程是Windows下的概念;
B:进程的效率比线程低;
C:在进程中可以创造线程,但线程中不能生成进程;
D:进程有自己的运行空间,线程的运行空间是共享的
8、如下代码:
unsigned int ulBuf[10];
int I;
unsigned char ucInfo[10];
for (I = 0;I<10;I++)
{
ulBuf[I] = I+1;
ucInfo[I] = 0;
}
sprintf(ucInfo,”%s”,ulBuf);
请问ucInfo[0]中的值应该是什么(D)
A:0 B:1 C:0或1 D:不确定
9、下面程序的运行结果是多少?(D)
main () {
char chr = 127;
int sum = 200;
chr += 1;
sum +=chr;
printf(“sum = %d/n”,sum);
return(0);
}
A: 327 B:328 C:99 D:72
11、软件需求分析阶段的测试手段一般采用(C)。
A 总结 B 阶段性报告 C 需求分析评审 D 不测试
12、有如下的Hash函数:
unsigned short hashf (unsigned short key) { return (key >> 4) % 256 }
hashf(16)和hashf(256)的值[ ]
A: 1,16 B: 8,32 C: 4,15 D: 1,32
13、enum{A ,B ,C ,D ,E ,K =8 , J , M}; 请说出D=[ ]
A: 3 B: 4 C: 5 D: 6 E :7
14、下面的代码中的含义是什么[ ]
#ifndef _oss_LIB_H_
#define _oss_LIB_H_
#endif
A .包含oss的Lib库 B: 定义一个常量 C.不包含oss的Lib库
D.防止头文件被重复引用
15、下面程序的运行结果是多少?[ ]
#include <string.h>
main( ){ char chr = 127; int sum = 200;
chr += 1; sum += chr; pfintf( “sum=%d/n”,sum); return 0 ; }
A :327 B: 328 C: 199 D: 72
16、以下手段哪些可用于进程间的同步与互斥[ ]
A:信号量与PV原语 B:B树 C:进程上下文 D:临界区加锁
17、对栈S进行下列操作:push(1), push(2), pop( ), pop( )。则此时栈顶元素是[ ]
A:1 B:2 C:0 D: 不确定
18、switch(c)中的c不能是哪种数据类型[ ]
A:char B:long C:unsigned D:double E:float
19、在Windows95环境下,定义数组:int **a[2][3]:则数组a所占用的内存单元为[ ]
A:6字节 B:24字节 C:48字节 D:不能确定
20、类型定义: chair S[3] =”AB” char *p; 在执行了语句p=s之后,*(p+2)的值是[ ]
A:‘B’ B:字符‘B’的地址 C:‘/0 D:不确定 E:以上答案均不正确
21、下面对宏的定义和使用,哪些是错误的?[ ]
A:#define RECTANGLE_AREA(a, b) (a * b)
B:#define RECTANGLE_AREA(a,b) ( a )* ( b )
C:#define INTI_RECT_VALUE( a, b )
D:#define MBUF_CLEAR_FLAG(pstMBufM, ulflagM)
((pstMEufM)-stUserTagData.stCommonInfo.ulFlag &=( ~(ulFlagM) ))
21、下面二叉树前序遍历的顺序是[ ]
a
╱ ╲
b c
A:a,b,c B:b,a,c C:b,c,a D:c,b,a
22、对下列关键字序列用快速排序进行排序时,速度最快的情形是[ ]
A:{25、23、30、17、21、5、9} B:{21、9、17、30、25、23、5}
C:{21、25、5、17、9、23、30} D:{5、9、17、21、23、25、30}
23、在下列叙述中,错误的一条是[ ]
A:操作系统是用户与计算之间的接口;
B:程序的并发执行,使程序失去了顺序执行时具有的封闭性和可再现性,程序与程序的执行不再一一对应。
C:进程从一个状态到别一个状态的转换,都是靠使用不同的原语来实现。
D:在单CPU的系统中,任何时刻处于就绪状态的进程有多个,而且,只有处于就绪状态的进程经调度程序选中后方可进入运行状态。
24、下面关于内容存管理的说法哪种是正确的[ ]
A:页式内存管理存在严重的碎片问题
B:段式内存管理不存在抖动问题
C:分区式内存管理既存在碎片问题,又存在抖动问题
D:段页式内存管理既减少了碎片问题,又减少了抖动问题
二、简答题
1、const char*, char const*, char*const的区别?
解答:
把一个声明从右向左读。
char * const cp; ( * 读成 pointer to ) cp is a const pointer to char
const char * p; p is a pointer to const char;
char const * p; 同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
2、下面这个程序执行后会有什么错误或者效果:
#define MAX 2