2009东软笔试题解析:C语言与链表操作

需积分: 9 53 下载量 124 浏览量 更新于2024-12-01 收藏 42KB DOC 举报
"2009年东软笔试题,涉及C语言编程及算法" 这篇摘要主要涵盖了2009年东软公司针对软件开发岗位的校园招聘笔试题目,重点考察的是C语言的基础知识和编程能力。下面将对题目中的关键知识点进行详细解释: 1. 回文字符串检查函数`huiwen`: 这个函数的目的是判断输入的字符串是否为回文,即正读和反读都相同的字符串。函数通过两个指针`p1`和`p2`分别从字符串的首尾开始比较,如果在遍历过程中发现不相等的字符,则设置标志`t`为1并跳出循环。最后根据`t`的值返回"yes!"或"no!"。注意,该函数存在一个小错误,`p2`应该指向倒数第二个字符,因为`strlen(str)`包含结束符`\0`。 2. 创建单向链表的函数`creat`: `creat`函数用于动态创建一个单向链表,链表元素存储字符。它首先创建一个头结点`h`,然后不断读取输入直到遇到特殊字符'?',每次读取到一个字符就创建一个新的结点,将字符存入`data`字段,并链接到链表尾部。最后,链表的末尾结点的`next`应指向NULL表示链表结束。但是代码中`p->next=p;`应该是`p->next=q;`,确保正确连接新结点到链表。 3. 函数`f`与指针传递: 函数`f`接收一个整型变量`y`和一个指向整型变量的指针`x`。函数内部将`y`的值加到`*x`上,然后将`*x`的值加到`y`上。由于`y`是按值传递的,所以在`f`函数内部修改`y`不会影响到`main`函数中的`y`。然而,`x`是按引用传递的,所以`f`函数内部修改`*x`会影响到`main`函数中的`x`。因此,执行后`x`的值为`6`,而`y`的值保持不变,为`4`。题目描述中的结果是错误的。 4. 计算指数的函数`fun`: 函数`fun`使用循环实现指数运算,即`x`的`n`次方。它通过累乘的方式逐步计算,初始化`y`为1,然后在循环中每次将`x`乘以`y`,迭代`n`次。这个函数可以用于计算任意非负整数`n`的指数。 这些题目体现了C语言基础、指针操作、链表创建以及基本算法的应用。对于准备东软或者其他软件开发公司的笔试面试,熟悉这些知识点是非常重要的。