align=center><FONT color=#0000ff size=3><B>第一章: C语言概论</B></FONT></P>
><FONT color=#cc0000><B>C语言的发展过程
><FONT color=#cc0000><B>当代最优秀的程序设计语言</B></FONT></P>
> 早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。</P>
><FONT color=#cc0000><B>C语言的特点</B></FONT></P>1 B2 q1 E/ f7 A6 d" ] f
> C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。</P>
><FONT color=#cc0000><B>C语言版本</B></FONT></P>
> 目前最流行的C语言有以下几种:$ R; h4 A+ \- |
><FONT color=#cc0000><B>面向对象的程序设计语言</B></FONT></P>* }+ d, P" I! l5 g0 ^: z$ ?0 _4 u
> 在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。</P>
><FONT color=#cc0000><B>C和C++</B></FONT></P>8 s6 G2 ^3 e6 \( _
> 但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。</P>/ b& G- j# E) D* M5 J. J6 L9 f
><FONT color=#cc0000><B>C源程序的结构特点</B></FONT></P>9 U! }( {& v/ ~$ }% { _
> 为了说明C语言源程序结构的特点,先看以下几个程序。这几个程 序由简到难,表现了C语言源程序在组成结构上的特点。虽然有关内容还未介绍,但可从这些例子中了解到组成一个C源程序的基本部分和书写格式。main()4 Z( F) ~1 }$ e9 e/ O
> 需要说明的是,C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。所以在本例中也可以删去第二行的包含命令#include<STDIO.H>。同样,在例1.1中使用了printf函数,也省略了包含命令。</P>& D7 ^ W3 V; n0 R3 \ W/ z3 y
> 在例题中的主函数体中又分为两部分,一部分为说明部分,另一部分执行部分。说明是指变量的类型说明。例题中未使用任何变量,因此无说明部分。C语言规定,源程序中所有用到的变量都必须先说明,后使用,否则将会出错。这一点是编译型高级程序设计语言的一个特点,与解释型的BASIC语言是不同的。说明部分是C源程序结构中很重要的组成部分。本例中使用了两个变量x,s,用来表示输入的自变量和sin函数值。由于sin函数要求这两个量必须是双精度浮点型,故用类型说明符double来说明这两个变量。说明部分后的四行为执行部分或称为执行语句部分,用以完成程序的功能。执行部分的第一行是输出语句,调用printf函数在显示器上输出提示字符串,请操作人员输入自变量x的值。第二行为输入语句,调用scanf函数,接受键盘上输入的数并存入变量x中。第三行是调用sin函数并把函数值送到变量s中。第四行是用printf 函数输出变量s的值,即x的正弦值。程序结束。</P>
><FONT color=#009900>printf("input number:\n");! s* s% S/ L) l7 p% G' C
><FONT color=#ff0000>输入和输出函数
> 上例中程序的执行过程是,首先在屏幕上显示提示串,请用户输入两个数,回车后由scanf函数语句接收这两个数送入变量x,y中,然后调用max函数,并把x,y 的值传送给max函数的参数a,b。在max函数中比较a,b的大小,把大者返回给主函数的变量z,最后在屏幕上输出z的值。</P>
><FONT color=#cc0000><B>C源程序的结构特点</B></FONT></P>( \9 R% q( r5 ~) U+ Q `. u- G8 g) N
>1.一个C语言源程序可以由一个或多个源文件组成。</P>2 x$ J6 c2 w' P3 P/ U4 e
>2.每个源文件可由一个或多个函数组成。</P>7 i. J) k1 y4 ]+ `
>3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。</P>" e1 B& o5 c3 M; j
>4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。</P>
>5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。</P>( m+ e |* e' k, ~4 d& M' g0 j W
>6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。</P>. F5 m9 @5 `1 \& @0 i g5 j! D4 k
><B><FONT color=#cc0000>书写程序时应遵循的规则</FONT></B></P>* c# T( f# I9 S3 M
> 从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时 应遵循以下规则:
>2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。</P>
>3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。</P>
align=center><FONT color=#0000ff size=3><B>第二章: 数据类型、运算符、表达式</B></FONT></P><
align=left><FONT color=#cc0000><B>C语言的数据类型</B></FONT>
><FONT color=#cc0000><B>整型量</B></FONT>
>在书写变量说明时,应注意以下几点:
>字符型量包括字符常量和字符变量。8 g- n2 m* m: [9 ], A
><FONT color=#ff0000>强制类型转换</FONT>
。) K6 U: ^. _3 Y+ ^0 E
align=left><FONT color=#ff0000>C语言程序设计</FONT>! L' O" z6 a4 k8 R. p1 o
align=left><FONT color=#ff0000>2.函数调用语句</FONT> A) J+ z/ m5 y7 G8 ~" ]
align=left><FONT color=#ff0000>3.控制语句</FONT>8 E4 a% a |3 \. Q/ R8 T3 r- x7 i8 m
><FONT color=#009900>printf("%d %d\n",a,b);
><FONT color=#ff0000>分支结构程序 </FONT>
><FONT color=#ff0000>if语句</FONT>+ \. f% e/ O6 \* y
>1.第一种形式为基本形式 <FONT color=#ff0000>if(表达式) 语句;</FONT> 其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图4 S& ]0 C% k% u
>本例程序中,输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。
c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条
>本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况, C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。/ Z- n5 z: _$ S0 q" W
>本程序中,首先比较输入的a,b的大小,并把大数装入max, 小数装入min中,然后再与c比较,若max小于c,则把c赋予max;如果c小于min,则把c赋予min。因此max内总是最大数,而min内总是最小数。最后输出max和min的值即可。 计算器程序。用户输入运算数和四则运算符, 输出计算结果。' E' k' F2 [+ W- Q1 H; e! D: z; l+ w
><FONT color=#009900>float a,b,s;2 `; G" _4 F$ v4 A
><FONT color=#009900>int n,s=0;- @6 n8 q, g5 X
align=left><FONT color=#cc0000><B>数 组</B></FONT>
align=center><FONT color=#0000ff size=3><B>第五章:函数 </B></FONT></P></B></FONT><
align=left><FONT color=#cc0000><B>概述</B></FONT>
align=left><FONT color=#cc0000><B>指针简介" B) b; D; k F& Y! l$ N ?& r
align=left><FONT color=#cc0000><B>预处理- _, F; J+ W: a |7 [: D
align=left><FONT color=#cc0000><B>文件
><FONT color=#ff0000>(一)、致命错误英汉对照及处理方法:</FONT></P><
>A-B致命错误</P><
>Bad call of in-line function (内部函数非法调用)
>Irreducable expression tree (不可约表达式树)
>Register allocation failure (存储器分配失败)4 K& r% s" B U9 U/ U- p3 V
><FONT color=#ff0000>(二)、一般错误信息英汉照及处理方法</FONT></P><
>#operator not followed by maco argument name(#运算符后没跟宏变元名)' K O0 F+ s n6 R
>Ambiguous symbol 'xxxxxx' (二义性符号'xxxxxx')
>Argument # missing name (参数#名丢失)0 x6 |, I$ ]$ [' G1 G
>Argument list syntax error (参数表出现语法错误)
>Array bounds missing (数组的界限符"]"丢失)3 e1 ]9 D+ |$ L6 N# _- W
>Array size too large (数组太大)
>Assembler statement too long (汇编语句太长)4 ^: t3 J7 N) b! U8 e7 k
>Bad configuration file (配置文件不正确); [8 n4 p1 a4 _$ J4 q( ?* g
>Bad file name format in include directive(包含指令中文件名格式不正确)
>Bad ifdef directive syntax (ifdef指令语法错误)
>Bad ifndef directive syntax (ifndef指令语法错误); m( k+ \& i( z& J( U) [. v0 M
>Bad undef directive syntax (undef指令语法错误)
>Bad file size syntax (位字段长语法错误)( c0 P( c) N5 l/ |0 {' u
>Call of non-functin (调用未定义函数)
>Cannot modify a const object (不能修改一个长量对象)2 t* f5 k; V( m' B4 x
>Case outside of switch (Case 出现在switch外)) V* A; _& l3 W7 H' `+ x5 c8 o6 |
>Case statement missing (Case语句漏掉)* S8 f: M8 l: c* y/ B) i
>Character constant too long (字符常量太长)5 f) x4 J" X$ j/ x
>Compound statement missing (漏掉复合语句)
>Conflicting type modifiers (类型修饰符冲突)9 _& e" }! R' y# y$ d
>Constant expression required (需要常量表达式)
>Could not find file 'xxxxxx.xxx' (找不到'xxxxxx.xx'文件)+ z4 {0 Z( H: j& e# o( ?# w
>Declaration needs type or storage class(说明必须给出类型或存储类); r- J$ E) w9 F6 D+ H( {
>Declaration syntax error (说明出现语法错误)
> 在开始看本文以前,我先说明一下C语言的安装和使用中最应该注意的地方:许多网友在下载Turbo C 2.0和Turbo C++ 3.0后,向我问得最多的是在使用过程中碰到如下问题:
>[em07]</P><
>真详细啊</P>
><<a href="http://www.edu.fp.net.cn/resource/program/y_tc/T101.avi" target="_blank" >http://www.edu.fp.net.cn/resource/program/y_tc/T101.avi</A>>
>要下的快拉,要不然就下不了拉!!!!!!!!!!!!!
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part01.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part01.rar</A>></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part02.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part02.rar</A>></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part03.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part03.rar</A>></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part04.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part04.rar</A>></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part05.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part05.rar</A>></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part06.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part06.rar</A>></P><
><a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part07.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part07.rar</A></P><
><<a href="ftp://yc@218.5.6.222/zip/cyy/cyy.part08.rar" target="_blank" >ftp://yc@218.5.6.222/zip/cyy/cyy.part08.rar</A>>
>[em01]</P>| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |