C语言程序设计版权所有:中国石油大学(华东)Email:yugb@hdpu.edu.cn第1章C语言概述计算机与通信工程学院软件工程系C语言程序设计2第1章C语言概述1.1程序设计与程序设计语言1.2C语言的产生与发展1.3C语言的特点1.4C语言程序简介1.5C语言的运行环境C语言程序设计3一、概念•程序:人们事先准备好的、用来指挥计算机工作的描述工作步骤的指令序列•程序设计:程序员设计编写程序的过程•程序设计语言:编写程序所用的语言二、程序设计语言的发展•机器语言•汇编语言•高级语言:源程序编译方式和解释方式1.1程序设计与程序设计语言C语言程序设计4三、程序设计方法1.1程序设计与程序设计语言1.结构化程序设计强调程序设计风格和程序结构的规范化(易读、易懂)核心思想:自顶向下,逐步细化如:学校办公自动化系统2.面向对象的程序设计C语言程序设计51.2C语言的产生与发展78年B.W.Kernighan&D.M.Richie(K&R)合著《TheCProgrammingLanguage》80年代微机83年ANSIC(1)87年ANSIC(2)90年代面向对象的程序设计语言C++60年代ALGOL60(高级语言)CPLBCPL(BasicCombinedProgrammingLanguage)70年代PDPUNIXBC(73年)C语言程序设计61.3C语言的特点1.语言简洁、紧凑、灵活。(32个关键字、9种控制语句)2.运算符丰富。(44种运算符)3.数据结构丰富。4.具有结构化的控制语句。5.目标代码质量高,程序执行效率高。6.可移植性好。7.兼有低级语言和高级语言的特点。8.语法限制不太严格,程序设计自由度大。C语言程序设计71.4C语言程序简介——简单实例例1.1在屏幕上显示字符串“ThisisaCprogram.”。#includestdio.h/*文件包含*/voidmain()/*主函数*/{/*函数体开始*/printf(ThisisaCprogram.\n);/*输出了一句话*/}/*函数体结束*/C语言程序设计81.4C语言程序简介——简单实例例1.2求整数10、20的和。#includestdio.hvoidmain()/*主函数*/{intfirst,second,sum;/*定义变量*/first=10;/*给变量赋值*/second=20;sum=first+second;/*求a与b的和*/printf(sum=%d\n,sum);/*输出结果*/}C语言程序设计91.4C语言程序简介——简单实例例1.3找出任意两个整数中较大的数。#includestdio.hintmax(intx,inty)/*定义max函数*/{return(xy?x:y);/*求出两数中的较大数并返回*/}/*max函数结束*/voidmain(){intnum1,num2,m;printf(Inputthefirstintegernumber:);scanf(%d,&num1);/*从键盘上输入第一个整数*/printf(Inputthesecondintegernumber:);scanf(%d,&num2);/*输入第二个整数*/m=max(num1,num2);/*调用max,计算两个数的较大数*/printf(max=%d\n,m);/*输出结果*/}C语言程序设计101.4C语言程序简介——基本元素,逗号(左圆括号右尖括号%百分号.圆点)右圆括号!感叹号&and(与);分号[左方括号|竖线^xor(异或):冒号]右方括号/斜杠*乘号?问号{左大括号\反斜杠-减号‘单引号}右大括号~波折号=等于号“双引号左尖括号#井号+加号C语言使用的基本符号共有如下三种:(1)大小写字母:A~Z、a~z(2)阿拉伯数字:0~9(3)标点符号和的运算符:1.字符集(符号集)C语言程序设计111.4C语言程序简介——基本元素2.标识符用来标记常量、变量、函数及文件名字的字符序列标识符的构成规则:●以字母(大小写皆可)或下划线开头●随后可跟若干个(包括0个)字母、数字、下划线如:xy3_imaxELSEXA_to_B(合法)7xint#Nobadonere-input(不合法)注意:区分大小写。如:sum、Sum是二个标识符注意!C语言程序设计121.4C语言程序简介——基本元素3.关键字ANSI推荐的C语言的关键字是32个,TurboC另扩展了11个(不常用)asm_cs_ds_es_sscdedfarhugeinterruptnearpascal#define#error#include#if#else#elif#endif#ifdef#ifndef#undef#line#pragma特殊字:注意:★所有的关键字和特殊字都有固定的意义,不能用作其它★所有的关键字和特殊字都必须小写如:else与ELSE代表不同含义:else是关键字,ELSE是标识符也称“保留字”.它是C语言中具有特定含义、专门用作语言特定成分的一类标识符.主要用在C语言的预处理程序中C语言程序设计131.4C语言程序简介——基本元素运算符用来对运算对象进行规定(系统预定义的)的运算,并得到一个结果值。运算符通常由1~2个字符组成,如:“+”表示加法运算,“=”表示赋值运算,“==”表示“相等”的判断等。有的运算符中的两个字符是分开的,比如“?:”表示条件运算(如例1.3)。4.运算符分隔符用于分隔各个词法记号或程序正文,用于表示程序中一个实体的结束和另一个实体的开始。常用的分隔符有:(){},:;空白这些分隔符不表示任何操作,仅用于构造程序。5.分隔符C语言程序设计141.4C语言程序简介——基本元素6.注释对程序进行注释和说明形式:/*注释内容*/注意:注释内容可以是一行,也可以是多行;可以是单独一行,也可以在行尾。C语言程序设计151.4C语言程序简介——程序组成1.函数是组成C程序的基本构件,并至少有一个函数(main函数)#includestdio.hintmax(intx,inty)/*子函数*/{intz;if(xy)z=x;elsez=y;return(z);}voidmain()/*主函数*/{inta,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(max=%d,c);}2.一个函数由两部分组成:函数的说明部分:类型函数名(参数说明)函数体:{若干语句}3.语句以分号;结束4.书写格式自由5.C程序总是从main函数开始执行,也跟随main函数的结束而结束6.用/*…*/做注释C语言程序设计161.5C语言的运行环境——执行步骤编辑链接编译执行开始编辑编译连接执行有错?结果正确?结束有源程序file.c目标程序file.obj库函数和其它目标程序可执行目标程序无正确不正确file.exe程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe源程序目标程序可执行程序内容程序设计语言机器语言机器语言可执行不可以不可以可以文件名后缀.c.obj.exeC语言程序设计171.5C语言的运行环境TurboC提供两种编辑、编译、连接和运行C程序的方法:(1)集成开发环境(TC.EXE)(2)命令行编译器(TCC.EXE)•TurboC2.0的上机操作方法•VisualC++6.0的上机操作方法VisualC++6.0是Microsoft公司在1998年推出的一款运行在Windows上的集成开发环境。使用VisualC++6.0可以对C语言程序进行各种操作,如建立、打开、编辑、保存、编译、连接、运行和调试等。C语言程序设计181.5C语言的运行环境——VisualC++(1)启动VisualC++6.0程序区工作间workspace信息区C语言程序设计191.5C语言的运行环境——VisualC++(2)输入新程序前的准备工作单击文件——新建,弹出新建对话框,选择“Files”选项卡——“C++SourceFile”,在右边的“文件(File)”框中输入文件名(注意:一定要加.C,否则将使用缺省的.CPP),在“位置(Location)”框中输入路径,也可以通过点击右边的按钮在弹出的对话框中选择路径。C语言程序设计201.5C语言的运行环境——VisualC++(3)输入源程序(在“程序区”内输入源程序)程序区信息区C语言程序设计211.5C语言的运行环境——VisualC++(4)编译和连接单击build按钮(或按功能键F7或单击Build菜单中的Build子菜单),在随后弹出的两个信息框中都单击“是(Y)”按钮,则编译系统会自动将程序进行编译和连接,编译和连接的信息会自动显示在VisualC++6.0开发环境窗口中最下面的“信息区”内。(5)运行程序单击执行按钮,自动运行已生成的可执行程序。结果会显示在自动弹出的命令提示符窗口中。按任意键便返回VisualC++6.0窗口中。(6)关闭工作空间一个程序完成后,选择菜单命令File|Closeworkspace关闭工作空间。重复(2)~(6),可以创建并运行其他的C程序。