当前位置:首页 » 编程语言 » c语言统计教学
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言统计教学

发布时间: 2022-07-29 03:35:30

A. c语言编程 做一个设计一个儿童算数教学程序:“咪咪数学宝”

补充:看来有人不明白,得先建题库文件啊,然后才能输入文件路径捆绑题库,比如我上面的演示中,c:\qs01.txt,你首先要先在c盘创建一个txt文件,然后在里面打字“题目 空格 答案 回车”这样输入。有了库文件程序才能读啊

比如:(你如果自己能修改我常量里的字符长度,不光数学,语文,英语题库都可以)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#defineqsLen100//问题最大长度
#defineansLen50//答案最大长度
#defineqssSize2//题库种类数量我测试只定义了小学和幼儿两个问题库,需要自己添加
#defineqssNameSize10//题库名称长度
#defineqssPathSize100//题库路径长度
typedefstructqs
{
intid;//问题编号
intcont;//题库问题数量,只有头结点存储该值
charqs[qsLen];//问题
charans[ansLen];//答案
structqs*next;
}QS;
voidnewQss(charqssName[][qssNameSize],charqssPath[][qssPathSize]);//根据输入,新建问题分类信息
intshowMenu(charqssName[][qssNameSize]);//显示题库菜单,返回用户选择的题库类别下标
QS*readFile(char*filePath);//读取问题库文件,生成链表,返回头节点
QS*randQs(QS*qsHead,intqsNum);//从题库随机抽取题目,参数:题库头节点、题库总题目数。返回:抽取的题目节点
intmain()
{
intlbNum,qsNum,cnt,i,correct,error;
charquestion[qsLen],answer[ansLen],input[ansLen];
charqssName[qssSize][qssNameSize],qssPath[qssSize][qssPathSize];//qssName:题库分类名称;qssPath:题库文件路径
QS*qsHead=NULL,*qsSelect;
srand(time(NULL));
newQss(qssName,qssPath);
lbNum=showMenu(qssName);
printf(" --开始加载题库-- ");
qsHead=readFile(qssPath[lbNum]);
qsNum=qsHead->cont;
printf("题库共%d条题目,请输入需要提取的题目数量:",qsNum);
while(1)
{
scanf("%d",&cnt);
if(cnt>0&&cnt<=qsNum)
break;
}
printf(" --开始从题库中随机抽取%d条问题-- ",cnt);
correct=0;
error=0;
for(i=0;i<cnt;i++)
{
qsSelect=randQs(qsHead,qsNum);
if(qsSelect!=NULL)
{
strcpy(question,qsSelect->qs);
strcpy(answer,qsSelect->ans);
printf("第%d题、%s?答案:",i+1,question);
scanf("%s",input);
if(!strcmp(answer,input))
{
printf("回答正确! ");
correct++;
}
else
{
printf("回答错误!正确答案是%s ",answer);
error++;
}
}
}
printf("共%d条问题,正确回答%d条,正确率%d%% ",cnt,correct,correct*100/cnt);

return0;
}
QS*randQs(QS*qsHead,intqsNum)
{
intn;
n=rand()%qsNum+1;
while(qsHead->next!=NULL)
{
if(qsHead->next->id==n)
returnqsHead->next;
qsHead=qsHead->next;
}
returnNULL;
}
voidnewQss(charqssName[][qssNameSize],charqssPath[][qssPathSize])
{
inti;
printf("--开始录入题库分类信息-- ");
for(i=0;i<qssSize;i++)
{
printf(" 请输入题库1的名称及题库文件路径 名称(不超%d个字符):",qssNameSize);
scanf("%s",qssName[i]);
printf("路径(不超%d个字符):",qssPathSize);
scanf("%s",qssPath[i]);
}
}
intshowMenu(charqssName[][qssNameSize])
{
inti;
printf(" 当前题库分类为: ");
for(i=0;i<qssSize;i++)
printf("%d、%s ",i+1,qssName[i]);
printf("请选择你要提取的题库类别(输入数字):");
scanf("%d",&i);
returni-1;
}
QS*readFile(char*filePath)
{
FILE*fp;
charqsSave[qsLen],ansSave[ansLen];
QS*qsHead=NULL,*qsTail=NULL;

if((fp=fopen(filePath,"rt+"))==NULL)
{
printf("!");
returnNULL;
}
qsHead=(QS*)malloc(sizeof(QS));
qsHead->next=NULL;
qsHead->cont=0;
while(fscanf(fp,"%s%s",qsSave,ansSave)!=-1)
{
qsHead->cont++;
QS*qsNew=(QS*)malloc(sizeof(QS));
qsNew->next=NULL;
qsNew->id=qsHead->cont;
strcpy(qsNew->qs,qsSave);
strcpy(qsNew->ans,ansSave);
if(qsHead->next==NULL)
qsHead->next=qsNew;
else
qsTail->next=qsNew;
qsTail=qsNew;
}
returnqsHead;
}

B. 如何学习C语言

如果刚开始接触c语言,听不懂也正常,不要有畏惧的心理,有些小伙伴可能看到部分同学什么都会,自己就很气馁,因为这部分同学很可能接触编程比较早,即使小孩学走路也有一个过程,刚开始有走路欲望->学会站立,腿部有力量->尝试走路,不断练习->学会走路。所以不要慌。

