C语言要怎样自学?有什么窍门可以速成?
7个回答
展开全部
买一本谭浩强编写的《C语言编程基础》
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-16
展开全部
找本基础书,就是看例题,记住使用方法就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习没有敲窍门。。。只有勤学苦练!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先是基础,看一些基础知识的书籍,在对基础知识的全面掌握后,看一下编程例子,了解更高深的算法,学好C的窍门是多读程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-19
展开全部
我来谈谈吧.
对于C和JAVA,个人认为,最好选学C,而不要先学JAVA,虽说JAVA比C看起来简单一点,什么规则都少一点,但是,当你学了JAVA后再学C,就会有很多的地方不适应,反而形成一种"好像是这样"的思想,但是它在C里确实行不通.而如果先学C,再看JAVA时,因为JAVA是在C后面出现的,里面保留了很多C的特性,学起来反而事半功倍.这是我的亲历.
更不要一边学C一边JAVA,那样你只会越看越糊涂,一会儿在C里串了JAVA,一会儿又在JAVA里用上了指针,有你好受的.
下面说说C吧.当今最基础的语言恐怕就要属C了,我说的是高级语言.其实学C对网络知道没有什么要求,反而对数学以及逻辑思维能力要求要强一点.所以,只你数学好,编程也不会太难.当然我说的是高中数学,大学数学在这里面根本用不上,就是用上也是少之又少.
C在很多初学者眼里看起来很难,什么指针啦,结构体啦,链表啦,各种排序多得要死,头也大得要撞地,但是,其实你细看起来,这些很多全都是逻辑问题,就说指针,说白了就是指向一个地址的变量,通俗是说就是一个标签,一个目录,上面帖着你要的东西的位置,你要这东西,只要拿着这个标签找就行了.
C语言里最大的重点就是算法的设计了,当然,很多语言也都是如此,通过C算法的学习,就会一通百通的.例如这么一个程序:
main()
{
int i, a[3],result;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
result=num(a[0],a[1]);/*第一次调用函数*/
result=num(result,a[2]);/*第二次调用函数*/
printf("%d",result);
}
int num(int p, int q)/*定义函数求两个数最小公倍数*/
{
int temp;
int i=p,j=q;
if(p<=0||q<=0)return (0);
do
{
if (i<j)
{
temp=i;
i=j;
j=temp;
}
for(;i>=j;i=i-j);
if (i*j==0)
return (p*q/(i+j));
}
while(1);
}
这是求三个数最小公倍数的C程序.两个数的最小公倍数好求,就是利用辗转相除法.而三个数的最小公倍数你以转化成先求两个数的最小公倍数,再拿这个数和第三个数求最小公倍数,就是结果.不过辗转相除法求出的是最大公约数,但你只要用这两个数相乘再除以它的公约数就是它的公倍数.
这里面就是用到的算法,把一个复杂的问题简单化.
在学习完C后再看JAVA,你会有登泰山而小天下的感觉.这我就不多说了,天下程序一般样.
还有,多看些有关算法的小程序.多看书,自己动手,多练,多问,在网上多找资料,这是干所有事的方法,纸上得来终觉浅,绝知此事要躬形.
对于C和JAVA,个人认为,最好选学C,而不要先学JAVA,虽说JAVA比C看起来简单一点,什么规则都少一点,但是,当你学了JAVA后再学C,就会有很多的地方不适应,反而形成一种"好像是这样"的思想,但是它在C里确实行不通.而如果先学C,再看JAVA时,因为JAVA是在C后面出现的,里面保留了很多C的特性,学起来反而事半功倍.这是我的亲历.
更不要一边学C一边JAVA,那样你只会越看越糊涂,一会儿在C里串了JAVA,一会儿又在JAVA里用上了指针,有你好受的.
下面说说C吧.当今最基础的语言恐怕就要属C了,我说的是高级语言.其实学C对网络知道没有什么要求,反而对数学以及逻辑思维能力要求要强一点.所以,只你数学好,编程也不会太难.当然我说的是高中数学,大学数学在这里面根本用不上,就是用上也是少之又少.
C在很多初学者眼里看起来很难,什么指针啦,结构体啦,链表啦,各种排序多得要死,头也大得要撞地,但是,其实你细看起来,这些很多全都是逻辑问题,就说指针,说白了就是指向一个地址的变量,通俗是说就是一个标签,一个目录,上面帖着你要的东西的位置,你要这东西,只要拿着这个标签找就行了.
C语言里最大的重点就是算法的设计了,当然,很多语言也都是如此,通过C算法的学习,就会一通百通的.例如这么一个程序:
main()
{
int i, a[3],result;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
result=num(a[0],a[1]);/*第一次调用函数*/
result=num(result,a[2]);/*第二次调用函数*/
printf("%d",result);
}
int num(int p, int q)/*定义函数求两个数最小公倍数*/
{
int temp;
int i=p,j=q;
if(p<=0||q<=0)return (0);
do
{
if (i<j)
{
temp=i;
i=j;
j=temp;
}
for(;i>=j;i=i-j);
if (i*j==0)
return (p*q/(i+j));
}
while(1);
}
这是求三个数最小公倍数的C程序.两个数的最小公倍数好求,就是利用辗转相除法.而三个数的最小公倍数你以转化成先求两个数的最小公倍数,再拿这个数和第三个数求最小公倍数,就是结果.不过辗转相除法求出的是最大公约数,但你只要用这两个数相乘再除以它的公约数就是它的公倍数.
这里面就是用到的算法,把一个复杂的问题简单化.
在学习完C后再看JAVA,你会有登泰山而小天下的感觉.这我就不多说了,天下程序一般样.
还有,多看些有关算法的小程序.多看书,自己动手,多练,多问,在网上多找资料,这是干所有事的方法,纸上得来终觉浅,绝知此事要躬形.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询