C语言学习教程_第1页
C语言学习教程_第2页
C语言学习教程_第3页
C语言学习教程_第4页
C语言学习教程_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言学习教程.txt43风帆,不挂在桅杆上,是一块无用的布;桅杆,不挂上风帆,是一根平常的柱;理想,不付诸行动是虚无缥缈的雾;行动,而没有理想,是徒走没有尽头的路。44成功的门往往虚掩着,只要你勇敢去推,它就会豁然洞开。C语言学习教程 多数情况下,现在的编程高手都是从学习C 语言入门的,在学校里,计算机相关专业中最基础的课程也包括C 语言,因此,掌握好这门课程对每一位立志成为优秀程序员的初学者来说是大有裨益的!另外,对想通过参加全国计算机等级考试获得证书的同学来说,学好C 语言也非常关键。 下面,是我整理出来的若干文章,总体上按照三个大的方向进行分类,希望能好好阅读,相信对你是很有帮助的!一

2、、基础性问题(点击下面文字链接即可打开页面) 1、C语言学习:如何由dos向windows转变 2、二级C语言实例解答 3、等级考试:C 程序设计 4、备战C语言上机考试 5、C语言程序设计技巧 6、C语言初级讲座 7、写好C程序的10条秘籍 8、强大的语言C入门之一 9、强大的语言C入门之二 二、实例开发(点击下面文字链接即可打开页面) 1、用C语言解决鬼谷算题 2、用C语言实现的闹钟程序 3、C 程序开发经典实例之一 4、C 程序开发经典实例之二 5、C 程序开发经典实例之三 6、C 程序开发经典实例之四 7、C 程序开发经典实例之五 8、C 程序开发经典实例之六 9、C 程序开发经典实例

3、之七 10、C 程序开发经典实例之八 三、综合提升(点击下面文字链接即可打开页面) 1、C语言:黑客学员必修课之一 2、C语言:黑客学员必修课之二 3、C 程序设计基础之一 4、C 程序设计基础之二 5、C 程序设计基础之三 6、C 程序设计基础之四 7、C 程序设计基础之五 8、C 程序设计基础之六 9、C语言高效编程的的四大绝招(1) 10、C语言高效编程的的四大绝招(2)C语言学习:如何由dos向windows转变很多人学C语言很长一段时间了,还不知C究竟能干什么,以为学习c语言没什么用,纯粹是为了应付学校的考试.更有人说学C语言?别做如此愚蠢的行为了!赶快学C+吧!这种看法是不对的,不

4、应该把c跟c+之间划起绝对的界限,过分看重c+而把c贬得一无是处,这是很片面的.C+功能虽然强大,但它毕竟是c的超集,在c+里有哪一处找不到c的影子呢?没有c的支持,c+只能是无本之木。 一般情况下,c+编程方式编写的程序源代码量小,但编译后的代码量较大,运行的速度略低,不过开发时的工作量和工作难度较小;而c编程方式编写的源代码量较大,但可执行的效率高.如果一些对速度要求高,尤其是对硬件操作较多的程序,大多数还是用c编程方式开发的(用C又比用汇编简单,易于实现).另外,学Win32 C程序设计还有助于更深入地了解Windows 的内幕和Win32 API。任何的编程语言都是一种工具,学习语言的

5、目是要使用它来编写出实际需要的软件来,而软件作为一个用户程序,运行时要依赖操作系统,大多数人使用什么操作系统,我们就要编写出基于哪一种平台上的程序来.这样,软件才会有更大的市场。现在市面上出现的有关c语言方面的书大多是教授DOS下的c,上机实习也是在Turbo C 2.0(简称Tc)环境下转来转去.编程环境的单调总使人感到不爽.这也没办法,dos 下的c是最简单的,初学者当然要从最简单的入门啦.连比较有名的计算机专家谭浩强编的书也都是赞成从dos下的c学起的.再说,一个刚刚入门的人想在windows 这样的多进程,多线程的操作系统下用c编程,那似乎又不太现实.(那要了解在windows下,一个

6、win32程序大体上是怎样执行的.要对系统有比较多的了解才行,一个初学者暂时还不具备那么多的知识)但我们的脚步又不能够只停留在dos里,应该积极地从dos向windows转变.在dos的时代,我们可以对dos下的编程迷恋,但现在都是windows横行霸道的时代了,我们就应用c语言编写windows平台上的程序,因时而变,学以致用.是时代使然!如果现在还是dos雄霸天下的话,那我就不会写这篇狗屁不通的文章来遗笑大方了,不被臭鸡蛋扔死才怪呢! 变法是大势所趋的了,关键是怎么变,不单单是学习c语言的人如此,就连学c+的人都这样,笔者曾经在QQ上碰到一个学了c+将近一年的小伙,居然问我,他想编一个wi