学C语言与走路一样,刚开始一定要有学习的欲望,然后,再制定计划,不断练习,量变会引起质变,坚持下去就发现原来这么简单。

欢迎关注公众号:c语言与cpp编程,关注后,回复“加群‘’进微信学习交流群

1、学习资料

书本推荐:《cprimerplus》难得的好书。老谭的书可看可不看,但是这本蓝皮的cprimerplus是我案头必备的参考书,后面还有完整的c99标准库,所以适合当个参考书。注意区分一下《c++primer》和《cprimerplus》

如果觉得这几本书还是有点难,那就先看《C语言程序设计》

有了经验后要去看看,例子很经典。后来进阶可以看看三剑客《c和指针》《c陷阱与缺陷》《c专家编程》

刚学C语言的话可以结合看下C语言编程经典100例;

编译器:VS,DevC++,VC++,CodeBlocks,C-Free,TurboC。关于它们的特点网上介绍很多了,就不赘述了。讲真,入门和基础阶段你用哪个无所谓,还是选自己喜欢的,不过对于初学者我们推荐DevC++。可能现在大学课堂用的还是VC++,刚入门自己习惯就行。

视频推荐:有同学曾经说过,视频这么好,上课就不用听讲了,这个是完全错误的,视频是课堂补充,上课还是一定要好好听讲的,视频可以查缺补漏,系统的学习一下。

上面提到的一些资料整理好了,可以下载:

链接:

提取码:1234

学习方法:

1、过:学习一门新的语言,第一步就是把它所涉及的基础知识大体过一点,不求深解,只求了解——第一遍:无需了解太过深入的理论,大体知道这门语言是什么样的,主要面向哪些场合,一些基本的语法格式是什么样的就可以了。

2、抄代码:刚开始写代码,没有多少人一上来就能立刻自己写一个很完善很强大的代码,甚至连基本的语法都会写错,这时候抄代码就很关键了,从书上抄,从例子里抄,边抄边想,边想边回忆语法。

3、模仿改:自己会抄写一些简单的代码,熟悉了一遍此语言的简单语法后,但还不太清楚怎样下手写一个完整的代码模块,所以这一步要仿写了,仿照给出的代码写一个属于自己的代码

4、勤调试:没有人能一下子写出完全正确的代码,自己试着写一些代码,通过不断调试来验证自己的一些想法,继续思考,再次验证,来回折腾。熟悉一些基本的调试工具以及调试方法。

5、看n遍:出错或遇到问题时,将代码从头看到尾,看了一遍又一遍,直到快全部记住时,总能找出问题原因,相信方法总会比问题多

6、练重复2-5步三遍以上,不解释。

7、创新拿出一个完全没有写过的代码,根据要求,一步步的写出来。如果写不出来,或者中间一堆错误,请参考第六步。

8、悟:主动找到写代码的感觉和成就感,并保持下去,世界上最难的语言就掌握了,将成为你软件生涯永远的工具。

C. 如何学C语言

