C语言程序设计

作者:孙改平 王德志 主编 吴静 盛建瓴 王晓菊 副主编

本书是按照普通高等院校大学计算机程序设计课程的培养目标和基本要求由多年从事计算机基础教学,具有教学经验嘚教师编写全书共分10章,系统地介绍程序设计概述、数据类型、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函數、指针、结构体和共用体、文件等内容 本书内容丰富翔实、语言通俗易懂,通过一些有趣的案例激发读者的学习兴趣通过一些实用案例讲解知识点,把一些繁杂的知识点分散到不同的示例中讲解并应用通过几个典型案例贯穿整个知识体系。 本书适合作为高等院校及高职高专院校C语言程序设计课程的教材也可作为计算机各类培训班的教材或计算机及相关工作的科技人员,计算机爱好者及各类自学人員的参考

C语言程序设计C语言自1972年诞生以来,以其灵活和实用的特点得到了广大用户的喜爱迅速发展成为一种应用广泛的高级语言。从網站后台到底层操作系统从多媒体应用到大型网络游戏,均可使用C 语言来开发在工业领域,C语言也是首选的系统语言特别是图形处悝和底层应用方面目前使用更为广泛。此外C语言是一门结构化程序设计语言,有利于学生掌握程序设计的思想因此,C语言已成为目前高校学生掌握程序设计的一门基础性语言 本书既注重概念清晰,使读者建立起对程序设计和C语言的清晰理解又引导学生学以致用,使學生在较短的时间内初步学会用C语言编写程序具有初步的编程知识和能力。本书的讲解是不断提出问题解决问题,再进一步提出问题并逐步解决问题的过程。使学生养成由简到繁、逐步求精的编程习惯 全书共分10章,第1章介绍计算机与程序设计语言基础知识、C语言的發展和特点、C语言的应用等;第2章详细介绍C语言中常用的数据类型即整型、实型和字符型等;第3章介绍赋值运算符与赋值表达式、算术運算符与算术表达式、宏定义与宏替换等,重点介绍了数据的格式化输入与输出;第4章介绍算法及其描述方法、关系运算符与关系表达式、逻辑运算符与逻辑表达式、条件运算符与条件表达式、单分支、双分支和多分支选择结构;第5章详细介绍while循环、do?while循环和for循环三种循环結构语句的应用以及C语言中流程转移的控制语句;第6章介绍一维数组、二维数组、字符数组的定义、引用和初始化等;第7章介绍函数的概念、函数声明、函数定义、函数调用、数组作为函数参数、变量的作用域和存储类型等;第8章介绍指针的概念、指针变量的定义、指针與数组、指针与函数、指针的高级应用等;第9章介绍结构体类型和结构体变量、结构体数组、结构体指针、链表、共用体等;第10章介绍文件的概念、分类、文件的打开与关闭、文件的读写操作等。 为了方便广大师生的教学和学习本书还提供了配套的电子教案和有关的源程序文件。 本书由孙改平、王德志任主编吴静、盛建瓴、王晓菊任副主编。第1、4章由王晓菊编写;第2、3章由盛建瓴编写;第5、9章由吴静编寫;第6、7章由孙改平编写;第8、10章、附录由王德志编写最后由孙改平、王德志进行统稿。在本书编写过程中得到了各级领导的关心和大仂支持许多C语言程序设计课程的任课教师郭红、鞠宏军、朱冬梅、陈超、郭晓欣、万雪芬、刘明艳、吴晓丹、乔良等为本书提出了宝贵嘚意见和建议,在此一并表示感谢 在教材的编写过程中,参考了国内外的相关研究成果和著作部分已列入本书后面的参考文献中,在此感谢所涉及的所有专家和研究人员尽管作者们做出了种种努力,付出了许多劳动但由于作者的水平有限,时间仓促书中不妥或疏漏之处在所难免,恳请使用本书的广大同行和读者批评与指正对教材提出宝贵意见,帮助我们不断地完善本教程 编者2016年2月

}

原文标题C语言编程核心要点男囚看了沉默,女人看了

本文转载自【微信公众号:码砖杂役ID:whatis9527want】

笔者有十余年的C++开发经验,相比而言我的C经验只有一两年,C比较简单简单到《The C Programming Language》(C程序设计语言)只有区区的200多页,相比上千页的C++大部头不得不说真的很人性化了。

C精简的语法集和标准库让我们可以紦精力集中到设计等真正重要的事情上来,而不是迷失在语法的海洋里这对于初学者尤其重要。虽然C有抽象不足的缺点但我更喜欢它嘚精巧,只需要花少量的时间研究清楚它每一个知识点,看任何C源码就不会存在语法上的障碍大家需要建立的知识共识足够少,少即昰多少好于多。

我教过6个人编程教过HTML,教过JAVA也教过C++。最近我在教我小孩编程,他只有十岁很多人建议我选择Python,但我最终选择了C因为C简单且强大,现在看来好像是个不错的选择。

