第1章C语言程序概述本章的学习目的是掌握C语言程序的基本结构和上机操作过程,使读者对C语言程序有一个概貌的了解,为后面的学习打下基础。1.1C语言程序的基本结构1.1.1实例下面简要介绍几个简单的程序例子,说明C语言的组成特点。【例1.1】在屏幕上输出一串字符:Thisisacprogram#includestdio.hvoidmain(){printf(“Thisisacprogram”);}程序输出结果:Thisisacprogram说明:1.main():主函数。C语言程序由函数构成,但有且只有一个主函数。2.{}:C语言程序必须至少有一对{},代表程序的开始、结束,里面内容称之为函数体。3.Printf():标准输出函数,将程序运行结果显示到输出设备上(显示器)。4.#includestdio.h:预处理命令。当程序中有输出函数或输入函数时必须有此行。【例1.2】已知a=10,b=30,求两数之和sum。#includestdio.hvoidmain()/*主函数,程序从此开始运行*/{/*函数体开始*/inta,b,sum;/*定义语句*/a=10;/*赋值语句*/b=30;/*赋值语句*/sum=a+b;/*赋值语句*/printf(sum=%d\n,sum);/*输出语句*/}/*函数体结束*/·1·程序输出结果:sum=30说明:1.inta,b,sum;语句:说明a、b和sum为三个整型变量,可以通过赋值操作改变变量的值。2.a=10;语句:将整数10送到a的存储单元中。sum=a+b;语句:先取a和b两个存储单元中的数据在运算器中相加,然后将结果保存在sum变量单元中。3.printf(sum=%d\n,sum);语句:该函数的参数包括两部分,sum是要输出的数据,%d是数据输出的格式控制符字符串,控制符%d的作用是按整数格式输出sum的值。“sum=”是输出数据的提示说明,原样输出。4.“/*......*/”:注释,目的是为了增加程序的可读性。注释可以插入到程序中任何位置,对程序的执行没有任何影响,编译时将被过滤掉。【例1.3】从键盘输入两个整数,输出昀大值。#includestdio.hintmax(intx,inty)/*定义函数*/{intz;if(xy)z=x;elsez=y;returnz;/*返回函数值*/}voidmain(){inta,b,c;printf(“输入两个整数ab:”);scanf(“%d%d”,&a,&b);/*标准输入函数*/c=max(a,b);/*调用max()函数*/printf(%d%d中的昀大值为:%d\n,a,b,c);/*输出结果*/}程序运行结果:输入两个整数ab:15171517中的昀大值为:17说明:1.本程序由两个函数组成:主函数main()和自定义函数max()。2.程序从main()函数开始执行;printf()函数,输出显示一个字符串,具有提示信息的作用;scanf()函数,从键盘的输入数据,分别给变量a和变量b赋值,使得变量a和b从键盘上获取值;执行c=max(a,b);时程序转移到max()函数,遇到return语句返回主函数继续执行。·2·1.1.2c语言程序的基本结构以上实例可以看出C语言程序的基本结构:1.C语言程序是由函数构成的,函数是C程序的基本单位。2.一个函数由两部分组成:函数头:即函数的第一行;函数体:即函数头下面,用大括弧{…}扩起来的部分。3.函数体由语句构成,语句以分号;结束。4.一个c程序可以由一个或多各函数组成,但必须有一个且只能有一个main()函数,主函数。一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置。5.每行通常写一条语句。有些短语句也可以一行写多条;长语句也可以一条写成多行。6.在程序中尽量使用注释信息,增强程序的可读性。注释信息是用注释符标识的,注释符开头用/*,结束用*/,其间的字符为注释信息。1.2c语言程序的运行1.2.1c语言程序运行过程由高级语言编写的程序称为源程序,计算机不能直接识别和执行,必须由语言处理程序将其翻译成由0和1构成的二进制指令代码。按照c语言规则编写的程序,要想得到昀终结果,要经过以下几个步骤:1.编辑源程序编辑是指使用文本编辑工具软件输入和修改C语言源程序,昀后以文本文件的形式存放在磁盘上,文件名由用户自己选定,扩展名一般为“.c”。编辑器可以是任何一种文本编辑软件,比如TurboC和VC++专用编辑系统,也可以是写字板、记事本等字处理软件。2.编译源程序编译是将C源程序翻译成二进制目标程序。编译是由编译程序来完成,编译程序对源程序自动进行句法和语法检查,当发现错误时,就将错误的类型和程序中出错的位置显示出来,以帮助用户修改源程序。如果未发现句法和语法错误,就自动形成目标程序,其扩展名为“.obj”。3.连接程序编译后的目标文件尽管是二进制代码文件,但计算机还不能直接执行该程序,必须使用C语言处理系统提供的连接程序,生成扩展名为EXE的可执行文件。程序中各函数间的调用结合是由连接程序完成的,系统提供的输出函数和用户定义的函数都要进行连接。如果连接过程中出现错误信息,也必须回到第一步重新修改源程序,并重新开始编译和连接,直到生成可执行文件。4.运行程序·3·运行程序,并检查运行结果。如果是算法错误,只能回到第一步修改源程序,再重新编译连接和运行,直到得到正确的结果。1.2.2c语言开发环境VC++6.0简介1.启动VC++单击[开始]菜单,选择[程序][MicrosoftVisualStddio6.0][MicrosoftVisualC++6.0]。2.创建C++程序环境①在“文件”菜单下选择“新建(New)”命令,打开“新建”对话框,如图1-1所示。图1.1新建项目界面②在“工程(Projects)”选项卡中指定下列选项:z选中ProjectsWin32ConsoleApplication工程类型。z在“工程(ProjectName)”栏中输入工程名称。如输入:Helloz单击“位置(Location)”栏后的,可指定应用程序存放的位置(或默认)z选中(CreateNewWorkspace)(默认)z在(Platforms)中,选中Win32(默认)z设置完成后,单击“确定(OK)”按钮,打开AppWizard对话框。③在应用向导(AppWizard)对话框中,选中Anemptyproject。然会单击“完成(finish)”按钮,显示“新建工程信息”(NewProjectInformation)对话框,内容如下:Emptyconsoleapplication.Nofileswillbecreatedoraddtotheproject.·4·单击“确定(OK)”按钮。则系统自动创建了一个Hello类。④源程序编写。点击“文件”菜单中“新建”命令,则弹出如图1-2所示的“新建”窗口。图1.2新建文件界面在弹出的“新建(New)”窗口的“文件(File)”对话框中,选中“C++SourceFile”,在“文件(FileName)”栏中输入新建的C++源文件名,如Hello,确认添加工程检查框被选中(默认),然后单击“确定(finish)”按钮,建立一个空的Hello.cpp文件。3.编辑源程序在图1-3所示的程序编辑窗口中输入程序,编辑好的程序称为源程序,C++源程序的扩展名为.cpp。(程序编辑窗口)(编译信息输出窗口)图1.3程序编辑界面4.程序编译选择编译工具栏中的编译按钮进行编译,编译信息显示在输出窗口中。如有错误,则必须经修改源程序再重新编译,否则无法进行下一步。5.连接程序选择编译工具栏中的“构建”按钮进行连接。如有错误,则必须修改源程序再重新编译和连接。6.运行程序。或选择编译工具栏中的“执行”按钮。·5·1.3实训实训1【内容】上机操作【目的】掌握运行C语言程序各个环节【题目】运行例1.1、例1.2和例1.3实训2【内容】简单程序设计【目的】编写C语言程序【题目】参照例1.1,编写一个输出下面字符程序:******************************ThisisaCprogram!******************************实训3【内容】简单程序设计【目的】编写C语言程序【题目】参照例1.2,编写程序计算s=a+b,x=a-b,y=a*b,z=a/b的值。习题一、填空题:1.C语言程序是由若干个___________组成,一个_________是由若干个_________组成。__________是C程序的基本单位。2.C语言程序中函数是由若干条___________组成的,_______是组成函数的昀小元素。3.main()函数是C语言的________函数,它可以放置在程序的_________位置上,一个C程序中有且只能有_________个main()函数。程序总是从____________开始执行。4.C语言程序的注释是以_________开头,以________结束的。注释对程序______不起任何作用。5.C语言程序的扩展名是______,编译后生成的目标文件的扩展名是__________,连接后生成的是____________文件。二、判断题:1.C语言程序可以由多个文件组成,每个文件中都可以有一个main()函数。2.C语言程序中对主函数main()放置的位置没有一定要求,放在文件头或文件尾或文件中间都可以。3.C语言程序一行只能写一个语句。·6·4.C程序书写时要求每行必须以分号结束。5.C语言可以不用编译就能被计算机识别执行。·7·第2章数据的类型与基本操作本章介绍的是用C语言编程必须掌握的一些基础知识,包括昀基本的数据类型、常量和变量、算术运算符及算术表达式、赋值运算符和赋值表达式及自增自减运算等。2.1一个C程序实例【例2.1】求矩形的面积。【程序代码】#includestdio.hvoidmain(){inta,b;floatarea;a=2;b=4;area=a*b;printf(%f\n,area);}【运行结果】8.000000【程序分析】1.该程序中用到的数据有a,b,area,2,4,对数据进行的运算有*(乘法运算)和=(赋值运算)。2.计算机处理时,要完成以下工作:⑴在内存中给矩形的两条边a,b和面积area开辟存储空间,存放它们的值。a,b,area被称作变量,到底应该留多大的空间来存放它们的值?⑵数据2,4与a,b,area不同,它们是在编写程序时就给出了确定的值,在运算过程中不会改变,这样的数据叫常量。计算机又是如何处理常量?以上的问题都涉及到C语言中数据的处理操作。在C语言中,数据是程序中必要组成部分,是程序处理的对象。现实中的数据是有类型差异的,如姓名由一串字符组成、年龄是数字符号组成的整数、而身高包含整数和小数两部分。C语言为不同类型的数据使用了不同的格式存储,占用内存单元的字节数也不同。编写高级语言程序虽然不需要了解数据在内存中的具体存储方法,但一定要知道类型的意思,因为处理不同类型的数据所使用的语句命令是有区别的。·8·C语言提供如图2-1所示的数据类型。数据包含常量和变量,它们都属于上述某种数据类型,本章主要介绍基本数据类型,其它数据类型将在以后的章节中逐步介绍。整型基本数据类型字符型单精度实型实型(浮点型)数组类型双精度实型结构体类型数据类型构造类型共用体类型枚举型指针类型无值型图2-1C语言的数据类型2.2基本数据类型基本数据类型是C语言内部预先定义的数据类型,也是实际中昀常用的数据类型,如字符型、整型、单精度实型和双精度实型等。C语言处理系统内部为使用基本数据类型的操作提供了非常方便的使用环境。2.2.1整数类型C语言提供了多种整数类型数据,以适应不同场合的需求,其中经常用到的是整形和长整型这两种数据类型。两种整型数据的区别在于采用不同位数的二进制编码表示,所以要占用不同的存储空间,表示不同的数值范围。整