(一)“项目驱动”式教学
目前最着名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。
大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
(二)“项目驱动”式教学应注意的问题
1.c语言程序设计教学要帮助学生树立面向工程的观点
在计算机行业中,软件是通过人们的智力活动、把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理。软件设计工作被当作一项系统工程来对待。软件的的生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。我们不难看出软件工程的复杂程度是很大的。理工科高等院校把c语言作为一门基础课程,也是为了给社会培养信息技术人才。众所周知,养成一个好的习惯是非常重要的,所以c语言程序设计作为大多数工科院校学生接触的第一门程序设计语言(有的院校讲pascal),就应该让学生树立正确的观点。那么当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性,以及统筹全局,协调关系的基本素质。
2.理论教学应从单一的“结构化程序设计”向“结构化与面向对象并举”转变
“结构化程序设计”方法是程序设计的基础,必须让学生掌握得坚实可靠。结构化程序设计的过程是培养学生思维能力的过程,在教学中经常发现有些学生的思维混乱。这些都是缺乏思维训练的结果。结构化程序设计的训练不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性。所以在授课过程中要注意讲解结构化程序设计的思想时应突出两点:(1)程序的质量首先取决于它的结构。(2)程序设计的基本方法是自顶向下地逐步求精和模块化。
在c程序教学过程中,越到后面的章节,学生越会产生设计程序逐渐变难的感觉,这是不符合逻辑的一种怪现象。按照常理,C语言学的越多,说明你的程序设计知识越多,设计起程序来应该更加得心应手,那么出现这种现象的原因何在呢?当然该问题的出现的原因是多方面的,但是其中最重要的一点就是长期以来程序设计的观念不是以如何处理好对象为出发点,而是以如何使用好语言为基本点。受这种思想的影响,我们的程序设计教学大多数不是以如何解决好问题为重点,而是以讲解语法规则和语句格式为重点,是“说明书”式的教学。这样做造成的结果就是见到一个程序后学生首先想到是该用哪条语句,而不是思考怎样合理的解析。要切实解决这个问题,首先应该改变程序设计的观念。“面向对象程序设计”思想是目前最为流行、极为实用的一种程序设计方法,但是让学生直接接触“面向对象程序设计”,肯定不能对程序设计打下牢固的基础。“结构化与面向对象并举”是现代计算机程序设计的发展趋势,应该认真探索研究,让学生有一个较为轻松的学习过程。程序设计的实质就是编写处理对象的过程,所以将c与c++有机的融为一体的教材应该是首选教材,在教学过程中,我们应该从社会发展的角度进行探索研究,将目前最为流行又极为实用“面向对象程序设计”思想融合到c语言教学中。
3.c语言教学应培养学生良好的程序设计风格
具有良好的设计风格应该是程序员所具备的基本素质,在实际的项目中程序员往往都有自己的一些编程风格。目前95%以上的程序设计书籍不注重程序设计风格问题,这导致了很多学生没有良好的程序设计风格,在他们刚刚毕业踏入社会时,如果周围的同事没有良好的编程风格,那么很难通过环境来使自己提高这方面的素质,即使有提高也不容易比较全面的提高。因此在学生接触的第一门程序设计语言教学中,就应该培养学生良好的程序设计风格,使他们一进工作环境就具备这个素质。
Pascal设计者N.Writh教授十分重视程序设计风格的养成,他坚信“教给学生们以表达他们思维的语言会深深地影响他们思维和创造发明的习惯,而正是这些语言本身的混乱直接影响着学生们的程序设计的风格”,他这里所指的“这些运用”是当时那些主要用于程序设计教学的计算机语言。对学生来讲,一开始就强调程序设计风格很有必要,良好的程序设计风格不仅有助于提高程序的可靠性、可理解性、可测试性、可维护性和可重用性,而且也能够促进技术的交流,改善软件的质量。所以培养良好的程序设计风格对于初学者来说非常重要。
程序设计风格,实际上是指的是编码风格。在教学过程中应从源程序文档化,数据说明的原则,输入/输出方法这三个方面培养学生的编码风格,进而从编码原则探讨提高程序的可读性、改善程序质量的方法。
(1)源程序文档化。编码的目的是产生程序,但是为了提高程序的可维护性。源代码是需要实现文档化的。源程序文档化包括选择标识符(变量和标号)的名字、安排注释以及标准的书写格式等。
①选择标识符的命名规则。标识符包括模块名、变量名、常量名、标号名、子程序名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能顾名思义。另外在模块名、变量名、常量名、标号名、子程序名中使用下划线是一种风格。使用这一技术的一种广为人知的命名规则就是匈牙利命名法(变量类型由一个或两个字符表示,并且这些字符将作为变量名的前缀)。当然使用匈牙利命名法与否都没有错误,重要的是要保持一致性——在整个程序中使用相同的命名规则。这就是说,如果你在一个小组环境中编程,你和其他小组成员应该制定一种命名规则。并自始至终使用这种规则。如果有人使用了别的命名规则,那么集成的程序读起来将是很费劲的。此外,你还要与程序中用到的第三方库(如果有的话)所使用的风格保持一致。如果可能的话,你应该尽量使用与第三方库相同的命名规则,这将加强你的程序的可读性和一致性。
②注释。程序中的注释是程序设计者与程序阅读者之间通信的重要手段。注释能够帮助读者理解程序,并为后续测试维护提供明确的指导信息。因此,注释是十分重要的,大多数程序设计语言提供了使用自然语言来写注释的环境,为程序阅读者带来很大的方便。注释分为功能性注释和序言性注释。
a.功能性注释。功能性注释在源程序中,用以描述其后的语句或程序段是在做什么工作,也就是解释下面要“做什么”,而不是解释下面怎么做。对于书写功能性注释,要注意以下几点:第一描述一段程序,而不是每一个语句。第二利用缩进和空行,使程序与注释容易区别。第三注释要准确无误。
b.序言性注释。序言性注释通常位于每个程序模块的开头部分,它给出程序的整体说明,对于理解程序具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关内容包括:程序标题;有关该模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历:模块设计者、复审考、复审日期。
③用标准的书写格式。源程序清单的书写建议采用以下几点:
a.每行只写一条语句;
b.用分层缩进的写法显示嵌套结构层次,这样可使程序的逻辑结构更加清晰,层次更加分明。
c.书写表达式时适当使用空格或圆括号作隔离符。
d.在注释段周围加上边框;
e.注释段与程序段、以及不同的程序段之间插入字行;
(2)数据说明采用的原则。在编写程序时,要注意数据说明的风格。
数据说明的次序如果规范,将有利于测试,排错和维护。首先说明的先后次序要固定,例如,按常量说明、简单变量类型说明、数组说明用数据块说明、所有的文件说明的顺序说明。当然在类型说明中还可进一步要求,例如按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑说明。
其次当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。
最后对于复杂数据结构,应利用注释说明实现这个数据结构的特点。
(3)输入/输出方法。输入/输出的方式和格式应当尽量避免因设计不当给用户带来的麻烦。这就要求,源程序的输入/输出风格必须满足能否为用户接受这一原则。所以在设计程序时,应考虑以下原则:输入数据时,要使输入的步骤和操作尽可能简单,应允许使用自由格式输入;应允许缺省值;对输入的数据要进行检验,以保证每个数据的有效性。
(三)结束语
在教学过程中,我们让学生设计一个程序模拟体育彩票的销售与对奖的过程,取得了良好的效果。他不仅启发和诱导了学生独立思考、积极思维的主动性,而且充分调动了学生学习的自觉性和积极性,使学生融会贯通地掌握了所学知识,提高了分析问题和解决实际问题的能力。
搞好c程序设计的教学工作涉及的因素很多,如果以项目来驱动教学,首先让学生树立面向工程的思想,其次把教学从单一的“结构化程序设计”向“结构化与面向对象并举”转变,最后特别要培养学生养成良好的编码风格,从而使他们学会能够“干什么”,那么我们认为教学目的就达到了。

