1、C+笔试题(十六) 雅虎笔试题辛辛苦苦把题做完,系统提示说“由于长时间未操作,系统失去联系 ”,艾.1CE( ? M可能每个人的题是随机的吧*j_ w1U*z)JQuestion 1. (单选)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值 11,所需的关键码比较次数为(3)1. 22. 33. 44. 5Question 2. (单选)设散列表的存储空间大小为 19,所用散列函数为 h(key)=key mod 19,用开地址线性探查法解决碰撞。散列表的当前状态如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1
2、6 17 18 190 194 768 559 582 393 208.现要将关键码值 75 插入到该散列表中,其地址应为 (1)1. 12. 113. 54. 15Question 3. (单选)作业管理的主要任务包括作业输入、作业处理和作业输出。其中作业处理的工作是.作业调度 .作业控制 .作业后备 (3)1. 只有2. 只有3. 和4. 都是Question 4. (单选)系统为了管理文件,设置了专门的数据结构- 文件控制块(FC。FCB 是在执行下列哪一个系统调用时建立的? (1)1. create2. open3. read4. writeQuestion 5. (单选)下面关于通道
3、的叙述中,正确的是.通道相当于一个功能简单的处理机.通道完成数据输入输出工作.通道与CPU 共用一个内存 (4)1. 和2. 和3. 和4. 都是Question 6. (单选)互操作性是指在不同环境下的应用程序可以相互操作,交换信息。要使采用不同数据格式的各种计算机之间能够相互理解,这一功能是由下面哪一层来实现的? (2)1. 应用层2. 表示层3. 会话层4. 传输层Question 7. (单选)在 UNIX 的 Shell 程序中,可以使用位置变量。若要指明 Shell 引用的最近后台进程的号码,可以使用位置变量 (2)1. $2. $!3. $#4. $-Question 8. (单
4、选)设二叉树根结点的层次为 0,一棵深度(高度)为 k 的满二叉树和同样深度的完全二叉树各有f 个结点和 c 个结点,下列关系式不正确的是: (2)1. fc2. cf3. f=2k+1-14. C2k-1Question 9. (单选)单链表的每个结点中包括一个指针 link,它指向该结点的后继结点。现要将指针 q 指向的新结点插入到指针 p 指向的单链表结点之后,下面的操作序列中哪一个是正确的? (3)1. q:=p.link; p.link:=q.link2. p.link:=q.link; q:=P.link3. q.link:=p.link; p.link:=q;4. p.link:
5、=q; q.link:=p,linkQuestion 10. (单选)某二叉树结点的对称序序列为 A、B、C、D、E、F、G,后序序列为 B、D、C 、A 、F、G、E。该二叉树结点的前序序列为 (2)1. E、 G、F 、 A、C、D、B2. E、A、C、B、D、G、F3. E、A、G、C、F、B、D4. E、G 、A、C、D、F、BQuestion 11. (单选)某二叉树结点的对称序序列为 A、B、C、D、E、F、G,后序序列为 B、D、C 、A 、F、G、E。该二叉树对应的树林包括多少棵树? (2)1. 12. 23. 34. 4Question 12. (单选)某二叉树结点的对称序序
6、列为 A、B、C、D、E、F、G,后序序列为 B、D、C 、A 、F、G、E。该二叉树对应的树林结点的层次次序序列为 (1)1. E、 G、F 、 A、C、D、B2. E、A、C、B、D、G、F3. E、A、G、C、F、B、D4. E、G 、A、C、D、F、BQuestion 13. (单选)假设就绪队列中有 10 个进程,系统将时间片设为 200ms, CPU 进行进程切换要花费 10ms。则系统开销所占的比率约为 (2)1. 1%2. 5%3. 10%4. 20%Question 14. (单选)长度相同但格式不同的 2 种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其它规定均相同
7、,则它们可表示的数的范围和精度为: (2)1. 两者可表示的数的范围和精度相同2. 前者可表示的数的范围大但精度低3. 后者可表示的数的范围大且精度高4. 前者可表示的数的范围大且精度高Question 15. (单选)所谓“变号操作”是指将一个整数变成绝对值相同但符号相反的另一个整数。假设使用补码表示的 8 位整数X=10010101,则经过变号操作后结果为:(4)1. 11010102. 101013. 111010104. 1101011Question 16. (单选)设有一个用数组 Q1m表示的环形队列,约定 f 为当前队头元素在数组中的位置, r 为队尾元素的后一位置(按顺时针方向
8、),若队列非空,则计算队列中元素个数的公式应为: (2)1. r-f2. (m+r-f) mod m3. (m-r+f)mod m4. (m-r-f) mod mQuestion 17. (单选)计算机最主要的工作特点是(2)1. 存储程序与自动控制2. 高速度与高精度3. 可靠性与可用性4. 有记忆能力Question 18. (单选)计算机中数据的表示形式是(3)1. 八进制2. 十进制3. 二进制4. 十六进制Question 19. (单选)下面列出的四种存储器中,易失性存储器是(1)1. RAM2. ROM3. PROM4. CD-ROMQuestion 20. (单选)I/O 接口
9、位于 (2)1. 总线和设备之间2. CPU 和 I/O 设备之间3. 主机和总线之间4. CPU 和主存储器之间Question 21. (单选)计算机硬件能直接识别和执行的只有(4)1. 高级语言2. 符号语言3. 汇编语言4. 机器语言Question 22. (单选)具有多媒体功能的微型计算机系统中,常用的 CD-ROM 是(2)1. 只读型大容量软盘2. 只读型光盘3. 只读型硬盘4. 半导体只读存储器Question 23. (单选)微机中 1K 字节表示的二进制位数是(4)1. 10002. 8x10003. 10244. 8x1024Question 24. (单选)下列字符中
10、,ASCII 码值最小的是(2)1. a2. A3. x4. YQuestion 25. (单选)OSI(开放系统互联)参考模型的最低层是(3)1. 传输层2. 网络层3. 物理层4. 应用层Question 26. (单选)在面向对象的系统中,系统责任的良好分配原则是(3)1. 在类之间均匀分配2. 集中分配在少数控制类中3. 根据交互图的消息进行分配4. 根据个人喜好进行分配Question 27. (单选)在 CMM 模型中,对软件成熟度有以下 5 个级别,请从低到高排序a 初始级:软件过程的特点是无秩序的,偶尔甚至是混乱的。几乎没有什么过程是经过定义的,成功依赖于个人的努力。b 优化级
11、:利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。c 已定义级:管理活动和工程活动两方面的软件过程均已文档化、标准化、并集成到组织的标准软件过程。d 已管理级:已采集详细的有关软件过程和产品质量的度量,无论软件过程还是产品均得到定量了解和控制。e 可重复级:已建立基本的项目管理过程去跟踪成本、进度和功能性。必要的过程纪律已经就位,使具有类似应用的项目。能重复以前的成功。(3)1. acdbe2. adceb3. aecdb4. abcdeQuestion 28. (单选)在下面所列举的逻辑测试覆盖中,测试覆盖最强的是(3)1. 条件覆盖2. 条件组合覆盖3.
12、 语句覆盖4. 条件及判定覆盖Question 29. (单选)一般来说,在软件维护过程中,大部分工作是由什么引起的(3)1. 适应新的软件环境2. 适应新的硬件环境3. 用户的需求改变4. 程序的可靠性Question 30. (单选)(2)PSP 是?1. 团队软件过程2. 个体软件过程3. 过程改进过程4. 质量管理过程Question 31. (单选)假定 a 和 b 为 int 型变量,则执行以下语句后 b 的值为 (4)a=1; b=10;do b-=a; a+; while (b=4;a=(anext)free(pHead);return NULL;node *p=pHead;p
13、Head-next-front=pHead-front;pHead-front-next=pHead-next;pHead=pHead-next;free(p);return pHead;void delequ(node*pHeadA,node *pHeadB)node *pA=pHeadA;node *pB;int flag;doflag=0;pB=pHeadB;doif(pB-data=pA-data)if(pA=pHeadA)pHeadA=pA=del(pHeadA);flag=1;elsepA=del(pA);pB=del(pB);break;pB=pB-next;while(pB!=
14、pHeadB);if(flag=0)pA=pA-next;while(!pA Question 53. (问答)编程实现:找出两个字符串中最大公共子字符串,如“abccade“,“dgcadde“的最大子串为“cad“char* constr(char *A,char *B)int lenA=strlen(A),lenB=strlen(B);int itmp,conlen=0;char *pequ,*pH=NULL;char *pA,*pB,*pA2,*pB2;for(pA=A;pA-Aconlen)conlen=itmp;pH=pA;pB+;pequ=(char*)malloc(conlen
15、+1);memcpy(pequ,pH,conlen);*(pequ+conlen)=0;return pequ;Question 54. (问答)说明关键字 static 和 volatile 的含义static 用于外部变量或者函数时,限制了它们的作用域为文件内部;static 也可以用于内部变量,这样,内部变量在每次函数调用时都为同一存储,值具有连续性。volatile 说明了一个变量的值是会随机变化的,即使程序没有对它进行任何赋值操作。它告诉编译器的优化处理器,这些变量是实实在在存在的,在优化过程中不能无故消除,这样就保证了编译后的代码在每次操作是从变量地址处取数。Question 55
16、. (问答)编程实现:把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf 系列库函数void put(long data)long mask=0x1=1;putchar(n);mask=0xf(8*sizeof(long)-4);if(c(8*sizeof(long)-4*i-4);if(c=4;/在这里公布选择题的答案没有意义的,选择题是随机从题库中提取的,每个人只有很少几个是一样的,大部分都不一样。最后的 5 个问答题是一样的。这里提供第 54,55 题的答案,仅供参考!54 题:在 C 中,static 变量的含义。A:static 声明的变量在 C 语言中
17、有两方面的特征:1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。2)、变量用 static 告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips:A.若全局变量仅在单个 C 文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用 sta
18、tic 变量(这样的函数被称为:带“内部存储器”功能的的函数)E.函数中必须要使用 static 变量情况:比如当某函数的返回值为指针类型时,则必须是 static 的局部变量的地址作为返回值,若为 auto 类型,则返回为错指针。=volatile 总是与优化有关,编译器有一种技术叫做数据流分析,分析程序中的变量在哪里赋值、在哪里使用、在哪里失效,分析结果可以用于常量合并,常量传播等优化,进一步可以死代码消除。但有时这些优化不是程序所需要的,这时可以用 volatile 关键字禁止做这些优化,volatile 的字面含义是易变的,它有下面的作用:1 不会在两个操作之间把 volatile 变
19、量缓存在寄存器中。在多任务、中断、甚至 setjmp 环境下,变量可能被其他的程序改变,编译器 自己无法知道,volatile 就是告诉编译器这种情况。2 不做常量合并、常量传播等优化,所以像下面的代码:volatile int i = 1;if (i 0) .if 的条件不会当作无条件真。3 对 volatile 变量的读写不会被优化掉。如果你对一个变量赋值但后面没用到,编译器常常可以省略那个赋值操作,然而对 Memory Mapped IO 的处理是不能这样优化的。55 题,递归算法:/*长整型转变成二进制*/void binary(long n)char c;if(n/2!=0)binary(n/2);c=n%2+48;putch(c);/*长整型转变成十六进制*/void hex(long n)if(n/16!=0)hex(n/16);if(n%16=0putch(c);elsec=n%16-10+97;putch(c);