c语言是干嘛的

Python018

c语言是干嘛的,第1张

C语言是用来编写系统的。

最开始,人们手里除了机器码就是汇编,没有别的语言。但是汇编有很多硬件相关的特性,可移植性差。贝尔实验室要解决这一问题,就研发了C语言。

C语言可以跨平台,一份代码,配上不同的编译器就可以在各大电脑上运行。除此之外,C语言效率惊人,在某些情况中,如果汇编水平中等以下,编出来的汇编甚至没有C语言生成的机器码快。

现在,NOIP(现更名为CSP-J和CSP-S)仅允许初赛和复赛使用三种语言:Pascal、C、C++,C语言的重要性不言而喻。

虽然迈入了互联网时代,但是C语言的地位也没有低到可以忽略。C语言在对空间和时间要求较高的设备(如嵌入式设备)中发挥着重要功能,也可以编写各大语言的编译器,有着比较重要的地位。

如果你真的想学习编程,就请你认真的阅读下去。

大家都知道C语言很强大,这个强大一是来自其功能,第一次出名就很牛逼的编出了UNIX系统。然后跟着UNIX这个明星,于是自己的影响一路飙升。二是C语言不但能够写UNIX的操作系统,而且编写LINUX和Windows等操作系统时都离不开他的身影。三是它的实用,如果你是一个理科生,如果你学过单片机,你就知道无C不能。第四、很多就是电脑高手或黑客梦想的驱使,还有一些高手的推荐,于是你便选择的C语言。

不管你是何种原因驱使,何种目的的驱动?当你选择这个语言的时候,首先要考虑,你的基础能行不?和你的目的到底是什么?如果你是一个电脑菜鸟,或只想了解一下什么是编程,我是不赞成学习C的,因为C初学时,很伤人斗志的,也就是说你可能学习了一个月,还只能在黑色的框中徘徊,甚至资质差的只能算1+2+3+4+。。。+1000=?这个,,,会让你成为编程高手吗?显然不能!如果你以后会从事硬件方面的开发,或在软、硬件之间打交道,或一直从事软件开发,那么你一定要学习C,而且是不学不行的,有可能你还要学习汇编,因为有些情况汇编对硬件的操作比C更给力。而且他也是是不学不行的。

对于那些几乎很少和硬、软件打交道的童鞋,本人不建议学习C,因为一段时间后你会很快放弃它的,因为你知道1+2+3+。。。+1000=?根本就不能称为程序,如果你掌握技巧,你算得比计算机还快,这和你的编程高手的理想是根本搭不上边的。浪费你的时间,同时也在考验你的心理,同时更会给你迷茫。针对基础差,以后不想在软件和硬件间混以及只想学习编个程序然后就出结果的童鞋,不建议学习C,你可以学习易语言,学习VB。原因他们是高级语言,简单,易学、强大、更容易出成果。

比如VB写个窗口,构建个菜单,写个网页浏览器、写个远控(比如木马)等等,一个多月绝对能熟练掌握。我学近两年C了,都没法编出网页浏览器,更无法让一个MM图片来美化我黑不笼统的窗口,但VB你只需要一分钟,便可以让你的窗口充满色彩缤纷的效果,对于网络的端口扫描器,远程聊天控制,远程主机资源浏览等,VB都行。而且掌握他后,你变又附加的掌握了VBscript这个脚本语言。对于易语言,推荐不会英语的同学学吧,这个是中国人写的编程工具,我没用过,根据我的了解,功能也是很强大,中文的编程语言,会让你更快的掌握这个语言,编出自己的作品。

上面的一番话,只是告诉你C固然好,但不是针对所有人都好。世界上没有包治百病的仙丹,也没有适合所有人的编程语言。

对于学习了C的童鞋,你面临的是如何去深化,去巩固C。学习了C语言基础不是代表你已经会用C了,因为这才代表你刚入门,接下来你要学的是《数据结构》,这个是必修的,没有他你无法编出严谨强大的C程序,开发出自己的系统——如果有意向开发系统的。

然后你要去学习操作系统的API,这个也很重要。如果你掌握了API,那么你才能真正的可以成为自己学过C,会用C,才能知道原来C也可以无所不能。

