第一章 程序设计与c语言
1.1 引例
意思 :
printf——输入 if——如果
scanf——输出 else——否则
main()函数是程序的主函数,max()是程序中定义的函数,其作用是求两个数中的最大值,scanf()和printf()是系统事先设计好的函数,分别用于输入和输出。
1.2程序与程序设计语言
<1.2.1>程序设计语言的发展
1.机器语言:就要编写许多条由0和1组成的二进制指令代码。
特点:难学、难写、难记、难修改,
2.汇编语言:人们采用助记符来代替机器指令的二进制串,
特点;汇编语言同样十分依赖于机器硬件,可移植性不好,
3.高级语言:接近于数学语言或人的自然语言(英语),1954年,第一个完全脱离机器硬件的高级语言——FORTRAN(FORmula TRANslator,公式翻译器)语言问世了。
特点:易学、易用、易维护,人们可以更有效、更有便地用它来编制各种用途的计算机程序。
(1)非结构化的语言:编程风格比较随意,没有编程规范可以遵循,程序中的流程可以随意跳转。
(2)结构化的语言:QBASIC、Pascal和C都属于结构化的语言。
(3)面向对象的语言:C++、C#、Visual Basic和JAVA等语言均是支持面向对象程序设计方法的语言。
<1.2.2>程序设计语言的功能
1.数据表达:数据类型(Data Type)就是对某些具有相同性质的数据集的总称。
2.流程控制:对不同类型的数据进行处理的手段。
(1)顺序控制结构
(2)分支控制结构
(3)循环控制结构
共同特点:@1只有单一的入口和单一的出口;@2结构中的每一部分都有被执行的可能;@3结构内不应出现永不终止的死循环。
<1.2.3>程序的算法表示
软件的主体是程序,程序的核心是算法。
(1)确定性:算法的每条指令必须有明确的含义,不能有二义性。
(2)有穷性:一个算法应包含有限个操作步骤。
(3)可行性:算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现。
(4)有零个或多个输入:算法是用来处理数据对象的,这些数据对象需要通过输入来得到。
(5)有一个或多个输出:算法的目的是为了求“解”,“解”只有通过输出才能得到。
算法表示形式:文字表示、流程图表示、伪代码和程序设计语言表示等。
1.用文字描述算法
2.用流程图描述算法
3.伪代码表示:它不能在计算机中运行,但可以用来描述算法。
i++-----i=i+1
特点:结构清晰,代码简单,可读性好,并且类似自然语言,可以很容易用一种程序设计语言(如C语言)来实现。
4.程序设计语言表示:#include<stdio.h> ----头文件、列入、包括,
不便:按照程序设计语言的语法规定,往往要编写很多与算法无关而有十分繁琐的语句,如变量定义、输入输出格式描述等。
1.3C语言程序设计的特点
<1.3.1>C语言的发展历史:
主要是用汇编语言编写的,对硬件的依赖程度较高,用其编写的程序可读性和移植性都比较差。所以人们一直寻找一种即具有高级语言的通用性,又可以直接对硬件进行操作的语言,C语言应运而生了,主要是它源于一种称为B的语言,由其演变而来。
<1.3.2>C语言的特点
(1)C语言语句简洁紧凑,使用方便灵活。ANSI C中只有32个关键字和9种控制语句。
(2)运算符丰富,表达能力强。
(3)C语言程序可以移植好。
(4)生成的目标代码质量高,运行效率高。
(5)语言处理能力强。
(6)C语言是一种结构化语言。
缺点:@1C语言对语法检查不严格,许多时候需要程序员自己保证程序的正确,
@2由于C语言运算符较多,初学者很难掌握其运算的优先级与结合性,
<1.3.3>C语言的约定
1.C语言中的约定
(1)标识符:@1C语言的标识符有字母、数字和下划线组成,其中第一个字符必须是字母或下划线。@2标识符中英文字母的大小写是有区别的,@3标识符的命名最好做到“见名知义”,@4标识符的有效长度为1到125个字符。
(2)关键字:C语言中共有32个关键字,
类别 | 关键字 |
数据类型关键字(12) | char,double,enum,fioat,int,long,short,signed,struct,union,unsigned,void |
控制语句关键字(12) | break,continue,case,do,default,else,for,goto,if,return,switch,while |
存储类型关键字(4) | auto,extern,register,static |
其他关键字(4) | const,sizeof,typedef,volatile |
注意:C语言的关键字都用小写字母书写,不能用大写字母书写。
(3)用户自定义标识符:变量名、数据类型名、函数名和符号常量名。
(4)预定义标识符:(例如scanf、printf等)统称为预定义标识符。
(5)分隔符:C语言中的分隔符有逗号和空格两种。逗号主要用于类型说明和函数参数表中,分隔各个变量。空格多用于各单词之间作间隔符。在关键字、标识符之间必须要有一个以上的空格分隔,语言结束符“;”组成。
2.C语言的语法成分
(1)常量
(2)变量
(3)运算符:C语言的运算符相当丰富,有34种之多。
算术运算符:+(加)、—(减)、*(乘)、/(除)、%(求余);
关系运算符:==(等于)
(4)表达式:算术运算符优于关系运算符,
(5)语句:以分号结尾。
(6)函数定义与调用:函数是完成特定功能的小模块,C程序中包含若干个函数,复杂的任物通过调用这些函数来完成。花括号{}中的部分称为函数体,函数体由数据表达与流程控制语句组成。
(7)输入与输出:scanf()和printf()函数
1.4C程序的编辑、编译、链接和运行
<1.4.1>程序设计的任务
(1)分析问题
(2)设计算法:集中精力于算法的总体规划,然后逐层降低问题的抽象性,逐步充实细节,这是一个自上而下、逐步细化的过程。
(3)程序设计:采用某种计算机语言对问题所设计的算法进行实现的过程。
(4)运行并调试程序
(5)分析程序运行结果:只有得到正确结果的程序才是正确的程序。
(6)编写程序文档
<1.4.2>运行C程序的步骤与方法
(1)编辑源程序
(2)编译
(3)链接
(4)运行