c语言编程怎样入门

Python010

c语言编程怎样入门,第1张

任何知识的学习没有太多捷径,但有经验、方法及教训

(1)基础教材选择-系统又通俗易懂,最好有该书配套免费视频

建议选择系统正统的大学教材,尽量不要选择“多少天精通C语言”等吸引眼球的教程,相信一点C语言学习没有速成。这里给大家推荐一本不错的入门教程:清华大学出版社-孙海洋-C语言程序设计,讲解很透彻、知识点很全面、例程较多且通俗易懂。优酷“孙海洋课题”还有全书免费教学视频,便于自学。

(2)动起手来--立马安装VC++6.0或VS开发环境

C语言是特别注重动手实操能力的课程!!动起手来,现在开始安装VC++6.0开发环境,从第一个经典程序“Hello,world!”开始,每一个例题及知识点均通过开发环境验证、理解深化。多做每一章小型实验操作(网上多得很)。提升代码调试能力。

(3)有了基础后,一般可以有两个发展方向可供选择

(i)转向项目实战

建议购买一本C语言项目教程,在实践项目中强化理论知识的学习。

(ii)继续深入理论学习

建议购买国外经典深入学习C语言的教程,人民邮电出版社-C Primer Plus(第5版),或者 机械工业出版社-C程序设计语言(第2版.新版)   

下定信心,坚持下去!希望对你有所帮助。

下面是转载的 孙海洋 版 C语言程序设计 部分内容截图。

第一、多看代码。在一定的基础之后,您应该多看其他人的代码,并注意代码中的算法和数据结构。毕竟,学习C是算法和数据结构的重要关口。当涉及到数据结构时,指针是其中的一个重要部分,大多数数据结构都是基于指针的。例如链表、队列、树、图等等,所以只有当你学好了指针,你才能真正学会C语言。

别的方面也要注意一下,比如变量的命名,库函数的用法等等。有些库函数是经常要用到的,对于这些函数的用法就要牢牢的记住。

第二、要自己动手,程序是一项真正的工作,光说不练假把式,永远就只停留在理论阶段。你可以在开始的时候练习书中的练习题。对于自己不懂的地方,自己编一个小程序实验是最好的方法,能给自己留下深刻的印象。你应该不断改正你的坏习惯和认知错误。有一个地方可以试着编一个小游戏,如果你的基础很扎实了,可以编造一些关于数据结构方面的东西。

第三、选择一个好的编译器,英文版TurboCv2.0,是最经典的C语言编译器,另外一个就是win-tc1.91  ,支持Windows下的编译。

第四、养成良好的编程习惯,基本上每本C语言教材上都会教到,作为新手一定要时时的遵守。在比较复杂的代码后面一定要有注释,然后语句的嵌套不能过长,再者,注意语句的选择,C语言对一个程序设计人是非常重要的,是开启程序设计之路的钥匙。如果不懂C语言,想写程序是非常可笑的。

(1)

#include "stdio.h"

void change(int numsSource[][20], int numsDest[][20]){

char i,j,k

for(i=0i<20i++)

for(j=0j<20j++)

numsDest[j][i]=numsSource[i][j]

}

int main(int argv,char *argc[]){

int a[20][20],b[20][20],n,i,j

printf("Input n(int 0<n<21)...\n")

if(scanf("%d",&n)!=1 || n<1 || n>20){

printf("Input error, exit...\n")

return 0

}

for(i=0i<ni++){

for(j=0j<nj++){

scanf("%d",a[i]+j)

printf("%6d",a[i][j])

}

printf("\n")

}

change(a,b)

printf("\nAfter the transpose:\n")

for(i=0i<ni++){

for(j=0j<nprintf("%6d",b[i][j++]))

printf("\n")

}

return 0

}

运行样例:

(2)题意与输入、输出要求不符,就不做了吧?

(3)

#include "stdio.h"

#include <stdlib.h>

int main(int argv,char *argc[]){

int N,k,m,n,q,*p,t

printf("Input N(int 0<N<100001,0 end)...\nN=")

while(1){

if(scanf("%d",&N)!=1 || N<1 || N>100000){

if(N==0)

printf("You have chosen to quit...\n")

else

printf("Input error, exit...\n")

return 0

}

if((p=(int *)malloc(sizeof(int)*N))==NULL){

printf("Application memory failure,exit...\n")

exit(0)

}

printf("Input %d integer(s)...\n",N)

for(m=0m<Nscanf("%d",p+m++))

printf("Input k(int N>=k>0)...\nk=")

scanf("%d",&k)

for(t=m=0m<Nm++){

for(q=m,n=q+1n<Nn++)

if(p[q]>p[n])

q=n

if(m!=q)

n=p[m],p[m]=p[q],p[q]=n

printf("%6d",p[m])

if(!t && k==p[m])

t=m+1

}

printf("\n")

printf(t ? "It is at %d\n\n" : "No find...\n\n",t)

free(p)

}

return 0

}

运行样例:

(4)

#include "stdio.h"

int main(int argv,char *argc[]){

int a[50],i,j,k,n

printf("Input n(int 0<n<50,0 end)...\n")

while(1){

printf("n=")

if(scanf("%d",&n)!=1 || n<1 || n>49){

if(n==0)

printf("You have chosen to quit...\n")

else

printf("Input error, exit...\n")

return 0

}

printf("Input %d integer(s)...\n",n)

for(i=0i<nscanf("%d",a+i++))

printf("a[0] = %d\n",a[0])

for(i=0i<ni++){

for(k=i,j=k+1j<nj++)

if(a[k]>a[j])

k=j

if(k-i)

j=a[k],a[k]=a[i],a[i]=j

printf("%6d",a[i])

}

printf("\n\n")

}

return 0

}

运行样例: