C语言学习总结(11篇)
1.C语言学习总结 篇一
学习总结
暑假即将来临,很开心,但也意味着C语言的学习即将到了尾声。谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。
其实怎么说呢,学习它的时间说长不长,说短也不短了。可是对于它,我也只能说还是处于一知半解的状态下。说不懂吧,你让我拿着书自己也能写出程序来,说不懂呢,就是相对于难一点的程序我就不行了。
不过就算如此也还是有不少收获的。首先,老师让我们时常的敲程序,一开始不明白,后来慢慢发现敲程序也许是最笨的方法但也是进步最快的方法。敲程序的过程就是积累经验的时候,而自己写程序才是真正把所学为所用的时候,可以说只有你做一个大点的程序写出来才能真正是说明你学到了东西,你会用所学的东西,要不然就算你学的再多,不会用也没用啊。其次,在看它敲它的过程中,也从中了解了它的规则是什么、有什么用、怎么实现等,这样自己编起程序来也更得心应手了。最后,也养成了良好的编程习惯。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等。这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯
可以使我们在调试时减小工作量和提高调试效率,也有助于形成自己的编程风格。
说了很多学到的,当然也有欠缺的地方。比如,书,我很少看,只有敲程序,或者编程序的时候我才会看。敲程序呢,坚持的时间也不是很持久,只有想的时候和上课的时候才回敲。
也许C语言就这样结束了,但是我想以后用到它的地方还很多,所以我想还是自己坚持学下去,自己好好的看书,慢慢的研究学习,把自己不足的地方,努力的补全。
2.C语言学习总结 篇二
关键词:高校,C语言编程,改善对策
1 C语言及其优势
C语言作为目前世界上使用最广泛、最流行的计算机编程语言,要想学习起来得心应手,对其的了解也是必不可少的,C语言起源于上世纪60年代,成型于70年代,在近50年的使用过程中表现出了以下特点:C语言简介紧凑、灵活方便,语法限制不严格,程序的书写比较自由,将高级编程语言的结构性和低级编程语言的实用性有效的结合起来,形成了新的功能强大的编程语言;应用广泛,可植性强,C语言适用于多种操作系统;C语言中各种运算符丰富,在C语言编程过程中灵活的使用各种运算符,可以实现其他很多高级语言无法实现的功能;数据结构丰富:多种的数据结构类型的使用使C语言除了可以完成各种复杂的数据运算外还具有强大的图形功能;结构式的语言特点使代码和数据分割,程序层次清晰,便于使用、维护、调试;用C语言可以直接对物理地址进行访问,由此可见C语言的强大功能,所以在信息技术的世界中C语言的地位是很高的。
2 学习C语言枯燥原因分析
C语言的强大功能决定了它的“江湖地位”,所以社会重视、企业重视、学校重视使得学习C语言、想掌握C语言技术的人也越来越多,但是大部分人在学习过程中却表示:C语言的学习是非常难,非常枯燥的,经常是一个学期下来感觉毫无所获,还是处于云里雾里,对学科没有整体清晰的概念。为什么会出现这样的状况呢,为什么越重视效果越不行?笔者认为C语言属于高级语言,是跟面向对象的语言有很大的区别的面向过程的编程语言,它不能直接看到很华丽的画面效果,编写过程稍有不慎就会出错,而且C语言中的很多算法和数据结构如果不加以理解而只是死记硬背的话是会非常枯燥且容易出错的。在运行过程中不能很直接的看到出错的地方,需要自己投入其中进行深入分析,还应该积极的研究算法,因为只有充分地了解算法才能够在C语言的学习上游刃有余,将C语言知识融会贯通,教师在教学过程中也不能一味的讲解,而不考虑学生的接收情况,想当然学生都应该懂。笔者认为C语言编程的学习中,C语言编程技巧可以帮助C语言的学习。
3 C语言编程技巧
现在的C语言学习过程中,学生普遍感觉枯燥无味,其实笔者认为初学C语言觉得比较复杂是人之常情,但是只要你具备了一定的编程经验,再掌握一些编程技巧,其实C语言也不是很难,而且可以更加有效地提高编程的效率和编程能力。在此介绍几种在实践中比较有用的编程技巧:
首先熟练掌握指针,指针的重要性是学习过C语言的人都知道的,指针为什么重要,因为其可以大大提高运算的速度,并且使用的语句简单,但是可以达到意想不到的效果,当然指针也有缺点,就是占用了大量的内存,但是获得了程序执行的高效率。如果系统的实时性要求很高,内存还有一些可以使用指针操作会达到良好的效果。其次运用数学方法解决问题,在C语言的学习过程中,一般有大量的算法和数据结构需要去了解,通常这个阶段是最难熬的阶段,因为对于初学者来说显得比较复杂和枯燥,IT界有一句比较实在的话“数学是计算机之母”,由此可见数学在计算机学习中的重要地位,同理,在C语言的学习过程中,数学思想的应用会让人有豁然开朗之感,一般而言程序的编写都是要解决问题,而简单的运算问题的解决其实就是在数学领域的,编写程序是为了让计算机可以代替人操作运算过程,从而减少人力。从这个角度上来说,在编程前应该用数学的思维寻找规律,用数学的威力来提高编程效率,拓展编程人员的思维。最后要用高效的C语言编程,可以使用位操作,在所有的计算机程序中,可以说位是最小的数据单位,一般而言所有的运算和操作都可以通过“位运算”来解决,足见“位”在编程语言中的重要性,在C语言编程过程中使用位操作可以使代码更简洁,效率更高,当然使用任何技巧都应该视情况而定,如位操作的使用有时可能导致程序的安全隐患。
上面介绍的几种提高编程效率的编程技巧总体来说对于学习C语言指明了方向,让人们在C语言的学习中有重点和方向可寻,必定能使得人们学习C语言的积极性提高,将C语言应用地更加广泛。
4 结语
C语言的强大功能和可植入性一直是其他编程语言望尘莫及的,所以C语言在IT界广受追捧,熟悉C语言的人都被人称为“电脑高手”,所以这些年来,C语言在高校中也有原来的计算机专业课程发展到现在的理工类公共课程,自然,这对于C语言的发展来说是一件好事。与面向对象的编程语言不同,C语言是一门面向过程的编程语言,这就决定了其对算法和数据结构的要求比较高,而算法和数据结构恰恰是编程语言中比较难的部分,正因如此,现在在C语言的学习过程中,大部分人都表示这是一门很重要却很难学的课程,要让C语言更好地服务,必须打破这种现状。笔者认为在C语言的编程教学中加入C语言编程技巧的教学可以很好地改善现状。因为C语言编程技巧可以让人们提高学习兴趣、学习起来也比较有目的性,可以很好地提高C语言的学习效果。
参考文献
[1]李利国,王磊.C语言编程风格之六大章法[J].成才之路,2007,(20).
[2]王展运.C语言编程中常见错误及解决办法[J].长江职工大学学报,2002,(03).
[3]李自清.浅谈C语言编程中的常见错误和解决方法[J].科技信息(科学教研),2007,(33).
[4]王彤,张小志,王大鹏.C语言编程的技巧探讨[J].科技信息(学术研究),2007,(09).
3.浅谈C语言的学习技巧 篇三
关键词:C语言;C语言学习;C语言技巧
中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21713-03
Shallowly Discusses the C Language Learning Skills
CHEN Wu
(Electronic Information Institute of Yangtze University, Jingzhou 434023, China)
Abstract:C language as a broad international popular computer language, Over the years we have been like to learn but difficult to learn. This article is Based on a brief introduction to the C language, combined with years C language learning experience of the author, analysis of the skill of learning C language and participation computer rank test.
Key words:C language; C language studies; the C language skill; C program
1 学习C语言的意义
一提起C语言,大家就有说不出的忧与喜,为什么呢?很多人都认为它难学,但如果学进去了,就会觉得其乐无穷。
在学习C语言之前,我们先了解一下C语言的发展史。C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的DEC PDP-11计算机上使用。它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。在1970年,AT&T贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致C语言的问世。随着微型计算机的日益普及,出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。
C语言是国际上广泛流行的计算机语言,既可以用来写系统软件,也可以用来写应用软件。许多著名的软件,如DBASEⅢ PLUS、DBASEⅣ 都是由C 语言编写的。学好C语言,可以为以后学习其他语言打下一个良好的基础,比如网络编程语言PHP的绝大部分内容与C语言相同,如果学过C语言,那么再学PHP就会非常轻松。
2 TC2.0的使用方法
TC2.0是TURBO C2.0的简称。Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司在1987年首次推出Turbo C 1.0产品,1988年,Borland公司又推出Turbo C1.5版本,增加了图形库和文本窗口函数库等,而Turbo C 2.0则是该公司1989年出版的。TC2.0下载好后,要安装在C盘的根目录下,也就是地址C:TC下。安装好后,打开TC的应用程序,将出现以下界面:
其中顶上一行为Turbo C 2.0主菜单,中间窗口为编辑区,接下来是信息窗口,最底下一行为参考行。这四个窗口构成了Turbo C 2.0的主屏幕,以后的编程、编译、调试以及运行都将在这个主屏幕中进行。其实,上面这么多的菜单栏,只要掌握几个功能就行了。首先,按F10键,进入主菜单,用键盘上的“←”和“→”键可以选择菜单中所需要的菜单项,被选中的项以“反相”形式显示(如菜单中的各项原来是以白底黒字显示,选中后就会改为黒底白字显示)。此时按回车键或者“↓”键,就会出现一个下拉菜单。开始选择File的下拉菜单中的new选项,创建一个新的文件,当把源程序编写好后,按F9键,完成编译和连接,这时屏幕上会显示编译或连接时有无错误的信息框,按任意键,信息框消失,光标停留在出错之处。修改完毕后,再按F9,再次进行编译与连接,直到不再显示出错为止,再按Ctrl+F9组合键,系统就会执行程序,如果需要输入数据,则应从键盘输入数据,按回车键后,再按Alt+F5查看结果。最后选择File下拉菜单下的Save或者Save as保存,Save是保存在默认目录下,Save as是自己选择目录保存。最后按Alt+X关闭窗口。在使用TC时一定要习惯使用键盘,虽说有些版本的TC可以使用鼠标进行操作,但在计算机二级考试中的TC可不能用鼠标。再提一点,就是TC2.0与TC3.0的区别,最明显的是在TC2.0中有很多头文件不用加上去,但用TC3.0编写程序时,在每个程序的开头,都要加上#include(stdio.h),如果要进行算术运算,就要加上#include(math.h),而这些在TC2.0中都不需要加。
3 C语言内容概述
C语言的内容大致可以分为这么几块:(1)C语言的运算符与运算顺序;(2)C语言的三种基本程序结构,顺序,选择,循环;(3)数组;(4)函数;(5)指针;(6)结构体与共用体;(7)文件。本文针对这些内容,每一块简要介绍几句,也许对大家的C语言学习有些许帮助。
3.1 C语言的运算符与运算顺序
学好C语言的运算符和运算顺序,这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些運算也就不困难了,有些运算符在理解后就会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用时再记不迟。
3.2 C语言的三种基本结构
C语言的三种基本结构是构成程序的最基本的框架,顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如选择结构中的复合语句、循环结构中的循环体等。在学习选择结构时,要注意它的嵌套使用,也就是一个if语句中又有一个if语句,在if的判断语句中要注意一个问题,就是=与==的区别,比如if(b=1)与if(b==1),在执行完if(b=1)后,b的值为1,而执行完if(b==1)后,b的不变。在循环语句中,要注意break与continue的用法与区别,break语句是使程序从循环体中退出,从而结束循环;而continue语句是结束本次循环,进入下一个循环。
3.3 数组
数组就是一个同类元素的集合,也就是说,一个数组中的元素必须是同类型的,数组主要有一维数组与二维数组,而二维数组的本质就是一维数组,说通俗一点,二维数组就是把一维数组拆成了几行。要注意对二维数组的几种定义与初始化的方法:
(1)可以只对部分元素赋初值,未赋初值的元素自动取0值。
例如:int a[3][3]={{1},{2},{3}}; 是对每一行的第一列元素赋值,未赋值的元素取0值。赋值后各元素的值为:1 0 0 2 0 0 3 0 0。int a [3][3]={{0,1},{0,0,2},{3}}; 赋值后的元素值分别为 0 1 0 0 0 2 3 0 0。
(2)如对全部元素赋初值,则第一维的长度可以不给出。
例如:int a[3][3]={1,2,3,4,5,6,7,8,9}; 可以写为:int a[][3]={1,2,3,4,5,6,7,8,9}。
C语言中,只能单个引用数组元素,而不能一次引用整个数组元素,在对数组进行引用与赋值时,要学会使用循环语句。还有一点就是要注意把字符串赋给数组的几种方法。
3.4 函数
函数是C源程序的基本模块。从函数定义的角度看,函数可分为库函数和用户定义函数两种。C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。函数定义的一般格式:
[数据类型] 函数名([形式参数])
{类型说明;
语句;}
函数一般都有返回值,用return语句返回返回值。要学会函数的递归调用与嵌套调用,注意函数的值传递与地址传递。
3.5 指针
有人说,指针是C语言的灵魂,它C语言中广泛使用的一种数据类型,学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试。只要做到这些,指针也是不难掌握的。假定P是指针,那么P就是指针变量,它的内容是地址量,*P是指针的目标变量,它的内容是数据,&P是指针变量占用的存储区域地址。把整型变量a 的地址赋予p可以有以下两种方式:
(1)指针变量初始化的方法
int a;int *p=&a;
(2)赋值语句的方法
int a;int *p;p=&a;
不允许把一个数赋予指针变量,故下面的赋值是错误的:int *p;p=1000; 被赋值的指针变量前不能再加“*”说明符,如写为*p=&a 也是错误的。指针与数组的联系也是十分密切的。有如下例子:
int *p,s[10];
P=s;
可以用&s[i],s+i,p+i来表示s[i]的地址。
int *p,s[10][10];
p=s;
可以用&s[i][j]和p+i*10+j来表示s[i][j]的地址。
把字符串的首地址赋予指向字符类型的指针变量。例如:char *pc;pc="c language"; 或用初始化赋值的方法写为:char *pc="C Language"; 这里应说明的是并不是把整个字符串装入指针变量,而是把存放该字符串的字符数组的首地址装入指针变量,要特别注意指针作为函数参数时,可以在调用一个函数时得到多个由被调函数修改的值,还有返回指针的问题,许多库函数都是返回指针值,在调用时一般都要设立相应的指针来接受返回值。
3.6 结构体与共用体
结构和联合是两种构造类型数据,是用户定义新数据类型的重要手段。要学会结构体与共用体类型数据的定义方法和引用方法与用指针和结构体构成链表,链表的建立、输出,这些是以后编写一个大型程序必不可少的。
3.7 文件
C系统把文件当作一个“流”,按字节进行处理。C文件按编码方式分为二进制文件和ASCII文件。C语言中,用文件指针标识文件,当一个文件被 打开时,可取得该文件指针。文件在读写之前必须打开,读写结束必须关闭。文件可按只读、只写、读写、追加四种操作方式打开,同时还必须指定文件的类型是二进制文件还是文本文件。文件可按字节,字符串,数据块为单位读写,文件也可按指定的格式进行读写。文件内部的位置指针可指示当前的读写位置,移动该指针可以对文件实现随机读写。
4 C语言的学习技巧
有人说,C语言的学习就是一个体力活,也就是说,要勤上机。对此,笔者深有感触,可以说学习C语言的过程就是上机的过程。在学习C语言的第一个星期,笔者花了三个小时看书,十五个小时上机。那时,刚接触C语言,不知道从何下手,但笔者悟出了一个道理,就是学习任何一种语言,都要从软件方面着手。到网上查阅资料后,找到了TC2.0,下载安装好后,就照着书本操练起来。当时,笔者对C语言的语法一窍不通,就是照着书一个字母、一个字母的往上敲,边敲边看书上对这个程序的解释,敲完后,就运行程序,但界面上显示在程序中还有几处错误,又照着书一个一个字地对,发现不是这儿少了一个分号,就是那个单词打错了,改过来再次运行就成功了。有时,一个程序调试了半天就是找不到错误所在,就有点泄气了,但是,万事开头难,只要度过了这个难关就好了。就这样,不停的敲程序,不停的改,逐渐有了些感觉。学习就是要有兴趣,有兴趣了就可以学好任何东西。在对C语言地一些基本的语法有所了解后,就尝试着对书上的程序进行一些改动或者自己编写一些小程序,看看改了某个地方后程序会发生什么变化,如果发生了变化,就考虑为什么会发生这些变化,如何消除这些变化,就这样对这些程序进行剖析,对C语言有了更进一步的了解;有时,当脑海中有了某些想法时,就在计算机上进行模拟,当然这些想法有时会成功,有时会失败,每当成功了,就有一种成就感,失败了也不气馁,这样对C语言的兴趣逐渐浓厚起来了,有时一下课笔者就往机房跑,把自己又有的想法与疑惑到电脑上进行试验。学习C语言时,不要怕看长程序,自己多分析几个长的程序后,再去看那些短的程序时,一眼就可以看出程序的目的。
下面再来谈一谈计算机二级考试。全国计算机二级考试每年四月份与九月份各举行一次,由笔试与机试两部分组成,笔试120分钟,机试60分钟,笔试部分又有两部分组成,公共基础知识与C语言程序设计知识,只有选择题与填空题。机试只有三道题,填空,改错与程序设计。笔试只要把历年的考试题做完就可以了,而机试是从一百套题中抽出来的,那一百套题的題库是公开的,考试前把那一百套题做一遍就应该没问题了。在进行机试时,一定要注意这几个问题:做填空题时,一定要把空的下划线去掉,做填空与改错时不要增行删行,因为机试是电脑评卷,电脑在改这两题是是逐行逐行的扫描,一旦发现哪一行与标准答案有不相符的地方就会判为错误,哪怕写对了。做机试题目时,一定要有输出结果,不然就会没分,还有如果题目中这样说:请设计一个程序,将一个数的奇位输出,比如输入7654321,那么就要输出7531。当你把程序修改完或设计好后,一定要输入7654321,而不要输入其它数,电脑评卷时是要看你的结果的,如果结果不是7531,而是其它,可能会判你错。最后做完题一定要保存,最好选择save,而不选save as。
参考文献:
[1]谭浩强. C语言程序设计[M]. 第二版.北京:清华大学出版社,2005.
[2]全国计算机等级考试全真笔试+上机考题解答与训练[M]. 电子科技大学出版社,2005.
[3]全国计算机等级考试二级教程——C语言程序设计[M]. 高等教育出版社,2002.
[4]全国计算机等级考试考试大纲.2006.
4.c语言总结 篇四
大家可以看出,指针、数组、字符串无论在笔试还是上机都是重中之重,既是重点又是难点。C语言程序初步、顺序结构、选择结构、循环结构、函数是基础。编译预处理、作用域与存储类、位运算、文件等是难点但不是重点,每年都会考到,但题量都不大。结构体与共用体可以说比较重点又是难点。公共基础部分除了程序设计基础这一部分,其他三部分旗鼓相当,都是重点。
第一章 C语言基本知识
【考点1】C程序
用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C语言有三种基本结构:顺序结构、选择结构、循环结构。
【考点2】main函数
又称主函数,是C程序的入口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体。一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
【考点3】存储形式
计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。数据的存放位置就是它的地址。【考点4】注释
是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。【考点5】书写格式
每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。
【考点6】标识符
是标识名字的有效字符序列,可以理解为C程序中的单词。
标识符的命名规则是:
(1)标识符只能由字母、数字和下划线组成,字母区分大小写。
(2)标识符的第一个字符必须是字母或下划线,不能为数字。C语言标识符分如下3类
(1)关键字。它们在程序中有固定的含义,不能另作他用。
如:int、for、switch等。
(2)预定义标识符。预先定义并具有特定含义的标识符。
如:define、include等。
(3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。【考点7】常量与变量
常量是指在程序运行过程中,其值不能改变的量。常量分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。在程序运行过程中其值可以改变的量称为变量。C语言中没有字符串变量。存放字符串使用字符数组。【考点8】整型数据
整型常量有十进制、八进制、十六进制三种表示形式,没有二进制形式。八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中不会出现8。
整型变量可分为基本整型(int)、短整型(short)、长整型(long)、和无符号整型(unsigned)。一个基本整型占4个字节。其它类型的整型占用字节数和取值范围详见教材第9页。【考点9】实型数据
实型数据有两种表示形式:小数形式和指数形式。掌握判定指数形式合法性。口诀:E前E后必有数,E前为实E后整数。
实型变量分为单精度型(float)和双精度型
(double),单精度型占四个字节。【考点10】算术运算
算术运算符一共有+、—、*、/、%这五个。求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型即舍掉小数部分。【考点11】强制类型转换
将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。【考点12】赋值
赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。
复合赋值运算符是将算术运算符或位运算符与赋值运算符组合在一起组成的运算符,掌握复合赋值表达式转化为赋值表达式的方法。如n+=100可转化为n=n+100。【考点13】自加自减运算
自加运算符“++”与自减运算符“--”是单目运算符,运算对象必须是变量。自增自减运算分前缀运算和后缀运算,它们所对应的表达式的值是有区别的,如j=i++;等价于j=i;i=i+1;而j=++i;等价于i=i+1;j=i。口诀:加加在前先加后用,加加在后先用后加。【考点14】逗号运算
逗号运算符运算优先级最低,可将多个表达式构成一个新的表达式。
第二章
顺序结构
【考点1】运算符、表达式、语句
运算对象加运算符构成表达式,表达式加分号构成表达式语句,运算对象可以是表达式、常量、变量。如赋值运算符加运算对象构成赋值表达式,赋值表达式加分号又可构成赋值语句。【考点2】运算符的优先级和结合顺序
运算符按参加运算的对象数目可分为单目运算符、双目运算符和三目运算符。初等运算符的优先级别最高,然后依次是单目运算符、算术运算符、关系运算符、逻辑运算符(除逻辑非!)、条件运算符、赋值运算符、逗号运算符。位运算符优先级介于算术运算符与逻辑运算符之间。结合顺序大多为自左向右,而自右向左的有三个:单目运算符、条件运算符和赋值运算符。
口决: 圆方括号、箭头一句号,自增自减非反负、针强地址长度,乘除,加减,再移位,小等大等、等等不等,八位与,七位异,六位或,五与,四或,三疑,二赋,一真逗。
其中“,”号为一个等级分段。【考点3】printf函数
格式为:printf(输出控制,输出列表)。输出控制是用一对双引号括起来的,包含格式说明和原样信息。输出列表包含若干输出项。【考点4】printf函数中格式说明
%d对应整型,%f对应单精度实型,%c对应字符型,%o对应八进制无符号整型,%x对应无符号十六进制整型,%u对应无符号整型,%e对应指数型,%s对应字符串型。可在%和格式字符之间加一个数来控制数据所占的宽度和小数位数。【考点5】scanf函数
输入项要求带取地址符&。当用键盘输入多个数据时,数据之间用分隔符。分隔符包括空格符、制表符和回车符,但不包括逗号。【考点】6如何交换两个变量
要使用中间变量,语句为:t=x;x=y;x=t;
第三章
选择结构
【考点1】关系运算
C语言用非0表示逻辑真,用0表示逻辑假。关系运算符有6个,分别是>,>=,<,<=,==,!=,前四种优先级高于后两种。关系表达式真时为1,假时为0。注意a
【考点2】逻辑运算
逻辑运算符共有3个:逻辑与(&&),逻辑或(||),逻辑非(!)。注意短路现象,例a++||b++,如果表达式a++的值非零,则表达式b++不再执行。【考点3】if语句
可以单独出现,也可以与else匹配出现。if语句可以嵌套,这时else总是与离它最近的且没有与else匹配的if匹配。【考点4】条件运算
是唯一的三目运算符,格式为:表达式1?表达式2:表达式3。表达式1值为非0时,整个表达式值为表达式2的值,表达式1值为0时,整个表达式值为表达式3的值。口诀:真前假后 【考点5】switch语句
格式及执行过程详见教材P43,要注意每条case后有没有break语句的区别。还要注意switch后小括号里面的表达式不能为实型,case后表达式不能有变量。口诀:switch表不为实,case表不为变。
第四章
循环结构
【考点1】三种循环结构
三种循环结构分别为:while,do-while,for,三种结构的格式及执行顺序详见教材第50、53、55页。注意for循环中的小括号中必须是两个分号;循环一定要有结束条件,否则成了死循环;do-while()循环最后的while();后一定要有分号。【考点2】break与continue
break是终止所在整个循环,而continue是提前结束本轮循环。break语句可出现在循环结构与switch语句中,continue只出现在循环结构中。【考点3】循环的嵌套
就是循环里面还有循环,计算要一层一层分析,一般只考查两层嵌套,循环嵌套通常是处理二维数组。
【考点4】循环结构的复习
循环结构是重点,笔试所占分值一般在13分左右,在上机考试中也是必考点,应用性很强。要求学员重点理解并多加练习,领会掌握。
第五章
字符型数据 位运算
【考点1】字符常量
一个字符常量用一对单引号括起来,字符常量只能包括一个字符,‟ab‟是非法的。空格常用‟□‟来表示。字符常量可用对应的ASCII码表示,需记住:‟0‟的ASCII码为48,‟A‟的ASCII码为65,‟a‟的ASCII码为97。
【考点2】转义字符
一对单引号中以一个反斜线后跟一个特定字符或八进制、十六进制数来构成转义字符。比如‟n‟表示换行,‟101‟或‟x41‟表示ASCII码为65的字符‟A‟。【考点3】字符型数据可以和整型数据相互转换
如:‟0‟-0=48 „A‟+32=‟a‟
char a=65;printf(“%d%c”,a,a);结果为65A 【考点4】位运算符
C语言提供6种位运算符:按位求反~,按位左移<<,按位右移>>,按位与&,按位异或|,按位或^。一般情况下需要先转化进制。异或运算的规则:0异或1得到1,0异或0得到0,1异或1得到0。可记为“相同为0,不同为1”。【考点5】putchar与getchar函数
可用于输出或输入单个字符,这两个函数是stdio.h文件中的库函数,它们是printf与scanf函数的简化。
第六章
函数
【考点1】函数的定义
函数是具有一定功能的一个程序块。函数的首部为:函数类型 函数名(类型1 形参1,类型2 形参2,……)。在函数定义中不可以再定义函数,即不能嵌套定义函数。函数类型默认为int型。【考点2】库函数
调用C语言标准库函数时要包含include命令,include命令行以#开头,后面是””或<>括起来的后缀为”.h”的头文件。以#开头的一行称为编译预处理命令行,编译预处理不是C语言语句,不加分号,不占运行时间。【考点3】函数的返回值
函数通过return语句返回一个值,返回的值类型与函数类型一样。return语句只执行一次,执行完或函数体结束后退出函数。【考点4】函数的声明
函数要“先定义后调用”,或“先声明再调用后定义”。函数的声明一定要有函数名、函数返回值类型、函数参数类型,但不一定要有形参的名称。【考点5】函数的调用
程序从上往下执行,当碰到函数名后,把值传给调用函数,当程序得到了返回值或调用函数结束,再顺序往下执行。【考点6】函数的参数及值传递
形式参数简称形参,是定义函数时函数名后面括号中的参数。实在参数简称实参,是调用函数时函数名后面括号中的参数。实参和形参分别占据不同的存储单元。实参向形参单向传递数值。“传值”与“传址”的区别:传数值的话,形参的变化不会改变实参的变化。传地址的话,形参的变化就有可能改变实参所对应的量。
【考点7】函数的递归调用
函数直接或间接地调用自己称为函数的递归调用。递归调用必须有一个明确的结束递归的条件。在做递归题时可把递归的步骤一步步写下来,不要弄颠倒了。【考点8】要求掌握的库函数
sqrt()算术平方根函数,fabs()绝对值函数,pow()幂函数,sin()正弦函数
第七章
指针
【考点1】指针变量
指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节。【考点2】指针变量的定义
格式为:类型名 *指针变量名。二维指针int **p;可以理解为基类型为(int *)类型。【考点3】指针变量的初始化
指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL。【考点4】指针变量的引用
&是取地址符,*是间接访问运算符,它们是互逆的两个运算符。在指针变量名前加间接访问运算符就等价它所指向的量。【考点5】指针的运算
*p++和(*p)++之间的差别:*p++是地址变化,(*p)++是指针变量所指的数据变化。一个指针变量加一个整数不是简单的数学相加,而是连续移动若干地址。当两个指针指向同一数组时,它们可以比较大小进行减法运算。
第八章
数组
【考点1】数组的定义
数组是一组具有相同类型的数据的集合,这些数据称为数组元素。格式为:类型名 数组名[常量表达式]。数组的所占字节数为元素个数与基类型所占字节数的乘积。【考点2】数组的初始化
第一维长度可以不写,其它维必须写。int a[]={1,2};合法,int a[][3]={2,3,4};合法,int a[2][]={2,3,4};非法。数组初始化元素值默认为0,没有初始化元素值为随机。如在int a[5]={0,1,2};中,元素a[4]值为0;而在int a[5];中,元素a[4]值为一个不确定的随机数。【考点3】元素的引用
数组元素的下标从0开始,到数组长度减1结束。所以int a[5];中数组最后一个元素是a[4]。要把数组元素看作一个整体,可以把a[4]当作一个整型变量。【考点4】二维数组
数组a[2][3]={1,2,3,4,5,6};中含6个元素,有2行3列。第一行为a[0]行,第2行为a[1]行,a[0]、a[1]叫行首地址,是地址常量。*(a[0]+1)是第一行第一个元素往后跳一列,即元素a[0][1]值为2,*(a[0]+3)是第一行第一个元素往后跳三个,即元素a[1][0]值为4。【考点5】行指针
是一个指针变量,占四个字节,行指针指向一行连续数据,形式为:int(*p)[2];,p只能存放含有两个整型元素的一维数组的首地址。注意(*p)两边的小括号不能省略,否则就成了指针数组,是若干指针元素的集合。【考点6】数组名
数组名是数组的首地址。数组名不能单独引用,不能通过一个数组名代表全部元素。数组名是地址常量,不能对数组名赋值,所以a++是错误的。但数组名可以作为地址与一个整数相加得到一个新地址。
【考点7】元素形式的转换
助记:“脱衣服法则”a[2]变成*(a+2),a[2][3]变成*(a+2)[3]再可变成*(*(a+2)+3)。
第九章
字符串 【考点1】字符串常量及表示
字符串常量是由双引号括起来的一串字符,如”ABC”。在存储字符串时,系统会自动在其尾部加上一个空值‟‟,空值也要占用一个字节,也就是字符串”ABC”需要占四个字节。【考点2】字符数组
C语言没有字符串变量,只能采用字符数组来存储字符串。数组的大小应该比它将要实际存放的最长字符串多一个元素,从而存放‟‟。【考点3】字符串赋值
可以用下面的形式进行赋值:char str[]=”Hello!”;或char *p;p=”Hello!”;,但不能用下面的形式:char str[10];str=”Hello”;因为str是一个地址常量,不能进行赋值操作。【考点4】字符串的输入与输出
可以用scanf和printf函数,如scanf(”%s”,str);,也可用专门处理字符串的两个函数gets和puts函数,还可以对字符数组逐个元素进行赋值,但一定要在最后赋一个‟‟。使用gets函数可以接收空格,使用puts函数在最后输出一个换行。【考点5】字符串函数
要掌握的四个字符串函数:字符串拷贝函数
strcpy(),求字符串长度函数strlen(),字符串链接函数strcat(),字符串比较函数strcmp()。使用这些函数需在预处理部分包含头文件”string.h”。字符串长度要小于字符数组的长度,例:char str[10]=”Hello”;sizeof(str)的值为10(数组长度),strlen(str)的值为5(字符串长度)。这些函数是考试常用到的函数,大家一定要熟练应用这几个函数。
第十章
结构体与共用体
【考点1】结构体类型的说明
结构体是若干个类型数据的集合,结构体类型说明格式如下:struct 类型名 {类型1 成员名1;类型2 成员名2;……};,以上整个部分是一个数据类型,与整型的int是同样地位。可用typedef把结构体类型替换成一个只有几个字母的简短标识符。【考点2】结构体变量的定义
结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个结构体变量所占字节数为其所有成员所占字节数之和。如struct stu{char name[10];int age;} a,b;则表明定义了两个结构体变量a,b,每个变量占14个字节。a,b与int i,j;中的变量i,j是同样地位。【考点3】结构体成员的引用
引用成员可用以下3种方式:(1)结构体变量名.成员名;(2)指针变量名->成员名:(3)(*指针变量名).成员名。点(.)称为成员运算符,箭头(->)称为结构指向运算符。【考点4】链表
链表是由一个个结点构成的,一个结点就是一个结构体变量。每个结点可以分为数据域与指针域两个部分,数据域用来存放要存储的数据,指针域用来指向下一个结点。链表是考试中的难点,在C语言和公共基础部分都会考到,要领悟掌握。【考点5】共用体
共用体的使用格式与结构体相似,共用体定义的关键字为union,共用体所占字节数是所有成员中字节数最大的那个。
第十一章
文件
【考点1】文件类型指针
文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。在使用文件时,都需要先定义文件指针。【考点2】文本文件与二进制文件
文本形式存放的是字符的ASCII码,二进制形式存放的是数据的二进制。例如“100”如果是文本形式就是存储‟1‟、‟0‟、‟0‟三个字符的ASCII码(00110001 00110000 00110000),如果是二进制形式就把100转化成二进制(01100100)。【考点3】打开文件
文件的打开形式如下:FILE *fp;fp=fopen(“c:lab.c”,”rb”)。fopen函数的前面一部分为文件名,后面一部分为文件的使用方式。打开方式详见教材第127页,其中r代表读,w代表写,a代表添加,b代表二进制位的。【考点4】文件函数
判断文件结束feof函数,移动文件指针位置fseek函数,获得文件位置ftell函数,文件位置移到开头rewind函数,文件字符输入输出fgetc函数和fputc函数,文件输入输出fscanf函数和fprintf函数,文件字符串输入输出fgets函数和fputs函数,读写二进制文件fread函数和fwrite函数。
以上函数要求知道格式会用,清楚是用于二进制文件还是文本文件,要把教材文件这章仔细复习下,不要在考试的时候把这些文件函数搞混了。
第十二章
深 入 讨 论
【考点1】编译预处理
凡以#开头的这一行,都是编译预处理命令行,编译预处理不加分号,不占运行时间。宏替换仅是简单的文本替换,如#define f(x)(x)*(x)和#define f(x)x*x替换f(2+2)时就有区别,前者展开为(2+2)*(2+2),后者为2+2*2+2。如果源文件f2.c中有#include”f1.c”可以理解为把源文件f1.c原样包含到f2.c中,使f1.c和f2.c融合到一起成为一个C程序编译。所以一个C程序必有主函数,但一个C源文件未必有主函数。
【考点2】标识符作用域
局部变量是在函数内或复合语句内定义的变量,作用域为定义它的函数内。局部变量有三种类型:自动auto,寄存器register和静态static。
自动变量随着函数的使用与否创建消失;寄存器变量分配在cpu中,没有内存地址;静态变量占用固定存储单元,在程序执行过程不释放,直到程序运行结束。
全局变量是在函数外定义的变量,作用域从定义它的位置到整个源文件结束为止,生存期为整个程序运行期间。全局变量都是静态变量。【考点3】动态存储分配
malloc(size)用来创建连续size个字节存储区,返回值类型为void *型。malloc函数常用于动态创建链表结点;如int *p;p=(int *)malloc(sizeof(int))。
calloc(n,size)创建n个同一类型的存储空间,可以理解为n个malloc。free(p)释放动态分配的存储单元。
一、基本数据结构与算法
1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5.线性单链表、双向链表与循环链表的结构及其基本运算。
6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
二、程序设计基础
1.程序设计方法与风格。2.结构化程序设计。
3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。
三、软件工程基础
1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。3.结构化设计方法,总体设计与详细设计。
4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5.程序的调试,静态调试与动态调试。
四、数据库设计基础
1.数据库的基本概念:数据库,数据库管理系统,数据库系统。2.数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。
3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
基 本 要 求
1.熟悉Visual C++6.0集成开发环境。
2.掌握结构化程序设计的方法,具有良好的程序设计风格。3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。
4.在Visual C++6.0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。
一、C语言的结构
1.程序的构成,main函数和其他函数。2.头文件,数据说明,函数的开始和结束标志。3.源程序的书写格式。4.C语言的风格。
二、数据类型及其运算
1.C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。2.C运算符的种类、运算优先级和结合性。3.不同类型数据间的转换与运算。
4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。
三、基本语句
1.表达式语句,空语句,复合语句。
2.输入与输出函数的调用,正确输入数据并正确设计输出格式。
四、选择结构程序设计
1.用if语句实现选择结构。
2.用switch语句实现多分支选择结构。3.选择结构的嵌套。
五、循环结构程序设计
1.for循环结构。
2.while和do-while循环结构。3.continue语句和break语句。4.循环的嵌套。
六、数组的定义和引用
1.一维数组和二维数组的定义、初始化和数组元素的引用。2.字符串与字符数组。
七、函数
1.库函数的正确调用。2.函数的定义方法。3.函数的类型和返回值。
4.形式参数与实在参数,参数值的传递。5.函数的正确调用,嵌套调用,递归调用。6.局部变量和全局变量。
7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。
八、编译预处理
1.宏定义和调用(不带参数的宏,带参数的宏)。2.“文件包含”处理。
九、指针
1.地址与指针变量的概念,地址运算符与间址运算符。
2.一维、二维数组和字符串的以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。3.用指针作函数参数。4.返回地址值的函数。5.指针数组,指向指针的指针。
十、结构体(即“结构”)与共用体(即“联合”)
1.用typedef说明一个新类型。
2.结构体和共用体类型数据的定义和成员的引用。
3.通过结构体构成链表,单向链表的建立,结构点的输出、删除与插入。
十一、位运算
1.位运算符的含义及使用。2.简单的位运算。
十二、文件操作
5.C语言学习总结 篇五
赵凯怡
《C&C08程控交换设备》学习总结汇报
通过本学期对程控交换这门课程的学习,使我对C&C08程控交换有了全面、透彻的了解。为我当初选择了通讯系电子工程技术专业而感到庆幸。想起当初刚接触C&C08程控交换这门课程的时候,心里充满了不安。因为这个词语给我的感觉是那么的生疏,我很怕自己会学不会这种技术含量很高的课程,等到接触后才发现这门课程真的很有意思,也不是很难,对我以后的学习,工作都有很大的帮助。
对于我们这些初学者,老师先给我们介绍了程控交换机与电话交换网这两种不同的概念。老师怕我们一时接受不了那么多的新知识,他总是会慢慢的教导我们,每堂课都会给我们复习上一堂课的内容。要学好C&C08程控交换这门课程,一定要更好的去了解什么是交换机?交换机的发展过程:①人工交换机;②步进制和旋转动作交换系统;③纵横制交换系统;④电子交换系统。电话通信网是指本地网和长途网上组织开放电话业务的一种业务网络。我国的电话网采用四级汇接辐射式长途电话网,设四级长途电话局。它们分别是省间中心局、省中心局、地区中心局和县中心局。后来我们又对C&C08程控交换系统的总体结构进行了全面的了解,非常感谢学校给我们提供了这么优越的学习条件,不惜重金为我们构建实验室,让我们可以更好的把理论和实际联系在一起。从做中学,在学中做。所以现在的我只要闭上双眼,C&C08程控交换在硬件上采用的模块化体系结构还历历在目。C&C08程控交换机的交换系统由一个管理通信模块(AM/CM)和多个交换模块(SM)组成。
SM模块具有独立交换的功能,可以完成模块内的呼叫接续,而模块间的呼叫则是由各SM模块通过AM/CM来完成的。SM是C&C08数字程控交换机的核心,是各种业务接口的提供者。SM 模块中一般可以安装以下几种功能框:主控框MCB、数字中继框TMB、用户框SLB、时钟框CKB、BAM框等等。我们学校的实验室SM模块采用独立局设置,因此配置了BAM框,除此之外还配置了一个主控框,一个用户框和一个数字中继框。一个SM机架有六个机框,一个SM最多可有8个机架。单模块局的主要组成部分有SM系统、时钟框和BAM框。
之后我们主要学习了主控框MCB的作用以及单板说明,主控框MCB是交换模块SM的控制中心和话路中心,它负责整个模块的设备管理和接续控制。在讲主控单元MCB的时候,老师是从四个方面来做具体分析的:模块处理器、信令处理电路、数字音信号电路、告警和终端驱动。其中模块处理器SM采用三级分散控制,从上至下依次为MPU、NOD和从控制点(CPU)。而主控框MCB的单板说明又分为以下几项,PWC为二次电源板,-48V直流输入、输出为直流+5V/20A 可以给主控框、时钟框、DT框供电。具有独立的12V辅助稳压电源为控制回路、报警回路提供专用电源。NOD为通信节点板,负责主机MPU与用户框设备、中继框设备间的通信。MPU板是模块内的中央处理单元,负责对SM的各类设备进行控制。采用高档CPU处理模块内的上报信息,控制各从节点动作,从而完成交换的功能。这只是一些重点内容,关于这些单板我们还了解到了它们的指示灯说明,什么灯亮什么颜色代表什么含义我现在都还记得。
学完了SM模块的作用以及单板说明后我们又继续学习了HW线、NOD线的功能以及它们的分配原则。HW线主要用于传输业务信息,如语音、数据等。NOD线又名信令线,用于模块处理机和单板设备处理传送控制信息。
后来老师又给我们介绍了程控交换机的交换网络,由于我那段时间请假回家了,所以掌握的不是很好,挺遗憾的„„接下来我们又简单的学习了一些有关话务量的计算和程控交换机主要性能指标的分析。
老师告诉我们,我们本学期的重点主要有:C&C08程控交换机的交换系统的组成、七号信令、做为课外补充我们也了解了一些关于中华一号信令的知识。
广州民航职业技术学院
赵凯怡
首先要掌握的概念是“信令”。在通信网中,除了传递业务信息外,还有相当一部分信息在网上流动,这部分信息不是传递给用户的声音、图像、或文字等与具体业务有关的信号,而是在通信设备之间传递的控制信号。
信令按工作区域分为用户线信令和局间信令。No.7信令是交换设备之间传递的控制信号,属于局间信令。局间信令就如同交换设备之间的对话语言。双方遵守同一个语法规则。No.7信令的语法规则就是由国际电联ITU提出的No.7信令技术规范。No.7信令按其功能可划分为三种:线路信令——反映线路工作状态的信令;路由信令——提供接续信息的信令;管理信令——传递网络管理信息的信令。按信道又可分为随路信令(CAS),即:信令信息在对应的话音通道上传送,或者在与话音通道对应的固定通道上传送;共路信令(CCS),即:信令信息在专门的高速数据通道上传送。No.7信令属共路信令,而中华一号信令属随路信令。
我们的程控交换课程其中有一半的课时是在实验室里面度过的,即有趣又充实。在实验室里我学会了很多书本上学不到的知识,既巩固了理论知识又锻炼了动手能力,而且还培养了自己耐心、养成了细心地对待每一件事的好习惯。因为做实验的过程是需要输入大量的数字与字母的指令,我经常会因为粗心大意而把指令输错,导致实验无法成功,有的时候是把“O”打成了“0”,有的时候是把“l”打成了“1”,类似这样的错误不胜枚举。后来我在老师的耐心指导与同学们的热心帮助下,成功地完成了以下四个实验:①交换机硬件配置SM模块。②本局用户基本呼叫数据配置模拟实验。③NO.7 TUP中继调试。④NO.7 ISUP中继调试。
实验过程中使我更透彻的了解到程控交换机的硬件结构。同时也掌握了程控交换机的硬件配置步骤。理论联系实际的理解了程控交换机硬件结构中各部分单板的作用。加深了对交换机系统功能结构的理解,基本掌握了B型模块局配置数据、字冠、用户数据的设置。通过数据配置,了解了NO.7 TUP中继电路和NO.7 ISUP中继电路的工作原理与区别之处。ISUP和TUP数据制作的区别,它们的主要区别是增加7号LNK的中继设备标识,和增加7号中继群时候的电路类型选择。
大三上半学期已经过去了,回首过去,我不曾遗憾,因为我脚踏实地一步一个脚印的走了过来,我对得起我逝去的光阴,展望未来我充满希望,因为我对我自己充满自信。突然想起鲁迅先生的一句话:这里本来没有路,只是走的人多了,也便成了路。生活的路呢?生活的路也是人走出来的,每个人一生总要去一些陌生的地方,然后熟悉,而接着又要启程去另一个陌生的地方。经过千锤百炼,才会有成功的果实。
这也许是我人生中最后一次在盈溢着书香味,纯真的如童话一样的象牙塔学习了。这学期的课程更加接近以后的工作。掌握一手好的技能是生存的需要,所以我们必须要有一个扎实的功底。我会一直努力下去,活到老学到老。
广州民航职业技术学院
07级电子工程技术一班
6.C语言课程自学总结 篇六
C语言是一门很基础的语言,所有的计算机语言都是相通的,掌握好C语言对于今后学习别的语言是很有好处的。有加上专业要求,所以在大学第一学期开学就报名参加了《C语言程序程序设计》的补习班,而经过一学期的学习,可以用一句话来形容我对其的感受——往往知其然,不知其所以然也。
经过寒假的痛并快乐的学习之后,我觉得对C语言已经有了一个初步认识。能够利用C语言编织出一些非常简单的程序,读懂一部分程序代码,明白程序要表达的意思。以下为我的学习心得即总结。
在最开始学习的时候需要选择一本好的学习教材,一本好的教材会让我们的学习事半功倍。在开始看书学习的时候,一定要注意从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。除了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。
也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。
要了解C语言就要从语法为基础来学习起,首先要了解它的结构,在我们学习某种语句或命令时首先要了解他们的使用规则,用处,如何实现,那么编程起来就会得心应手。下面是总结的C语言的学习要点及相关的例子:
算术运算符: +加法运算符-减法运算符 *乘法运算符 /除法运算符
%求余运算符 求余用mod运算符,就是求俩个数的余数 算术运算符的优先级同数学:先括号,后乘除,在加减 例:
A=3+5 得到8 等号右边表达式的结果放到A变量中来。把结果放到变量中来,等于A=8 A=5-2 得到3 A=3*2 得到6 A=4/2 得到2 A=31%21 得到10 关系运算符:
所谓的“关系运算”实际上是“比较运算” C语言提供如下6种关系运算符 < 小于
<= 小于等于 > 大于
>= 大于等于
/*优先级相同(高)*/ == 是否等于!= 是否不等于
/*优先级相同(低)*/ C语言程序设计的三种结构 顺序结构(从上往下执行代码)选择结构(选择执行某段代码)循环结构(循环执行某段代码)逻辑运算符:
C语言提供的三种逻辑运算符: && 与(相当于and 且)|| 或(相当于or 或)!非(相当于not 取反)!优先于&&优先于|| 例:
a&&b 若a,b为真,则a&&b为真 a||b 若a,b之一为真,则a||b为真!a 若a为真,则!a为假,如果你的表达式成立的话,被它取反之后就不成立了。如果你的表达式不成立,被它取反之后就成立了。运算符优先级!(非)
算术运算符(+-* / %)关系运算符(< <= > >= ==!=)逻辑运算符{&&和||(且 或)赋值运算符(=)以上顺序从高往低排序,如果要让低级运算符作为优先处理的话,就要用括号括起来.例: if((a<30&&b>5000)||(a>30&&b>30000))/*如果a小于30且大于5000或a>30且大于30000,这段代码里,&&这个符号是在关系运算符执行之后在执行的,而||符号也是括号内整段代码执行之后才执行的*/ 计算机语言课是一门实践性很强的,在C语言的学习中,我发现上课认真听课并不是完全管用,写程序不能不能从课堂上学会太多,必须要有自己的想法自己的思路。并且在学习期间,每天不断上机练习是非常重要的,实践是检验真知的唯一标准,不管你的理论知识掌握有多好熟练,但很多问题在书本上是显现不出来的,只能通过实践找出来,再不断的进步。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言;在表达式方面较其它程序语言更为简洁,所以学好它不仅是学习需要,在生活中用途也很广泛。初学会觉的这种表达式难读在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
总之,C语言的学习,有许多要迈过去的沟沟坎坎。首先要调整好自己的心态,不要再想着玩了。只有自己努力学习,才能学有所得,学有所想,学有所用。在学习的时候不要钻牛角尖,不要在一个问题上卡死,当你遇到问题时,要多想想多条途径去解决一个问题。如果实在解决不了了,可以去请教你的任课老师。(点,不会的一定要问明白,不管谁能让他教会你知识就是你的了,要学会让知识为我所用。在看书的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。平时学习要多想,多写,多练,多动!当一个题目出现的时候,你不能只想到用一种方法去解决它,要多想出几种方法去做、去研究;当你将它完成后,可以将它全部删去,然后再重新写,写个二、三遍就熟悉了;如果你有多余的时间,你可以按照这道题的模板稍加修改,然后自己去做;一般来说,一道题如果你有三种做法将它做出来,那么对于这一类型的题目你就不在话下拉!当然你也可以给自己出题目,多动动脑筋,这样可以提高自己的发散思维和逻辑能力,这是很重要的!在上课的时候一定要认真听老师讲课及上课演示的代码,因为有些东西是书上没有的。如果上课不认真听,那么在练习的时候是很困难的、在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了。学习时,老师是宝贵的资源,但也别忘了图书管的作用,多跑图书管,多借相关的书看,多看程序、分析程序思想、多做题,从中寻找不会的题,与老师、同学交流,进而不断地提高自己!
7.C语言学习三部曲 篇七
当今计算机程序设计语言种类繁多、共性大、更新速度快, 同时软件工程和项目管理的蓬勃发展使得计算机软件开发从业人员的职业分工更为明确。从人力资源与社会保障部颁布的“计算机程序设计员国家职业标准”上看, 除了要求从业者必须要有扎实的基本功外, 还要具备解决问题的综合能力。因此计算机程序设计员专业的学生在计算机程序设计语言的知识和技能的学习中, 不能再仅仅孤立地教授几门编程语言、几门相关的专业课程而已, 而是要教会学生掌握通过计算机程序设计来解决实际问题的知识和技能, 成为一名合格的“软件蓝领”。这就要求我们不能延续传统的学历教育方法, 计算机程序设计语言教学需要改革, 需要一种全新的教学理念和模式。
当前的教学改革更多的体现在教学方法和内容上, “学习领域”、“任务驱动”、“职业岗位导向”、“面向工作”等各种课程设计方法层出不穷。然而, 纵观大部分课程改革, 我们发现其教学改革更多体现在独立的课程中, 并没有在课程与课程的衔接上下功夫。大部分院校均先后开设VB、C、C++、JAVA等多门程序设计语言和数据结构、数据库管理系统等专业课程, 学生虽然学习了多门程序设计语言, 然而每一门语言都只学了皮毛, 每一门课程都学了基础, 只能完成课堂和课后的作业和练习, 而对于能解决什么问题, 怎么解决问题, 如何综合解决问题一筹莫展, 碰到问题时往往觉得无从下手。
1 程序设计语言教学探索与改革:C语言学习三部曲
C语言是一种计算机程序设计语言。它既有高级语言的特点, 又具有汇编语言的特点, 同时很多新型的语言都是衍生自C语言, 掌握了C语言, 经过简单的再学习, 就可以用其他新型的语言去进行程序开发了。因此, 在计算机专业的课程中, 只要把C语言学扎实了、学透了, 就可以说掌握了计算机程序设计语言的精粹。在课程设计中, 我们以C语言为主线, 以一脉相承的C语言、C++语言、C#语言为基本知识内容, 配合上数据结构、UML、数据库等相关知识点, 提出语言知识入门、语言能力提高、语言技能应用三个阶段和应用层次的“C语言学习三部曲”的课程改革方案。
第一阶段:语言知识入门——C语言与数据结构整合。
(1) 课程知识要求。
(1) 掌握C语言的基本语法, 如数据类型, 3种语句结构, 数组, 指针等。
(2) 掌握数据基本结构形式和操作, 如线性结构, 树形结构, 图形结构, 以及数据结点的查找、添加、删除、排序等操作。
(3) 掌握“自顶先下、逐步细化”的结构化程序设计方法。
(2) 课程技能要求。
掌握如何用计算机解决日常问题, 特别是数据的表现形式和动作行为的表现形式。
(3) 课程设计要点。
将C语言和数据结构进行有机整合, 特别是在讲解C语言的数据类型时溶入数据结构知识, 在讲解C语言的语法结构时溶入数据结构的数据操作知识。
(4) 课程目的。
通过该课程的学习, 要求学生掌握基本程序设计思想和理论, 学会数据及数据处理由现实世界向计算机世界的转换方法和过程, 学会用计算机程序设计语言描述和解决日常生活中问题。
第二阶段:语言能力提高——C++语言与UML工具整合。
(1) 课程知识要求。
(1) 掌握C++语言的高级语法知识以及面向对象的概念和形式, 如面向对象的三大特征:封装、继承、多态, 以及模板等概念。
(2) 掌握UML知识, 掌握利用UML工具 (如ROSE) 来进行面向对象的分析和建模的方法和过程。
(3) 掌握以“抽象与分类”为关键的面向对象的程序设计方法。
(2) 课程技能要求。
掌握如何用计算机解决日常问题, 特别是以面向对象的方法来分析和解决问题。该课程要求学生在第一阶段掌握了结构化的设计方法后, 进一步了解面向对象程序设计方法。
(3) 课程设计要点。
把C++语言和UML进行有机的整合。将UML作为面向对象程序设计的分析和设计的工具, 而将C++语言作为进行面向对象程序设计的编程和实现工具。
(4) 课程目的。
通过该课程的学习, 要求学生掌握面向对象理论, 学会面向对象分析 (OOA) 、面向对象设计 (OOD) 和面向对象编程 (OOP) 方法和工具。
第三阶段:语言技能应用——C#语言与数据库操作整合。
(1) 课程知识要求。
(1) 掌握C#语言的高级语法知识和软件架构知识, 如集合、委托、托管、ASP.N ET、C/S与B/S架构开发方法等。
(2) 掌握数据库操作知识, 如SQL语法、AD O.NE T、X ML等。
(2) 课程技能要求。
掌握多层架构的数据库应用系统开发方法。该课程要求学生在复习第二阶段的面向对象的设计方法后, 掌握开发.Net应用系统的方法, 掌握将数据存储在数据库中的方法, 以及掌握对数据库进行查询、添加、删除等操作的方法和步骤。
(3) 课程设计要点。
将C#语言与数据库操作知识进行有机整合, 在讲解用C#语言开发基于.Net的多层架构应用系统中, 通过讲解ADO.NET与LINQ将SQL溶入C#语言。
(4) 课程目的。
通过该课程的学习, 要求学生掌握C#语言和数据库操作, 掌握通用的企业级应用系统的开发方法和过程。
2 结语
教育部部长周济在2008年度职业教育会议上说到:“以改革创新为强大动力, 推动职业教育又好又快发展”。职业教育的生存和发展, 离不开教学改革和创新。在进行计算机程序设计语言教学探索与研究中, 我们通过走进企业, 与企业软件开发人员的进行密切联系与沟通, 了解市场发展与需求等一系列调研后, 提出了改革方案并付诸实施。实践证明我们的改革思路是正确的, 课程改革是卓有成效的。
参考文献
[1]谭浩强“.C程序设计”[M].清华大学出版社.
[2]钱能“.C++程序设计教程”[M].清华大学出版社.
8.C语言中指针链表的学习探讨 篇八
关键词:动态;链表
中图分类号:TP311.12
C语言中存储数据的结构用的最普遍的是数组,包括简单类型的数组,指针数据和结构体数组等,但是他们在实际应用中,会因为实现定义过大的数组容量而造成内存的浪费,或者因为保守的预测分配而满足不了实际使用的要求,这时就需要另一种方法来解决这个问题,这就是动态数据结构和动态分配内存技术。链表就是这样一种最简单的动态数据结构。那么如何让学生能够很好的学习并掌握它,本人就近几年的教学过程中经过探讨,采用了图示法进行教学,效果很好。
1 基本概念的理解
1.1 指针的理解
(1)指针与简单变量。通过图1所示理解指针与简单变量的关系,当把变量i的地址存入指针变量p1后,就可以说这个指针指向了该变量。
如需要指向下一个元素,只需要指针往后移动即可!
1.2 结构体的理解
(1)结构体类型。结构体类型是一种专门组织和处理复杂关系的数据结构,是一种自定义类型。同一个数据对象由于应用不同定义的类型也有所不同。比如处理学生的信息,可以有很多种方式:
结构体中的成员名可增,可减,形成新的结构体类型。
(2)结构体变量与数组。以上是结构体类型的定义,变量定义方式有三种,这里不一一举例,可根据自己的个人习惯选择不同的定义方式。比如上面两个类型,分别定义简单变量,可这样定义:
struct student s1,s2; struct stu s3,s4;
如定义数组,结合前面所学数组的知识,可这样定义:
struct student s[10]; struct stu s1[20];
2 指针链表
掌握了前面指针和结构体的知识内容,对于指针链表的理解和掌握是非常重要的。
2.1 指针链表的定义
这里主要讲解单项链表结点的结构体类型的定义,对于初学者掌握了这种定义,对于以后学习更为复杂的链表知识的理解是很有帮助的。
单项链表结点的定义:
struct node
{
int data; //存放的数据,可以定义其他更为复杂的数据结构
struct node *next; //指向struct node类型数据,用此建立链表
};
2.2 指针链表的建立
定义好类型后,再定义变量,并将链表建立起来,形成整数数据按升序建立的数据链,下面通过函数create来实现链表的建立。
struct node *create()
{
struct node *head,*p,*q,num;
head=NULL;
scanf("%d",#);
while(num!=0)
{
p=(struct node *)malloc(sizeof(struct node ));
if(p==NULL)
{
printf("Allocation failure\n");
exit(0);
}
p->data=num;
p->next=NULL;
if(head==NULL)
head=p;
else
q->next=p;
q=p;
}
return head;
}
2.3 指针链表的插入
链表建立完成后,最常用的操作之一就是对链表的数据进行增加,也就是插入操作,具体程序通过insert函数实现。
struct node*insert(struct node*head,sturct node*r,int*x)
{
struct nod *p,*q;
if(head==NULL)
{
head=r;
r->next=NULL;
}
else
{
p=head;
while(*x>p->data&&p-;>next!=NULL)
{
q=p;
p=p->next;
}
if(*x
{
if(p==head)
head=r;
else
q->next=r;
p->next=p;
}
else
if(p==NULL)
{
p->next=r;
r->next=NULL;
}
return head;
}
2.4 指针链表的删除
对于链表中数据的删除也是链表数据中操作的重点,具体实现过程通过函数deletenode实现。
struct node*deletenode(struct node*head,int*x)
{
struct nod*p,*q;
if(head==NULL)
{
printf("This is a empty list.");
return head;
}
p=head;
while(*x!=p->data&&p-;>next!=NULL)
{
q=p;
p=p->next;
}
if(*x==p->data)
{
if(p==head)
head=p->next;
else
q->next=p->next;
free(p);
}
else
printf("NOT FOUND");
return head;
}
3总结
单向结点链表的主要操作就是建立,插入和删除数据,而且是链表当中最简单的一种形式,只有理解和掌握单向结点链表的基本操作,才有可能处理更为复杂的数据对象,在课堂上通过以上三个函数的编写与引导,学生对于链表有了初步的认识,并起到了良好的效果。
参考文献
[1]杜友福.C语言程序设计[M].北京:科学出版社,2012.
[2]龚民,朱秀兰.C语言程序设计教学探讨[J].电脑知识与技术,2009.
作者简介:刘山根(1976.8-),男,籍贯:河南新乡,职务:广东省华侨职业技术学校教务科副科长。
9.期末C语言课程总结报告 篇九
报告人情况:
班级: 姓名: 学号:
理论课老师姓名: 实验课老师姓名:
以下写的内容要求如下:通过程序设计课的学习,本人所学到的有关程序设计的知识回顾,学习了哪些算法,认为已经掌握的算法(不需要看书就能编)和完全没掌握的算法;在学习程序设计语言的过程中自己的经验和教训;对老师讲课和指导过程中教学态度和教学方法的看法和意见(要实事求是,意见决不会作为分数高低的依据,分别对理论课老师和实验课老师评价),对老师在今后教学的建议;对下一届同学学习本课程的建议等等。此报告在平时成绩考核时作为主要参考。
10.C语言函数知识点总结 篇十
本章重点:
本章难点:
//函数相关内容:
*语法:包括定义,声明,调用,*语义
语句包括:表达式语句,空语句,控制语句,复合语句,函数调形参与实参的意义、作用与区别; 参数的两种传递方式; 对递归函数调用过程的理解; 全局变量和局部变量的作用。函数的定义和调用; 函数间的数据传递方式; 嵌套调用和递归调用; 变量的作用域和存储类别; 模块化程序设计方法。用语句
函数:*函数首部:包括返回值类型,函数名,形参
*函数体
*函数调用的过程:*开辟空间(形参,函数的局部变量)
1.函数其实就是一段可以重复调用的、功能相对独立完整的程序段。
2.主函数可以调用其他函数,其他函数也可以互相调用。
3.一个C程序必须有一个且只能有一个main函数,无论main函数位于程序 的什么位置,运行时都是从main函数开始执行的。
4.函数不能嵌套定义,也就是说一个函数不能从属于另一个函数。函数之
*把实参送给形参
*执行函数
*释放空间
间可以互相调用,但是任何函数不能调用main函数,main函数是被操作系
统调用的。
5.函数的分类:
(1)从用户角度看:库函数、用户自定义的函数(2)从形式:无参函数、有参函数
6.函数定义即函数的实现,是对所要完成功能的操作进行描述的过程,包
括函数命名和返回值类型声明、形式参数的类型说明、变量说明和一系
列操作语句等。
函数和变量一样,必须“先定义,后使用”
7.函数定义应包括以下内容:
函数的名字、返回值的类型。函数参数的类型和名字,无参函数不需要
指定。指定函数的功能
8.在函数体中,声明部分是对函数内部所用到的变量的类型说明,并对要
调用的函数进行声明。
9。定义有参函数的一般形式为: 类型标识符 函数名(形式参数表列){
声明部分;
} 语句;
10.在C语言中,可以用以下几种方式调用函数(1)函数表达式
函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式
的运算。这时要求函数是有返回值的。
例如:y=sin(x);(2)函数语句
函数调用的一般形式加上分号即构成函数语句。
例如:printf(“%d”,a);
这种方式通常只要求函数完成一定的操作,不要求函数带回值。(3)函数实参
这种方式是函数作为另一个函数调用的实际参数出现,也就是把该函
数的返回值作为实参进行数据传送,所以要求该函数必须是有返回值
的。
例如:printf(“%d”,max(a,b));
11.实参:可以是常量、变量和表达式。
12.只有在发生函数调用时,才给形参分配单元,并且赋值,一旦函数调
用结束后,形参所占的内存单元又被释放掉。
13.在调用函数过程中发生的实参与形参间的数据传递是“值传递”,只
能由实参向形参传递数据,是单向传递,不能由形参传给实参。
14.声明的作用是把函数的返回值类型、函数名、函数参数的个数和类型
等信息通知编译系统,以便在遇到函数调用时,编译系统能识别该函
数并检查调用是否合法
15.函数的声明方法:
(1)只说明函数的类型,这称为简单声明。int min();(2)不仅说明函数的类型还要说明参数的个数和类型,这称为原型声明。
int min(int x,int y);
16.数组名作函数参数时,形参数组和实参数组为同一数组,共同拥有一段
内存空间。
17.数组元素不能用作形参,因为形参是在函数调用时临时分配内存存储
单元的,不能为一个数组元素单独分配存储单元。
18.变量的有效范围(作用域)
19.局部变量也称为内部变量,是在函数内或函数的复合语句内定义说明的。
20.全局变量也称为外部变量,它是在函数外部定义的变量,位置在所有
函数前、各个函数之间或所有函数后。
*其作用域是从定义变量的位置开始到本源文件结束。
*设置全局变量的作用是可以增加各个函数之间的数据传输渠道。21.变量的完整说明为:
存储类型 数据类型 变量名表列; 例如: auto int x,y;
22.C语言变量的存储方式可以分为动态存储方式和静态存储方式。
23.动态存储方式:(1)自动变量(auto变量)(2)寄存器变量(register变量)(3)形式参数
24.静态存储方式:
(1)静态局部变量(static局部变量)
其语法格式为:
static 类型标识符 变量名;
例如:static int f;
(2)全局变量(全局变量赋初值也是在编译时完成的,且仅执行一次赋初值的操作。)
不能用extern来初始化外部变量。
(3)静态外部变量
25.一般为了叙述方便,把建立存储空间的变量声明称定义,而把不需要
建立存储空间的声明称为声明
26.在函数中出现的对变量的声明(除了用extern声明的以外)都是定义。
例如:extern int x=25;
//错误
11.C语言教学中存在问题 篇十一
C语言课程的地位
C语言是最重要和最流行的编程语言之一,无论在中国还是在世界各国,“C语言程序设计”始终是高等院校的一门最基本的计算机类基础课程。虽然在过去的十余年中,许多人从C转而使用更强大的C++语言,但C仍然有其自身的优势,而且它还是通往C++的必由之路。
作为面向过程的程序设计语言的代表,C语言是一门非常好的教学语言。通过学习C语言,学生可以掌握自顶向下、逐步细化的结构化编程方式,以及模块化的设计,这一点是至关重要的。可以毫不夸张地说,学不好C语言课程,也就难以学习理解后续的“面向对象程序设计”、“数据结构”等一系列计算机类相关课程的内容。因此,理工科相关专业学生必须掌握使用C语言进行程序设计的基本知识和技能,为进一步学习与应用计算机打下坚实的基础。
教学中的存在问题及探讨
在C语言教学过程中,学生普遍认为C语言概念复杂、语法细节繁琐,解题常常没有思路,一上机写程序就出错,出错了也不知问题所在。结合近几年的教学经验,笔者归纳出当前C语言教学中存在如下几个方面的问题。
课程设置缺乏科学性。C语言课程主要包括顺序、选择、循环结构程序设计,数组、指针、结构体等数据类型,函数的调用,以及文件操作等内容。总的来说,内容相对繁多,细节较为繁琐。且对于初学者来说,数组、指针类型的使用等内容概念复杂(尤其是指针),理解比较困难。笔者认为,合理的课时安排应为64学时。在实际情况中,考虑到C语言课程作为计算机类课程的主要先修课程,往往设置在本科一年级。而同时进行的还有数学、英语等重要的基础课程,也需要占据大量的课时。所以,对于本科一年级学生的教学计划和课时安排往往是非常紧凑的,部分高校对于C语言课程的设置仅为48学时。由于理论学时和上机学时不充足,教学效果自然也就难以得到保障。
如何在学时不足的情况下达到教学目的,这就要求教师改进教学方法,运用现代化的教学手段。注重自身业务素质的提高,切实提高教学效率和教学质量。教师应充分备课并明确教学重点及教学难点,在课堂上主要介绍编程思路和怎样用c语言去实现算法,不要孤立地逐一介绍语法的细节,对于一些非教学重点内容(诸如运算符的优先级等知识点),应引导学生自学完成。因此,有必要对授课计划精心组织,本着强化算法、弱化语言的原则,即把解题思路、方法、步骤当做授课的重点,培养学生分析与解决实际问题的能力。
学生的算法设计能力薄弱。编写一个C程序,首先需要设计算法,然后再考虑适合的数据结构,并用C语言将算法实现。程序的灵魂是算法,而算法的设计是灵活且富有技巧的,需要学生主动思考,这对于初学C语言的学生来说极具挑战。
教学过程中,应改变传统灌输式教学模式,转而采用问题启发式教学,活跃学生思维,引导学生积极思考,而不是被动地接受和理解课本中的算法步骤。应遵循以下四个步骤来解决问题:一是分析问题,明确要做什么;二是给出求解问题的算法流程图;三是根据流程图编写程序代码,四是运行程序,输出最终结果。值得注意的是,流程图对于算法的分析与表示至关重要,教学中必须要求学生看得懂流程图、会画流程图,并且根据流程图能够顺畅地写出程序代码。对于递推、递归、穷举等基本方法,及常用的查找、排序等算法,应让学生有所了解并适当记忆。
学生的上机编程水平亟待提高。学生的上机编程能力普遍不能令人满意,遇到编写程序(尤其是规模稍大一些的程序),往往无从下手。一些学生学习完C语言课程,仍然停留在只会照抄或记忆课本中程序的水平,抑或自己写的寥寥几行代码,根本不考虑编程规范,编译报错看不懂英文提示信息,运行出错也不懂得如何打断点调试程序。这样的情形是非常常见的。
教师在给学生讲解示例程序时,应重点指出关键之处,以及容易出错的地方,要求学生通过自己上机实践来理解程序设计方法。对于常见的编译时错误,可以做一次归纳讲解,但应注意培养学生根据错误提示信息独立分析错误的能力;对于运行时错误,教师应演示并详细讲如何打断点、跳断点、单步执行等常用的调试步骤,必须要求学生掌握程序的调试方法。殊不知,编程水平就是在不断的调试程序、修改错误的过程中潜移默化地不断提高。
此外,笔者由于在从教前具有多年的软件开发从业经验,深知养成良好的编程习惯的重要性。平时应多提醒学生注意变量命名、程序缩进与对齐、添加必要的注释等问题,对于学生今后从事软件开发行业是必须的准备工作。
应该说,提高上机能力也终究还是一个孰能生巧的过程,大量的编程实践是根本。应强调学生多写程序(争取每天编程一小时),并鼓励学生自己写程序,从最简单的程序开始,从而循序渐进,积小胜为大胜。遇到复杂问题应逐步细化,采用模块化设计方法,通过编写函数来解决问题。
【C语言学习总结】推荐阅读:
c语言输出格式总结09-14
c语言教学工作总结06-17
c语言知识点总结代码10-02
语言、与C语言、实现汉诺塔09-30
c语言开发06-24
c语言教案07-17
C语言机房收费06-16
c语言上机心得07-07
c语言指针变量10-13
C语言笔试题目10-25