这里是一个童鞋(08_小汪)的建议,我感觉很好,摘录下来“首先C是入门,如果想C很牛的话,就要去研究算法,C是为了过度到C++,C++会了。就要学windows程序设计,然后就学Visual c++,毕竟C++是计算机的底层。。。还有多动手写程序,不然学的永远不是自己的。。。”

然后08_小汪又推荐了四本书:

“推荐4本书《C语言陷阱和指针》,《C语言编程专家》,《thinking C++》,《数据结构-使用C++标准模板库(STL)》。。。去专门的论坛看可能会专业点,毕竟面向的对象不同。。。”

有兴趣深入研究C的童鞋,你需要读一下。

C快速入门的方法是不断的巩固、不断的编程。实践是学习和掌握的重要途径。

无论你学任何一门语言,都要一心不变的坚持下去,不要在学VB时,听某某高手说C很强大,就放弃了VB,或在学易语言时,听说易语言有局限而立即转向别的语言。这样不会成就你编程高手的梦想,只会让你习惯半途而废,然后是任何一个语言都不能学会。记住,只要你选择了,一定要走下去,最后成功的才可能是你

更多资料【【【【爱我中 华夏联盟 欢迎你】】】】】】

/*

姓名 : 胥立畅

胥立畅的学号 : 90889

胥立畅的英语成绩 : 90

胥立畅的编程成绩 : 87

姓名 : 李海燕

李海燕的学号 : 90890

李海燕的英语成绩 : 90

李海燕的编程成绩 : 78

姓名学号英语编程总成绩 平均成绩

胥立畅 90889 90.00 87.00 177.00 88.50

李海燕 90890 90.00 78.00 168.00 84.00

排序后:

姓名学号英语编程总成绩 平均成绩

胥立畅 90889 90.00 87.00 177.00 88.50

李海燕 90890 90.00 78.00 168.00 84.00

姓名 : 汪大海

汪大海的学号 : 90891

汪大海的英语成绩 : 78

汪大海的编程成绩 : 98

插入后:

姓名学号英语编程总成绩 平均成绩

胥立畅 90889 90.00 87.00 177.00 88.50

汪大海 90891 78.00 98.00 176.00 88.00

李海燕 90890 90.00 78.00 168.00 84.00

Press any key to continue

*/

#include <stdio.h>

struct student {

char name[10]

char num[20]

float score[4]

}

void Show(struct student *stu,int n) {

int i,j

printf("姓名\t学号\t英语\t编程\t总成绩\t平均成绩\n")

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

printf("%s\t%s\t",stu[i].name,stu[i].num)

for(j = 0j <4++j) printf("%.2f\t",stu[i].score[j])

printf("\n")

}

}

void Sort(struct student *stu,int n) {

int i,j,k

struct student t

for(i = 0i <n - 1++i) {

k = i

for(j = i + 1j <n++j) {

if(stu[k].score[2] <stu[j].score[2])

k = j

}

if(k != i) {

t = stu[i]

stu[i] = stu[k]

stu[k] = t

}

}

}

struct student Read(void) {

struct student stu

printf("姓名 : ")

scanf("%s",stu.name)

printf("%s的学号 : ",stu.name)

scanf("%s",stu.num)

printf("%s的英语成绩 : ",stu.name)

scanf("%f",&stu.score[0])

printf("%s的编程成绩 : ",stu.name)

scanf("%f",&stu.score[1])

stu.score[2] = stu.score[0] + stu.score[1]// 总成绩

stu.score[3] = stu.score[2] / 2.0f// 平均成绩

return stu

}

void Insert(struct student *stu,struct student astu,int n) {

int i,j

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

if(stu[i].score[2] <astu.score[2]) {

for(j = nj >i--j) stu[j] = stu[j - 1]

stu[i] = astu

break

}

}

if(i == n) stu[n] = astu

}

int main() {

int i,n = 2

struct student stu[10],tstu

for(i = 0i <n++i) stu[i] = Read()

Show(stu,n)

Sort(stu,n)

printf("排序后:\n")

Show(stu,n)

tstu = Read()

Insert(stu,tstu,n++)

printf("插入后:\n")

Show(stu,n)

return 0

}