电子科技大学2012计算机考研复试题目解析

需积分: 12 7 下载量 21 浏览量 更新于2024-09-12 收藏 164KB PDF 举报
"电子科技大学2012计算机考研复试试题" 该试题主要涵盖以下几个方面的知识点: 1. **指针与数组操作**: - 题目中的`Voidswap(char*pa, char*pb)`函数是用来交换两个字符指针所指向的值。这涉及到指针的赋值和指针运算,以及临时变量的使用。在C语言中,交换两个变量的值通常通过创建一个临时变量来完成,这里使用了指针进行交换。 - 另一题涉及到了字符串和字符数组的操作,如`char pa[]="ABCDE"`和`char*pb="EFG"`。其中,`pb[1]='A'`是非法的,因为`pb`指向的是字符串常量,不能修改;而`pb=pa`之后,`pb`指向了`pa`所指向的内存区域,后续的`strcpy`和`pb="D"`操作都是合法的,但需要注意字符串操作可能导致的溢出问题。 2. **数组和查找算法**: - 有一道题目要求实现线性查找,`for(num=N; arr[num]!=item; num--)`这部分代码就是在执行线性查找,寻找数组`arr`中指定元素`item`的索引。线性查找的时间复杂度是O(n),效率较低,但实现简单。 3. **递归**: - 函数`int value(int n)`是一个递归函数,用于计算斐波那契数列的第n项。递归函数的关键在于理解基本情况(n==0)和递归情况(n>0)。在这里,如果n为0,则返回0;否则,通过递归调用自身,将前两项之和作为当前项的值。 4. **循环控制语句**: - `do-while`循环在C语言中用于执行至少一次循环体,即使条件一开始就不满足。题目中的`do...while(B);`表示会先执行循环体内的代码,然后检查条件B是否为真,决定是否继续循环。 5. **格式化输出**: - 题目中出现了`printf`函数的使用,`printf("%d", num)`用于输出整数。还有涉及百分比的格式化输出,例如`%ld/%ld%c%ld/%ld`,这表示输出两个长整数、一个字符和另一个长整数。 6. **结构体与链表**: - 最后提到了一个结构体`struct node`,它通常用于定义链表节点,包含一个整型成员`num`。链表是一种数据结构,节点通过指针链接,可以动态地添加或删除元素。 这些知识点都是计算机科学,尤其是编程基础和数据结构的重要组成部分,对于考研或准备进入IT行业的学习者来说是必不可少的。掌握这些概念和技巧,对于解决实际问题和进一步深入学习高级主题至关重要。