引发奇想的一个C语言程序

在某论坛看到的,void f();int main(){ int a = 0; f(); printf("a = %d\n",a); return 0;}void f()//一个没有参数,没有返回值的函数{......//填写代码 要求执行后输出 "a = 10" //如何解答?f()应该是什么?} 经过一点思考,自己写出一个实现,如下:void f() { *((int *)main-476403)=10; } 上述代码在Code::Blocks下编绎通过,感到很开心,哪知放在C-free环境下,结果却不一样,于是改成:void f() {...
2011-04-22 22:57 | 阅读 2328 次 | 评论 12 条

有关updatea一个表的问题(好像不简单)(续篇)

在阅读本文之前希望你看一下我在论坛里发的一张帖子,地址如下: http://bbs.bccn.net/thread-335209-1-1.html MS-SQL基础都学完了,以为自己掌握的还不错,谁知还是问题一大堆,例如上述帖子就是。 话归正转,为解决该问题,我们得引入下SQL中的游标。我基础中没有学到游标,如果你也没有学,这里给出两个学习它的网页,看完你就会用了: 1、http://tech.ddvip.com/2007-01/116783114617268.html)   2、http://www.cnblogs.com/zhc088/archiv...
2011-04-05 18:48 | 阅读 1004 次 | 评论 0 条

有趣的冒泡排序

想必大家都学过冒泡排序,假如给一个数组A,他有N个元素, 如果要求对他从小到大排列,则冒泡排序的函数可以这样写: void sort1(int *A,int N){ int i,j,tmp; for(i=0;i<N-1;i++) for(j=0;j+1<N-i;j++) if(a[j]>a[j+1]) { tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; }} 其实冒泡排序还有一种形式,在这里与大家分享一下。 void sort2(int *A,int N){ int i,j,tmp; for(i=0;i<N;i++) ...
2011-03-24 12:54 | 阅读 996 次 | 评论 2 条

源码阅读:排序及其他

/*请编写程序, 该程序的功能是:对于一维整型数组,输入数组元素, 并删去数组中所有相同的数,使各个元素均不相同。思路:把数组中元素按顺序排列(如从小到大),然后进行操作。*/#include<iostream>#define num 6using namespace std; void sort(int a[],int n); int fun(int a[],int n); int main(){ int i,n,a[num]; for(i=0;i<num;i++) cin>>a[i]; cout<<endl<<"************"<<endl; sort(a,num); ...
2011-03-24 12:32 | 阅读 938 次 | 评论 0 条

对数据转换和数据读取的认识

如果您能通过计算得出下面程序的输出结果,那就说明: 1,您对ascii码有了不错的掌握; 2,您对数据在内存中的存储形式以及进制转换理解地很好; 3,您被计算机化了~\(≧▽≦)/~啦啦啦 程序如下: #include <stdio.h>int main(int argc, char *argv[]){ char a=0xddff; printf("%d\n",a); char b='A'+'32'; //注意辨别 printf("%d %c",b,b); return 0;} 生有涯而思无涯……
2011-03-10 12:39 | 阅读 1132 次 | 评论 15 条

C函数源代码阅读

下面的程序是计算出一个十进制数的二进制位中有多少个1: #include <stdio.h>#include <stdlib.h>int func (int x){ int countx = 0; while ( x ) { countx ++; x = x&amp;(x-1); //注意这里 } return countx;}int main(int argc, char *argv[]){ int a; scanf("%d",&amp;a); printf("%d\n",func(a)); system("pause"); ...
2011-03-07 13:04 | 阅读 1995 次 | 评论 16 条
浏览71463次
最新评论