7、ndows窗口,该怎么下手,如果学一门语言用了一年时间,只是学了一点语法知识,却没有编过一道程序,那实在是一种悲哀.下面我谈谈从dos向windows转变的一些个人见解,(这纯属个人观点,仅供参考,如果您已是高手,完全不必要在此浪费时间):一.拓宽视野,改变偏见别老以为c只是dos特有的东西,一提到c语言就认为c只能在dos下编程.其实,这是被tc束缚了意识,我们在学校里平时就只在dos的tc里面用c编程,很少用到图形模式,整天面对?quot;乌黑黑的屏幕,也难怪有些人一看到一个用c语言描绘出来的像windows的窗口便以为是c+的手笔.其实,作为一种语言,可以在任何一种平台上编程,只是接口不

8、同而已,只要找到适合该平台的编程工具即可,c语言当然也能在windows下大放异彩.眼界放宽点,改变偏见,必有精彩发现. 二.选择优秀的编程工具.“有好的工具,做起事来就事半功倍”.在dos下我们常用tc或bc(borland c).在windows下可以用c+builder 或者visual c+ 来编程,最好用visual c+ 毕竟是微软的东西嘛!微软一天不垮台,编程者的饭碗就不会掉的啦 _ .再说,windows操作系统是微软出的,其内幕微软是最清楚不过的了,在应用程序接口上,相信vc也是做得最好的.不过用vc+6来编c程序会恨烦的,大家要有心理准备.同时可以选择多种编程工具,例如汇编

9、,可以加强对windows的了解,是成为高手的好方法。三.加强对windows的了解.可以说编一个程序,就是用一种语言的语法形式将数据结构和表面的执行过程描述出来.在不同的操作系统下,其程序的执行过程是不同的.我们应该对windows的系统机制最起码有个大体的了解,才有可能编写windows的程序.dos是单进程单线程的系统,进程从头到尾的顺序执行,而windows是多进程、多线程的操作系统,是基于事件的,消息驱动的操作系统.明白这些是在windows下编程必不可少的,多学学它,你会发现windows 和 dos有很多的不同之处。 四.采取灵活多变的学习方法.在不同的时期,学习不同的东西?可是

10、有些人学习像word,excel这类操作性极强的办公软件时,总是先看书,看到尾巴忘了头,到上机时却不知所措.这种学习方式是被动的,看这些软件操作的书,里面说的都是具体的操作,不亲手又怎能接受新知识?五.多进行比较.dos和windows有许多共同和不同的地方,如果是从dos学过来的话,在学习过程中不妨多进行比较,把不同的地方记下,相同的地方可以跳过,这可以快速地了解系统的不同之处,迅速地学到东西! 学习程序设计,我主张实践-理论-再实践的方式,在编程的初期,不管你会不会写程序,都应先实践,(这里的实践是指编程工具操作方面的实践),学会操作编程工具.也许有些人会说:废话!没有理论,又怎么实践?不

11、错,当你坐在一台电脑面前不知所措时,你就会想方设法使自己学会操作它,主动看书,看联机帮助,请教别人,忙得个不亦乐乎,这不是变被动为主动了吗? 边学习边操作,以实践来带动理论的学习,接着达到理论与实践同步,就可闯过第一关,学会了编程工具的基本操作,可以为以后上机实践打下铺垫.光学会操作像vc这类的工具还不行,工具是死的,人才是活的,不会编程只能是空操作,你还会说:废话!没有理论,怎么实践?的,这时就要学习编程的真功夫了,也就是我说的第二阶段-学理论阶段,深入研究前辈们的著作,吸取前人的智慧精华为我所用,扎扎实实打好编程内功,功夫到家了就应该再实践,将学到的东西运用于实际,编写出我们需要的软件来.

