C语言课程设计数字钟程序

2024-04-24

C语言课程设计数字钟程序(共11篇)

篇1:C语言课程设计数字钟程序

C语言数字钟程序

#include“stdio.h” void clock(int t);void main(){ int t,i,j,n;for(t=0;t<10;t++){ clock(t);sound(590);for(n=0;n<4;n++){ delay(100000000);} nosound();for(n=0;n<6;n++){ delay(100000000);} for(j=8;j<=18;j++){ for(i=1;i<=80;i++){ gotoxy(i,j);putchar(0);} } } } void clock(int t){ int i,j;textcolor(11);if(t==0){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<11;i++){ gotoxy(51,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=10){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==1){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} } if(t==2){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(60-j*8,8+i+j*5);cprintf(“%c”,14);} } for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==3){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==4){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<6;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(i=0;i<8;i++){ gotoxy(59-i,13);cprintf(“%c”,14);} } if(t==5){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(52+j*8,8+i+j*5);cprintf(“%c”,14);} } for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==6){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(52+j*8,8+i+j*5);cprintf(“%c”,14);} } for(i=0;i<6;i++){ gotoxy(52,13+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==7){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<8;i++){ gotoxy(59-i,8);cprintf(“%c”,14);} } if(t==8){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<11;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==9){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<6;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(j=0;j<2;j++){ for(i=0;i<8;i++){ gotoxy(59-i,8+j*5);cprintf(“%c”,14);} } } }

篇2:C语言课程设计数字钟程序

#include“stdio.h” void clock(int t);void main(){ int t,i,j,n;for(t=0;t<10;t++){ clock(t);sound(590);for(n=0;n<4;n++){ delay(100000000);} nosound();for(n=0;n<6;n++){ delay(100000000);} for(j=8;j<=18;j++){ for(i=1;i<=80;i++){ gotoxy(i,j);putchar(0);} } } } void clock(int t){ int i,j;textcolor(11);if(t==0){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<11;i++){ gotoxy(51,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=10){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==1){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} } if(t==2){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(60-j*8,8+i+j*5);cprintf(“%c”,14);} } for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==3){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==4){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<6;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(i=0;i<8;i++){ gotoxy(59-i,13);cprintf(“%c”,14);} } if(t==5){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(52+j*8,8+i+j*5);cprintf(“%c”,14);} } for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==6){ for(j=0;j<2;j++){ for(i=0;i<6;i++){ gotoxy(52+j*8,8+i+j*5);cprintf(“%c”,14);} } for(i=0;i<6;i++){ gotoxy(52,13+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<9;i++){ gotoxy(60-i,8+j);cprintf(“%c”,14);} } } if(t==7){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<8;i++){ gotoxy(59-i,8);cprintf(“%c”,14);} } if(t==8){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<11;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(j=0;j<11;j+=5){ for(i=0;i<8;i++){ gotoxy(59-i,8+j);cprintf(“%c”,14);} } } if(t==9){ for(i=0;i<11;i++){ gotoxy(60,8+i);cprintf(“%c”,14);} for(i=0;i<6;i++){ gotoxy(52,8+i);cprintf(“%c”,14);} for(j=0;j<2;j++){ for(i=0;i<8;i++){ gotoxy(59-i,8+j*5);cprintf(“%c”,14);} } } }

篇3:C语言程序设计课程教学探析

一、影响教学效果的关键问题及相应对策

1. 学生学习兴趣不高。

学生对难以理解的概念、术语及语法规则、枯燥无味的例题感觉找不到头绪,认为C语言枯燥、难学,有厌倦心理。部分学生不知学为何用而不感兴趣,部分学生觉得它难学而厌学,还有部分学生学而不得法,不知如何学,教学效果和学习效果均不甚理想。

如何激发学习兴趣,增强学生信心,成为该课程教学设计的关键。首先用应用程序展示C语言的结构、特点,讲明学习C语言是掌握编程能力的必由之路。授课过程中应采用互动式教学,多举一些有趣、实际的例题,每一个例题都与新知识、新概念相关联,完成一个任务也就学到了新知识、新概念。这种“练——学——练一—学”的循环过程让学生学得轻松、学得愉快,使枯燥乏味的理论在生动多样的实际问题中逐步为学生理解、接受和掌握。

2. 传统教学方法的局限性。

计算机语言课一直是“讲概念——分析概念——例题讲解——上机操作”的教学模式。以教师“教”为中心,学生处于被动的接受状态,这种“填鸭式”使师生之间交互少,学生“做”得更少,理论与实践脱节,表现于学生“听得懂,不会编”的现象。“很难培养学生在程序设计上的创新能力和逻辑思维能力,这就给后续课程的教学、毕业设计乃至学生日后从事的工作留下了隐患。”

要突出对学生编程能力的培养,应把解题思路当作授课重点,理解如何用程序设计方法分析、解决问题,建立正确的思维模式。教学内容的组织形式应该是“提出问题——介绍解决问题的方法——归纳出概念或一般规律”,教会学生如何运用C语言编写程序,一些细节、具体规则可以让学生自学,结合提问将问题层层剖析、逐步深入,达到师生互动的效果,充分发挥学生的想象力,以学生自学为主,以教师指导为辅。

3. 实验、考核环节。

不重视实验、考试环节,会使实验只是走过场,无人监管,达不到实验的目的;而单一的考试形式,无法真正测评出学生对所学知识的掌握,二者都影响对学生编程能力的培养。

该课程实践性强,只靠听讲,难以记住,必须多阅读、编写、调试程序才能自然地、熟练地掌握。实验可设计为例题验证、程序修改、独立编程三个层次。例题验证使学生进一步理解基本概念和语法,并树立信心;程序修改是让学生根据课堂中讲过的知识点填充,给予学生发挥的余地;独立编程则要求学生阅读教材和相关资料掌握实验所涉及到的知识,独立完成实验项目。教师只起答疑、解惑的作用,引导和激发学生程序设计欲望和创新动力。

考试应采用机考,以综合性、应用型题目为主,并应增加学生平时实践操作能力所占分值的比例。

二、将软件工程思想、项目驱动教学法融入教学中

1. 注重程序设计风格的培养。

编写程序只有正确性远远不够,必须是可维护的、健壮的、并具有良好的界面风格,要求代码简单、清晰、添加适当的注释,使程序具有可读性;用缩进、空行增加层次感,使程序逻辑清晰,好理解,可维护。现在的程序都是程式化、团队式的开发,每个程序员都按照统一的要求编写程序,保证程序清晰、易维护。学习C语言也是一个养成书写程序习惯的过程,在这个阶段如果养成了不好的习惯,以后将很难改掉,教学中要特别予以重视。

2. 教学中期采用项目驱动教学法。

项目驱动教学法是指在教学过程中以一个项目为主线来展开教学,把相关的知识点融入到项目的各个环节中去,层层推进项目。通过对问题的深化或功能的扩充,来拓宽知识的广度和深度,直至得到一个完整的项目解决方法,从而达到学习知识、培养能力的目的。

学生初步掌握了C语言的数据类型、运算符、表达式三种基本结构后,引入一个精心选择的项目,如学生成绩管理系统。先对项目进行需求分析、设计,而不是急于编代码,避免一边想,一边修改;用流程图、N-S图、PAD图等工具描述模块算法,然后编码。采用项目驱动教学法,把课程的主要知识点分解到各个具体模块,例如,项目初期采用一维数组存放学生成绩,用数组名调用排序函数,随着教学的深入,采用结构数组存储信息,用结构指针调用函数,使教学内容前后衔接,运用自如;随着函数定义、调用、参数传递、变量作用域等概念的学习,运用指针、数组、结构体、文件读写等操作完成项目各个任务,并将软件生命周期各个阶段的任务穿插到教学中,循序渐进、潜移默化地把软件工程思想贯穿教学全过程,使学生在学习程序设计的同时,也掌握了软件工程思想,对培养和提高学生编程能力有极其重要的作用。