D. c语言编程

(一)“项目驱动”式教学
目前最着名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。
大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
(二)“项目驱动”式教学应注意的问题
1.c语言程序设计教学要帮助学生树立面向工程的观点
在计算机行业中,软件是通过人们的智力活动、把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理。软件设计工作被当作一项系统工程来对待。软件的的生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。我们不难看出软件工程的复杂程度是很大的。理工科高等院校把c语言作为一门基础课程,也是为了给社会培养信息技术人才。众所周知,养成一个好的习惯是非常重要的,所以c语言程序设计作为大多数工科院校学生接触的第一门程序设计语言(有的院校讲pascal),就应该让学生树立正确的观点。那么当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性,以及统筹全局,协调关系的基本素质。
2.理论教学应从单一的“结构化程序设计”向“结构化与面向对象并举”转变
“结构化程序设计”方法是程序设计的基础,必须让学生掌握得坚实可靠。结构化程序设计的过程是培养学生思维能力的过程,在教学中经常发现有些学生的思维混乱。这些都是缺乏思维训练的结果。结构化程序设计的训练不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性。所以在授课过程中要注意讲解结构化程序设计的思想时应突出两点:(1)程序的质量首先取决于它的结构。(2)程序设计的基本方法是自顶向下地逐步求精和模块化。
在c程序教学过程中,越到后面的章节,学生越会产生设计程序逐渐变难的感觉,这是不符合逻辑的一种怪现象。按照常理,C语言学的越多,说明你的程序设计知识越多,设计起程序来应该更加得心应手,那么出现这种现象的原因何在呢?当然该问题的出现的原因是多方面的,但是其中最重要的一点就是长期以来程序设计的观念不是以如何处理好对象为出发点,而是以如何使用好语言为基本点。受这种思想的影响,我们的程序设计教学大多数不是以如何解决好问题为重点,而是以讲解语法规则和语句格式为重点,是“说明书”式的教学。这样做造成的结果就是见到一个程序后学生首先想到是该用哪条语句,而不是思考怎样合理的解析。要切实解决这个问题,首先应该改变程序设计的观念。“面向对象程序设计”思想是目前最为流行、极为实用的一种程序设计方法,但是让学生直接接触“面向对象程序设计”,肯定不能对程序设计打下牢固的基础。“结构化与面向对象并举”是现代计算机程序设计的发展趋势,应该认真探索研究,让学生有一个较为轻松的学习过程。程序设计的实质就是编写处理对象的过程,所以将c与c++有机的融为一体的教材应该是首选教材,在教学过程中,我们应该从社会发展的角度进行探索研究,将目前最为流行又极为实用“面向对象程序设计”思想融合到c语言教学中。
3.c语言教学应培养学生良好的程序设计风格
具有良好的设计风格应该是程序员所具备的基本素质,在实际的项目中程序员往往都有自己的一些编程风格。目前95%以上的程序设计书籍不注重程序设计风格问题,这导致了很多学生没有良好的程序设计风格,在他们刚刚毕业踏入社会时,如果周围的同事没有良好的编程风格,那么很难通过环境来使自己提高这方面的素质,即使有提高也不容易比较全面的提高。因此在学生接触的第一门程序设计语言教学中,就应该培养学生良好的程序设计风格,使他们一进工作环境就具备这个素质。
Pascal设计者N.Writh教授十分重视程序设计风格的养成,他坚信“教给学生们以表达他们思维的语言会深深地影响他们思维和创造发明的习惯,而正是这些语言本身的混乱直接影响着学生们的程序设计的风格”,他这里所指的“这些运用”是当时那些主要用于程序设计教学的计算机语言。对学生来讲,一开始就强调程序设计风格很有必要,良好的程序设计风格不仅有助于提高程序的可靠性、可理解性、可测试性、可维护性和可重用性,而且也能够促进技术的交流,改善软件的质量。所以培养良好的程序设计风格对于初学者来说非常重要。
程序设计风格,实际上是指的是编码风格。在教学过程中应从源程序文档化,数据说明的原则,输入/输出方法这三个方面培养学生的编码风格,进而从编码原则探讨提高程序的可读性、改善程序质量的方法。
(1)源程序文档化。编码的目的是产生程序,但是为了提高程序的可维护性。源代码是需要实现文档化的。源程序文档化包括选择标识符(变量和标号)的名字、安排注释以及标准的书写格式等。
①选择标识符的命名规则。标识符包括模块名、变量名、常量名、标号名、子程序名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能顾名思义。另外在模块名、变量名、常量名、标号名、子程序名中使用下划线是一种风格。使用这一技术的一种广为人知的命名规则就是匈牙利命名法(变量类型由一个或两个字符表示,并且这些字符将作为变量名的前缀)。当然使用匈牙利命名法与否都没有错误,重要的是要保持一致性——在整个程序中使用相同的命名规则。这就是说,如果你在一个小组环境中编程,你和其他小组成员应该制定一种命名规则。并自始至终使用这种规则。如果有人使用了别的命名规则,那么集成的程序读起来将是很费劲的。此外,你还要与程序中用到的第三方库(如果有的话)所使用的风格保持一致。如果可能的话,你应该尽量使用与第三方库相同的命名规则,这将加强你的程序的可读性和一致性。
②注释。程序中的注释是程序设计者与程序阅读者之间通信的重要手段。注释能够帮助读者理解程序,并为后续测试维护提供明确的指导信息。因此,注释是十分重要的,大多数程序设计语言提供了使用自然语言来写注释的环境,为程序阅读者带来很大的方便。注释分为功能性注释和序言性注释。
a.功能性注释。功能性注释在源程序中,用以描述其后的语句或程序段是在做什么工作,也就是解释下面要“做什么”,而不是解释下面怎么做。对于书写功能性注释,要注意以下几点:第一描述一段程序,而不是每一个语句。第二利用缩进和空行,使程序与注释容易区别。第三注释要准确无误。
b.序言性注释。序言性注释通常位于每个程序模块的开头部分,它给出程序的整体说明,对于理解程序具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关内容包括:程序标题;有关该模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历:模块设计者、复审考、复审日期。
③用标准的书写格式。源程序清单的书写建议采用以下几点:
a.每行只写一条语句;
b.用分层缩进的写法显示嵌套结构层次,这样可使程序的逻辑结构更加清晰,层次更加分明。
c.书写表达式时适当使用空格或圆括号作隔离符。
d.在注释段周围加上边框;
e.注释段与程序段、以及不同的程序段之间插入字行;
(2)数据说明采用的原则。在编写程序时,要注意数据说明的风格。
数据说明的次序如果规范,将有利于测试,排错和维护。首先说明的先后次序要固定,例如,按常量说明、简单变量类型说明、数组说明用数据块说明、所有的文件说明的顺序说明。当然在类型说明中还可进一步要求,例如按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑说明。
其次当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。
最后对于复杂数据结构,应利用注释说明实现这个数据结构的特点。
(3)输入/输出方法。输入/输出的方式和格式应当尽量避免因设计不当给用户带来的麻烦。这就要求,源程序的输入/输出风格必须满足能否为用户接受这一原则。所以在设计程序时,应考虑以下原则:输入数据时,要使输入的步骤和操作尽可能简单,应允许使用自由格式输入;应允许缺省值;对输入的数据要进行检验,以保证每个数据的有效性。
(三)结束语
在教学过程中,我们让学生设计一个程序模拟体育彩票的销售与对奖的过程,取得了良好的效果。他不仅启发和诱导了学生独立思考、积极思维的主动性,而且充分调动了学生学习的自觉性和积极性,使学生融会贯通地掌握了所学知识,提高了分析问题和解决实际问题的能力。
搞好c程序设计的教学工作涉及的因素很多,如果以项目来驱动教学,首先让学生树立面向工程的思想,其次把教学从单一的“结构化程序设计”向“结构化与面向对象并举”转变,最后特别要培养学生养成良好的编码风格,从而使他们学会能够“干什么”,那么我们认为教学目的就达到了。
我可以帮助你,你先设置我最佳答案后,我网络Hii教你。

