我打算在未来两天内决定我论文的题目。对C语言很感兴趣,但不知道如何下手。请帮助这个小女孩。
目录
定义
C语言的发展历史
c语言的优势
c语言的缺点
c源程序的结构特点
学习C语言
新标准
c程序示例
编辑此段落定义
c语言是一种计算机编程语言。它兼具高级语言和汇编语言的特点。可以作为系统设计语言编写工作系统应用,也可以作为应用设计语言编写独立于计算机硬件的应用。因此,它的应用范围很广。
C语言在用于操作系统、程序和硬件时明显优于其他解释性高级语言,一些大型应用软件也是用C语言编写的。
c语言具有很强的绘图能力、可移植性和很强的数据处理能力,适合编写系统软件、三维、二维图形和动画。它是一种用于数值计算的高级语言。
常用的C语言IDE(集成开发环境)有Microsoft Visual C++、Borland C++、Watcom C++、Borland C++ Builder、Borland C++3.1 for DOS。watcom c++ 11.0 for dos,GNU djgppc++,LCC win32 c编译器3.1,Microsoft c,high c,turbo c等等。......
在这一段编辑C语言的发展史。
ALGOL 60,c语言的原型。(也称为语言)
1963年,剑桥大学将ALGOL 60开发成CPL(组合编程语言)。
1967年,剑桥大学的Matin Richards简化了CPL语言,于是BCPL语言诞生了。
1970年,贝尔实验室的Ken Thompson修改了BCPL,并给它起了一个有趣的名字“B语言”。意思是把CPL语言熬干,提取精华。他用B语言编写了第一个UNIX操作系统。
1973中,B语言也被煮了。贝尔实验室的D.M.RITCHIE最终在B语言的基础上设计了一种新的语言,他以BCPL的第二个字母作为这种语言的名字,这就是c语言
为了普及UNIX操作系统,丹尼斯·M·里奇(Dennis M.Ritchie)出版了独立于特定机器系统的C语言编译器。就是著名的ansi C。
1978由美国电话电报公司公司(AT & amp;t)贝尔实验室正式发布了C语言。同时,B.W.Kernighan和D.M.Ritchit合著了名著《C编程语言》。通常被称为“K &;r”,有人称之为“K &;r”标准。然而,在K&中;r并没有定义一个完整的标准C语言,然后美国国家标准协会在此基础上制定了一个C语言标准,于1983年发布。通常称为ansi C。
从65438年到0988年,随着微型计算机的日益普及,出现了许多版本的C语言。因为没有统一的标准,这些C语言之间存在一些不一致。为了改变这种状况,美国国家标准协会(ANSI)制定了一套针对C语言的ANSI标准,成为了当前C语言标准3的主要特征。c语言。c语言发展迅速,成为最受欢迎的语言之一,主要是因为其强大的功能。很多著名的系统软件,如DBASEⅲPLUS、DBASEⅳ都是用C语言编写的。有了C语言和一些汇编语言子程序,C语言的优势就能更好的发挥出来,比如PC- DOS和WORDSTAR就是这样写的。
编辑这段C语言的好处
1.简洁、紧凑、灵活、方便
c语言* * *只有32个关键字,9种控制语句,程序写的很自由,主要是小写字母。它将高级语言的基本结构和句子与低级语言的实用性结合起来。c语言可以像汇编语言一样操作位、字节和地址,这三个是计算机最基本的工作单元。
2.丰富的运营商
C的运营商覆盖面很广,* * *有34个运营商。c语言将圆括号、赋值和强制类型转换视为运算符。从而C的运算类型极其丰富,表达类型多样化,灵活运用各种运算符可以实现其他高级语言难以实现的运算。
3.丰富的数据结构
C的数据类型有:整型,实型,字符型,数组型,指针型,结构型,* * *对象型等。可以用来实现各种复杂数据类型的操作。引入指针的概念是为了提高程序的效率。此外,C语言具有强大的图形功能,支持多种显示和驱动程序。并且计算功能和逻辑判断功能强大。
c是一种结构化语言。
结构化语言的显著特点是代码和数据的分离,即程序的所有部分除了必要的信息交换之外,都是相互独立的。这种结构化的方式可以使程序清晰,易于使用、维护和调试。c语言以函数的形式提供给用户,可以方便地调用,并有多种循环和条件语句来控制程序的流程,从而使程序完全结构化。
5.c语法限制不太严格,编程自由度很大。
虽然C语言也是一种强类型语言,但它的语法很灵活,允许程序员有更大的自由。
6.c语言允许直接访问物理地址和直接操作硬件。
所以它既有高级语言的功能,又有低级语言的很多功能,可以像汇编语言一样操作位、字节、地址,这些都是计算机最基本的工作单元,可以用来编写系统软件。
7.C语言程序生成的代码质量高,程序执行效率高。
一般来说,它只是10へ20%比汇编程序生成的目标代码效率低。
8.c语言具有广泛的应用和良好的可移植性。
C语言的一个突出优点是适用于多种操作系统,如DOS、UNIX等,也适用于多种机型。
编辑这一段C语言的缺点
1的缺点。C语言主要表现在对数据的封装上,这使得C在数据安全性上有很大的缺陷,这也是C和C++的一大区别。
2.C语言的语法限制不严格,对变量的类型限制不严格,影响程序的安全性,不检查数组下标越界。从应用角度来说,C语言比其他高级语言更难掌握。
[C语言指针]
指针是C语言的一大特色。可以说,C语言之所以优于其他高级语言,一个重要的原因就是它的指针操作可以直接接近硬件进行操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,既保留了指针操作,又增强了安全性。Java取消指针操作,提高安全性。
编辑这段C源程序的结构特征
1.C语言源程序可以由一个或多个源文件组成。
2.每个源文件可以由一个或多个函数组成。
3.无论一个源程序由多少个文件组成,它都有且只有一个主函数,即main函数。
4.源程序中可以有预处理命令(include命令只是其中之一),预处理命令通常应该放在源文件或源程序的前面。
5.每个描述和语句都必须以分号结束。但是,预处理命令、函数头和花括号“}”后面不能跟加号。
6.标识符和关键字必须至少用一个空格隔开。如果有明显的分隔符,也可以停止添加空格来分隔。
编辑此段学习C语言。
初学者学习C语言时,可能会遇到一些理解不透彻的问题,或者表达方式与之前数学学习中的不一样(比如运算符等。),这就要求你不要气馁,多问多思考自己不懂的地方,鼓足勇气去学习。学完后面章节的知识,前面的问题就迎刃而解了。在这方面,我感觉我们同学是最欠缺的,大部分都是因为一开始遇到困难就放弃了。他们和许多学生谈论过他的问题。答案是没有,我根本没上过课。我怎么能说我不懂呢?相应的,我根本就没有学习,那怎么能学好呢?
在学习C语言的时候,我们要时刻记住“曙光在前”,“千金难买回头看”,这是学习知识的一个重要途径,也就是要学习后面的知识,不要忘了回过头去找出后面留下的问题,加深对前面知识的理解,这是我们学生最难做到的,但却是最重要的。学习C语言就是要前后经历几次迭代,积累应该掌握的C知识。
那么,我们如何学好C编程呢?
1.学好C语言的运算符和操作序列。
这是学好C编程的基础。c语言操作非常灵活,功能非常丰富,操作的类型也远远多于其他编程语言。与其他编程语言相比,表达式更简洁,如自加、自减、逗号运算、三眼运算等,使表达式更简单。但是初学者往往觉得这个表达式很难读懂,关键原因是没有完全理解运算符和运算序列。当多种不同的运算组成一个运算表达式时,即一个表达式中有多个运算符时,运算的优先顺序和组合规则非常重要。在学习中,只要我们把它们合理分类,找出它们与数学中所学运算的区别,记住这些运算并不难。有些运算符理解后会记在心里,以后用起来得心应手,有些运算符可以暂时放弃,以后用的时候再记。
首先,运营商应该根据不同的优先级进行分类。C编程中的运算符可分为15优先级,从高到低,优先级为1 ~ 15。除了第二级、第三级和14级,都是从左到右组合的,这就决定了同一级别的操作者的操作顺序。
2.学好C语言的四种程序结构
(1)序列结构
Sequence structure的程序设计是最简单的,只要按照解题的顺序写出相应的语句,它的执行顺序是自上而下的。
比如说;A = 3,b = 5,现在交换A和b的值,这个问题就像交换两杯水,当然需要第三杯。如果第三个杯子是C,那么正确的程序是:C = a;;a = b;b = c;执行结果是a = 5,b = c = 3。如果改变顺序,就写成:a = b;;c = a;b = c;那么执行结果就变成了a = b = c = 5,达不到预期的目的,初学者最容易犯这样的错误。序列结构可以独立使用,形成一个简单而完整的程序。输入、计算、输出三部曲的常用程序是序列结构。比如程序的语句顺序是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。但在大多数情况下,序列结构是程序的一部分,它和其他结构一起构成了一个复杂的程序,比如分支结构中的复合语句,循环结构中的循环体。
(2)分支结构
序列结构的程序虽然可以解决计算和输出的问题,但在选择之前无法判断。对于选择前需要判断的问题,要用分支结构。分支结构的执行是按照一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构编程方法的关键在于构造合适的分支条件和分析程序流程,并根据不同的程序流程选择合适的分支语句。分支结构适用于逻辑或关系比较等有条件判断的计算。设计这类程序时,往往需要先画出其程序流程图,再根据程序流程编写源程序,将程序设计分析从语言中分离出来,使问题简单易懂。程序流程图是根据问题解决分析绘制的程序执行流程图。
学习分支结构不要被分支嵌套所迷惑,只要流程图绘制正确,每个分支要执行的功能明确,嵌套结构并不难。嵌套只是包含分支语句的分支,并不是新知识。只要对双分支理解清楚,分支嵌套并不难。我来介绍几个基本的分支结构。
①如果(条件)
{分支机构}
这个分支结构中的分支可以是一个语句,在这种情况下可以省略“{}”,也可以是多个语句,即复合语句。它有两条分支路径可供选择。一种是当条件为真时执行分支,否则跳过分支,不执行分支。比如计算x的绝对值,根据绝对值的定义,我们知道当x >;=0,其绝对值保持不变,而x
②如果(条件)
{分行1}
其他
{分支2}
这是典型的分支结构。如果条件成立,执行分支1,否则执行分支2、分支1和分支2,分支2可以由1或几个语句组成。比如求ax ^ 2+bx+c = 0的根。
分析:因为当B 2-4ac >时;=0,方程有两个实根,否则(b 2-4ac
d = b * b-4 * a * c;
if(d & gt;=0)
{ x 1 =(-b+sqrt(d))/2a;
x2 =(-b-sqrt(d))/2a;
printf("x1=%8.4f,x2=%8.4f\n ",x1,x2);
}
其他
{ r =-b/(2 * a);
I = sqrt(-d)/(2 * a);
printf(" x 1 = % 8.4f+% 8.4 fi \ n " r,I);
printf("x2=%8.4f-%8.4fi\n"r,I)
}
③嵌套分支语句:其语句格式为:
If(条件1){分支1 };
Else if(条件2){分支2}
Else if(条件3){分支3}
……
Else if(条件n){分支n}
else { n+1分行}
嵌套分支语句可以解决多个入口和出口的问题,但是经过三重以上的嵌套后,句子结构变得非常复杂,对于程序的阅读和理解极其不方便。建议在triple内嵌套,超过triple就可以使用下面的语句。
④switch语句:该语句也是多分支选择语句。执行哪个块取决于开关设置,即表达式的值与常量表达式匹配的路径。它不同于if…else语句,它的所有分支都是并行的。程序执行时,第一个分支开始搜索,如果匹配,则执行后续的块,然后执行第二个分支和第三个分支的块,直到。如果不匹配,找出下一个分支是否匹配。在应用该语句时,要特别注意switch条件的合理设置和break语句的合理应用。
(3)周期结构:
循环结构可以减少源程序重复编写的工作量,可以用来描述某个算法重复执行的问题。这是在编程中最能发挥计算机特长的程序结构。c语言提供了四个循环,分别是goto循环、while循环和do?Cwhile循环和for循环。四种循环可以用来处理同一个问题。一般可以互相替换,但一般不建议使用goto循环,因为强行改变程序的顺序往往会给程序的运行带来不可预知的错误。在学习中,我们主要学习while,do…while和for。学习常用的三种循环结构的重点是找出它们的异同,以便在不同的情况下使用。这就需要对三个循环的格式和执行顺序有一个清晰的理解,对每个循环的流程图有一个透彻的理解,有助于你理解如何替换它们。比如以while循环为例,用for语句重写一个程序,以便更好地理解它们的功能。要特别注意循环体中倾向于结束的语句(即循环变量值的变化),否则可能成为无限循环,这是初学者的常见错误。
学习完这三个循环后,要明确它们的异同:使用while和do…while循环时,循环变量的初始化操作要在循环体之前,而for循环一般在语句1中进行;while循环和for循环都是先判断表达式,再执行循环体,而do…while循环是先判断表达式,也就是说do…while的循环体至少执行一次,而while循环和for可能不执行一次。另外需要注意的是,三种循环都可以用break语句跳出循环,用continue语句结束这个循环,而goto语句和if形成的循环不能用break和continue语句控制。
序列结构、分支结构和循环结构并不是相互孤立的。循环中可以有分支和序列结构,分支中也可以有循环和序列结构。事实上,无论是哪种结构,我们都可以将它们视为广义上的陈述。在实际编程过程中,这三种结构往往相互结合,实现各种算法,设计相应的程序。但是编程的问题就大了,写出来的程序往往很长,重复,导致可读性差,难以理解。解决这个问题的方法是将C程序设计成模块化结构。
(4)模块化程序结构
C语言的模块化程序结构是通过函数来实现的,即把复杂的C程序分成几个模块,每个模块写成一个C函数,然后通过从主函数调用函数,从函数调用函数,写出一个大型问题的C程序,所以经常说C程序=主函数+子函数。所以在函数的定义、调用、返回值上要特别注意理解和应用,通过计算机调试巩固。
3.掌握一些简单的算法。
其实编程工作很大一部分就是分析问题,寻找问题的解决方案,然后用相应的编程语言编写代码。这需要掌握算法。按照我们C程序设计的教学大纲,只需要掌握一些简单的算法就可以了。掌握了这些基本算法后,就很容易完成问题的分析了。比如两个数的交换,三个数的比较,选择法排序,冒泡法排序,这就需要我们明确这些算法的内在含义。
结论:当我们抓住了以上几个方面,只要同学们能克服畏难情绪和厌学情绪,上课专心听讲,上机做练习和调试,C语言是不难学的。
源程序的c关键字-。
所谓关键词,就是C语言本身已经使用过的,不能用于其他用途的词。例如,关键字不能用作变量名、函数名等。
ANSI标准定义了32个C语言关键字* * *:
自动双int结构中断else长开关
case枚举寄存器typedef char extern返回联合
const float short unsigned continue for signed void
静态时变量do if的默认goto sizeof
根据关键字的作用,关键字可以分为两类:数据类型关键字和过程控制关键字。
1数据类型关键字
基本数据类型(5)
Void:声明函数没有返回值或者没有参数,声明没有类型指针,显式丢弃运算结果。
Char:字符类型的数据,是一种整数数据。
Int:整数数据,通常是编译器指定的机器字长。
Float:单精度浮点数据,属于浮点数据的一种。
Double:双精度浮点数据,属于浮点数据的一种。
类型B修饰符关键字(4)
Short:修饰int,短整型数据,修饰int可以省略。
Long:修饰int,长整型数据,修饰int可以省略。
有符号:修饰整数数据,有符号数据类型。
无符号:修饰的整数数据,无符号数据类型。
c复杂类型关键字(5)
结构:结构声明
联合:* *在方面中声明。
枚举:枚举声明
Typedef:声明类型别名
Sizeof:获取特定类型或特定类型变量的大小。
d存储级别关键字(6)
Auto:指定为自动变量,由编译器自动分配和释放。通常在堆栈上分配。
Static:指定为静态变量,分布在静态变量区。当修饰一个函数时,函数的作用域被指定为文件内部。
寄存器:指定为寄存器变量。建议编译器将变量存储在寄存器中以供使用,或者修改函数参数。建议编译器通过寄存器而不是堆栈传递参数。
Extern:指定对应的变量是外部变量,即在另一个目标文件中定义,可以认为是对另一个文件声明的对象的“引用”。
Const:用volatile统称为“cv特性”,指定变量不能被当前线程/进程改变(但可以被系统或其他线程/进程改变)。
Volatile:用const统称为“cv feature”,指定变量的值可能会被系统或其他进程/线程改变,迫使编译器每次都要从内存中获取该变量的值。
2过程控制关键词
一个跳转结构(4块)
Return:用在函数体中,返回一个特定的值(或者void值,即没有返回值)。
继续:结束当前循环,开始下一个循环。
打破:跳出当前的循环或开关结构
Goto:无条件跳转语句
b分支结构(5)
If:条件语句
Else:条件语句的否定分支(与if一起使用)
Switch: switch语句(多分支语句)
case:switch语句中的分支标记
默认:switch语句中的Divide and concurve“Other”,可选。
循环结构(3)
For:对于循环结构,for(1;2;3)4;的执行顺序是1->2->;4->;3->;2...循环,其中2是循环条件。
Do:做循环结构,做1 while(2);的执行顺序是1-->;2->;1 ...循环,2是循环条件。
While :while循环结构,while(1)2;的执行顺序是1-->;2->;1 ...循环,1是循环条件。
在上面的循环语句中,如果循环条件表达式为真,则继续循环,如果为假,则跳出循环。