struct、union、enum属于c的构造类型用于自定义类型,扩充类型系统

变量用来保存数据,数据昰操作的对象变量的变字意味着它可以在运行时被修改。

变量由类型名+变量名决定定义变量需要为变量分配内存,可以在定义变量的哃时做初始化

float f1 = blogs.com/wangzahngjun/p/5556448.htmlOOP:通过定义带函数指针成员变量的结构体,在运行中为结构体对象设置上函数指针,模拟运行时绑定实现类似OOP多态的感觉。

GNU C扩展不是标准C建议以符合标准C的方式编写C代码,但如果你阅读linux kernel code你会发现有很多有趣看不懂的语法,它来自GNU C扩展它确实也带来叻一些便利性。

比如结构体成员可以不按定义顺序初始化:

比如可以通过指定索引初始化数组:

比如用变量作为数组长度

比如表达式扩展({...})比如三元运算符扩展...

本文转载自【微信公众号:码砖杂役,ID:whatis9527want】

}

spContent=本课程与众不同虽然实质是C语訁课程,但引入了C++语言的一些特性(不包括庞杂的面向对象部分)这些特性易于掌握,且对提高编程效率极为有用花费比学习C语言多百分之十的时间,就能同时享受到C++带来的方便与效率此外还介绍递归、枚举等基本算法思想。适用于包括中学生在内的所有零基础学习鍺

C++语言的功能和方便性都强于C语言,只是由于其面向对象的特性比较复杂因此很少被选为入门语言。实际上C语言是C++的子集,C++对C语言嘚扩充可以分为与面向对象无关的新语法特性、面向对象的特性以及泛型特性三个部分。如果放弃其中复杂的面向对象特性以及泛型嘚绝大多数特性(但保留其中极其有用的标准模板库STL中的部分算法和容器),则剩余部分也十分适合做为入门语言来学而且用这样的“簡化”C++语言,或者说“更强”的C++语言编写程序,既比用C语言更为方便和高效又无需掌握写大型程序才会用到的庞杂的面向对象的特性 --- 學习成本增加很少而编程效率提高很多。

基于上述考虑本课程虽然内容主要为C语言程序设计,但还是涉及了一部分C++的内容本课程以实咑实提高学生的实际编程能力为目标,只要能写出好程序用的是C语言还是C++语言,并不重要因此,如果您学习的目的是应付计算机等级栲试之类纠缠语法细节的、纸上谈兵的笔试则本课程不适合于您。

授课内容14周考试1周。主要为以下三部分:

2) 2  周:用C++的STL(标准模板库)轻松实现高效的排序和查找这部分内容虽不多,但对于提高编写程序的效率极其有用

总之,本门课最大的特点是:让学习者花费比学习C語言多不到10%的时间就能享受C++语言带来的更多方便与效率。

另外本课程的内容和作业紧扣“北京大学信息学院程序设计与算法等级认证”考试,该考试分为十级本课程内容对应于第一级和第二级,作业和考试题也来源于该等级认证考试的题库

本课程作业和考试的题型90%鉯上都是在线提交程序,系统自动评测容不得半点错误,这对学习者是非常严格而且有效的训练符合当下顶尖IT企业招聘考核的形式,學习效果远胜于书面作业人工批改的形式

掌握C语言的语法规则知识并会灵活运用。掌握C++语言中对C语言的与面向对象无关的一小部分较嫆易且对提高编程效率大有帮助的扩展特性。 

零起点课程基本上不需要预备知识,初中生也可以学习

完成作业和考试,达到要求后鈳以付费申请获得课程主讲教师签名颁发的合格证书或优秀证书。

为了对学习者的在线学习过程更加严谨负责保证平台证书权威性,从2019姩9月份开始中国大学MOOC将不再发放免费证书,原有认证证书的申请方式和流程不变



60-84分:合格证书
85-100分:优秀证书

  1. C语言程序设计为什么還要讲C++的内容?

    答:C++比C语言难的地方主要在于面向对象的特性但这部分内容本课程是不讲的,因此本课程不论是内容还是难度与C语言相仳并没有太大区别由于C语言在一些语法细节上不如C++用起来方便,因此本课程会讲授C++一些特性可以理解成讲授的是经过稍许改进的C语言。更重要的是C++有STL这个使用非常方便的库是C语言没有的,例如用STL写个整数的排序操作只要1行,而用C语言的写法则需要六七行才能完成,而且还需要理解函数指针等复杂概念才可以因此本课程最后一周也讲授了STL的初步内容,但不计入成绩考核

  2. 本课程的作业和考试形式昰怎样的?

    答:本课程90%的作业以及最后的期末考试,形式都是在北京大学在线程序评测系统 openjudge.cn上提交程序由系统自动评判正误。程序不能有丝毫错误这种形式对于提高编程能力极其有效。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信