C语言程序设计
2021-12-23 09:36:16 0 举报
AI智能生成
C语言程序设计第二章详细
作者其他创作
大纲/内容
程序设计与C语言
程序与程序设计语言
程序设计语言的发展
机器语言
运算采用二进制
难学、难写、难记、难修改
运行效率高
汇编语言
采用助记符代替机器指令的二进制串
ADD表示加法、SUB表示减法、MOV表示传送数据
十分依赖于机器硬件,可移植性不好
运行效率仅此于机器语言
高级语言
非结构化的语言
结构化的语言:编程风格比较随意,没有编程规范,可以遵循流程,可以随意跳转;
结构化的语言
程序总是由上而下顺序执行各个基本结构,结构清晰,易于阅读和维护,比如QBASIC跟Pascal和C语言;
面向对象的语言
程序的执行是流水式的,程序员不能随意改变程序的执行流程,比如c++,c#和Java。
程序设计语言的功能
数据表达
流程控制
共同特点:只有单一的入口和单一的出口;结构中的每个部分都有被执行的可能;结构内不应出现永不终止的死循环。
顺序控制结构
分支控制结构
循环控制结构
程序的算法表示
什么是算法
算法的特征
确定性
有穷性
可行性
有零个或多个输入
有一个或多个输入
算法的概述
C语言程序设计的特点
C语言的发展历史
C语言的特点
C语言语句简洁紧凑,使用方便灵活
运算符丰富,表达能力强
C语言程序可移植性好
生成的目标代码质量高,运行效率高
语言处理能力强
C语言是一种结构化语言
C语言的约定
C语言的约定
标识符
用来标识数据类型、变量、函数、语句的符号称为标识符,不同的程序设计语言都有关于标识符的定义规范
关键字
关键字是C语言规定的、赋予特定含义和专门用途的标识符;注意:C语言的关键字都用小写字母书写,不能用大写字母书写
用户自定义标识符
用户自定义标识符包括程序中定义的变量名、数据类型名、函数名和符号常量名;一般来说,通常使用有意义的英文单词作为用户自定义标识符,这样可以增加程序的可读性
预定义标识符
C语言中提供了大量的头文件和库函数,这些头文件和库函数中定义的一些标识符统称为预定义标识符
分隔符
C语言中的分隔符有逗号和空格两种;编译程序在将源程序翻译成目标程序时,首先要识别出一个一个的语法单位。当编译程序无法识别出语法单位时,说明程序中出现了语法错误
C语言的语法成分
常量
常量是有数据类型的,如整型常量,实型常量,字符型常量,字符串常量等
变量
每个变量都有数据类型,在定义变量时要说明变量的数据类型。编译系统会根据变量的类型,为其分配存储空间。不同类型的变量在内存中占用的存储空间有所不同
运算符
运算符用于对各种类型的数据对象进行运算。参与运算时只要求有一个数据对象的称为单目运算符,参与运算时要求有两个数据对象的称为双目运算符,参与运算时要求有三个数据类型的运算符称为三目运算符
表达式
由运算符将常量、变量、函数组合而成的有意义的式子称为表达式。表达式中可以包含有多种数据类型的运算符,运算符有优先级
语句
在C语言中,语句是程序最基本的执行单位,以分号结尾
函数定义与调用
函数是完成特定功能的小模板,是C语言中唯一的种子程序,常常在一个C程序中包含若干个函数,复杂的任务通过调用这些函数来完成
输入和输出
scanf()和printf()
C程序的编辑、编译、链接、运行
程序设计的任务
分析问题
在着手解决实际问题之前,应该通过分析充分理解问题,明确原始数据、解题要求、需要输出的数据及形式等
设计算法
程序设计
运行并调试程序
分析程序运行结果
编写程序文档
运行C程序的步骤与方法
编译源程序
编译
链接
运行
数据类型、运算符和表达式
C语言的数据类型
基本类型还可以分解为其他类型,主要为整型、字符型和浮点型
C语言中构造类型包括:数组类型、结构体类型、共用体类型和枚举型
指针是C语言构造类型包括:数组类型、结构体类型、共用体类型和枚举型类型
C语言的常量
直接常量
整型类型
整型常量即整数,包括正整数、负整数和零。C语言中,整型常量可以用十进制、八进制和十六进制表示
注意:在一个整型常量后面加一个字母u或U,认为是unsigned int型,在一个整型常量后面加一个字母l或L,认为是long int型
实型类型
小数形式
由整数部分、小数点和小数部分组成,当整数部分或者小数部分为0时,可以省略不写,但是小数点不可省略。
指数形式
注意:以小数形式表示实数时,必须有小数点,并且小数点的前、后至少一边要有数字。以指数形式表示实数时,字母E的前后必须有数字,并且指数部分只能是整数。
字符型常量
字符型类型
字符常量指单个字符,用一对单引号括起来,不能用双引号或其他括号
字符常量只能用单引号括起来,不能用双引号或其他括号
字符常量只能是单个字符,不能是字符串
字符可以是ASCII字符几种的任意字符。按ASCII码的大小,不同的字符之间存在着次序,以字符的ASCII码值按升序连续排列。使用字符常量时,每个字符在内存中占用一个字节,用于存储它的ASCII码值。
转义字符
说明:转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符。转义字符的使用方法与一般字符常量的用法相同
字符串常量
字符串常量是一对双引号“”括起来的零个或多个字符序列
字符串中可以使用空格字符、转义字符和其他字符,也可以使用汉字等文字符号。字符串中还可以使用空字符,即不包含任何字符
符号常量
增加程序的可读性
提高程序的可维护性
简化程序代码
方便数组的定义
C语言的变量
变量的定义与使用
变量的定义
类型说明符必须是C语言中的有效数据类型,用于指定变量的类型,该类型决定了编译时分配给变量的内存单元的分配
变量的初始化
对一个变量赋初值之后,该值呗存储在分配该该变量的内存空间中
变量的使用
使用变量时,应该先赋值,后引用。在程序中可以通过初始化、赋值表达式或者输入函数scanf()来对变量赋值
整型变量
各种无符号整数所占的字节数与相应的有符号整数相同。但由于省去了符号位,故不能表示负数
有符号整数以二进制补码形式存储。最左边第一位表示符号,该位为0,表示正数,该位为1,表示负数
实型变量
C语言中实型变量分单精度(float型)和双精度(double型)两类。
字符型常量
字符型变量的值是字符常量,即用单引号引起来的单个字符。字符型常量的类型说明符是char,其类型说明的格式和命名规则与整型变量相同
运算符和表达式
赋值运算符和赋值表达式
简单赋值运算符
最简单的赋值运算符就是“=”,它的作用是将一个数值赋值给一个变量
复合赋值运算符
赋值表达式
在C语言中,赋值语句属于表达式语句。赋值表达式是由赋值运算符将一个变量和一个表达式连接起来的式子所组成。它的一般形式为:变量=表达式。由于赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能,需要注意的:赋值运算符的左侧必须是一个变量
区分赋值表达式和赋值语句的方法是:赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号,在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句
注意:如果“=”左右两边类型不同,系统或按照赋值类型转换的原则将右边的类型转换成左边的类型
赋值表达式的右边也可以是一个赋值表达式。注意:不能写成“(a=b)=c=6”或“a=(b=c)=6”的形式,这是因为圆括号内部是一个表达式而不是变量,不能放在赋值运算符的左边
算数运算符和算数表达式
基本的算数运算符
+加法运算符,为双目运算符,其功能是进行求和运算,如3+4的值为7
-作为单目运算符使用时,是取负运算,如-3;作为双目运算符使用时,是进行求差运算,如3-4的值为-1。
*乘法运算符,为双目运算符,功能是进行求乘积运算,如3*4的值是12
-除法运算符,为双目运算符,功能是进行求商,如a/b。在计算a/b是,如果a和b都是整型,则其商也为整型,小数部分被舍去,如3/4的结果为0,4/3的结果为1
%求余运算符,为双目运算符,功能是进行求余数的运算,如a%b,其结果为a除以b后的余数。求余运算要求参与运算的矿工运算对象都必须是整型。如4%3的结果是1
自增、自减运算符
++自增运算符,为单目运算符,其功能是使变量的值自加1,自增运算符有两种使用形式
前缀方式:用于变量前面,如“int a=++x;"它是“先计算,后使用”即先将x的值自加1,然后将x的值赋给变量a
后缀方式:用于变量后面,如“int a=x++;"它是“先使用,后计算”,即先将x 的值赋给变量a,然后再讲x的值自加1
--自减运算符,为单目运算符,功能是使变量读值自减1,使用方法和自增运算符相似
注意:自增和自减运算符的操作对象只能是一个简单变量,不能是常量或表达式,如6--、(a+b)++都是错误的
算数运算符的优先级和结合性
C语言规定了运算符的优先级和结合性,单目运算符是右结合的,双目运算符是左结合的
算数表达式
注意:
表达式中乘号不能省略,且表达式中的所有字符均应写在同一行上。
在表达式中还可以使用多层圆括号(不能使用中括号【】和花括号{}),但是要注意括号的配对
逗号运算符和逗号表达式
C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把多个表达式可连接起来组成一个表达式,称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,…,表达式n
逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值
逗号运算符是双目运算符,其优先级最低,是左结合的
并非所有出现呢逗号的地方都为逗号表达式,如在变量说明语句中,以及函数参数表中逗号知识用作个变量之间的分隔符
求字节数运算符
运算符sizeof用于计算数据类型所占的字节数,它是一个单目运算符,优先级高于双目运算符,其一般格式如下:sizeof(表达式)或sizeof表达式 sizeof(数据类型名)
数据类型转换
自动类型转换
强制类型转换
顺序结构程序设计
C语言的语句
数据的输入和输出
数学库函数
分支结构程序设计
关系运算符、逻辑运算符、条件运算符
使用if-else实现分支结构
使用switch语句实现分支结构
分支结构程序设计示例
循环结构程序设计
使用for语句实现循环结构
使用switch语句实现循环结构
使用do-while语句实现循环结构
改变循环结构的跳转语句
循环嵌套
典型算法示例
循环程序设计示例
0 条评论
下一页