E. c语言如何学习

相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:

一是学习顺序

先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。

c11.jpg

二是学习方法

人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。

c12.jpg

最后强调一点

很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。

学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。

F. C语言怎么学习啊

如何 学习C语言
时间:2007-1-5 17:23:03 作者:梁肇新

某天,你需要完成一个求100的阶乘的作业,于是你搬来一个最新的电脑,为它安装了最新的windows vista操作系统,然后坐在它的身前,喊“喂电脑,给我计算100的阶乘”,电脑说“ok, wait a moment”; 过了一会,一盘香菇小白菜端了上来!呵呵,电脑不是waiter, 你喂它它是不会有反应的,如果你真的wait a moment, 恐怕你就需要wait one more moment了!一万年后,人们就把你命名成“望夫崖”。
既然电脑不是伺应生,听不懂我们的话,那么我们要怎么控制它呢?如果你们给我装聋作哑,我会告诉你期末挂了你,哦,你立马老实了!对于电脑,我要怎么才能使唤它,让它为我工作呢?不错,我们有个强力工具,C语言!
好,我们把上面的场景复习一下:
你要我算100的阶乘,于是我去机房上机,编写了一个程序:
( 参加ppt......)
运行程序,哦,结果出来了!

有人认为,现在是java和.net的时代,有谁还需要C以及汇编呢?孰不知,java和.net是建立在软件之上的,是为了垄断市场而建立起来的体系,犹如挖好一个金壁辉煌的坑,请你往下跳,还自以为站在巨人的肩膀上,事实上成了坑底之蛙。要成为一个真正的程序员,并期望成为一个程序员高手,必须从机器出发,从cpu到操作系统,再到软件体系,高手的境界就是悟道后的明镜灵台,软件设计出神入化,我就是程序,程序就是我。
听完我讲高手的境界,于是乎你很受感动,说:我要努力学习,向高手学习!隔天就买了一堆MFC, VB, JAVA以及.NET的书回来,早上五点钟起来背书!这样是不行的,正确的入门方法只有一个,要证大道,唯有此法!同学们,从C语言入手,努力学好C语言!
旁观者李四说:此人大笨也!我用鼠标随便拖几个控件,就是一个xxx管理系统了,你用C语言恐怕是一年也写不出来吧!好吧,我要承认,讲这话的都已经是mS的奴才了,别的我不了解,MFC本身就是一个封闭的架构,从MFC入手学习,你只会形成一种封闭的思维模式,因为MS希望很多人只学会表面的东西,不致成为高手,所以它大力推荐所谓的可视化的程序开发工具,也真有很多人愿意上他的当,最后真正迷失方向。说他坐不了程序吧,他也可以作,但是如果程序复杂一点,出现问题时,问题出再哪里就搞不清楚了,反正是不清楚!
梁肇新,大牛啊,他说:“我就搞不懂了,用鼠标怎么写程序呢?在我的公司里,高手的键盘响个不停,鼠标偶尔响一下,新手是鼠标响个不停,键盘偶尔响一下,他们的薪水相差的就不是一倍那么多了!”
C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),君不见Windows API都是C语言函数的接口?Unix/Linux绝大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多,大多都是依靠某种Application Framework,比如所谓的VC++,其实就是指VC IDE + C++语言 + MFC(现在重点已转向ATL、WTL),但是Windows服务、网络、驱动程序等底层软件,还是C语言开发的。各种语言的编译器,包括java虚拟机,都是用C语言开发的。各种嵌入式设备,如手机、PDA也都是C语言开发的。C语言历史悠久,其内容也绝非谭浩强老师的《C语言程序设计(第二版)》所描述的那么简单——那本书只是针对中国国情的教学入门书而已。
学生总喜欢问:那种语言好?学那种语言有前途?这种问题天天在讨论,永无休止。其实我觉得大家所关心的,无非是那种语言更有“钱途”,学习那种语言毕业后能够轻松找到高薪的工作——当年我也是这么想。那么,我告诉你,如果你精通C语言,请你去华为,不要在小池塘里浪费青春了!
OK, 听了我苦口婆心的劝告,你准备从C语言入手,开始攀登程序员高手这座山峰了,在你出发之前,你的行囊中需要准备什么呢?
第一个要装进行囊和你一起前进是“规范的格式”,有很多教科书,参考书,不太注重程序的格式的问题,写出的程序就象一堆堆的垃圾一样,这也导致了现在很多人写的程序中有很多的废码,垃圾代码,这和那些入门的书有非常大的关系,要把那些作者都拿来打打PP。真正的商业程序绝对是规范的,张三写的程序和李四的程序格式大致相同,各种标识符的命名规则一样,否则谁也看不懂你写的程序。如果写出来的代码谁也看不懂,那绝对是垃圾。如果要把那些垃圾翻半天,勉强才把金子找出来,那这样的程序不如不要,还不如重新写过,这样,思路会更清楚一点。所以说,规范的格式是入门的基础。那这个规范的格式包括什么呢?不少啊,要坚持才能做到!长标志符命名,代码缩进,一对大括号范围不超过一屏幕,等等。
第二个要装进行囊的是耐心,所谓工欲善其事,必先利其器。要想成功,没有一个相对平淡的过程是不可能的。这不仅仅指你在学习过程中要有耐心,要循序渐进,而且也说的是另一个重要的方面:调式程序。调试是写程序过程中一个重要的方面,如果有人能一次写成程序,牛啊,而且是大牛,不光是大牛,还是老子骑的那头青牛,凡人是做不道的!调试是每个程序必定经历的历程。经常有同学问我:老师,我的程序完全没错误啊,都是照书抄的啊!怎么就运行不出来呢?对于这个问题我也看不出来!你们有问题可以找我,找其他的老师,老师找谁啊?李师父?那是很荒谬的!我就只好坐下来调试,这个说实话,调试是很枯燥的,所以有同学抱怨说我操作太快,不理解为什么要这样,为什么要那样,我的脾气不太好,一烦躁就会骂人地,所以,这个就需要你们自己修炼内功了!

