C
布丁先生
这个作者很懒,什么都没留下…
展开
-
带参数宏的使用
定义一个MIN宏,实现传递两个参数,返回最小值:#include #define MIN(a,b) a>b?b:aint main(void){ int min; min = MIN(3,4); printf("min = %d\n",min ); return 0;}有这样一段程序,程序的运行结果是:#include #define SORT(x)原创 2013-10-24 13:45:15 · 908 阅读 · 0 评论 -
单向链表反转
typedef struct _Node{ int data; struct _Node *next;} Node;Node* Opposite(Node *head){ if(head == NULL) return NULL; Node *before,*middle,*after; before = NULL; middle = head; while(midd原创 2014-04-13 20:14:19 · 641 阅读 · 0 评论 -
链表反转的实现(递归反转链表,非递归反转链表)
不产生新的链表,请写一段函数将一个单向链表反转顺序:#include #include struct Node //创建一个结构体,存放值和指向下一个结点的指针{int value;struct Node *next;};typedef struct Node ListNode;ListNode *CreateList(int n)原创 2013-10-19 14:48:38 · 834 阅读 · 0 评论 -
编写C函数,判断链表是否是递增排列
有这样一个结构体:struct node{ int data; struct node *next;}编写一个C函数,来判断这段链表中data的值是否是递增排列的,代码如下:void func(ListNode *head){ while(head->next != NULL) { if(head->data next原创 2013-10-24 12:04:13 · 1475 阅读 · 1 评论 -
链表(创建,插入,删除和打印输出)
/*-----------------------------------------------------------------------------文件功能:实现了动态建立一个学生信息的链表包括链表的创建、插入、删除、和打印输出学生信息包括姓名和分数本链表是带有头结点的,头结点的内容为空内容-------------------------------------------转载 2013-10-19 13:05:51 · 854 阅读 · 0 评论 -
strcpy的拷贝问题
有一段小程序:#include #include int main(void){ char *ptr = "abc"; strcpy(ptr + 1,"B"); puts(ptr); return 0;}这段小程序会输出什么?它的输出结果是段错误,主要原因就是char *ptr = "abc"这条语句中的"abc"字符串存在于代码原创 2013-10-21 11:17:09 · 1114 阅读 · 0 评论 -
C语言实现一个FIBONACCI数发生器
#includelongfib_recursion(long num) //使用递归方法实现{ if(num == 1 || num == 2) return 1; else return fib_recursion(num - 1) +fib_recursion(num -2);}longfib_non_recursio原创 2013-10-19 15:07:25 · 1000 阅读 · 0 评论 -
写一段函数,计算无符号32位整数从高到低,第一个‘1’的位置。(例如,0x0F000000的第一个‘1’的位置为5)
使用2分查找的方法解决,从左到右查找“1”的位置。#include int func(unsigned int data){ int pos = 1; //用于计数,计录第一个“1”的位置 if((data & 0xffff0000) == 0) //如果data与高16位相与后为零,表示data高16位中不含有“1” {原创 2013-10-19 15:11:10 · 2173 阅读 · 0 评论 -
内存管理
判断这段程序,它的问题有哪些?#include #include #include void getmemory(char *p){ p = (char *)malloc(100);}int main(void){ char *str = NULL; getmemory(str); strcpy(str,"hello world!"); printf("%s",原创 2013-10-24 13:58:36 · 898 阅读 · 2 评论 -
字符串反转
#include #include char *ReverseString(char *str){ if(str == NULL) return NULL; int length = strlen(str); for(int i = 0;i < length/2; ++i) { int temp = str[i]; str[i] = str[length - 1 - i原创 2014-04-13 20:36:31 · 577 阅读 · 0 评论