第1章,怎么学习c语言开发

语言 7
第1章 C语言概述 教学前言 每一个准备学习C语言的人都应该清楚地了解C语言的发展历程,了解为什么要选择使用C语言,以及它有哪些特性。
只有了解了C语言的历史和特性,才会增加学习C语言的信心。
本章主要学习C语言的发展史,使读者了解DevC++的开发环境,掌握其中各个部分的使用方法,并能编写一个简单的应用程序以练习使用开发环境。
教学要点 通过学习,要求学生了解C语言的发展史、C语言的特点、C语言的组织结构,掌握如何使用DevC++开发C程序。
1.1C语言的发展史 世界上本来没有计算机,工程师因为工作需要在20世纪40年代创造了它。
要使计算机能够运行起来,为人类完成各种各样的工作,工程师发明了程序设计语言,使计算机执行相应的程序。
这些程序都是依靠程序设计语言编制出来的。
在众多的程序设计语言中,C语言有其独特之处。
C语言作为一种高级程序设计语言,具有很强的方便性、灵活性和通用性。
同时,它还向程序员提供了直接操作计算机硬件的功能。
其具有低级语言的特点,适合各种类型的软件开发。
因此,C语言是深受软件工作者欢迎的程序设计语言。

1.程序设计语言要完成程序设计,自然离不开程序设计语言。
在介绍C语言的发展史之前,先要对程序设计语言进行了解。
C语言程序设计基础 程序设计语言发展非常迅速,从其发展历史及功能看,大致可分为以下几种。
1)机器语言由于计算机内部只能接收二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编写的程序称为目标程序。
只有目标程序才能被计算机直接识别和执行。
但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大。
机器语言属于低级语言。
2)汇编语言汇编语言的实质和机器语言是相同的,都是直接对硬件进行操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序通常由3部分组成:指令、伪指令和宏指令。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作。
3)高级语言高级语言相对于机器语言而言,是高度封装了的编程语言,与低级语言相对。
它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(如汉字、不规则英文或其他语言),从而使程序编写员编写更容易,亦有较高的可读性,以方便对计算机认知较浅的人。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。

2.C语言的历史 C语言之所以命名为
C,是因为C语言源自KenThompson发明的B语言,而B语言则源自BCPL(基本组合编程语言)。
1967年,剑桥大学的MartinRichards对CPL进行了简化,于是产生了BCPL。
1970年,美国贝尔实验室的KenThompson以BCPL为基础,设计出了很简单且很接近硬件的B语言(取BCPL的首字母),并且用B语言编写了第一个UNIX操作系统。
1972年,美国贝尔实验室的DennisRitchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名称,这就是C语言。
1973年初,C语言的主体完成。
随着UNIX的发展,C语言自身也在不断完善。
直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言。
1982年,成立了C标准委员会,建立了C语言的标准。
1989年,ANSI发布了第一个完整的C语言标准—ANSIX3.159—1989,简称“C89”,人们习惯称其为“ANSIC”。
C89在1990年被国际标准化组织(InternationalStandardOrganization,ISO)采纳,ISO官方给予的名称为ISO/IEC9899,所以ISO/IEC9899:1990通常被简称为“C90”。
1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC9899:1999,简称“C99”。
2011年12月8日,ISO又正式发布了新的C语言标准,称为ISO/IEC9899:2011,简称“C11”。
C语言是一门通用计算机编程语言,广泛应用于底层开发。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码及不需要任何运行环境支持便能运行的编程语言。

2 C语言概述第1章 1.2C语言的特点 C语言是一门面向结构的计算机编程语言,与C++、Java等面向对象的编程语言有所不同。

1.基本特性
(1)高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。

(2)结构式语言:它的显著特点是代码及数据的分隔化,即程序的各个部分除必要的信息交流外,彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护及调试。
C语言是以函数形式提供给用户的,这些函数可进行方便地调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

(3)代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等;也适用于多种机型。
在需要进行硬件操作的场合,其优于其他高级语言。

(4)使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。
C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是这些改进又增加了语言的复杂度,也为另一部分用户所诟病。
Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适用性方面均取得了良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++、
C。
一般而言,
C、C++、Java被视为同一系的语言,它们长期占据着程序语言使用榜的前3名。

2.基本特点
(1)C语言是一种有结构化程序设计、具有变量作用域(VariableScope)及递归功能的过程式语言。

(2)C语言传递参数时均以值传递(PassbyValue),但也可以传递指针。

(3)不同的变量类型可以用结构体组合在一起。

(4)只有32个保留字,使变量、函数命名有更多弹性。

(5)部分变量类型可以转换,如整型和字符型变量。

(6)通过指针,C语言可以容易地对存储器进行低级控制。

