下面的C函数实现对链表head进行选择排序的算法,排序完毕,链表中的结点按结点值从小到大链接。请在
链表题:一个链表的结点结构
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;
(1)已知链表的头结点head,写一个函数把这个链表
逆序(Intel)
(9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum (int n ) {
if (n==0 )
return 0;
else
return n+sum (n-1 ) ;
}
在执行 sum (10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
A.p^. next:=head^. next;head^. next:=p
B.p^. next:=head^. next;head:=p
C.p^. next:=head;head:=p
D.head^. next:=head;p:=head
算法实现的思路为:n个人用1,2,…,n进行编号,使用不带头结点的单链表来存储,报数从1号开始,若某个人出圈,则将其打印输出,并将该结点删除,再对剩余的n-1个人重复同样的过程,直到链表中只剩下一个结点,将其输出即可。算法的具体实现如下:
下面的说法不正确的是()
A.函数调用时,先求出实参表达式,然后带入形参。而使用带参的宏只是进行简单的字符替换
B.函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递
C.对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏名有类型
D.调用函数只可得到一个返回值,而用宏可以设法得到几个结果
A.test(5);
B.test(5,8);
C.test(6,’#’);
D.test(0,0,’x’);