C语言程序设计(卢敏)读书报告
课程的主要内容:
第1章C语言程序设计概述
本章要点1.1计算机语言的发展1.2简单的C语言程序介绍1.2.1简单C语言程序示例1.2.2C语言程序的构成1.2.3C语言的特点1.3运行C程序的步骤与方法1.3.1实现C语言程序执行的步1.3.2在TC2.0下运行C程序1.3.3在Microsoft Visual C++下运行C程序本章要点:1计算机语言的发展律2C语言程序的构成3运行C语言的步骤与方法4C语言的两种运行环境。while语句流程图怎么画
第2章C语言程序设计基础本章要点2.1基本数据类型2.1.1整型数据2.1.2实型数据2.1.3字符型数据2.2常量与变量2.2.1常量与符号常量2.2.2变量2.3格式输入/输出函数2.3.1格式化输出函数printf()2.3.2格式化输入函数scan()2.4字符数据的输入输出2.4.1putchar()函数2.4.2getchar()iN数第3章运算符、表达式和常用函数
本章要点3.1算术表达式3.1.1算术运算符与算术表达式3.1.2自增、自减运算3.2赋值表达式3.3关系表达式和逻辑表达式3.3.1关系运算符与关系表达式3.3.2逻辑运算符与逻辑表达式3.4其他表3.4.1条件表达式.4.2逗号表达式3.4.3位运算3.5多种类型混合运算3.5.1类型转换3.5.2运算符优先级和运算符结合方向3.6常用函数3.6.1常用数学函数3.6.2常用字符函数3.6.3其他常用函数
第4章算法与控制结构
本章要点4.1算法的概念及特性4.1.1算法的概念4.1.2算法的特性4.2算法的表示4.2.1用自然语言表示算法4.2.2用流程图表示算法4.2.3N.S流程图4.3顺序结构4.4选择结构4.4.1if语句4.4.2 if语句的嵌套4.4.3switch语句4.5循环结构4.5.1while语句4.5.2do.while语句4.5.3for语句4.6其他控制语句4.6.1break语句与continue语句4.6.2goto语句4.7循环的嵌套结构4.8循环程序应用第5章数组
本章要点5.1一维数组5.1.1一维数组的定义5.1.2一维数组元素的引用5.1.3一维数组应用5.2二维数组5.2.1二维数组的定义5.2.2二维数组的引用5.2.3二维数组应用5.3字符数组5.3.1字符数组的定义5.3.2字符串和字符数组5.3.3字符数组的输入/输出5.3.4字符串应用5.3.5常用字符串函数第6章函数
本章要点6.1函数概述6.1.1函数概述6.1.2C程序构成6.2函数定义和函数调用6.2.1函数定义6.2.2函数调用6.2.3函数声明6.3函数间的参数传递6.3.1函数调用过程及参数传递6.3.2传数值6.3.3传地址6.4函数嵌套调用和递归调用6.4.1函数嵌套调用6.4.2函数递归调用6.5变量的作用域和变量存储类别6.5.1全局变量和局部变量6.5.2变量的存储类别第7章编译预处理
本章要点7.1宏定义7.1.1不带参数的宏定义7.1.2带参数的宏定义7.2文件包含7.3条件编译第8章指针
本章要点8.1指针基础8.1.1变量的地址和指针的概念8.1.2指针变量的定义8.1.3指针变量的引8.1.4指针变
量作为函数参数8.2指针和数组8.2.1指向数组元素的指针8.2.2通过指针引用数组元素8.2.3用数组名作函数参数8.2.4指针和多维数组8.3指针和字符串8.3.1字符串的表示形式8.3.2字符指针作函数参数8.4指针数组和指向指针的指针8.4.1指针数组的概念8.4.2指向指针的指针8.4.3main()函数的参数8.5指针和函数8.5.1指针作为函数的返回值8.5.2指向函数的指针第9章结构体、共用体和枚举
本章要点9.1结构体的基本概念9.1.1结构体类型的定义9.1.2结构体变量的定义9.1.3结构体变量的引用9.1.4结构体变量的赋值9.1.5结构体变量的初始化9.1.6结构体的嵌套9.2结构体数组9.2.1结构体数组的定义9.2.2结构体数组的初始化9.3指针和结构体9.3.1指向结构体变量的指针9.3.2指向结构体数组的指针9.3.3用结构体变量和指向结构体变量的指针作函数参数9.4单向链表9.4.1链表概述9.4.2动态存储分配库函数9.4.3单向链表的基本操作9.5共用体9.6枚举第10章文件
本章要点10.1文件的基本概念10.1.1文本文件和二进制文件10.1.2缓冲文件系统10.1.3文件类型指针10.2文件的打开和关闭10.2.1打开文件10.2.2关闭文件10.3文件的读写10.3.1字符方式文件读写函数10.3.2字符串方式文件读写函数10.3.3格式化文件读写函数10.3.4数据块读写函数10.3.5其他相关函数
习题附录1字符与ASCII码对照表附录2C语言中的关键字附录3运算符的优先级与结合性附录4常用库函数
课程在所学专业中的作用和地位:
《C语言程序设计》是计算机、电子信息类课程的重要专业基础课。
掌握程序设计的前提是掌握程序设计语言,在众多的程序设计语言中,C语言以其灵活性和实用性受到了广大计算机应用人员的喜爱。C语言是既得到美国国家标准化协会(ANSI)标准化又得到工业界广泛支持的计算机语言之一,几乎任何一种机型、任何一种操作系统都支持C语言开发;C语言在巩固其原有应用领域的同时,又在拓展新的应用领域,支持大型数据库开发和Internet应用,一旦掌握了C语言,就可以较为轻松地学习其他任何一种程序设计语言,为后续的面向对象程序设计,Windows程序设计,Java 程序设计等程序设计语言的学习打下基础。
在国外的计算机专业本科和专科中也安排了有关C语言的课程,例如,英国的胡佛汉顿大学在计算机系的基础课程中安排了C语言的课程,韩国的公州映像情报大学和仁川技能大学,日本滋庆学院和国士馆大学以及印度的科学研究所都把C语言课程作为计算机专业学生必须掌握的专业知识之一。
《C语言程序设计》这门课是计算机应用、计算机网络、电子与信息工程等专业的必修课。
二、课程性质
《C语言程序设计》是计算机专业的一门专业基础课。本课程的前导课程有《计算机文化基础》,后续课程有《数据结构》、《面向对象程序设计》。它是一门实践性很强的课程,既要掌握概念,又要动手
编程,还要上机调试运行。对计算机专业和理工类专业来说是一门必修的课程。同时,这门课程也是“全国非计算机专业学生计算机应用能力水平考试”二级考试的主要语种之一。
三、课程的主要特
1.本课程在内容体系的设计上,兼顾了计算机专业和非计算机专业学生学习的实际需要,内容较全面,适用性强。
2.具有一定的研究性和趣味性。本课程注重培养学生的计算机兴趣,主要体现在:
(1)适当地介绍学科前沿。本课程内容在讲授程序设计基本原理和方法的基础上,密切关注国内外高等学校计算机教育改革的动向和趋势,并与当代会计教育计算机化、国际化的新走向相适应,及时将新会计观念带入课堂,贯穿于教学内容中。
(2)制定一系列精心设计的系列思考题,巩固教学内容,大量运用典型实例,实施趣味教学,在习题中增加一些有挑战性的内容,使学生初步培育起良好的程序设计兴趣,既掌握了学习程序设计的基本方法,也为今后的学习工作奠定了坚实的基础。
3.注重基础和实验,实务操作性强,学生自主学习的空间较大。
4.各院校都十分重视学生参加学科竞赛,通过我院自编ACM程序设计大赛练习平台,从大一起就开始接触和练习程序设计大赛的相题目,大大激发了学生自主学习的兴趣。
本课程减少了传统的演示性、验证性实验,增设综合性实验,将部分内容转化为实验教学,学生通过自学和查阅有关文献,提出实际问题,并分析产生问题的原因,提出相应程序设计算法。
四、课程的主要内容及学时
1、课程内容体系结构
《C语言程序设计》计划学时为64学时,其中理论教学40学时,实验24学时,实习2周。要求掌握C语言程序设计的基本语法;初步掌握编程思想,具有良好的编程习惯和风格,熟悉基本算法并运用这些算法解决一般性问题和绘制程序流程图;可以独立编写代码,并能调试、测试程序,获得预期的结果;通过这门课程的学习产生和提高对编程的兴趣,并培养自己的自学能力。
以培养学程序设计思想和能力为目标,课程主要有三部分内容,第一部分是基础知识部分,主要讲解C语言的特点、C语言的基本词法和基本结构、常量和变量、运算符表达式、算法、流程图、基本语句等内容,第二部分是C语言程序设计的各种结构包括顺序结构、选择结构、循环结构和子程序结构,第三部分是高级知识包括数组、指针、结构体和公用体、编译预处理、文件以及可选的C语言在图形程序设计中的应用。
2、课程定位
《C语言程序设计》课程是面向计算机科学与技术和网络工程等专业开设的必修专业基础课。我们认为,设置该课程的目的,不仅仅是为了要求学生学习某种特定的语言,更重要的是学习设计的思想,为后续的系列课程学习奠定基础。因此,我们在教学内容编排上,力求突出设计思想,淡化设计手段,加强算法分析,减弱语言知识,并通过强化实验过程,加深学生对课堂讲授内容的理解。《C语言程序设计》课程定位在程序设计思想的学习,学生学习的重点是学会分析问题、解决问题的方法,通过分析、分解,最终归纳整理出计算机能够实现的过程(算法)。拓展学生的思维空间,训练学生的思维能力。
3、课程目标
对于计算机专业的本科生而言,掌握一门以上的高级语言以及编程技能是基本要求。学生除了掌握本专业的基础知识,还要培养自己严谨踏实的科学作风,训练自己的逻辑思维,锻炼自己分析问题、解决问题的能力。
本课程的目标是让学生通过对《C语言程序设计》课程的学习,掌握应用程序设计解决相关专业领域内实际问题的基本能力。并为后续专业课程(如数据结构、算法分析与设计、单片机原理与应用等)打下良好基础。结合本专业学生的培养计划和专业培养目标,培养具有良好计算机基础的专业型技术人才。
学习该课程后的体会与收获:
作为一名C语言的初学者,我从这门课中获益匪浅,依照我的经验,学习一门程序设计语言一般是从模仿教科书示例开始的,继而尝试修改、增补示例程序,然后就可以独立于示例编写简单的程序了。在这个过程中比较重要的一点就是不要被教科书束缚。比如你可以使代码的格式更清晰、更美观,同样的功能可以用不同于示例的方法实现……当然,这是一个循序渐进的过程,不必急于求成,要扎扎实实记住学过的每条C语言规则,在模仿和思辨中养成良好的程序设计习惯。以下是经验丰富的程序员、《C程序设计教程》和我个人总结的一点经验I.关于代码的格式:
1.预先输入配对符号和易忘符号,如成对的大括号、双引号、小括号以及分号等
2.大括号“{”和“}”各自独占一行并与上一行首字母对齐;
3.左大括号“{”的下一行进行整段缩进,直到遇到右大括号“}”,如果有多对大括号“{”“}”,
重复以上规则;
4.在每个左小括号“(”前加一个空格,每个逗号“,”后加一个空格,在实现不同功能的代码
块之间加一个空行;
5.控制每一行代码的长度,使其不超过屏幕显示的范围,当某一行即将到达屏幕边界时,
按下回车键并缩进至与上一行行首对齐;
示例:
#include<stdio.h>main(){/*大括号独占一行*/int icount=0;/*开始整段缩进*//*适当的空行用来使代码结构清晰*/clrscr();/*清屏函数*/for(;icount<=10;icount++){printf(“Value of icount is%d.\n”, icount);}/*小括号前和逗号后的空格使代码不拥挤,更清晰*/return0;}
II.关于数据类型和变量:
1.定义变量时应了解各种数据类型的可表示范围,考查其是否符合对输出结果数据精度的
要求;
2.尽量用少而有意义的一组字母、数字和下划线为变量命名,这样既可以减轻输入强度,
又可以使代码便于理解,以利出错维护和功能扩展;
3.为区分不同类型的变量,命名时应该在已经确定的变量名前加一个表示该变量类型的小写字母,如“int icount;”,这样当你在后面的代码中看到它时,就知道它是一个用作计数器的整型变量;
4.用作部分和(累加器),部分积(累乘器)的变量最好在定义时就分别初始化为0和1,
如“int isum=0;”;
III.关于表达式的表示:
1.不要忘记乘号“*”;
2.当一个表达式里的符号(尤其是关系运算符)多得使你无法确定结果时,使用小括号限
定运算顺序;
3.使用相等测试运算符“==”时,将常量放在左边,如“if(0==ichoice)”
IV.关于一些基本语句:
1.printf和scanf:不要忘记“f”;
2.试着一循环次数与已经存在的变量之间的关系,如果可以,你就能节省一个计数
器变量的使用;
3.综合考虑for循环的循环控制变量和循环终止条件,保证程序执行时循环了预定次数,
防止死循环;
4.多层for循环嵌套时,注意内层循环的循环控制变量的初始化,即下一次外层循环开始
时,内层循环的循环控制变量是否必须回零或被赋值为1等等,如果不必,可以省略循环控制变量的初始化,如“for(;icount<=5;icount++)”,否则坚决不能省略;
示例:
/*本示例将在屏幕上显示3*3共6个数*/#include<stdio.h>main(){int iRow=1,iColumn=1;clrscr();for (;iRow<=3;iRow++){for(iColumn=1;iColumn<=3;iColumn++){/*内层循环控制变量必须初始化,读者可以试着去掉iColumn=1看结果*/printf(“%d\t”,iColumn);/*循环体,显示每行各列的数
*/}printf(“\n”);/*显示一行后换行*/}return0;}
5.使用输入标记控制的while循环时,不要忘记在内层接受用户输入;
示例(部分):
printf(“Enter grade,-1to end:”);scanf(“%d”,&igrade);while(igrade!=-1){isum+=igrade; printf(“Enter grade,-1to end:”);scanf(“%d”,&igrade);}
6.不要忘记switch语句中每个case里的break;
7.根据实际情况使用break或continue控制循环,不要习惯性地使用break;
我推荐大家借鉴上面的经验,也希望大家能够学到良好的程序设计风格,养成良好的程序设计习惯,而不只是满足于完成既定任务。
我在前面提到过,学习程序设计是一个循序渐进的过程。在大家学习完C的基本规则以后(即数据类型、运算符、表达式、基本语句、流程控制等,一般都安排在教科书中函数、数组等章节之前),应该已经形成了一定的程序设计风格,也积累了一些解决实际问题的方法。在接下来的学习中很重要的一点是不要被习惯禁锢,因为后面会出现很多能更高效解决问题的方法,错过它们将是你极大的损失。
函数就是一个很重要的概念。正如很多教科书里提到的,它能够使程序模块化,使主函数结构清晰、各部分分工明确,最起码能够避免多次输入功能相同的一大段语句。我个人认为,从囊括所有语句的“流水账”到“众星捧月”的模块化程序的过渡很重要。在前面的学习中,大家已经习惯把所有的语句按顺序罗列在ma in函数中,即使学到了函数的调用和返回,形参和实参等等概念也很难用上,有时用上可能还会事
倍功半。不过没关系,我们可以先从以前编写的代码下手,把住函数中多次重复的语段择出来定义成新的函数,同时结合教科书上的示例,逐渐习惯函数的调用和返回。以后再编写程序时,可以先在脑中或纸上大概描绘一下程序的模块化结构、各函数的功能、需要的参数等等,编写时直接写出各个函数即可。
其他的概念如指针、链表等理解起来问题不大,但在使用中可能会遇到很多问题,还是要多看多练,看练结合,重在实际操作,注意平时积累。希望大家能在不断的学习中,能有不断的收获
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论