C
breaksss
sss
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
unix网络编程笔记(第一章)
TCP时间服务: server.c: #include #include #include #include #include #include #include #include #include #include #define bzero(ptr , n) memset(ptr, 0, n) #define MAXLINE 4096 #define原创 2012-04-05 10:38:31 · 395 阅读 · 0 评论 -
分离整型每个字节
//分离出一个int数据类型中的每个字节 (get every byte of a int type) #include #include int main(int argc,char** argv) { if (sizeof (int) != 4) { fprintf(stderr,"Unkown type!\n"); r原创 2012-03-26 12:10:39 · 1208 阅读 · 0 评论 -
如何交换两个数字
//几种经典的交换两个数方法. #include void function1(int *a, int *b) { //可能产生溢出错误 *a = *a + *b; *b = *a - *b; *a = *a - *b; } void function2(int *a, int *b) { //位运算 ,不能和自身交换 *a ^= *b; *b原创 2012-04-19 19:32:21 · 589 阅读 · 0 评论 -
输出环境变量
#include extern char** environ; int main() { char **var; for (var = environ; *var; ++var) printf("%s\n",*var); return 0; }转载 2012-04-27 18:17:11 · 642 阅读 · 0 评论 -
Ackermann数
C++: #include using namespace std; long Ackermann(int m,int n); int main() { int loop,i,m,n; cin>>loop; for(i=1;i<=loop;i++) { cin>>m>>n; cout<< Ackermann(m,n)<<end原创 2012-04-26 15:33:26 · 582 阅读 · 0 评论 -
sqrt
C: #include #define Zero 1e-6 float mysqrt(int number) { float guess = 1.0f; float quotient = number/guess; float average = (guess + quotient)/2.0; do { guess = average; quotient =转载 2012-04-25 16:04:34 · 589 阅读 · 0 评论 -
写一个函数,参数是三个数,返回较大两个之和
scheme: (define (bigsum a b c) (- (+ a b c) (min a b c))) (bigsum 1 2 3) (bigsum 2 3 3) (bigsum 1 1 3) (bigsum 1 2 1) (bigsum 1 9 3) python: #!/usr/bin/env python def bigsum原创 2012-04-25 12:17:43 · 1637 阅读 · 0 评论 -
最简单的递归函数
def recursive(): recursive() recursive() 执行的话会引发运行时错误 RuntimeError: maximum recursion depth exceeded 同样的C代码运行却没反应,不知道为什么...: void recursive() { recursive(); } main() { recursi原创 2012-03-22 12:28:42 · 678 阅读 · 0 评论 -
一个字符串的调试问题
#include int main(void) { int i; char str[6]="hello"; char reverse_str[6]=""; printf("%s\n", str); for(i=0;i<5;i++) { reverse_str[5-i]=str[i]; } printf("%s\n"原创 2012-03-21 14:52:56 · 458 阅读 · 0 评论 -
大整数加法
//计算正整数加法 #include #include #include #define MAXLINE 2000 //最大位数2000 void CharToInt(const char *str, int* array) { //将字串逆序保存到整型数组中 int i; int len = strlen(str); for (i原创 2012-03-19 13:16:24 · 347 阅读 · 0 评论 -
substr
#include #include int substr( char dst[],const char src[], int start, int len) { if ( !dst || !src ) return -1; int length = strlen(src); if (start = length ) { dst[0] = 0; retur原创 2012-03-12 12:11:19 · 292 阅读 · 0 评论 -
打印ascii字符表
#include #include int main(){ int i = 0; for (i = 0; i } 汇编版: DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV CX, 100H MOV DL, 0 NEXT: MO原创 2012-03-15 16:09:01 · 866 阅读 · 0 评论 -
验证角谷猜想
#include using namespace std; int main (void) { long long number; int counter = 0; cout << "Input a number: "; cin >> number; while (number != 1) { if (number % 2 !原创 2012-03-19 13:20:06 · 726 阅读 · 0 评论 -
Unix网络编程笔记(第四章)
TCP时间服务: server.c: #include #include #include #include #include #include #include #include #include #include #define bzero(ptr , n) memset(ptr, 0, n) #define MAXLINE 4096 #defi原创 2012-04-05 10:45:25 · 372 阅读 · 0 评论 -
关于异或交换数字的问题
原来写交换两个数字时就喜欢这么写: *a ^= *b; *b ^= *a; *a ^= *b; 感觉很酷,但是不知道为什么可以交换... 看了那本深入理解计算机系统才知道 原来是这样啊: *a ^= *b; 以后:a变为 a^b, b没变 *b ^= *a; 以后:a为还a^b,b为((a^b)^b)就是a *a ^= *b; 以后:a变为(a^b)^a,就是b,b还是a原创 2012-02-23 20:50:00 · 532 阅读 · 0 评论 -
缓冲区溢出
什么是溢出? 简单的说,溢出就是越界,跑到不属于自己的领地里去了...如: overflow.c: main() { int a[10] = {0}; int i; for (i = -10; i printf("%d ",a[i]); } 由于C的自由书写风格,编译系统并不对数据边界进行检测, 导致有意无意的出现溢出。原创 2012-04-05 10:04:28 · 700 阅读 · 0 评论 -
linux信号速成
对信号一直感到很神秘,好像是能够hack的地方,呵呵... 看了看书,感觉其实信号不过是一种类似中断处理机制, 书上说信号是进程(系统进程和用户进程)间通信的方法。在 进程收到信号时,其执行的流程将被系统中断,如经常使用的 Ctrl+C(中断),系统将退出程序。 例如: divzero.c: main() { int a,b; scanf("%d %原创 2012-04-05 10:03:10 · 619 阅读 · 0 评论 -
括号匹配
1.最简单的方法: #include int main() { char c; int counter=0; while ( ~(c = getchar()) ) { if (c == '{') counter++; if (c == '}') counter原创 2012-03-06 10:42:43 · 404 阅读 · 0 评论 -
表达式小题
写一个表达式,如果a>b 返回+1,a==b 返回0 a #include #include inline int hello(int a, int b) { return (a==b?0:1)?(a>b?1:-1):0; } int main() { printf("%d\n",hello(8,9)); printf("%d\n原创 2012-03-15 12:11:25 · 484 阅读 · 0 评论 -
malloc的使用
据说,calloc会自动清零,而malloc不会,但是我没看出来.. 1: #include #include typedef struct { int x; int y; }Point; int main(void) { Point*p=NULL; p=(Point*)malloc(sizeof(原创 2012-03-13 19:50:07 · 803 阅读 · 0 评论 -
引用传递参数
#include using namespace std; void printArray(int array[], int n) { //无法验证参数的正确性 int i; for(i = 0; i cout } cout } void printArrayB(int (&array)[10]) { //参数只能接受1原创 2012-03-13 15:46:37 · 345 阅读 · 0 评论 -
判断主机字节序
#include #include int main() { union byte{ short num; char letter[sizeof(short)]; }u; u.num = 0x0102; if (sizeof(short) == 2) { if (u.letter[0原创 2012-03-26 11:38:03 · 474 阅读 · 0 评论 -
位上的==
// "==" in bits ,just for fun... #include inline int Equal(int x, int y) { return (!(x ^ y)); } int main (int argc, char *argv[]) { int x = -1; int y = 0; int z = 2原创 2012-03-26 12:19:07 · 334 阅读 · 0 评论 -
打印出自身的程序
//可以打印出自身的程序,我是看不懂... main(a){printf(a,34,a="main(a){printf(a,34,a=%c%s%c,34);}",34);}原创 2012-03-26 12:16:37 · 446 阅读 · 0 评论 -
最简单的Cpp程序
main(){}原创 2012-03-06 12:33:18 · 1053 阅读 · 0 评论 -
为什么使用枚举
一直认为枚举是很鸡肋的东西,直到今天才知道原来它也很有用... #include enum open_mode {read,write,create}; enum aenum{zero}; void filefunction(open_mode mode) { switch(mode){ case read: printf("re原创 2012-03-06 11:34:09 · 1895 阅读 · 0 评论 -
给你的C代码加上行号
#include #include int main() { char c; int newline = 1; int linecounter = 1; while (~(c=getchar())) { if (newline) { newline = 0;原创 2012-03-04 21:56:25 · 845 阅读 · 0 评论 -
两行down掉你的linux
#include main(){pid_t c=0;while(1){if((c = fork())==-1)break;}}原创 2012-03-02 13:46:49 · 458 阅读 · 0 评论 -
试试signal函数
APUE前几页的例子: #include #include #include #include #include #define MAXLINE 4096 int main(int argc , char** argv) { char buf[MAXLINE]; pid_t pid; int status; printf(原创 2012-02-27 20:38:50 · 501 阅读 · 0 评论 -
简单的缓冲区溢出错误
overflow.c: #include #include int checkpass(void) { int x; char a[9]; x = 0; fprintf(stderr, "a at %p \nx at %p\n",(void*)a, (void*)&x ); printf("Please input passwor原创 2012-02-26 21:17:12 · 818 阅读 · 0 评论
分享