3. 培养学生程序调试、测试的能力。

在测试项目各个模块功能时,介绍白盒测试和黑盒测试的概念,使学生懂得测试用例设计不仅要有合理的输入数据,还要有不合理的输入数据;随着教学的不断深入,将各个模块逐个添加到系统中,符合自顶向下增量集成的测试方式,减少了错误数量和测试难度,可向学生灌输集成测试、确认测试的概念,这是完成大型项目开发的必要环节;引导学有余力的学生编写新的模块来完善系统功能,发挥他们的想象力和创造力,使学生始终保持浓厚的学习兴趣。完成一个相对完整的应用程序开发,会有一种“从一盘散沙到一串珍珠”的感觉,既培养了学生自学能力和独立分析、解决问题的能力,又使其了解了软件工程思想,在其后续学习中达到事半功倍的效果。

对于综合型项目,将学生每3-5人分为一组,从需求分析、系统设计、代码编写到程序调试、运行,整个过程都在小组内协作完成,他们一起研究、探讨、设计,再经过思考、改进,不断完善,教师只起一个点拨和指导作用,选出成功的小组经验在全班讲评,促进整体编程能力提高。

三、结束语

篇4:《C语言程序设计》课程教学研究

随着计算机的日益普及和互联网的飞速发展,以信息产业发展水平为主要特征的综合国力竞争日趋激烈,软件产业作为信息产业的核心和国民经济信息化的基础,越来越受到世界各国的高度重视。软件技术已成为信息社会的运行平台和实施载体,软件技术应用的全面延伸对用于信息处理的软件技术的发展提出了更高要求,同时促进了软件技术和软件行业的飞速发展,软件技术已经成为人们公认的当今发展最为迅速的技术之一。

《C语言程序设计》是软件工程专业的核心基础课程,其教学效果的好坏,对整个专业教学计划能否顺利完成和专业培养目标能否实现有着重要的作用。本文针对软件工程专业的特点,从培养工程应用型人才的实际需求入手,结合笔者自身的教学实践,对《C语言程序设计》课程教学中的问题进行了分析,从课程教学设计与课程实践教学方面提出软件工程专业《C语言程序设计》课程教学的一系列改进措施。

一、课程教学现状

笔者结合多年的教学实践,并通过调查在校往届学生的学习情况发现,《C语言程序设计》课程教学存在一些问题。

(一)教材内容与实践脱节

教师教授理论课时,大多依据教学大纲指定的配套教材进行讲授,实验课的编程题目多数是验证课本上的例程或者理论课教材后的作业。目前,软件工程专业理论课使用的教材大多以傳授基础理论知识为主,虽然一些知识点后给出了相应的实例,但是这些案例比较孤立,缺乏与工程实践的联系,导致学生觉得日常练习的例程枯燥无味,而且不知道如何将基础理论知识应用于工程实践,使自己具备一定的解决问题能力。由于学生所学知识及其方法与工程实践没有有机结合起来,学以致用的工程意识缺乏日积月累的养成土壤,学习的兴趣和动力不知不觉地消失在盲目与盲从之中。

(二)课程考试与实际应用相关性差

《C语言程序设计》是计算机专业学生学习各类专业课程的重要工具性课程,主要培养学生的工程实践能力。通过调查发现,目前该课程考核仍然以闭卷笔试的形式为主,考试内容主要为基础知识点。这样,学生在面对课程考核时,出于应对考试的需要,知识点背一背、记一记,复习课程和政治课、历史课类似。课程考试方式和内容与实际应用较差的相关性导致学生学习动力不足。

二、课程教学设计

事实上,尽管学习动机不尽相同,学生层次有差异,但绝大多数学生能够认识到自己的需要,希望通过学习提高自己的能力。结合学生特点,笔者认为“做中学”和“基于项目教与学”能够较好地提高《C语言程序设计》课程教学质量。

(一)“做中学”统一知与行

“做中学”是比从“听中学”更好的学习方法,符合人类对客观事物规律的认识,能够把书本上的知识与工作生活联系起来,充分结合了学与做。因此,在设计组织教学活动时应注重实践活动的设计,把教学活动与工作生活实际相结合,鼓励学生在实际活动中学习,并将实践中获得的知识与技能有效运用于解决学习、生活和今后工作中的实际问题,即在实践中学习,在学习中实践。

(二)“做中学”最有效的方法就是进行基于项目的学习

一个完整的项目是从分析开始,经历构思、设计、实现和运作的一个完整过程,在学习学科知识的同时能够提高个人产品过程的认知能力和系统建造的能力。在课程的设计过程中,始终强调以项目为导向,以任务为驱动,以一个具体项目为依托来学习相关的内容,在具体实施中分级设置项目,先易后难、循序渐进地将相关的知识点融入项目的任务之中,通过完成任务掌握相应的知识点,提高相关技能和操作的应用能力。在此过程中,学生不断进行实践、总结、反思,将琐碎的知识点串联起来,逐步培养学生的综合能力。

三、课程教学实施

(一)多方面积极引导,激发学生学习兴趣

学生在学习《C语言程序设计》设计之前,可能通过新生入学教育或从高年级学生中知道这是一门专业必修课程而兴致勃勃,但到真正学习时,如果一直都是面对一堆单调而且枯煤无味的语法知识,则容易使学生产生厌学心理从而逐渐失去学习的兴趣。因此,要改进教学方法。首先,通过展示学校近几年来在各种比赛中获得的好成绩,让学生观看比赛的图片,让学生知道只要努力,在各种竞赛中都可以占有一席之地,这样学生就有可达到的奋斗目标从而消除他们的畏难情绪,激发学生的学习兴趣。

其次,在课堂讲授时尽可能找一些趣味性较强的例子讲解,除布置基本的训练学生掌握语法或者算法的题目外,设计1—2个有趣味性的游戏程序设计,如在选择结构编程练习中简易计算器的开发,在循环结构编程练习中加入猜数字游戏设计,在一维数组编程练习中加入猜牌术游戏等,这些游戏程序设计的开发有一定的难度,鼓励学生结成兴趣小组,互帮互助共同完成,在此过程中,学生的学习自主性和团队协作精神都得到大幅提高。

(二)精心设计实验教学

要根据《C语言程序设计》实验的教学大纲制定实验计划,精心设计每一次实验内容,要综合考虑学生编程能力上的差异,不要把题目设计得太深或者太简单,可以设计必做题和选做题,对基础较差的学生,最低要完成必做题;对能力较强的学生,在完成必做题的基础上,鼓励他们去完成选做题。同时,在实验的编排上,注意验证性、设计性和综合性实验的比例,对验证性实验进行精选,即使是验证性实验,也不要简单验证程序的运行结果,而是首先要求学生阅读程序,写出运行结果或程序实现的功能,然后再上机运行,同时可以设计一些问题让学生思考并对程序进行进一步修改,然后再分析运行结果。减少验证性实验项目,增加设计性和综合性实验项目,由浅入深、由易到难,加强学生动手能力、分析问题和解决问题能力的培养,最终提高学生的编程能力。

(三)灵活运用多种教学手段

