浅谈C语言的学习技巧

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:bright_wish
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:C语言作为国际上广泛流行的计算机语言,多年以来一直是大家喜欢学习又难于学习的计算机语言。本文在简要介绍C语言的内容的基础上,结合笔者多年学习C语言的体会,分析了学好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.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:随着高速图像处理的发展,VGA控制器IP核已成为SoC芯片中的一个重要部件。这里介绍一种使用FPGA芯片实现对VGA控制器的Verilog HDL设计方案。该方案采用FPGA设计VGA接口以将要显示的数据直接送到显示器上,加快了数据的处理速度,提高了系统的兼容性,比同类控制器有着占用资源少、时钟延迟小等特点。  关键词:现场可编程门阵列(FPGA);VGA控制器IP核;Verilog HDL
期刊
摘要:USB因具有易于使用、传输数据快捷可靠、成本低等特点巳成为电脑的首选通信口,还被广泛地应用到显示器、扫描仪、数码相机、网络电话等众多设备中。为了更好地了解并应用USB接口技术,本文就其相关知识作一些简要阐述。  关键词:USB;总线结构;CH375芯片;应用常识   中图分类号:TP334文献标识码:A文章编号:1009-3044(2007)12-21624-02    The Techni
期刊
摘要:在程序设计课程教学中,如何解决程序设计本身枯燥、难懂这个问题,找到一条比较新颖的教学方式,一直是广大计算机教师颇感兴趣的课题。本文从如何提高VB程序设计课程教学质量、增强教学效果、培养和提高学生分析问题、解决问题能力和创新能力等方面,阐述了对VB程序设计教学方法改革的几点看法。  关键词:程序设计;教学方法;能力  中图分类号:G642文献标识码:A文章编号:1009-3044(2007)1
期刊
摘要:文中介绍了Linux内核中断设计面临的问题及基本解决方法。运用面向对象的设计思想及设计模式,重点从结构和行为两方面分析了中断处理机制的上半部分和下半部分,指出Linux內核实现了一个高效、灵活的中断处理框架。  关键词:中断;Linux;面向对象思想  中图分类号:TP316文献标识码:A文章编号:1009-3044(2007)12-21356-02    Research of Inter
期刊
摘要:对分形压缩编码进行了研究,提出了基于9-7整数小波零树的改进的分形算法。它首先对图像整数小波分解,然后对于分形编码,针对小波高频系数无直流分量的特点 ,通过加入误差校正矩阵,减少了误差累积现象。实验结果表明相对于经典的分形和零树混合编码方式,在图像比特率方面和压缩比上,都有很大的提高。  关键词:分形图像编码;整数小波;零树   中图分类号:TP391 文献标识码:A文章编号:1009-30
期刊
摘要:介绍了运用TMS320F2812的SCI模块以及调用VC++6.0中的MSComm控件实现TMS320F2812 DSP与PC机串口通信的方法。在自行研究设计的基于TMS320F2812的轮式移动机器人平台上,通过串口通信软硬件的设计,实现了移动机器人中心处理器PC104与底层运动控制器DSP之间控制信息及速度数据的准确收发。  关键词:DSP;PC104;串口通信;VC++6.0;MSCo
期刊
摘要:该文提出了一种低电压、高稳定性低压差(LDO)线性稳压器,该LDO线性稳压器可输出6种可调电压(2.0V、1.8V、1.6V、1.4V、1.2V、1.0V)。LDO的基本功能是优化便携设备的电池使用寿命,并且为电路系统提供稳定的输出电压。芯片设计基于CSMC公司的0.18微米CMOS混合信号模型。仿真结果表明,该稳压器的线性调整和负载调整的典型值分别为0.7mV和5mV;输出的最大电流为90
期刊
摘要:本文介绍一套用Microsoft Excel作题库,随机选题组卷的方案。  关键词:题库;随机选题;组卷;Excel  中图分类号:TP317文献标识码:A文章编号:1009-3044(2007)12-21732-02    Producing Test Papers by Excel    LI Ming  (Guangdong Shuichan School, Guangzhou 510
期刊
摘要:本文简要介绍了MATLAB Web Server及其相关技术,以杨氏双缝干涉实验为例,介绍了运用MATLAB Web Server相结合建立光学网络虚拟实验平台的过程,并通过计算机模拟观察实验结果。  关键词:MATLAB Web Server;杨氏双缝干涉;虚拟实验;仿真  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21720-02    Const
期刊
摘要:本文主要论述了VI设计理论及其发展现状,同时结合实际项目“《多媒体技术》网络课程”的开发,重点对VI设计理论的实际应用过程进行了阐述,最后在文中也给出了在此过程中出现的问题及参考解决方法。  关键词:VI;VI设计;网络课程  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21718-02    Application of VI Design Theor
期刊