1 C语言概述Word文档格式.docx
《1 C语言概述Word文档格式.docx》由会员分享,可在线阅读,更多相关《1 C语言概述Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![1 C语言概述Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/e067db34-6b3f-4e33-bb97-b7b61a65710d/e067db34-6b3f-4e33-bb97-b7b61a65710d1.gif)
3、高级语言
高级语言采用接近自然语言的命令或语句进行编程,高级语言独立于机器,编程不需要了解计算机指令系统和硬件结构,C、C++、Basic、Java等都属于高级语言。
高级语言使编写程序更加容易。
高级语言编写的程序称为源程序,不能被计算机直接识别,必须翻译成二进制代码才能在机器上运行。
具体的翻译方法有两种,一种是解释执行,另一种是编译执行。
解释执行方式是通过语言解释程序将源程序解释翻译一句,执行一句。
而编译执行方式是通过编译程序将源程序编译为二进制目标代码程序后,最后执行目标代码程序。
显然编译方式的程序执行效率高、速度快,并且可脱离语言环境独立运行。
1.2.2C语言的开发过程
1、编辑源文件
在文本编辑器中创建的符合高级语言规则和语法的程序,这种程序成为源程序(SourceProgram)。
在VisualC++6.0环境中的源程序文件,其扩展名为.CPP,而在TurboC环境中,源程序的扩展名为.C。
2、编译
由于C语言是一种以编译方式执行的高级语言,C语言的源程序必须经过编译后才能运行。
编译源程序就是由C系统提供的编译器将源程序文件的源代码转换成机器语言的过程,编译后的机器语言程序称为目标文件。
编译过程主要进行词法分析和语法分析,经过编译的目标文件的扩展名为.obj。
3、连接
连接过程是将编译过程中的目标代码进行连接处理,生成可执行程序文件的过程。
在连接过程中,通常还要加入一些系统提供的库文件代码。
经过连接后生成的可执行文件的扩展名为.exe。
4、运行
在C系统下执行“运行”命令,或在操作系统下直接执行可执行文件。
可执行文件运行后,一般将在屏幕上显示程序执行的结果。
1.2.3C语言的发展历程
C语言是在70年代初问世的。
一九七八年由美国电话电报公司(AT&
T)贝尔实验室正式发表了C语言。
同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE”一书。
通常简称为《K&
R》,也有人称之为《K&
R》标准。
但是,在《K&
R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C语言标准,于一九八三年发表。
通常称之为ANSIC。
早期的C语言主要是用于UNIX系统。
由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。
成为当代最优秀的程序设计语言之一。
在C的基础上,一九八三年又由贝尔实验室的BjarneStrou-strup推出了C++。
C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
C++目前流行的最新版本是BorlandC++,SymantecC++和MicrosoftVisualC++。
C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。
因而也增加了整个语言的复杂性,掌握起来有一定难度。
但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。
掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
1.2.4与本专业的关系
为什么要学C?
工控行业中广泛使用C,或类似于C的编程语言。
单片机、触摸屏等
学什么?
最重要的是学习解决问题的思路和方法即:
结构化程序设计的思想。
掌握编程思想对后续的《单片机》和《PLC》等课程中具有非常重要的意义。
为什么使用VC环境?
现在的工控软件基本上全部都是基于windows
但课时有限,后续知识要依靠自学。
1.3VisualC++运行C程序实例
1.3.1启动VisualC++6.0环境
单击“开始”-“程序”-“MicrosoftVisualstudio6.0”-“MicrosoftVisualC++6.0”命令,或双击桌面图标
启动VisualC++,VC6主窗口如下:
1.3.2建立新工程项目
1)单击“文件”-“新建”,弹出“新建”对话框。
2)单击“工程”选项卡;
3)单击“Win32ConsoleApplication”选项;
4)“工程”文件框中输入项目名,如“gc1”和“位置”框输入或选择新项目所在位置,
5)单击“确定”按钮。
弹出“Win32ConsoleApplicationStep1of1”对话框。
6)单击“Anemptyproject”(一个空的工程)按钮和“完成”按钮。
系统显示“新建工程信息”对话框。
7)单击“确定”按钮。
此时在“E:
\gc1”文件夹下自动生成下列文件:
1.3.3编辑源程序文件
1)单击“文件→新建”,弹出“新建”对话框。
2)选择“文件”选项卡。
单击“C++SourceFile”选项,在“文件”文件框中输入文件名“1-1”,单击“确定”按钮。
系统自动返回VC6主窗口。
3)显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。
#include"
stdio.h"
main()
{printf("
thisisacprogramfile.\n"
);
}
1.3.4编译和连接
单击菜单栏中“组建→组建[gc1.exe]”命令。
或单击工具栏的
(Build)按钮。
编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。
如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。
用户据此对源程序进行相应的修改,并重新编译和连接,直到通过为止。
在“E:
该文件即为编译连接过程中产生的相关信息(包括出错信息)。
\gc1\Debug”文件夹下自动生成下列文件:
其中,gc1.exe即为该工程生成的可执行文件。
1.3.5执行
单击“编译→执行”命令或单击
(BuildExecute)按钮来执行编译连接后的程序。
运行成功,屏幕上输出执行结果,并提示信息:
“Pressanykeytocontinue”。
此时按任意键系统都将返回VC6主窗口。
1.4C程序的基本结构
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。
但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。
若已有明显的间隔符,也可不再加空格来间隔。
例如:
#include<
stdio.h>
intmax(inta,intb);
/*函数说明*/
main()/*主函数*/
{
intx,y,z;
/*变量说明*/
intmax(inta,intb);
printf("
inputtwonumbers:
\n"
scanf("
%d%d"
&
x,&
y);
/*输入x,y值*/
z=max(x,y);
/*调用max函数*/
maxmum=%d"
z);
/*输出*/
}
intmax(inta,intb)/*定义max函数*/
if(a>
b)returna;
elsereturnb;
/*把结果返回主调函数*/
1.5C语言的数据输入与输出
详细说明可参考:
谭浩强的讲义,P55,PDF62
数据的输入、输出是用户和程序交流的接口,C语言是在编译系统的标准函数库中定义了一些输入输出函数,如前面使用的scanf()函数和printf()函数就分别实现数据的输入和输出。
但需要注意的是,程序在调用这些库函数时,必须在源程序的开始处加上头文件的“包含命令”,格式如下:
库函数头文件名>
或
#include“库函数头文件名”
需要说明的是:
用双引号或尖括号括起来的文件是有区别的。
若用双引号,则编译系统先在引用被包含文件的C源程序所在的文件目录中寻找,如果找不到,再按编译系统指定的标准方式寻找其他目录;
而尖括号则仅查找按系统标准方式指定的目录。
1.5.1C语言的格式输入输出函数
scanf()函数和printf()函数包含在标准输入输出头文件stdio.h中。
因此对应的文件包含命令为:
1、格式输出函数printf()
格式输出函数的作用是向输出设备按指定的格式输出若干任意类型的数据。
函数printf()的使用格式为:
printf(“格式控制串”,参数1,参数2,……)
(1)“格式控制串”:
其作用是指出输出数据的格式和类型,必须用双引号括起来。
格式控制串通常包括三种信息:
1)普通字符
按照原样输出的字符。
如printf(“C语言”),该语句在屏幕输出的结果就是:
C语言
2)格式字符
格式字符用“%格式字符”的形式表示,表示对数据输出格式的控制,格式字符与后面的参数的数据个数、数据类型及数据排放次序相对应。
常用的格式字符有:
格式字符
输出形式
举例
输出结果
%d
十进制数
inta=122;
printf(“%d”,a);
122
%x
十六进制数
printf(“%x”,a);
7A
%o
八进制数
printf(“%o”,a);
172
%U
无符号十进制数
printf(“%U”,a);
%c
单个字符
inta=68;
printf(“%c”,a);
D
%s
以‘\0’结束的字符串,或者达到精度说明的长度。
inta[]=He;
printf(“%s”,a);
He
e(或E)
指数形式的实数,小数位数由精度说明决定,缺省值为5。
floatb=12.3456;
printf(“%e”,b);
1.234560e+001
f
十进制小数,小数位数由精度说明决定,缺省