"往年地深信服笔精彩试题(齐全).doc"
这些试题涵盖了计算机科学的基础知识,特别是关于编程、内存管理、操作系统以及数据结构。以下是各个题目涉及的知识点的详细解释:
1. 题目提到的`char *p="helloworld"`是一个字符串字面量,它通常存储在只读数据段,而`char p[]="helloworld"`则在栈上初始化。数据段分为已初始化数据段(全局和静态变量)和未初始化数据段。
2. 表达式优先级中,`&&` (逻辑与) 的优先级最高,其次是 `&` (按位与),然后是 `%` (取模),接着是 `<=` (小于或等于),最后是 `==` (等于) 和 `!=` (不等于)。
3. 可靠的通信方式包括TCP (传输控制协议) 和串口I/O,因为它们提供面向连接的服务,保证数据的顺序和完整性。信号、管道和UDP (用户数据报协议) 相对不可靠,可能丢失数据或无序到达。
4. C语言表达式`M ? a++ : a--`中,如果`M`为真,则执行`a++`,否则执行`a--`。若`M`的值非零,即`M`等于`1`,则`M ! = 0`为真,因此选择C,`M != 0`。
5. Unix启动顺序通常为:启动加载器(如GRUB)、内核加载、init进程、运行级脚本、系统服务启动、用户登录。
二部分的题目包括了:
1. 数制转换,从十进制到二进制和九进制的转换,以及ASCII码的对应关系。
2. 内存表示,了解整型变量在内存中的存储形式,通常整数以补码形式存储。
3. Linux命令,如`du`用于查看目录大小,`chmod`和`chgrp`用于改变文件权限和所属组,`su`用于切换用户身份。
4. 指针操作,这里涉及到指针交换数值的技巧,以及如何通过指针修改变量值。在给出的代码中,函数`fun`并没有正确实现交换`p`和`q`的值,因为`a=b; b=temp;`这两行交换后,`a`和`b`都指向了`j`的地址,而`i`的值不会被改变。正确的做法是先交换`p`和`q`的值,再执行其他操作。
5. 插入排序算法,这是一种简单的排序算法,适用于小规模数据或部分有序的数据。基本思想是将每个元素插入到已排序的部分,保持有序状态。
这些试题旨在测试考生对计算机基础、C语言、操作系统和Linux命令的理解,以及问题解决的能力。通过解答这些问题,可以评估个人在这些领域的掌握程度。