有了这两个就可以了,可以出发了,估计有人说了,英语和数学不要了?大家都说大学生了,这种问题就不要问了嘛!你已经用早晨和傍晚的时光学习了英语了,我这个没有要去,计算机专业英语超简单,小学水平而已,记住一些专业词汇就可以了!关于数学,说数学好,写程序就好是没有科学根据的!我就有个同学,数学回回100分,写程序也就是hello world的程度,不过人家现在是数学博士了!惭愧啊!做为的大学生,而且是我们这个专业的大学生,已经完全具备了写程序所需要的数学素养了!所以这个不是我们要担心的,Ready? Go!

第一招,学什么呢?打狗棍法!呵呵
有一个伟人说过:“重复权威是成熟的必经之路”,这是站在巨人的肩膀上的做法,习武之人首先要学的都是各种套路,比方说辟邪剑法,然后才能融会贯通,开宗流派;我们学习写程序也要这样来,这是一个捷径,帮你走得更远得捷径。
看书,看好书!书中所写,是前人数十年经验所写,看十本书,就相当于汲取了前人数十年的功力,那么你的内功也会迅速上升1甲子。:)书当然要看好书,只有好书才营养丰富。要做到读书破万卷,编程如有神;枯燥的看书是很郁闷的,很容易变成化石!现在很多是书都是用源码说明问题的,源码就像是动画、就像是幻灯片,把书中的招式一一演练给你看。可以说高手的经验大都是源自代码,最后也都化成源码展现在大家面前,把书上的程序一个一个的输入(用键盘,用你的手指)到电脑中,编译运行。自己手工输入这一步不能省略,现在很多书有配套源码,很多同学或者成年人学习的时候都耍小聪明,直接把源码复制过去编译运行,hoho, 这是没有效果的。
自然,我让你输入程序不是让你练习盲打,你在输入的过程就可以品出程序的好坏来了,如果发现自己输入了很多重复代码,那至少这个程序的结构就不好了,穷则变,变则通嘛,你就想改进它啊,这不是很好吗?
当然,程序输得多了,盲打功力也上了一个台阶,键盘敲得快了,薪水也跟着涨上去了!^_^
不过,键盘敲得快不代表你的程序就写得好,否则学校只要每个学生发一份盲打联系软件,四年毕业后,个个都是程序高手了!
好了,你输了一个程序进电脑了,锻炼了手部肌肉,也运行出了结果,愉悦了身心,就此满足了?那离高手还远呢,要变成高手,你还要锻炼一下你得脑部肌肉!拿起你得笔,拿起你得纸,用你得大脑,这号称世界上最精密的机器来运行你输入的程序,记录下不同运行时刻变量的值,记录下程序的运行分支,最后发现,这个程序被你解剖到了纸上,我相信也解剖到了你的心里!这是捷径的核心,一定要记住,输入的程序不是说正确运行就完事了,要去阅读一下代码,利用笔和纸做辅助工具,做一下笔记,这就是重复权威 ,当然,如果你是天才,那请你塞上耳朵,你不在我们讨论的范围之内!
为什么这一步很重要呢?
大家刚开始学习的时候,是不是有种感觉,如果让你写一个程序,你从哪里下手呢?前面?后面?上面?下面?为了解决这个问题,我的程序该如何写呢?抓耳挠腮,好烦啊,于是乎干脆睡觉去,不写了,你看,这种行为是要打PP的!
练武功,总是先重复师父的动作,才能有自己的动作,所以也让我们重重复别人写的程序开始,然后再写自己的程序吧!
遵循这个方法,你们就跟着组织走上了通往罗马的大路了!
接下来,你得走啊,不走怎么到罗马呢? 把你学会的程序设计方法应用到你写的程序中去啊!
某天,你看到这里有个问题,你有了想法,怎么办?上机去,和键盘奋战去!stop, stop! 暂停一下,上机之前,不要忘记了你的笔和纸,勇敢地把你的想法写下来,如果写不出来,就不要去机房浪费爸爸妈妈的血汗钱了!
当然,你不能乱写啊,写出来的东西怎么样才叫不是乱写的呢?实践是检验真理的唯一标准!用你的大脑去运行一边啊,不是叫“人程序合一”嘛?,这就是了!学武功就要学绝世武功!虽然号称最精密,实际效果上,人脑还是没有电脑的准确度的,如果你的大脑能马马虎虎地运行出来之后,那么OK,带上规范的格式和耐心,去上机吧!