(7)预编译处理,使C语言的编译更具有弹性。
1.3算法 在程序设计中,算法是程序的核心,是程序设计要完成的任务的灵魂。

3 C语言程序设计基础
1.算法的概念所谓算法,就是为解决某一特定问题而采取的具体工作步骤和方法。
1)算法的特征
(1)有穷性(Finiteness):算法必须能在执行有限个步骤之后终止。

(2)确切性(Definiteness):算法的每一步骤必须有确切的定义。

(3)可行性(Effectiveness):算法中执行的任何计算步骤都是可以被分解为基本的可执行操作步骤的,即每个计算步都可以在有限时间内完成(也称之为有效性)。

(4)输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身确定了初始条件。

(5)输出项(Output):一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的。
2)算法的要素
(1)数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。

(2)算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,还与各操作之间的执行顺序有关。

2.算法的描述方式描述算法的方法有多种,常用的有自然语言、流程图、伪代码和N-S流程图等,其中,最普遍使用的是流程图。
1)自然语言自然语言就是人们日常进行交流的语言,如汉语、英语等。
用自然语言描述的算法通俗易懂,便于用户之间相互交流。
但是,自然语言表示的含义往往不太严格,随意性较大,容易出现歧义性表述。
另外,将自然语言描述的算法直接在计算机中进行处理存在许多困难,包括语音、语义识别方面的问题。
流程图是一种传统的算法表示法。
2)流程图流程图是以特定的图形符号加上算法说明的图。
如图1-1所示为流程图采用的符号。
图1-1流程图采用的符号
4 C语言概述第1章说明:①起止框:用于一个算法的开始和结束。
②输入输出框:算法中需要输入数据和输出数据时,用此符号框表示。
③判断框:算法中遇到判断而面临选择时,用此符号框表示。
根据给定的条件是否成立来决定其后的操作,它有一个入口和两个出口。
④处理框:表示条或段顺序执行的语句。
⑤连接点:连接点(小圆圈)用于将画在不同地方的流程线连接在一起。
⑥流程线:表明算法流程的走向。
⑦注释框:不是流程图中必要的部分,不反映流程图的操作,只用于对流程图中某些框的操作做必要的补充说明,以帮助人们阅读流程图。
【例1.1】描述从键盘上输入两个整数x、y,求两个整数和的流程如图1-2所示。
图1-2求两个整数和的流程图 【例1.2】描述输入2个数,输出其中较大的数的流程如图1-3所示。
图1-3输出较大的数的流程图
5 C语言程序设计基础【例1.3】描述1+2+3…+1000的输出结果的流程如图1-4所示。
图1-41+2+3+…+1000输出结果的流程图 3)伪代码伪代码是一种非正式的、类似于英语结构的、用于描述模块结构的语言。
【例1.4】输入2个数,输出其中较大的数,可用如下伪代码表示。
Begin(算法开始)输入
A,BIFA>B则A→Max否则B→MaxPrintMaxEnd(算法结束) 4)N-S流程图N-S流程图也被称为盒图,是结构化编程中的一种可视化建模,在流程图中完全去掉流程线,全部算法写在一个矩形阵内,在框内可以包含其他框的流程图形式。
【例1.5】将例1.2改为N-S流程图,如图1-5所示。
图1-5例1.2的N-S流程图
6 C语言概述第1章 1.4一个简单的C语言 下面通过一个简单的程序来介绍C语言。

1.一个简单的C程序 【例1.6】在屏幕上输出“Hello,world!
”。
本例程序实现的功能是在屏幕上显示信息“Hello,world!
”,通过这个程序可以了解C语言程序的结构。
#includeintmain(){ printf("Hello,world!
\n");return0;} /*调用头文件*/ /*输出显示的字符串*//*程序返回*/ 程序运行结果如图1-6所示。
图1-6例1.6程序运行结果 分析:
(1)#include:include是文件包含命令,stdio.h为头部文件。
(2)intmain():声明主函数,函数的返回值为整型(int)。
每一个C源程序都必须有且只能有一个主函数。

(3)两个花括号中的内容称为函数体。
(4)printf("Hello,world!
\n");是输出语句,每条语句以分号结尾。
printf函数的功能是把要输出的内容传到显示器上。
printf函数是一个由系统定义的标准函数,可在程序中直接调用。
(5)return0;表示使main函数终止运行。

2.写程序时应遵循的规则
(1)一个说明或一个语句占一行。

(2)用{}括起来的部分,通常表示程序的某一层次结构。
{}一般与该结构语句的第一个字母对齐,并单独占一行。

(3)低一层次的语句或说明,可比高一层次的语句或说明缩进若干格书写,以便看起来更加清晰,增加程序的可读性。
在编程时,应力求遵循这些规则,以养成良好的编程习惯。

7 C语言程序设计基础
3.C语言的结构特点
(1)一个C语言源程序可以由一个或多个源文件组成。

(2)每个源文件可由一个或多个函数组成。

(3)一个源程序不论由多少个文件组成,都有一个且只能有一个main函数。

(4)源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常放在源文件或源程序的最前面。

(5)每一个说明、每一个语句都必须以分号结尾,但预处理命令、函数头和花括号“}”之后不能加分号。