12、学以致用嘛,呵呵这种方式总比先学好语法的条条框框,再上机实践的效果好得多啦.关于向windows转变的个人观点就只谈这些,希望初学者早日踏上windows的光明大道!由于我也是一个菜鸟,水平有限,写得不好,还请各位多多包涵!二级C语言实例解答 C语言牵涉的概念比较复杂,规范繁多,使用灵活,容易出错,不少初学者感到困难,下面通过几个实例的分析来说明c语言学习中容易混淆的几个问题,以期抛砖引玉,对初学者有所帮助。 问题1:下面的程序 int a=3,b=4;char str=c;printf(“%d,%d”,a,b,str); 执行后, 输出结果为:(A)3,4,c (B)3 4 c (C)3,4

13、 (D)程序出错 分析:在格式输出时一般要求格式说明符与输出项相一致,当输出项多余格式说明符时多余的输出项不输出,所以答案为C。 问题2:有下面的程序段 char a3,b=“china”;a=b;printf(“%s”,a); 则输出结果为:(A)运行后输出china (B)运行后输出ch (C) 运行后输出chi (D)编译出错 分析:这个题容易错选a?实际答案为d,由于定义了字符数组后,数组名作为数组的首地址,是一个常量,给一个常量赋值的语句是错误的,换句话说,不能用赋值语句将一个字符常量或字符数组直接赋值给一个字符数组,以答案选D。 问题3:下列说明不正确的是: (A)char a10

14、=“china” (B)char a10,?p=a;p=“china” (C)char ?p;p=“china”(D)char a10,?p;p=a=“china”; 分析:此题易知A是正确的,D是错误的,对于B、C就很难选择了。有人认为p是一个字符变量,以为把”china”赋给该字符变量是不对的,实际上它是一个指针变量,只能指向一个字符变量或其他字符类型数据,不是把”china”存放到p中(指针变量只存放地址),只是把“china”的首地址赋给指针变量 p,所以B,C也是正确的。 问题4:下面的程序执行结果是: main()int x5=2,4,6,8,10,?p?pp;p=x;pp=&p;

15、printf(“%d”,?(p+);printf(“%dn”,?pp); (A)4 4 (B)2 4 (C)2 2 (D)4 6 分析:在此题中p是后加方式,先输出?p的值,p再自加,pp是二级指针,指向一级指针p,执行第一条输出语句前后,存在下列指向关系: 所以本题应选b 问题5:下列输出语句执行后结果为: int i=3;printf(“%d”,-i+); (A)3 (B)4 (C)-3 (D)-4 分析:此题考查运算符的优先级,负号运算符和运算符同优先级,而结合方向为“自左至右”,即i相当于?i?,所以先取出i的值3,输出i的值3,然后i增值为4,而不是i先增值为4,然后输出4,所以答案

16、选择C。 问题6:设有以下语句, struct stint n;struct st ?next;static struct st a3=5,&a1,7,&a2,9,0,?p; 则以下表达式的值为6的是:(A)p+n (B)pn+ (C)(?p).n+ (D)+pn 分析:此题也是考查运算符的优先级,优先级高于,结合方向为自左至右,而后者结合方向为自右至左,A答案相当于?p?n?B答案相当于?pn?所以A、B、C表达式值均为5,D答案相当于?pn?自加方式为前加方式,所以其值为6。 上面是我在教学过程中学生一些比较集中的问题,只要认真的体会和总结,加强上机实践,对自己C语言的学习会大有裨益。等级

17、考试:C 程序设计计算机等级考试改革后,三级考试由A、B两类改为PC技术、数据库技术、网络技术、信息管理技术四类。其后三类的上机考试内容均为C语言程序设计。三级上机不同于二级,它只有一道编程题,风险更大。但只要能达到题目的要求,一般都能拿到3分。 参加过考试的人都应该知道一本书南开大学出版的全国计算机等级考试?上机考试习题集,这本书基本上包含了所有的上机考试题目类型。这本书里一共有100道题,都很经典。但也许有人会觉得太多了,没时间看完所有的题目。下面我给大家介绍一个复习技巧。简化问题每道试题的程序都很长,而且涉及的知识点很多。实际上,在考试时看完全部程序并没有必要。每次只用把主要精力放在子程

18、序的编制上,认真思考其“功能要求”。所以平时我们只用关注需要编制的子程序。试题归类要学会找出题目之间的规律,复习起来就会事半功倍。在一百道题目中,实际上只需要仔细分析其中的二十多道题就足够了,其他的只用看一下就行。因为大部分的题目都是类似的,总结出规律来之后,我们可以举一反三。例如下面两类题目:例1. (占题库10%)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额单价数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入

19、结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。程序:void SortDat( )int I,J;PRO xy;for (I=0;I100;I+)if (strcmp(sellI.dm,sellJ.dm)sellJ.je)改为:else if (sellI.je= =sellJ.je)改为:if (strcmp(sellI.mc,sellJ.mc)130|*pf*11%256=A&*pf=Z)|*pf*

20、11%256=1)printf(s ,argvI);argc; 命令行参数用的最多还是在诸如DIR A:等之类带有盘符、路径或文件名这样的命令行中,所以说灵活处理这一类参数才能有效地提高程序的运行效果。譬如DIR命令,其后可以是盘符,可以是路径,也可以是文件名,如何区分这一参数呢?请看下例(此程序模拟DIR命令,程序要求在命令行输入一个参数:盘符或路径或文件名,若无参数或参数多于一个都将取默认的参数“*.*”)。*功能:模拟DIR命令进行处理命令行参数*/includeincludeincludeinchludeint j,num=0;char ss20,path50,path250;void