自然,我们说一天到晚面对字符界面的TC是有些郁闷,大家都习惯了windows,微软的客户体念设计中心可不是吹出来的!windows多好,色彩斑斓的。当你修炼到我这个程度的时候,非要听这京剧才文思泉涌的写程序的时候,当然要用windows下的集成开发环境了。但是对大家来说,不是现在,windows是很危险地,程序员还是回到TC中去吧!
TC至少有一个好处,可以锻炼我们使用组合键的习惯,可以锻炼我们使用键盘编程的习惯,回想我们刚刚说的梁某说的话“用鼠标怎么编程呢?”有同学不免要提出疑问了,我是80年代甚至是90年代生人,你还让我面对那么枯燥的输入输出界面?我跟你有代沟!我期待有更丰富更吸引人的交互手段哦,这个问题问得好,C语言中也有图形啊,完全可以满足大家寓教于乐得心理!让我们来看这个程序,很简单,就是在屏幕上话一个周期得正弦波!
(参见ppt......)
运行效果是不是很好?你学数据结构的时候,树啊,图啊,你都可以这样输出啊,很多地方你都可以做的更好呢!

好了,到这里,我们基本解决了在学习C语言程序设计时的一些方法论的东西,关于具体的学习过程,如果你要我在这里给你们讲指针要如何学习?函数要如何学习?那我讲的内容也不会多于任课老师的内容,或者开个专题叫“如何学好指针”,当然,如果你愿意和我探讨一下指针的本质和高级应用的话,课后,课后啊!