(6)标识符、关键字之间必须至少加一个空格以示间隔。
若已有明显的间隔符,则可不再加空格来间隔。

4.C语言的字符集 字符是组成语言的最基本元素。
C语言字符集由字母、数字、空格、标点和特殊字符组成。
在字符常量、字符串常量和注释中,还可以使用汉字或其他可表示的图形符号。

(1)字母:小写字母a~z(共26个),大写字母A~Z(共26个)。

(2)数字:0~9(共10个)。

(3)空白符:空格符、制表符、换行符等统称为空白符。
空白符只在字符常量和字符串常量中起作用。
它在其他地方出现时,只起间隔作用,编译程序会忽略它们。
因此,在程序中是否使用空白符,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。

(4)标点和特殊字符。

5.C语言词汇 C语言中使用的词汇分为6类:标识符、关键字、运算符、分隔符、常量、注释符等。
1)标识符标识符将在第2章中详细介绍。
2)关键字关键字将在第2章中详细介绍。
3)运算符C语言中含有相当丰富的运算符。
运算符与变量、函数一起组成表达式,表示各种运算功能。
运算符由一个或多个字符组成。
4)分隔符C语言中采用的分隔符有逗号和空格两种。
逗号主要用在类型说明和函数参数表中,用于分隔各个变量。
空格多用于语句中各单词之间,作为间隔符使用。
在关键字、标识符之间必须要有一个以上的空格符做间隔,否则将会出现语法错误,例如,把inta;写成inta;时,C编译器会把inta当作一个标识符处理,其结果必然出错。
5)常量C语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等,这些内容将在第2章中专门介绍。

8 C语言概述第1章 6)注释符C语言的注释符是以“/*”开头并以“*/”结尾的。
在“/*”和“*/”之间的即为注释。
程序编译时,不对注释做任何处理。
注释可出现在程序中的任何位置。
注释用来向用户提示或解释程序的意义。
在调试程序时,暂不使用的语句也可用注释符括起来,使翻译跳过不做处理,待调试结束后再去掉注释符。
1.5C语言程序的开发环境 编写好的C语言程序要经过输入、编译和连接后才能形成可执行的程序。
目前,程序 员大多采用VisualC++6.0、DevC++来开发C语言程序,本章主要介绍DevC++开发工具 的使用。
双击DevC++安装目录中的 文件,启动DevC++,进入DevC++主界面, 如图1-7所示。
主界面主要由菜单栏、工具栏、项目资源管理器视图、程序编辑区、编译 调试区和状态栏组成。
图1-7DevC++主界面 通过选择“文件”→“新建”→“源代码”选项,新建一个C源代码文件。
编写好代码后,选择“文件”→“保存”选项保存文件,弹出“SaveAs”对话框,如图1-8所示。

9 C语言程序设计基础 图1-8“SaveAs”对话框 单击“保存”按钮,返回DevC++主界面,在程序编辑区中编写好代码后,即可运行。
运行程序的方式有以下3种。

(1)在DevC++的菜单栏中选择“运行”→“编译运行”选项。

(2)按快捷键“F11”。

(3)单击图标。
如程序有错误,光标将会停留在第一个出错处,并在编译调试区中显示错误提示信息,如图1-9所示。
图1-9编译错误提示信息10 C语言概述第1章 习题
1 一、填空题
1.在C语言中,每条语句必须以 结尾。

2.在C语言中,注释用 符号表示。

3.一个C源程序中至少应包含一个 函数。

4.C语言的词汇分为6类:标识符、关键字、 、分隔符、
5.C语言中采用的分隔符有 和 两种。

二、程序阅读题
1.写出以下程序的运行结果。
#includevoidmain(){ inta,b,sum;a=100;b=200;sum=a+b;printf("sumis%d\n",sum);}
2.写出以下程序的运行结果。
#includeintmax(intx,inty);voidmain(){ inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);} 、注释符。
11 C语言程序设计基础
三、编程题
1.用C语言编程在屏幕上显示“您好,欢迎学习C语言!”。

2.编程,在屏幕上显示以下两行文字。
etotheClanguageworld!
Everyonehasbeenwaitingfor.
3.编程,在屏幕上分行输出自己的学号、姓名和班级。
12

标签: #c4d #转换成 #容量 #web #培训机构 #后缀名 #cs1.6怎么联机 #大众