21、 main (int argc,char *argv)struct ffblk f;int done;if(argc=2) /*取命令行参数到数组中*/ strcpy(ss,argv1);elsestrcpy(ss,*.*); /*给数组赋值缺省参数*/if (ssstrlen(ss)1=|(ssstrlen(ss)1=:)strcat(ss,*.*); /*若参数为路径或盘符,则加上*.*/getcwd(path1,50); /*取当前路径*/if (chdir(ss)=0) /*判断参数是否为路径*/strcat(ss,*.*); /*若路径末没有带,则加上*.* */ chdir(pat

22、h1); /*恢复原来路径*/strcpy(path2,ss);for(j=strlen(path2);j0;j)/*提取参数中的路径到path2 */if(path2j=)|(path2j=:)path2j1=0;goto senull;path20=0;senull:if(strlen(path2)=0) /* 若给出的参数中没带路径,则取当前路径*/strcpy(path2,path1);printf(n*模拟DIR*n 命令目录路径s,path2);done=findfirst(ss,f,55); /*查找第一个配匹的文件*/j=1;while(!done)if (f.ff_attri

23、b!=0x10) /* 若文件属性不是目录 */printf(n 15s 20ld,f.ff_name,f.ff_fsize);elseprintf(n 11s ,f.ff_name);num;j;if(j=23)printf(n More (按任意键继续);getch();j=0;printf(n (目录路径s),path2);done=findnext(f); /*查找下一个配匹的文件*/printf(n 当前目录中总共有d个文件.n,num); C语言初级讲座我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:?数据类型?存储类型?作用域在本

24、讲中,我们只介绍数据类型说明。其它说明在以后陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 1.基本数据类型基本数据类型最主要的特点是,其值不可以再分解为其它类型。也就是说,基本数据类型是自我说明的。2.构造数据类型构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种: ?数组类型?结构类型?联合类型3.指针类型指针是

25、一种特殊的,同时又是具有重要作用的数据类型。其值用来表示某个量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。4.空类型在调用函数值时,通常应向调用者返回一个函数值。这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为: int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值

26、一致。所以在说明部分,把s说明为双精度浮点型。但是,也有一类函数,调用后并不需要向调用者返回函数值, 这种函数可以定义为“空类型”。其类型说明符为void。在本讲中,我们先介绍基本数据类型中的整型、浮点型和字符型。其余类型在以后各讲中陆续介绍。对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。整型量整型量包括整型常量、整型变量。整

27、型常量就是整常数。在C语言中,使用的整常数有八进制、十六进制和十进制三种。整型常量1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。八进制数通常是无符号数。以下各数是合法的八进制数: 015(十进制为13)0101(十进制为65)(十进制为65535)以下各数不是合法的八进制数: 256(无前缀0) 03A2(包含了非八进制数码)-0127(出现了负号)2.十六进制整常数十六进制整常数的前缀为0X或0x。其数码取值为09,AF或af。以下各数是合法的十六进制整常数:0X2A(十进制为42)0XA0 (十进制为160)0XFFFF (十进制为65535)以下各数

28、不是合法的十六进制整常数: 5A (无前缀0X)0X3H (含有非十六进制数码)3.十进制整常数十进制整常数没有前缀。其数码为09。以下各数是合法的十进制整常数:237 -568 65535 1627以下各数不是合法的十进制整常数:023 (不能有前导0)23D (含有非十进制数码)在程序中是根据前缀来区分各种进制数的。因此在书写常数时不要把前缀弄错造成结果不正确。4.整型常数的后缀在16位字长的机器上,基本整型的长度也为16位,因此表示的数的范围也是有限定的。十进制无符号整常数的范围为065535,有符号数为-32768+32767。八进制无符号数的表示范围为0。十六进制无符号数的表示范围为

29、0X00XFFFF或0x00xFFFF。如果使用的数超过了上述范围,就必须用长整型数来表示。长整型数是用后缀“L”或“l”来表示的。例如:十进制长整常数 158L (十进制为158) L (十进制为-)八进制长整常数 012L (十进制为10) 077L (十进制为63)L (十进制为65536)十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165)0X10000L (十进制为65536)长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,编译系统将为它分配4个字节存储空间。而对158,因为是基本整型,只分配2 个字节的存储空间。因此在运算

30、和输出格式上要予以注意,避免出错。无符号数也可用后缀表示,整型常数的无符号数的后缀为“U”或“u”。例如: 358u,0x38Au,235Lu 均为无符号数。前缀,后缀可同时使用以表示各种类型的数。如0XA5Lu表示十六进制无符号长整数A5,其十进制为165。写好C程序的10条秘籍神乎其技,惟C程序,功到自成,十大建议! 1、汝应频繁催动lint工具,据其语法声明修习内力,此事皆因lint之思虑决断实远在君上。 2、不可依随NULL指针,如若不然,混沌痴颠必俟君于彼岸。 3、纵有天赋大智慧,知晓其事无碍,汝亦当尽数强制挪移函数参数为原型所期之数据类型,以免一时疏忽,致使数据类型向汝讨还血债。

31、4、若头文件未于函数原型之中声明返回值类型,汝当亲为此事,更须谨慎再三,以防不测降临汝身。 5、汝须亲核字符串、数组操作之越界与否。古之圣人有言: 尝祈门人对答“然也”,不意门人答曰“吾了然于胸无须多虑尽请宽心他日趋庭必当重谢”所期者短,所获者长,此于数组,实最险要处也。 6、若函数声明内提及,于异常时将返回错误代码云云,汝当谨慎校核该返回值。或有校核语句使汝之代码增大数倍,令汝之手指因敲键而痛楚莫名之事,汝亦当如此。不然,汝固以为此异常之事难得一见,上苍亦必借此惩戒汝之傲慢。 7、汝应研习库函数,不当亲笔重写之。如是,汝之代码必短小易读,汝之心境必清爽恬淡。 8、纵汝不愿,汝亦应借括号、缩进

32、之属,使汝之代码间架清晰,可为后者借鉴。汝之大智慧施于决疑解难则可,施于敷设谜团、淆乱文体则万万不可。 9、外部标识符之前六字符当与众不同。此律法看似粗陋,和者寥寥,然其效用自能延续永远。汝若不从此言,他日,汝欲连接程序于旧作之上时,必抓耳挠腮、蓬头垢面,狼狈之相尽现矣。 10、或有族类,大言炎炎,云“普天之下,莫非VAX”。于此等异端,汝当摒弃之、断绝之、远避之。更有异人,笃信魔道,以为纵汝所用电脑频繁换代,汝之程序亦能长久适用。汝亦不可与此类恶人来往,谨记谨记。 强大的语言C入门之一一、C语言的特点 C 语言是美国的Dennis Ritchie在1972年设计发明的。它由早期的编程语言BC

33、PL( Basic Combined Programming Language) 发展演变而来。C 语言之所以发展迅速,成为最受欢迎的语言之一,主要因为它具有强大的功能。归纳起来,C 语言具有下列特点: 1C语言是“中级语言” 它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2C语言是结构式语言 所谓结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便地调用,并

34、具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3C语言功能齐全 C 语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C 语言也具有强大的图形功能,支持多种显示器和驱动器,而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。 4C语言适用范围广 C 语言还有一个突出的优点就是适合多种操作系统,如DOS、Windows、UNIX,也适用于多种机型。 二、C语言基础介绍 随着微型计算机的日益普及,出现了许多C 语言版本。由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准

35、,成为现行的C语言标准。而在这里我们将主要以美国Borland 公司的产品Turbo C2.0作为介绍对象,简要介绍一下C语言的基本知识。 1.数据类型 在C语言中,每个变量在使用之前必须定义其数据类型。Turbo C有以下几种类型:整型(int)、浮点型(float)、字符型(char)、指针型()、无值型(void)以及结构(struct)和联合(union)。其中前五种是C语言的基本数据类型、后两种数据类型(结构和联合)则是C语言的扩展数据类型。 2.关键字和标识符、运算符 所谓关键字就是已被C语言本身使用、不能作其它用途的字。例如关键字else,就再不能用作变量名、函数名等。所谓标识符

36、是指常量、变量、语句标号以及用户自定义函数的名称。C标识符的定义十分灵活。 C的运算符非常丰富,主要分为三大类:算术运算符、关系与逻辑运算符、按位运算符。 3.变量 C规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成,例如“int x”。变量可以在程序中三个地方说明:函数内部、函数的参数定义中或所有的函数外部。根据所定义位置的不同,变量可分为局部变量、形式参数和全程变量。C像其它高级语言一样也使用数组变量。所谓数组就是指具有相同数据类型的变量集,并拥有共同的名字。数组中的每个特定元素都使用下标来访问。 4控制流程语句 C提供了丰富、灵活的控制流程语句,

37、主要有:条件语句、循环语句和开关语句。条件语句的一般形式为ifelse。C提供三种基本的循环语句:for语句、while语句和dowhile语句。而在编写程序时,经常会碰到按不同情况分转的多路问题, 这时可用嵌套ifelseif语句来实现,但ifelseif语句使用不方便,并且容易出错。对这种情况,C提供了一个switch开关语句。 5指针(point) 学习C语言,指针是较难理解的一个概念。我们知道变量在计算机内占有一块存贮区域(也就是有一个“地址”),变量的值就存放在这块区域之中,在计算机内部,通过访问或修改这块区域的内容来访问或修改相应的变量。C语言中,对于变量的访问形式之一,就是先求出

38、变量的地址,然后再通过地址对它进行访问,这就是指针及指针变量。指针变量的一般定义为“类型标识符标识符”,其中标识符是指针变量的名字,标识符前加了“”号, 表示该变量是指针变量,而最前面的“类型标识符”表示该指针变量所指向的变量的类型。一个指针变量只能指向同一种类型的变量,也就是说,我们不能定义一个指针变量,既能指向一整型变量又能指向双精度变量。 三、C程序设计初步 C语言是一种中级语言,用户用C语言编写的程序称为源程序,源程序文件的后缀一般必须为“.c”。计算机硬件不能直接执行源程序,必须将源程序翻译成二进制目标程序。翻译工作是由编译程序完成的,翻译的过程称为编译,编译的结果称为目标程序,目标

39、程序文件后缀一般为“.OBJ”。程序翻译成目标程序后,便可进行连接。“连接”的目的是使程序变成在计算机上可以执行的最终形式。在这一阶段,系统程序库中的程序要与目标程序连接,连接的结果称为执行程序,执行程序文件名字一般以“.EXE”结尾。 正如所有利用计算机语言所编写的的第一个程序一样,下面,我们也试着建立一个名为“HELLO.C”的源程序,这个程序将在屏幕上面打印出“你好,电脑报软件世界!”这个短语。 通过键盘输入程序: include main() printf(你好,电脑报软件世界!n); 这个最简单的程序,也包括了C语言的一些基本的内容,它有一个主函数main(),使用到了标准的输出函数

40、printf(),同时为了能够让程序运行时包含这个标准函数,我们首先要在程序的最开始写上include ,“stdio.h”是C语言提供的标准输入输出函数库头文件,我们可以直接引用里面的一些函数,来完成我们所要实现的功能。 现在,让我们来编译、连接并运行一下这个最简单的程序,我们将看到,在屏幕上打印出了“你好,电脑报软件世界!” 四、参考资料 首先是一些C语言相关的书籍: C语言谭浩强,C语言编程宝典王大刚,数据结构与算法面向对象的C设计模式Bruno R. Preiss,C/C语言与研究开发实践伍晓宇、辛勇,Borland C Builder 3.0/4.0类参考详解张济、袁野、王秀娟,Borland CBuilder 3.0/4.0高级类参考详解王秀娟、孙悦、黎华,C语言命令详解(第二版)Brian Overland,C程序设计实验指导钱能。用C语言解决鬼谷算题在鬼谷算题中有这样一个著名的题目:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”这属于高等数学中的数论。我国宋代学者对这类题目钻研已颇为精深,总结出了“三人同行七十

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论