现在,我们要谈最后一个问题!我们这个专业的女生的比例较其他的工科专业还是要高一些的,不知道为什么经常到如下的说法:1,我是女生,我不适合写程序啊;2,我的性格比较外向,不适合坐下来安静的写程序呢!
性格外向不适合写程序?你们看我啊,觉得我是性格内向的任吗?程序员也非常需要发散的外向型思维,老比,地球上最富裕的人说,他招程序员更愿意招原来是学物理的人,因为学物理的人的思维可以从极大(宇宙)到极小(原子)。所有,说性格外向不适合写程序的话是懒惰的借口,是要掩盖他不可告人的目的的接口!狂打PP!
女生又为什么不适合写程序呢?我到知道一个理由,对皮肤不好啊!你们看我这满脸沧桑的,就知道了!除此之外,还会又其他的理由吗?英国科学家早就证明了男女的区别完全不是人们想象的那样,很多方面女性是要超过男性的!想想以前的母系社会,现在的惠安女!
我就见过一个上市公司的研发二部全是女性!,从软件工程师到硬件工程师再到部门经理都是女性,业绩根本不输其他的研发部门,这个公司在湖南,不是我瞎掰的!

G. 自学c语言 零基础 看什么书 该怎么学

现在,市面上的
C语言书籍多的数不过来,但是很多不适合你这种初学者使用,作为一名老程序员,我给你推荐几本我看过认为还不错的书:
1)
《C语言小白变怪兽》:既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。同时,最重要的是,这本书的作者还在不断地更新这本书,我认为最大的特点是通俗易懂,深入浅出,只要认真看,就一定能看懂,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2)
《啊哈C语言》:适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
上边这两本书是我推荐给你用于C语言入门的,我不建议你使用谭浩强的《C语言程序设计》这本书入门,虽然这本书的知名度很高,因为很多大学把它作为C语言的授课教材,然而,这本书被吐槽最多,不但代码不标准,而且有很多错误,据说可以找出几十个错误,这样很容易误导你这种小白。
等你有一定的C语言基础了,可以看下面的这几本书,进一步提升你的编程水平:
1)
《C
Primer
Plus》:畅销
30
余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。
2)
《C程序设计语言,The
C
Programming
Language》:C语言创始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的着作,和《C
Primer
Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。
3)
《C专家编程》:适合已经具备C语言基础、想进阶的读者。这貌似是一本吐槽C语言的书,基本上介绍了大多数C语言的坑,有不少精髓,在C语言界久负盛名,进阶时一定要看。
4)
《C陷阱与缺陷》:和《C专家编程》类似,也是给C语言挑刺的,阐述了很多容易让人误解的语法细节,重在帮助C程序员绕过编程过程中的陷阱和障碍。
5)
《程序员的自我修养
--
链接、装载与库》:这真是一本深入骨髓的书,让你彻底明白程序的编译、链接、装载和运行的全过程,你会从此上天,拉开和别人的差距,看任何问题都有了深度和高度。重点推荐!
所有的这些书我都有电子版,需要可以找我要!

H. c语言编程教学

C语言是国际上广泛流行的,很有发展前途的计算机高级语言.它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件.
早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内).由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差.为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),例如:对内存地址的操作,位操作等).人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身.于是,C语言就在这种情况下应运而生了.
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60. 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序.1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言.CPL语言在ALGOL 60的基础上接近了硬件一些,但规模比较大,难以实现.1967年英国剑桥大学的Matin Richards对 CPL语言作了简化,推出了BCPL(Basic Combined Programming Language)语言.1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX操作系统,在PDP-7上实现. 1971年在PDP-11/20上实现了B语言,并写了UNIX操作系统.但B语言过于简单,功能有限.1972年至 1973年间,贝尔实验室的 D.M.Ritchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母).C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等). 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的.1973年,K.Thom- pson和D.M.ritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版.原来的 UNIX操作系统是1969年由美国的贝尔实验室的 K.Thompson和D.M.Ritchie开发成功的,是用汇编语言写的).
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用.直到1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意.1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所做的工作大大简化了,这也推动了UNIX操作系统迅速地在各种机器上实现.例如,VAX,AT&T等计算机系统都相继开发了UNIX.随着 UNIX的日益广泛使用,C语言也迅速得到推广.C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成.1978年以后,C语言已先后移植到大,中,小,微型机上,已独立于UNIX和PDP了.现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一.
以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合着了影响深远了名着《The C Programming Lan- guage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C.1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充 ,制定了新的标准,称为ANSI C.ANSI C比原来的标准C有了很大的发展.K&R在1988年修改了他们的经典着作《The C Progra- mming Language》 ,按照ANSI C的标准重新写了该书.1987年,ANSI C又公布了新标准--87 ANSI C .目前流行的C编译系统都是以它为基础的.
==== 上面说的87ANSI C已经老了,
现在最新的标准是C98