在做题过程中,教师的主要任务是及时发现问题,回答学生的疑难问题。但是,在实验练习的过程中,学生主要依靠自己讨论或者上网寻求思路来解决问题。这是一个值得鼓励的好现象,能够充分体现学生独立自主学习的能力,在课堂教学中应当鼓励学生互相讨论,互相交换思想共同解决问题。但是,在教学中教师的作用体现不够充分,不愿意寻求帮助的学生会因为一道题目没有解决而无法正常进行实验练习,教师的作用应该是在学生自主解决问题的同时,能够及时提供帮助,尽量统一实验进度。在上机指导学生实验时,要以问题为中心,广泛采用启发式、参与式和讨论式等教学手段,要打破学生对教师的依赖性,让学生自己去思考如何编程,如果较难的题目允许学生讨论,鼓励学生去查阅相关资料,也可以适当给学生一些提示,但一定不要给学生源代码,重点给出解题的思路与建议性方法,给学生留下足够的独立思考和设计的空间,使学生在实验过程中亲自体会并掌握程序设计思想,提高实验的教学效果。

(四)利用网络教学平台让学生主动学习

充分利用校园网内建立的《C语言程序设计》网络教学平台,在该平台上共享本课程部分教学视频、相关课件、经典算法资料、ACM大赛历年题目,可以让学生通过此网络教学平台更加自主地选择性学习,更重要的是利用此平台与学生进行互动交流,在答疑区对学生提出的问题,老师与学生都可以及时解答,同时其他学生也可以分享交流过程,随时再提出新问题,更好地激发学生的学习兴趣,增强教师与学生、学生与学生之间的互动。通过多种教学方式的结合,不仅加深了学生对所讲知识点的理解,而且激发了学生的学习兴趣,提高了学生学习的自觉性,同时通过互动交流式学习增强了学生的自信心。

参考文献:

[1]张红军.C语言程序设计教学改革初探[J],信息与电脑,2015 (9):140-142.

[2]刘红霞,张永恒.CDIO工程教育模式下的C程序设计教学改革研究[J],榆林学院学报,2015 (4):83-86.

[3]李文锦,游戏化学习在C语言程序设计的应用与实践[J],新课程研究,2015 (7):76-77.

篇5:C语言程序设计课程教学设计

苏小红

一 课程内容体系 :

基本描述

课程名称: C 语言程序设计

英文译名 : C PROGRAMMING LANGUAGES 总 学 时: 50 ; 讲课学时: 30 ; 实验学时 : 0 ; 上机学时 : 30 授课对象 :非计算机专业 本科生 授课单位 :计算机科学与技术学院 主讲教师 :苏小红等

先修课程 :高等数学,计算方法 课程要求 :必修课 课程分类 :专业基础课 开课学期 : 2

教学定位 :

本课程为专业基础课,属我校所有理工科专业本科教学计划中的主要必修课程之一。在计算机教育方面,C 语言是为数不多的与国外保持内容同步的课程之一,可见,它在本科生教学中的地位之重要不言而喻。由于 C 语言是许多后续专业课程的基础,因此,在本科生教学体系中中,C 语言教学仅是起点,而非终点。本着面向未来的精神,本课程的教学宗旨是要努力把 C 语言从应试课程转变为一种实践工具,主要目的不再局限于使学生单纯地了解和掌握 C 语言的基本语法规范,而是要致力于培养学生运用 C 语言解决实际问题的编程能力,以 C 语言为工具,介绍程序设计的基本思想和方法,培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力。

知识点与学时分配 :

第 1 章 程序设计 ABC(1 学时)

计算机与人之间的关系、计算机与程序设计语言之间的关系、程序设计语言的故事、程序设计语言的工作机理。

第 2 章 数据类型、运算符与表达式(3 学时)

为什么引入数据类型、C 语言基本数据类型、常量、变量、算术运算符、关系运算符、逻辑运算符、赋值运算符、增 1 减 1 运算符、强制类型转换运算符、位运算符、逗号运算符、运算符的优先级和结合性、各种运算表达式。

第 3 章 简单的 C 程序设计(2 学时)

C 语句分类、表达式语句、复合语句和空语句、字符输入输出函数、格式输入输出函数。第 4 章 程序的控制结构(5 学时)

算法的概念及其描述方法、条件语句、循环语句、流程转移控制语句(goto、continue 和 break)、自顶向下、逐步求精的结构化程序设计方法。第 5 章 函数(4 学时)

程序结构的艺术、函数定义、函数调用、函数返回值、函数原型、参数传递、变量的作用域和存储类,函数封装、模块分解原则、模块化程序设计方法。第 6 章 数组(4 学时)

一维数组、二维数组、向函数传递一维数组、向函数传递二维数组、字符数组、字符串处理函数。第 7 章 指针(4 学时)

指针的概念、为什么引入指针的概念、变量的指针作函数参数、字符指针做函数参数、指针和数组之间的关系、指针数组、代码风格、防御性程序设计。第 8 章 结构体和共用体(4 学时)

结构体类型、结构体变量、结构体数组、向函数传递结构体指针、共用体类型。第 10 章 文件操作(2 学时)

篇6:《C语言程序设计》课程教学探索

《C语言程序设计》课程教学探索

