第 1 章 C语言程序设计概述 1.1 程序与程序设计语言 1.2 算法及其描述 1.3 C语言的发展及特点 1.4 C语言程序的基本结构 1.1 程序与程序设计语言 1.2 算法及其描述 1.3 C语言的发展及特点 1.4 C语言程序的基本结构 1.5 C语言字符集、标识符与关键字 1.6 C语言程序的开发环境
教学目的和基本要求: 教学重点: 要求学生了解程序语言及算法的概念,C语言特点,C程序开发过程,简单C程序结构。
明白三个概念: 语言、程序、算法 1.1 程序与程序设计 什么是语言? 自然语言: 1.1 程序与程序设计 明白三个概念: 语言、程序、算法 什么是语言? 自然语言: 人与人之间交流的工具,通过自然语言实现人与人之间的沟通,使别人能够明白的按照语言的表达来办事、工作。 如:汉语、英语、德语、法语、日语等。。。 计算机语言:(又叫程序设计语言) 人与计算机之间交流的工具,通过计算机语言实现人与计算机之间的沟通,使计算机能够明白的按照语言的表达来办事、工作。 如:C语言、foxpro、basic、java、汇编语言、机器语言等。。。。
什么是程序? 程序就是按照计算机语言的语法规则、语句格式,编制成的一段能够让计算机理解并按照执行的语句的集合。类比的说,计算机程序就好比于自然语言的一段话,或一篇文章,可以让他人理解并执行。 通俗的讲,程序就是一个用计算机语言描述的,可以由计算机执行的某一问题的解决步骤。
程序设计 人们常把编写程序的过程称为程序设计。 按照不同种计算机语言的语法编写的程序,我们把它称为某一种语言的程序。 用C语言编写的程序,我们称为C语言程序。类似的有机器语言程序、汇编语言程序、basic语言程序等。 程序设计语言的种类很多,从其发展历史以及功能情况来划分可以大致划分成五个阶段: 1、机器语言: 计算机可以直接识别和执行的二进制语言。 如: 加法指令: 1 0 0 0 0 0 0 0 减法指令: 1 0 0 1 0 0 0 0 特点:计算机可以直接识别和执行,效率高, 节省内存;但难以阅读和记忆。
2、汇编语言: 用“助记符”来表示机器指令。 如: ADD A, B SUB A, B 计算机不能直接识别和执行用汇编语言编写的源程序,它必须经过一个叫汇编程序的系统软件翻译成机器语言程序(即目标程序)后才能执行。 3、算法语言 (又称为面向过程的语言) 即高级语言,不依赖于机器,降低了编程的难度。 如:C、PASCAL、FORTRAN等,用‘+’和‘-’来 表示加减运算。 计算机也不能直接执行算法语言描述的源程序,必须先经过编译程序或解释程序翻译成目标程序后,才能由计算机执行。
4、面向任务的程序设计语言: 是非过程化的语言,不需要知道问题是如何求解的。 例如:要从某学生表SS用数据库(SQL)查询语言获取表中记录的信息,采用SELECT语句,描述如下: SELECT SSNO,SSNAME,SSAGE,SSSEX FROM SS。 5、面向对象的程序设计语言: 认为系统是由许多对象组成的,对象通过消息相互联系和相互作用,从而完成系统的功能。如C++,设计的程序更易懂, 更适合更大规模的程序开发。
1.2 算法及其描述 什么是算法? 学好程序设计语言的两步: 1.2 算法及其描述 什么是算法? 学好程序设计语言的两步: 第一步:掌握语言的语法规则,包括标识符、关键字、句法规则等。并能正确的运用这些语法规则编成计算机能识别的程序。 这类似于学习英语中的单词与句法,并正确的运用语法规则写成文章。但是光是语法规则正确的文章,并不见得准确无误的传达了作者的意思,也有可能表错了意。程序也是一样,语法规则正确的程序,却不一定正确的描述了所要解决的问题。
正确的语法+正确的算法=正确的程序 第二步:掌握解决问题的方法和步骤。 用程序语言编程,就是用计算机看得懂的语言向计算机描述解决某个问题的方法和步骤,计算机就是按照程序的描述,一步一步执行相应操作的。所编写的程序,不但要求语法准确无误,更要求提供的步骤也准确无误,计算机才能按照要求执行出正确的结果。 我们把对某一特定问题的求解步骤的一种描述,称为该问题的算法。 拿到一个需要解决的问题,在编程之前,我们首先要确定的就是解决该问题的算法,只有先得出了正确的算法,才能进一步把该算法用程序语言的形式编写出来。 正确的语法+正确的算法=正确的程序
算法应当具备以下几个方面的特点: 1、一个算法必须保证执行有限步之后结束; 2、算法的每一个步骤必须具有确切的定义; 3、应对算法给出初始量; 4、算法具有一个或多个输出; 5、算法的每一步都必须是计算机能进行的有效操作。
算法的描述方法 我们可以用自然语言来描述一个问题的解决步骤(对于程序而言即是这个程序的算法),也可以用其他一些约定的描述工具,算法的描述一般有以下方法: 1、自然语言: 使用人们日常进行交流的语言。如: 问题:从a,b中找出一个大的数给max。 自然语言的算法描述: 第一步: 从键盘输入两个数a和b; 第二步: 如果a比b大,则把a的值给max, 否则把b的值给max; 第三步: 输出max的值。 2、专用工具: 借助于有关图形工具或代码符号来描述。常用的工具有流程图、N-S图等。
如用N-S图来描述从a和b中找大数的问题。 maxa maxb 输出max Y N scanf(“%d,%d”,&a,&b); if(a>b) max=a; else max=b; printf(“%d”,max); 有了正确的算法,我们就可以按照算法一步一步的转换成相应的程序语言语句。 上面的右图就是把“从a和b中找大数问题”的算法转换成了相应的C语言语句。 常用的算法有:迭代法、枚举法、递归法、递推法等。
1.3 C语言的发展及特点 一、C语言的发展概况 起源于1968年发表的CPL语言 ,目前在微型计算机上使用的有Microsoft C,Quick C,Turbo C等多种版本。 二、C语言的特点 1、具有结构化语言的特点,用函数作为程序的组成单 位,设计出的程序简洁、紧凑、结构清晰; 2、既有高级语言的特点(可移植性好),又有低级语言 的许多功能(能对硬件操作); 3、提供了丰富的数据类型; 4、语法限制不太严格,程序设计自由度大; 5、生成的目标代码质量高,程序执行速度快。
1.4 C语言程序的基本结构 一、简单的C语言程序示例 例1-1:从键盘输入三个任意值的整数a,b,c,按公式s=a+b×c计算s的值,并显示结果。 #include<stdio.h> /*标准输入输出头文件*/ main() { int a,b,c,s; /*定义四个整型变量*/ scanf(“%d%d%d”,&a,&b,&c); /*变量赋值*/ s=a+b*c; /*算术运算并赋值*/ printf(“s=%d\n”,s); /*输出结果*/ }
C语言程序的基本结构: ⑴ 一个完整的C程序由若干个函数组成,至少有且仅有一个main函数,每个函数包括: 函数说明部分 变量定义 函数体 语句部分 ⑵ 语句必须以分号(;)作结束标志; ⑶ 由“/*”与“*/”之间的内容构成C语言程序的注释 部分; ⑷ 用预处理命令#include可以包含有关文件的信息。 ⑸ 在C语言中区分大小写,如Main、MAIN、main、 maiN是不相同的。
1.5 C语言字符集、标识符与关键字 一、C语言字符集 1、英文字母:大小写各26个,共计52个; 2、阿拉伯数:0~9共10个数字; 3、下划线: _ ; 4、特殊符号:通常指由1~2个符号组成的运算符。 算术运算符: + - * / % ++ -- 关系运算符: < > >= <= == != 逻辑运算符: && || ! 位运算符: & | ~ ^ >> << 条件运算符: ?: 和赋值运算符: = 其他分隔符: ( ) [ ] { } . , ;
二、标识符 就是用来标识变量名、符号常量名、函数名、类型名、文件名等的有效字符序列。(类似于自然语言中各种事物的名字) C语言规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 例如: 合法标识符:_22A,lea_1,avg3,day,ABCde43xyw8 不合法标识符:M.J.YORK,$_238,#xy,a*b,8Tea 注意:在C语言中,大小写字母不等效。因此,a和A,I和i,Sum和sum,分别是两个不同的标识符
三、关键字 就是具有特定含义的标识符,用户不能用来作自定义标识符。(类似于自然语言中的有特定意义的单词、词汇) 由ANSI标准推荐的关键字有32个,常用的有: 与数据类型有关的: char int float double signed unsigned short long void struct union typedef enum sizeof 与存储类别有关的: auto extern register static 与程序控制结构有关的: do while for if else switch case default goto continue break return
注意:编译只能发现语法错误,不能发现算法错误。 1.6 C语言程序的开发环境 C程序的计算机执行过程: C程序的上机过程: 正确 有错误 编辑 编译 运行 F3(编辑) F2(存盘) F9(编译) CTRL+F9(运行) ALT+F5(看结果) 注意:编译只能发现语法错误,不能发现算法错误。
【实验一】熟悉VC/TURBO C编译环境 实验目的: 1.掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。 2.掌握c语言程序设计的基本框架,能够编写简单的c程序。 3.了解程序调试的思想,能找出并改正c程序中的语法错误。 实验内容: 1.下载并安装VC6.0(二级C语言考试专用版) http://61.187.92.238:9797/wlkc/C923/Courseware/Task/Assignment/11022217822.rar 2..... 实验结果: ......