C语言程序设计是理工科学生的`必修课,也是学习计算机语言的入门语言,本文对C语言程序设计的教学方法进行了探讨,在提高学生学习兴趣,加强实验环节,改进考核方式等方面提出了几点意见.

作 者:刘丹 孙宁 厉丹 作者单位:中国矿业大学徐海学院,江苏徐州,221008刊 名:科技资讯英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):“”(23)分类号:G642关键词:C语言 教学

篇7:C语言课程设计数字钟程序

课程编号:90211003

总学时数:85(理论

51、上机34)总学分数:4 课程性质:专业必修课 适用专业:全院理工科专业

一、课程的任务和基本要求:

本课程为全院非计算机专业的理工类专业的公共课,是一门计算机技术基础课程。本课程开设在一年级第二学期或二年级第一学期。

C语言程序设计是近年来在国内外迅速推广使用的一种计算机程序设计高级语言,由于其语言功能丰富、表达能力强、使用灵活、应用面广,因此实用性很强。

本课程的主要任务是通过对C语言程序设计的各种数据类型,基本语句,基本程序设计结构以及常用算法的学习,使学生掌握程序设计的基础知识和程序设计的基本方法,培养学生使用计算机解决实际问题的能力。

二、基本内容和要求:(1)C语言概述

C语言出现的背景、特点 简单C程序介绍及上机步骤(2)算法

算法的概念、特性 算法的表示

程序设计的三种基本结构

(3)数据类型、运算符和表达式 常量与变量 整型数据 实型数据 字符类型数据

各种数值型数据间的混合运算 算术运算符和表达式 赋值运算符和表达式

复合的赋值运算符和表达式 逗号运算符和表达式(4)顺序程序设计 C语句概述 赋值语句

数据输入、输出的概念及在C语言中的实现 字符数据的输入输出 格式输入输出

顺序结构程序设计举例(5)选择结构程序设计 关系运算符和关系表达式 逻辑运算符和逻辑表达式

if语句的三种形式、if语句的嵌套 条件运算符 switch语句

选择结构程序设计举例(6)循环结构程序设计 循环结构程序设计概述 while语句 do-while语句 for语句 循环的嵌套

几种循环语句的比较

break语句和continue语句 循环结构程序设计举例(7)数组

一维数组的定义和引用 二维数组的定义和引用 字符数组的定义和引用 字符数组的输入输出 字符串处理函数(8)函数 函数概述

函数参数和函数的返回值 函数调用的一般形式、方式 对调用函数的声明和函数原型 函数的嵌套调用 函数的递归调用 数组作为函数的参数 局部变量和全局变量 变量的存储类别 内部函数和外部函数(9)预处理命令 不带参数的宏定义 带参数的宏定义 “文件包含”处理(10)指针

地址和指针的概念

变量的指针和指向变量的指针变量 数组的指针和指向数组的指针变量 字符串的指针和指向字符串的指针变量 函数的指针和指向函数的指针变量 返回指针值的函数

指针数组和指向指针的指针

有关指针的数据类型和指针运算的小结(11)结构体和共用体 结构体概述

定义结构体类型变量的方法 结构体变量的引用 结构体变量的初始化 结构体数组

指向结构体类型数据的指针 用指针处理链表 共用体 枚举类型

用typedef定义类型(12)文件 C文件概述 文件类型指针 文件的打开和关闭 文件的读写

三、实践环节和要求:

程序设计是一门实践性很强的课程,必须十分重视实践环节。通过上机实验,加深学生对讲授内容的理解,能自然熟练掌握C语言的语法规定,学会编程并上机调试通过。

各部分的实践环节和要求如下:

1、了解Turbo C的基本操作方法,学会独立使用该系统;了解在该系统上如何编辑、编译、连接和运行一个C程序;通过运行简单的C程序,初步了解C程序的特点

2、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法;掌握不同类型数据之间类型转换的规律;学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)、自减(--)运算符的使用

3、掌握赋值语句的使用方法;掌握各种类型数据的输入输出方法,能正确使用各种格式转换符

4、了解C语言表示逻辑量的方法;学会使用逻辑运算和逻辑表达式;熟练掌握if语句和switch语句;结合程序掌握一些简单的算法;

5、熟练掌握用while语句,do-while语句和for语句实现循环的方法;掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)

6、掌握一维数组和二维数组的定义、赋值和输入输出方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法)

7、掌握定义函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量,动态变量,静态变量的概念和使用方法

8、掌握宏定义的方法;掌握文件包含处理方式

9、掌握指针概念,会定义和使用指针;能正确使用数组的指针和指向数组的指针变量;能正确使用字符串的指针和指向字符串的指针变量;能正确使用指向函数的指针变量

10、掌握结构体变量的定义和使用;掌握结构体类型数组的概念和使用;掌握链表的概念,初步学会对链表进行操作;掌握共用体的概念与使用

11、掌握文件和文件指针的概念;学会使用文件打开、关闭、读写等文件操作函数;学会用缓冲文件系统对文件进行简单的操作

四、教学时数分配: 上课课时分配:

基本内容 C语言概述

数据类型 算术运算符和表达式 顺序程序设计及简单算法介绍 选择结构程序设计 循环结构程序设计 常用算法设计举例

函数的概念 函数的嵌套、递归调用 局部和全局变量 存储类别 一维、二维数组定义、引用和程序举例 数组作为函数参数 预处理命令

指针和指针变量 指向数组、字符串、函数的指针 返回指针的函数

结构体 链表 共用体 文件操作

课时数 3 4 5 3 3 3 6 6 3 8 4 3

五、其它项目: 上机操作课时分配: 基本内容 课时数 熟悉Turbo C实验环境 2 数据类型、常量、变量的使用 运算符和表达式的使用 4 顺序结构程序设计 2 选择结构程序设计 2 循环结构程序设计 2 常用算法实验一 2 函数实验 4 数组实验 4 预处理命令实验 2 指针实验 4 常用算法实验二 2 结构体实验 2 文件实验 2

六、有关说明:

1、教学和考核方式:

该课程属考试课程,考核方式为闭卷(笔试+上机)。

2、习题:

书面作业布置不少于8次。

上机作业布置不少于8次,通过软盘或网络方式提交作业。

3、能力培养要求: 通过本课程的学习,具有程序设计的基本能力,以及对于其他程序设计语言的自学能力。针对实际问题能编写相应程序并经过上机调试通过。

4、与其它课程和教学环节的联系:

先修课程和教学环节:大学计算机信息技术基础 后续课程和教学环节:其它程序设计语言

平行开设课程和教学环节:程序设计语言(VB)、程序设计语言(F90)、程序设计语言(VFP)

5、教材和主要参考书目:

(1)教材:C程序设计 谭浩强编著

篇8:《C语言程序设计》课程教学探索

1 培养学生的学习兴趣

由于我院开设的《C语言程序设计》面向的主要是大一的学生, 这些学生中的大部分都对计算机的程序设计语言一无所知, 没有接受过系统的学习, 所以, 一开始接触这门课程, 可能会觉得非常茫然, 感觉无从下手, 因此, 必须在第一次上课时就充分调动起学生的积极性, 培养他们的兴趣和信心。

所以, 老师在上第一次课的时候, 可以先不要着急去介绍C语言的一些比较专业的基本概念和语法规则, 而是从C语言出现的历史背景、C语言的优点以及本课程的开设原因, 给学生们做一个全面的介绍。在介绍C语言的开设原因时, 应该结合学生的具体专业来介绍, 解释C语言与前面课程以及后续课程的关系, 比如C语言和数据结构, C语言和算法的关系等。让学生了解本课程的重要性, 引起学生对本课程的足够重视。通过这样的教学安排, 第一次课基本上可以达到提高学生学习C语言的兴趣, 认识到C语言的重要性, 树立学习C语言的信心的目的。在第一次课激发了学生学习C语言的兴趣和积极性后, 一定不能让学生的热情冷却, 而应该以此为契机, 现场给学生编写一个短小精悍的程序, 运行输出结果, 让学生看到C语言的神奇效果, 激发学生的学习欲望, 积极主动的进入C语言的学习世界。在后续的课堂教学过程中, 采用提出问题分析问题解决问题的方法, 从具体问题入手, 引导学生找出解决问题的方法, 每次介绍新的知识之前, 都应该先精心设计一个或几个包含了新的知识点的实例, 先给学生演示一下程序的运行效果, 让学生先对这些例子产生兴趣, 这对于提高学生学习的自觉性, 活跃课堂气氛可以起到积极的促进作用。最后总结所用的语法和规则, 使得学生对语法的理解更为容易。

2 采用启发、引导的教学方法

《C语言程序设计》本身是一门非常灵活的课程, 任何问题都没有唯一的答案, 也没有最好的答案。因此, 老师在课堂上可以先给出一种程序解答方法, 然后留出一些时间让学生思考, 还有没有其他更好的程序设计方法和思路。比如在讲判断一个数n是不是素数的问题时, 我们可以先从最传统、最容易理解的思路入手, 看看n能不能被2到n-1中的任何一个数整除, 接着我们可以在这个地方稍微停顿一下, 让学生思考一下能不能对这个算法做一下改进, 这时, 有的学生可能会提出把除数的范围缩小到2到n/2, 最后再缩小到2到, 利用这种方法会比老师直接给出用n去除以2到中数的方法让学生印象更加深刻。这样不仅可以巩固学习成果, 提高解决问题的能力, 也可以丰富课堂内容, 起到教学相长的效果。

3 有选择地运用多媒体教学

以前由于教学条件的限制, 教师上课时只能采用传统的黑板教学, 在黑板上面写出程序代码, 说出运行结果, 这样很难让学生对程序运行的过程、函数的调用、参数的传递、变量值的变化认识清楚, 将多媒体教学引入课堂后, 可以在课堂上利用教师机现场演示, 利用VC++的设置断点, 单步跟踪等方法, 一步步演示, 这样学生一看就清楚了。例如在给学生讲数组的时候, 通过下标的方式来访问数组元素, C语言规定, 数组元素的下标是从0到n-1 (n是数组的长度) , 但很多学生在写程序的时候, 往往忽略这一点, 在访问数组元素的时候使用n, 出现下标越界的错误, 这时, 老师便可以在VC的调试环境中, 结合变量的地址或指针的概念, 给学生解释越界出现的原因, 这样才能让学生理解深刻。又例如, 在讲“冒泡”排序算法时, 教师可以用多媒体课件给学生演示排序的经过, 既形象又生动。因此, 在《C语言程序设计》课程教学过程中, 将传统的教学方法和现代多媒体教学相结合, 将大大提高学生的综合思维能力, 达到最佳的教学效果。

4 强化实验环节

《C语言程序设计》是一门实践性很强的课程, 如果只是单纯地在课堂教学, 而没有实验教学, 仍然只是纸上谈兵, 无法真正让学生掌握知识的应用。所以实验环节是整个学习过程中不可缺少的一个重要组成部分。只有让学生动手编写程序, 运行出来结果, 学生才会有成就感, 才会对这门课产生兴趣。但是, 教材上面的题目往往比较注重语法的训练, 而离实际应用较远, 所以, 大部分学生在完成书上题目时比较顺利, 可以一遇到利用C语言来解决实际问题时, 便束手无策, 无从下手了。所以, 为了锻炼学生解决较大型复杂问题的能力, 老师在安排实验课内容时, 可以布置一个大题目作为长期任务, 再按不同功能模块分解开来, 形成一个个短期任务。每次实验课要求学生完成其中一个或几个简单的功能模块, 这样, 每次实验课就好像一条铁链上的一个个铁环, 紧密联系。以“学生信息管理系统”为例, 把这个系统作为一个长期任务, 然后把这个系统划分为若干个小的模块。比如输入输出学生信息、添加学生信息、修改学生信息、查询学生信息等模块。这样, 当学生完成每一个功能模块后, 便发现原来自己实现的是一个复杂的程序。通过这种方法, 一方面可以大大降低学生对大型复杂程序的惧怕心理, 另一方面也可以培养学生结构化程序设计方法的思想。

5 综合考核法

目前, 大部分课程最后的考核方式都是通过考试进行的。但是这种方式不适用于《C语言程序设计》, 这是由课程本身的特点决定的。一方面, 该课程包含了课内实验, 另一方面, C语言是一门实践操作性很强的课程, 光通过选择题、填空题不能真正检验出学生的学习水平, 而应该把考核的重点放在程序的编写和调试上。

所以, 建议本课程最后采用综合考核的方式。考试的方式分为笔试和上机考试。理论考试主要考核学生对理论知识的掌握程度, 上机考试则主要考核学生的动手能力。。最后的总评成绩中还应该包含学生的实验课成绩, 以及课堂表现成绩。这种考核方式增加了对学生学习过程的测评, 这种方法不但能更客观地反映学生的学习情况, 同时也能促进学生自主学习, 起到很好的教学效果。

6 结语

以上是作者在近几年的C语言课程教学过程中总结出来的几点教学经验, 通过上述方法, 在实际的教学过程中取得了良好的教学效果。

摘要:C语言程序设计是理工科学生的必修课, 也是学习计算机语言的入门语言, 本文对C语言程序设计的教学方法进行了探讨, 在提高学生学习兴趣、加强实验环节、改进考核方式等方面提出了几点意见。

关键词:C语言,教学

参考文献

篇9:C语言课程设计数字钟程序

《C语言程序设计》教学内容枯燥抽象,学生不容易理解,加上编者对教材的处理上过于注重实践技能的培养,采用“任务驱动”法组织教材内容,通过一些实际案例阐述各章节的重要知识点,又通过案例延伸对相关知识点进行了扩展和延伸,使得各知识点都融合在各案例当中。这样虽然达到了各教学知识点的有机统一,但从知识点的连贯性和层次性上来讲,不容易被学生理解掌握。同时,该教材用学生信息管理项目案例作为主线,对于毫无编程经验的职专生来说,起点过高。

C语言程序设计的学习,主要涉及到C语言基础知识框架的建立和算法思想的培养,算法思想即是数学建模的过程,而且c语言的编写都是用英语字符来完成的,这就需要学生在数学和英语两科的综合运用能力上达到一定的要求,而职业类学校的学生恰恰在这两个科目上弱项,这就进步增大了教学的难度。在教学实际过程中,可能遇到无论教师怎么解释,学生都不知所云的情况。

同时,在c语言的学习程当中,也往往要涉及很多计算机硬件原理的知识,对于处于高二的职专生来讲,对一些计算机基础知识还不能达到融会贯通的程度,计算机知识不系统,这就更加增大了实际教学的难度。

针对以上教材的情况以及学生的实际接受能力,经过教学实践的摸索探讨,我总结出了如下“C语言程序教学”的方法 。

1.在教材的处理上,结合学生实际,做到有针对性地制定教学目标,提高学生的接受能力。

我在实际教学过程中,还是以本教材为主,但在知识结构上做了一些细化。在给学生分析完教材中的案例后,对涉及到的相关知识点进一步完善和系统,使学生整体上掌握住案例的实质。例如;在讲“变量”的过程当中,变量值的储存是一个访问内存物理地址的过程。在这里,就需要对学生扩展一些关于内存物理地址方面的知识点,让学生对整个变量值的储存过程能够清楚明亮,从而提高学生对知识点的接受能力和牢固度。

在备课过程中,在意识地在每课时的教案中穿插一些计算机小知识,以激发学生学习的兴趣,提高学生学习程序涉及的积极性。

2.把教授的专业性知识与学生熟悉的相关常识相联系。

在C语言授课过程中,可能会遇到一些专业性的术语,学生从来没接触过,不知道为何物。这种情况下,授课老师可以列举一些与之有联系的比较实际的常识来做类比。比如我在给学生讲授C语言程序的基本构成单位为“函数”时,因为C语言中的“函数”和数学中“函数”不是一种概念,而是完成一个相应功能的程序模块,学生容易混淆。所以我把C语言中的“函数”比作是人体里的各种器官,其最大的作用就是完成相应的功能,我们人体是各个器官的组合体,而C语言程序就是各个“函数”的组合体,这样,学生对函数的概念就会明了很多。

3.采用“自主——合作——探究”式的学习方式。

教材的编者在出版说明中谈到,要强调学生学习的自主性,强调以学生的团队学习为主,让学生分成小组共同就某些问题讲行探讨,使学生最大限度的自主掌握知识。当然,这是一种理想化的教学方式,但在实际教学过程中也不是不能实现,最起码在一定程度上可以实现,所以任课教师可以试着去培养学生的这种能力。

一些教師在教学设计中虽能体现出学生“自主—— 合作 ——探究”的意识,但在具体操作中形式化严重,实效性不强。

兴趣是学生的最好老师,大部分学生还是比较喜欢计算机这个专业的,我们应该充分抓住学生的这一特点,发挥他们的主体作用,让他们自主探索,自主学习。职校二年级的学生已经有了较好的判断、推理和逻辑思维能力。我在教学过程中,经常采取提取问题-探索问题-解决问题的方法。老师可以自行出个例子,设置疑问,让学生自主学习,这样的教学效果要比在课堂上死讲要好的多。比如,在讲解条件和循环语句,多配以流程图来增强学生直观性和理解性。在讲数组时,采用图例分析,让学生对数组各元素分布情况,产生准确的认识和理解。现在的高中学生,很自我,独立意识和接触新鲜事物的能力非常强,让学生自行分组设计一些小课题,即提高了学生的自主能力,也让同学之间也不由自主的互相帮助起来。最主要的是让学生自己发现问题并解决问题。这时候老师就要做好引路人,在学生自主学习的时候,给予适当帮助。

4.精讲多练,加强实践。在学生理解项目思想,确定项目的算法后,有针对性地对项目中涉及的知识点进行讲解,对于那些学生自己能完成的内容,少讲,只做提示,甚至不讲。课堂上留足够的时间,让学生多进行实践操作,同时加强巡查辅导,及时发现和纠正学生的错误。

总之,在难度较大的课程教学过程中,不仅要备好课,还需要用创新精神探究各种教学方法,培养学生的实践能力。作为年轻老师,我们应该一丝不苟地去面对学生,面对教材,面对自己这神圣的职业。

篇10:C语言程序设计课程教学大纲

中央电大教务处教学管理科 2007年08月29日

第一部分 大纲说明

1.课程性质、任务与目的

《C语言程序设计》是中央电大计算机科学与技术专业(专科起点本科)的一门专业基础课。主要任务是介绍C语言中的数据类型、数据表示、运算规则、语句定义、函数调用、程序结构、文件使用、编程方法等内容。目的是使学生能够利用一种计算机程序设计语言编写出解决较简单的数值计算和数据处理问题的程序,为学习后续课程奠定程序设计和算法设计的基础。

2.与其他课程的关系

学习《C语言程序设计》课程需要了解计算机基本组成,并具有对计算机进行基本操作的技能。本课程的后续课程为《数据结构》、《操作系统》、《数据库》等。

3.课程教学特点

《C语言程序设计》是一门知识性和实践性都很强的课程,必须在学习中掌握C语言的语法规则,并在上机实践中体会和加深理解,通过实际的上机操作训练,还能够学习到书本上学不到的知识和技能,提高自己进行程序设计和开发的实际能力。

4.教学主要内容

(1)介绍C语言上机操作环境、程序基本结构,系统函数的使用;

(2)介绍常用输入输出函数的作用;

(3)介绍C语言基本数据类型、常量、变量、运算符、数学函数、表达式等的表示与含义;

(4)介绍各种分支语句、循环语句的流程控制功能及相应的程序设计方法;

(5)介绍一维数组和二维数组的定义与作用,字符串数组的特殊存储格式与作用;

(6)介绍指针的定义和运算,变量存储空间的动态分配,数组名的指针含义;

(7)介绍用户函数的定义与调用,值参数和指针参数的使用,变量的作用域,递归函数;

(8)介绍结构和联合类型的定义与应用,结构链表的建立和使用;

(9)介绍文件的概念,文件的打开和关闭,字符文件和字节文件的处理操作。

(10)介绍利用C语言编写解决实际问题的程序设计思路和方法。

5.教学基本要求

本课程教学内容包括了解、理解和应用三个层次,并且逐步递进,具体含义如下:

(1)了解层次:记忆C语言中的基本概念和语法规则;

(2)理解层次:掌握C语言中的每个语法成分和语句的定义格式、含义及作用;

(3)应用层次:利用C语言,结合实际解决问题的需要,能够分析和编写程序。

第二部分 媒体使用和教学过程建议

1.课程学分和学时

本课程为4学分、72学时、第一学期开设。电视、实验和面授辅导学时各为20、27和25学时。课程中各章内容及学时分配如下表所示。

序号 一 二 三 四 五 六 七 C语言概述 数据类型与表达式 流程控制语句 数组和字符串 指针 函数 结构与联合

内容

电视学时 实验学时 面授学时 3 3 2 2 3 3 2 4 4 4 4 4 3 3 3 3 4 3 八

文件 2 3 4

2.教学媒体设计

(1)课程以文字教材为主,文字教材采用合一型。文字教材担负起形成整个课程体系系统性和完整性的任务,是学生学习的主要媒体形式。因此教材要概念准确、条理清晰、深入浅出、便于自学,并且要包含实验指导和实验内容。

(2)电视课程作为文字教材的强化媒体,配合文字教材讲授课程的基本知识以及重点和难点。

(3)面授辅导课程由面授教师系统地辅导教学内容,保证教学进度,检查学习效果,随时解答学生的问题,是非常重要的教学活动。

(4)CAI课件是利用计算机进行自主学习的重要教学手段,它能够集名师讲授、动画教学演示、作业练习、学习效果检查等为一体,不受时间、地点和空间的限制,深受学习者喜爱。

(5)网络资源媒体可以汇集有关教学文件为学生查询提供方便,还可以进行网络交流答疑活动,便于师生定期或随时开展。

3.教学过程建议

本课程的电视和面授课堂教学要把知识讲授与上机操作演示结合起来,同时要加强学生的上机操作练习和指导,使所学知识都能够得到上机运行结果的充分验证。

第三部分 教学内容和教学要求

第一章 C语言概述

(一)教学内容

1.C语言的特点

2.C语言中的基本语法成分和程序结构

3.常用输入输出函数printf和scanf的作用

4.C程序的编辑、编译、链接和运行

(二)教学要求

了解:C语言的特点,基本的语法成分,程序的结构,C程序的编辑、编译、链接和运行的过程。

理解:常用输入输出函数printf和scanf的作用

第二章 基本数据类型与表达式

(一)教学内容

1C语言中的基本数据类型;

2.整数、实数、字符、枚举等常量的表示;

3.使用#define编译预处理命令定义符号常量;

4.变量的定义和分类;

5.各种运算符的表示和应用;

6.数值、关系、逻辑表达式的求值;

7.常用数值函数的调用,如绝对值函数、平方根函数、指数函数、对数函数、取整函数等的调用。

(二)教学要求

理解:C语言中的基本数据类型种常量和变量的表示,运算符的优先级和结合性,表达式的构成,常用数学函数的调用格式与作用。

第三章 流程控制语句

(一)教学内容

1.if语句的定义格式和作用;

2.switch语句的定义格式和作用;

3.for语句的定义格式和作用;

4.while语句的定义格式和作用;

5.do---while语句的定义格式和作用;

6.continue和break语句的定义格式和作用;

7.return和goto语句的定义格式和作用。

(二)教学要求

理解:各种语句的定义格式;

应用:分析程序,按照解决问题的需要编写出相应程序。

第四章 数组和字符串

(一)教学内容

1.数组和数组元素的有关概念;

2.一维数组的定义和应用;

3.二维数组的定义和应用;

4.字符串的存储和字符与字符串函数的使用。

(二)教学要求

了解:数组和数组元素的有关概念;

理解:一维数组和二维数组的定义格式,字符串的存储格式,字符与字符串函数的调用格式;

应用:会分析含有数组和字符串应用的程序,根据数值计算和数据处理问题编写出数组应用程序。

第五章 指针

(一)教学内容

1.指针的有关概念;

2.指针的各种运算

3.数组元素的指针访问方式

4.数据存储空间的动态存储分配

(二)教学要求

了解:指针的有关概念;

理解:指针的各种运算符的含义,一维和二维元素的指针访问方式,动态存储分配与释放函数的含义;

应用:会分析含有指针操作的程序。

第六章 函数

(一)教学内容

1.函数的定义格式和各个语法成分的作用;

2.函数的调用格式以及调用过程;

3.值参数和指针参数的不同作用;

4.变量的作用域分类;

5.递归函数的概念和调用过程。

(二)教学要求

了解:函数的定义、声明、调用与返回的有关概念;

理解:函数的定义和调用过程,值参数和指针参数的使用,变量的各种不同作用域;

应用:会分析一个函数定义的功能,根据问题编写出对应的函数。

第七章 结构与联合(一)教学内容

1.结构的基本概念

2.结构的定义与初始化

3.结构成员的访问和结构变量的赋值

4.结构与数组

5.结构与函数

6.结构与链表

7.联合的定义与使用

(二)教学要求

了解:结构和联合的有关概念;

理解:结构和联合的定义格式,结构和联合成员的访问,结构作为函数参数的应用,结构作为链表中结点类型的应用;

应用:会分析和编写使用结构的函数或程序

第八章 文件

(一)教学内容

1.数据文件的概念

2.文件的打开和关闭,3.文件的操作方式

4.字符文件的访问

5.字节文件的访问

(二)教学要求

了解:文件的有关概念;

理解:文件的各种访问方式;

应用:会分析和编写使用文件的程序。

第四部分 实验

篇11:C语言课程设计数字钟程序

【课程代码】

0770105

【学

分】【参考学时】

【讲授学时】

【实验学时】

【实习学时】

0 【课程性质】

专业必修课

【参考教材】1.谭浩强 《C程序设计》(第三版)清华大学出版社

2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)

3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社

【课程基础】

在学这门课之前,学生最好对计算机基本结构、软硬件概念和上机操作知识有一定的了解,但不是必须的。本课程和“计算机导论”课程同时开设,可以互学互用。【适应对象】

本课程适用于计算机科学与技术-计算机科学与技术专业、软件工程-软件工程专业、电子信息科学类-电子信息科学与技术专业以及数学专业的学生学习。【教学目的】

通过对C语言的语法规则、数据类型、数据运算、语句、系统函数、程序结构的学习,使学生了解结构化程序设计基本思想和方法,并养成良好的编程风格,培养出扎实的软件开发基本技能;使学生初步掌握利用计算机处理问题的思维方式和程序设计的基本方法和编程技巧,熟练地应用C语言编写简单的程序,掌握基本的程序调试方法和步骤,为进一步学习后续课程和将来从事应用软件开发奠定良好的基础。【内容提要】

C语言的各种数据类型,运算符,表达式;结构化程序设计语句;数组;函数的概念和用法;编译预处理命令;指针运算及其使用;位运算;文件的操作;算法的基本表示方法及结构化程序设计方法。

第1章 C语言概述

第一节C语言出现的历史背景 第二节C语言的特点

C语言的特点 第三节 简单的C程序介绍

简单C程序的结构 第四节C程序的上机步骤 【基本要求】

了解C语言的历史; 掌握C语言的特点;

掌握C语言的运行环境,初步了解运行一个C语言程序的过程。【参考学时】2学时

【参考资料】[ 1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社 ]

第2章 程序的灵魂-算法

第一节 算法的概念

算法的定义。

第二节 简单算法举例

第三节 算法的特性

算法的特点。

第四节 怎样表示一个算法

用自然语言表示算法;用流程图表示算法;三种基本结构; N-S图;用伪代码表示算法;用计算机语言表示算法。第五节 结构化程序设计方法 【基本要求】

1、掌握算法的概念,算法的特性;

2、掌握结构化程序设计的三种基本结构;

3、掌握用流程图、N_S流程图和伪代码等算法描述方法来描述具体的算法的方法以及结构化程序设计的方法。重点:结构化程序的三种基本结构,顺序,选择,循环;结构化程序设计的方法,自顶向下,逐步细化,模块化设计,结构化编码。难点:用流程图、N_S流程图和伪代码算法描述方法来描述具体的算法。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第3章 数据类型、运算符与表达式

第一节 C的数据类型

第二节 常量和变量

常量和符号常量;变量的定义和使用。

第三节 整型数据

整型常量的表示方法;整型常量;整型常量的类型。第四节 实型数据

实型常量的表示方法;实型常量;实型常量的类型。第五节 字符型数据

字符常量;字符变量;字符数据在内存中的存储形式及其使用方法;字符串常量。第六节 变量赋初值 变量赋初值的方法。

第七节 各类数值型数据间的混合运算

运算规则和实例。

第八节 算术运算符和算术表达式

算术运算符;算术表达式。

第九节 赋值运算符和赋值表达式

赋值运算符;赋值表达式。第十节 逗号运算符和逗号表达式

逗号运算符;逗号表达式。【基本要求】

1、掌握C语言所提供的数据类型以及基本数据类型常量的书写方法和变量的定义、赋值和初始化方法;

2、掌握基本运算符的运算规则及优先级别;

3、了解C语言的数据类型体系和运算符体系;

4、能正确构成有基本数据类型组成的基本类型的表达式。

重点:基本数据类型常量的书写方法和变量的定义、赋值、初始化、使用方法;基本运算符的运算规则及优先级别;表达式的构成规则和计算。难点:运算符的优先级别;混合表达式计算;逻辑值的表示方法。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社] 第4章 最简单的C程序设计-顺序程序设计

第一节 C语句概述

C语言中的语句类型。第二节 赋值语句

赋值语句的用法。

第三节 数据输入输出的概念及在C语言中的实现

输入、输出概念;输入/输出实现方式。第四节 字符数据的输入输出

putchar函数的使用;getchar函数的使用。第五节 格式输入与输出

printf函数的使用;scanf函数的使用。第六节 顺序结构设计程序举例 【基本要求】

1、了解C语言所包含的语句;

2、熟练掌握赋值语句以及字符输入输出、格式输入输出函数的使用方法;

3、学会按照一定的格式输出相应的数据类型,能正确设计顺序结构的程序。重点:赋值语句的格式和功能;字符和格式输入/输出函数的调用格式和功能。难点:格式输入/输出函数中格式控制字符的使用。【参考学时】4学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第5章 选择结构程序设计

第一节 关系运算符和关系表达式

关系运算符及其优先次序;关系表达式。第二节 逻辑运算符和逻辑表达式

逻辑运算符及其优先次序;逻辑表达式。第三节 if语句

if语句的三种形式;if语句的嵌套;条件运算符。第四节 switch语句

swtich语句的用法。第五节 程序举例 【基本要求】

1、掌握关系运算符、逻辑运算符的运算规则以及关系表达式和逻辑表达式的使用;

2、掌握条件运算符、条件表达式的使用;

3、熟练掌握条件选择语句if语句的使用;

4、熟练掌握多分支语句switch语句的使用。

重点:关系运算符、逻辑运算符、条件运算符的使用,混合运算时的优先级别; if语句的语法格式;if语句的嵌套;使用switch语句实现多分支结构的程序设计方法。

难点:运算符混合运算的优先级别;if语句的嵌套;switch语句的使用。【参考学时】4学时

【参考资料】[1.谭浩强《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第6章 循环控制

第一节 概述

C语言中实现循环的语句类型。第二节 goto以及用goto语句构成循环

goto语句的用法。第三节 while语句

while语句的用法。第四节 do-while语句

do-while语句的用法。第五节 for语句

for语句的用法。第六节 循环的嵌套

循环嵌套的种类;嵌套语法。第七节 几种循环的比较

第八节 break语句和continue语句

break语句;continue语句。第九节 程序举例 【基本要求】

1、熟练掌握循环结构的控制语句:while语句、do_while语句、for 语句的用法;

2、掌握三种循环控制语句的区别和联系;

3、掌握break、continue、goto语句的功能和语法格式;

4、能够根据循环结构的要求正确选取循环语句来实现循环,掌握循环程序的执行过程。

重点:三种循环语句while、do_while、for的使用;break、continue、goto语句的使用;循环程序的执行过程;嵌套的循环程序。

难点:循环程序的执行过程;嵌套的循环程序。【参考学时】4学时

【参考资料】[谭浩强 《C程序设计》(第三版)清华大学出版社2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第7章 数组

第一节 一维数组的定义和使用

一维数组的定义;一维数组元素的引用;一维数组的初始化;一维数组程序举例。第二节 二维数组的定义和使用

二维数组的定义;二维数组的引用;二维数组的初始化;二维数组程序举例。第三节 字符数组

字符数组的定义;字符数组的初始化;字符数组的引用;字符串和字符串结束标志;字符数组的输入输出;字符串处理函数;字符数组的应用。【基本要求】

1、掌握数组的概念、一维数组、二维数组和多维数组的定义和使用;

2、掌握字符数组、字符串的区别和具体应用;

3、掌握处理字符串的系统函数的使用方法。

重点:一维数组、二维数组和多维数组的定义和使用;字符串的处理函数的使用。难点:字符数组、字符串的区别,存放若干字符和存放字符串的字符类型数组的差别。【参考学时】6学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第8章 函数

第一节 概述

函数的作用及分类。第二节 函数定义的一般形式

无参函数的定义形式;有参函数定义的一般形式;空函数;形参声明的方式。第三节 函数参数和函数的值

形式参数;实际参数;函数的返回值。第四节 函数的调用

函数调用的一般形式;函数调用的方式;对被调函数的声明;函数原型。第五节 函数的嵌套调用

函数嵌套调用的含义及其方式。第六节 函数的递归调用

递归;函数递归调用的方式。第七节 数组作为函数参数

数组元素作为函数实参;数组名作为函数参数;多维数组名作为函数参数。第八节 局部变量和全局变量

局部变量;全局变量;局部变量和全局变量的使用。第九节 变量的存储类别

动态存储方式和静态存储方式;auto变量;用static声明局部变量;register变量;用extern声明外部变量;用static声明外部变量;变量的声明和定义的区别。第十节 内部函数和外部函数

内部函数;外部函数。

第十一节 如何运行一个多文件的程序

在Turbo C集成环境下编译连接多文件结构的方法。【基本要求】

1、熟练掌握函数的结构、设计方法和调用方法;

2、掌握函数调用中数据传递的两种方式——值传递和地址传递的区别;

3、掌握C程序中变量的存储类型以及使用;

4、掌握嵌套调用函数、递归函数的使用并能正确使用各种常用的系统函数。

重点:函数的定义和调用方法;调用函数时数据传递方法;常用系统函数的使用。难点:值传递和地址传递的区别;编写递归函数。【参考学时】8学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第9章 预处理命令

第一节 宏定义

不带参数的宏定义;带参数的宏定义。第二节 “文件包含”处理

“文件包含”命令及其使用。第三节 条件编译

条件编译命令及其使用。【基本要求】

1、掌握宏定义和宏替换的一般方法;

2、掌握文件包含的处理方法;

3、了解条件编译的作用和实现方法。

重点:无参数的宏定义和宏替换;带参数的宏定义和宏替换;文件包含处理。难点:带参数的宏定义和宏替换。【参考学时】1学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第10章 指针

第一节 指针和地址的概念

内存地址及其访问方式;指针。第二节 变量的指针和指向变量的指针变量

变量的指针;指针变量的定义;指针变量的引用;指针变量作为函数参数。第三节 数组和指针

指向数组元素的指针;通过指针引用数组元素的方法;数组名指针变量作为函数参数的用法;指向多维数组的指针和指针变量。第四节 字符串和指针

字符串的表示形式;字符串指针作为函数参数;使用字符指针变量与使用字符数组的区别。

第五节 函数的指针和指向函数的指针变量

用函数指针变量调用函数;用指向函数的指针作为函数参数。第六节 返回指针值的函数

返回指针的函数的定义及其使用。第七节 指针数组和指向指针的指针

指针数组的概念;指向指针的指针;指针数组作main函数的形参。第八节 有关指针的数据类型和指针运算的小结

指针数据类型;指针运算;void指针类型。【基本要求】

1、掌握地址和指针的概念及二者之间的关系;

2、熟练掌握定义指针变量和访问该变量的方法;

3、掌握指针变量的各种使用方法。

重点:指针变量的定义、初始化和赋值方法;利用指向变量、数组、字符串的指针变量来正确引用变量、数组、字符串;指针变量作为函数参数的情况;

难点:指针变量作为函数参数的情况;指向多维数组的指针变量和多维数组的地址。【参考学时】9学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第11章 结构体与共用体

第一节 概述

结构体类型的作用;结构体类型的定义。第二节 定义结构体变量的方法

定义结构体变量的三种方法。第三节 结构体变量的引用

结构体变量的引用原则。第四节 结构体变量的初始化

结构体变量的初始化方法。第五节 结构体数组

结构体数组的定义;结构体数组的初始化;结构体数组的应用。第六节 指向结构体类型数据的指针

指向结构体变量的指针;指向结构体数组的指针;用结构体变量和指向结构体的指针作为函数参数。

第七节 用指针处理链表

链表的概念;链表的结构;处理动态链表的函数;动态链表的建立;链表的输出;链表的删除操作;链表的插入操作;链表的应用。第八节 共用体

共用体的概念;共用体变量的引用方式;共用体类型数据的特点。第九节 枚举类型

枚举的概念;枚举型数据的定义和使用。第十节 用typedef定义类型

typedef定义类型的方式。【基本要求】

1、熟练掌握结构体构造数据类型的定义、初始化和使用;

2、掌握链表处理的过程以及共用体数据类型的定义和使用;

3、了解枚举类型的定义和使用和typedef自己定义类型的方法。

重点:结构体、共用体、枚举类型的特点和使用;结构体型变量、数组、指针变量的定义、初始化和成员引用方法;链表的建立,插入和删除等操作。

难点:嵌套的结构类型数据的处理;链表处理。【参考学时】8学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第12章 位运算

第一节 位运算和位运算符

“按位与”运算符;“按位或”运算符;“异或”运算符;“取反”运算符;左移运算符;右移运算符;为运算赋值运算符。第二节 位运算举例 第三节 位段

位段的概念;位段的使用。【基本要求】

掌握位运算符和位运算的基本操作。

重点:位运算符的功能;位段的概念及使用。难点:位段的使用。【参考学时】2学时

【参考资料】[1.谭浩强 《C程序设计》(第三版)清华大学出版社 2.谭浩强、张基温、唐永炎《C语言程序设计教程》高等教育出版社(第二版)3.谭浩强 《C程序设计习题及上机指导》 清华大学出版社]

第13章 文件 第一节 C文件概述

文件的概念;文件的类型和处理方式。第二节 文件类型指针

文件指针的定义方法。第三节 文件的打开与关闭

文件的打开;文件的关闭。第四节 文件的读写

fputc函数及其使用;fgetc函数及其使用;fread函数和fwrite函数及其使用;fprintf函数和fscanf函数及其使用;其他读写函数。第五节 文件的定位

rewind函数;fseek函数和随机读写;ftell函数。第六节 出错的检测

ferror函数;clearerr函数。第七节 文件输入输出小结

【基本要求】

1、要求掌握缓冲文件系统中有关文件操作的系统函数的使用方法;

2、掌握设计并编写对文件进行处理的实用程序。

重点:缓冲文件系统中“文件型”指针的概念;有关文件操作的系统函数的使用。难点:文件处理系统函数的使用,掌握各个函数中参数的功能和区别。【参考学时】4学时

上一篇:构建和谐校园公开课下一篇:棒材厂