admin 管理员组

文章数量: 1086019


2025年1月1日发(作者:python之父谈go)

第1章 概述

程序设计包含四个步骤:

1. 分析问题,建立数学模型

2. 确定数据结构和算法

3. 编写程序

4. 调试运行程序

算法:解决某一问题的方法和步骤。

一个完整的算法五个特征:有穷性,确定性,有效性,有0个或多个输

入,有一个或多个输出

常见的描述算法的工具有:自然语言,流程图,N-S图(盒图),PAD

图,伪代码。

结构化程序设计方法包括一下几个特征:

1. 整个程序采用模块化结构,用自顶而下﹑逐步求精的方式进行设

计。

2. 设计程序时只采用3种基本的程序控制结构来编制程序。这三种基

本程序控制结构分别为顺序结构﹑选择结构﹑循环结果。

顺序结构没有分支;

选择结构又称为分支结构,包含一个条件判断;

循环结构是一种根据某种条件对某一语句块反复执行若干次的结构。

3种基本程序控制结构必须具有一下特点:每种基本结构必须只有一个

入口和一个出口;每种基本结构都有一条从入口到出口的路径通过;结

构内不允许出现死循环。

C程序中语序出现的所有基本字符的组合称为C语言的字符集。

字符集有字母,数字和特殊符号。

C语言程序中出现的任何对象一般都要有一个名字,这些对象的名字就

是C语言的标识符。

标识符有三类,保留字,预定义标识符和用户定义标识符。

第二章 数据类型﹑运算符﹑表达式及数据的和输入/输出

数据类型可分为:基本数据类型﹑构造数据类型﹑指针类型﹑空类型等

四类。

构造类型有一下几种:数组类型﹑结构体类型﹑共用体类型。

指针是一种特殊的,同时又是具有重要作用的数据类型。其值用来表示

某个量在内存储器中的地址。

空类型,调用后并不需要向调用者返回函数值,其类型说明符为Void。

C语言规定,常量是可以不经定义而直接引用的,但变量则必须先定义

后使用。

定义符号常量的格式为:#define 标识符 常量

定义变量的语法格式为:类型标识符 变量名表列

类型标识符是C语言中的数据类型,如整型类型标识符int,字符型类型

标识符char。

实型常量又称实数或浮点数,有两种格式,小数形式和指数形式。

整型变量有6种类型:整型int,短整型short,长整型long,无符号整型

unsigned int,无符号短整型unsigned short和无符号长整型unsigned

long。

实型变量分为单精度和双精度两种类型。

定义字符型变量的关键字是char。

字符型变量用于存放字符常量,即一个字符型变量可存放一个字符常

量。

在C语言中,对数据的处理是由运算符和表达式来完成的。

要求:掌握各种运算符运算规则及其所需运算对象个数;掌握运算符的

优先级和结和性。

两个整数相除,结果是整型。如果不能整除,只取结果的整数部分,小

数部分全部舍去。

两个实数相除,所得的商也为实数。

模运算符“%”称为求余运算符,要求两个运算对象都为整型,其结果是

两整数相除后的余数。

算术表达式是由算术运算符﹑常量﹑变量﹑函数和圆括号组成。

用++﹑--运算(优先级为2级,结合性是自右向左)的变量只能是整型

﹑字符型和指针型变量。

复合赋值表达式的一般形式为:变量名 复合赋值运算符 表达式

复合赋值运算的作用等价于:变量名=变量名 运算符 表达式

对两个数据进行比较的运算符称为关系运算符。

C语言提供了三种逻辑运算符,逻辑与&&(结合方向自左向右,11优先

级),逻辑或II(结合方向自左向右,12优先级),逻辑非!(结合方

向自右向左,2优先级)

C语言提供了直接对二进制数进行按位操作的功能,称为位运算。

Sizeof运算符是单目运算符,优先级为2级,结合性是自右向左。其运

算的含义是:得到运算对象在计算机的内存中所占用的字节数。

Char数据占一个字节,int数据占四个字节。

(type)是强制类型转换运算符,优先级为2级,结合性是自右向左。

类型转换

1. 将浮点型数据赋给整型变量时,舍弃浮点数的小数部分。

2. 将整型数据赋给单双精度变量时,数值不变,但以浮点数形式储存

到变量中。

3. 将一个double型数据赋给float变量时,截取其前面7位有效数字,

存放到float变量的存储单元中。

4. 字符型数据赋给整型数据变量时,由于字符只占1个字节,而整型

变量占2个字节,因此将字符数据放到整型变量低8位,高8位补

零。

5. 将一个int,short,long型数据赋给一个char型变量,只将其低8

位原封不动地送到char型变量。

6. 将带符号的整型数据赋给long型变量时,要进行符号扩展,将整型

数的16位送到long型低16位中,如果int型数据为正值,则long型

变量的高16位补0;如果int型变量为负值,则long型变量的高16位

补1,以保持数值不改变。

反之,若将一个long型数据赋给一个int型变量,只将long型数据中低

16位原封不动地送到整型变量。

7. 将unsigned int型数据赋给long int,不存在符号扩展问题,只需

将高位补0即可。

8. 将非unsigned型数据赋值給长度相同的unsigned型变量,也是原样

赋值。

数据的输入与输出

C语言程序通常由3部分构成:输入原始数据部分,计算处理部分和输出

结果数据部分。

格式化输出函数printf函数,一般调用格式为:

printf(格式控制字符串,输出项表);

格式控制字符串包括:普通字符和格式说明符

格式说明符:%(附加格式说明符)格式字符

格式化输入函数scanf函数,一般调用格式为:

Scanf(“格式控制字符串”,输入项地址表);

字符数据的输入/输出

字符输出函数putchar函数,其功能是在显示器上输出单个字符

字符输入函数getchar函数,其功能是从键盘上输入一个字符

第三章 程序的控制结构

C语言的语句根据其在程序中所起的作用可分为说明语句和可执行语

句。

可执行语句可分为:表达式语句,函数调用语句,复合语句,空语句和

流程控制语句。

表达式语句由运算符,常量,变量组成。表达式后加分号就构成表达式

语句。

流程控制语句:1.条件判断语句,包括if语句,switch语句

2. 循环执行语句,包括do...while语句,while语句,for语句

3. 转向语句,包括break语句,goto语句,continue语句,return语

第四章 数组

在程序设计中,为了处理方便,对于大规模的数据,尤其是相互间有一

定联系的数据,可以把这些数据按一定规则组成构造类型数据。

C语言中的构造类型有:数组,结构体,共用体。

数组:就是相同类型若干数据的有序集合。

数组元素:数组中的每一个数据称之为数组元素,用一个统一的数组名

和不同的下标来唯一确定。数组元素可以作为单个变量使用,所以也称

为下标变量。

数组的下标:是数组元素在数组中位置的一个索引,数组下标从0开

始。

数组的维数:数组元素下标的个数。

只有一个下标的数组称为一维数组,用来存放一组同种类型的数据。

定义一维数组的一般格式为:

类型说明符 数组名 [整型常量表达式];

一维数组可以存放一个数列或者向量。

方括号[]中的常量表达式表示数组元素的个数,也称为数组的长度。

初始化赋值的一般形式为:

类型说明符 数组名 [整型常量表达式]={值,值,...,值};

例如:int a[10]={0,1,2,3,4,5,6,7,8,9};

气泡法规律:n个数排序,共n-1步排序处理,第i步进行n-i-1次比较和

至多n-i-1次交换。

气泡法排序思路如下。

S0(第0步):对n个数,从前到后,依次将相邻两个数进行比较(共比

较n-1次),将小数交换到前面,大数交换到后面,直到将最大的数移

到最后。此时最大的数在最后,固定下来。

S1(第1步):将前面n-1个数,从前到后,依次将相邻两个数进行比较

(共比较n-2次),将小数交换到前面,将大数交换到后面,直到将次

大的数移到倒数第二位。此时次大的数在倒数第二个位置,同样也固定

下来。

......

Si(第i步):将前面n-i个数,从前到后,将相邻两个数进行比较(共比

较n-i-1次),将小数交换到前面,将大数交换到后面,依次比较,直

到将第i+1大数移到倒数第i+1个位置。

......

Sn-2(第n-2步):将最后两个数,进行比较(比较1次),交换。此时,

所有的整数已经按照从小到大的顺序排列。

#define N 4

#include

Main()

{int a[10],i,j,t;

Printf(“please input d% numbers:n”,N);

for(i=o;i

Scanf(“%d”,&a[i]);

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=o;i

Printf(“3d%”,a[i]);

}运行结果如下:please input 4 numbers:

9 3 2 0

0 2 3 9

有两个下标的数组称为二维数组,利用二维数组可以存放排列为行列形

式的数据(矩阵,表格)。

定义二维数组的一般格式为:

类型说明符 数组名【整型常量表达式1】【整型常量表达式2】;

二维数组元素的表示形式为:

数组名【行下标表达式】【列下标表达式】

二维数组初始化的格式为:

类型说明符 数组名【整型常量表达式1】【整型常量表达式2】={初始

化数据};

存放字符型数据的数组称为字符数组,其中每个数组元素存放的值都是

单个字符。C语言中常用字符数组存放字符串,各数组元素依次存放字

符串中的各字符。

引用字符数组中的一个元素,可以得到一个字符。凡是可以使用字符数

据的地方均可以引用字符数组的元素。C语言没有提供存放字符串的变

量,通常用一个字符数组来存放一个字符串。

字符数组的输入/输出有3种方法。

1. 使用scanf函数和printf函数逐个字符输入/输出

2. 使用scanf函数和printf函数整体输入/输出字符数组中的字符串

当用scanf函数输入字符串时,字符串中不能含有空格﹑回车或跳格字

符,因为空格﹑回车或跳格是输入数据的结束标志。

第五章 函数

C语言是一种结构化程序设计语言,结构化程序设计的本质就是将一个

大的程序按功能分割成若干个较小的模块,每个模块都具有相对独立的

功能。

在c语言中,每个模块都是用函数来实现的。

函数是一段连续的程序代码的组合,用来完成特定的功能。

一个c语言程序往往是由多个函数组成,函数之间并列排放﹑相互调用

﹑协同工作,完成一个大的任务。

在c语言中,用函数实现各功能模块的定义,通过函数之间的调用实现c

程序的整体功能。

说明:1.一个c程序可以由一个或多个源程序文件组成。每个源程序文

件是一个编译单位,可以独立编译,并可以被不同的程序使用。

2. 每个源程序文件可以由一个或多个函数组成,函数是最小的功能单

位,一个函数可以被不同源文件的其他函数调用。

3. 一个c程序有且仅有一个主函数main,主函数可以放在任何一个源

文件中,无论主函数在程序的什么位置,程序的执行总是从main函

数开始,完成对其他函数的调用后再返回到main函数,最后由main

函数结束整个程序。

4. 所有函数都是平行的,相互独立。一个函数并不从属于另一个函

数,即函数不能嵌套定义。

从用户使用的角度来看,函数可分为标准库函数和用户自定义函数两

种。

从函数的形式上看,函数可分为无参函数和有参函数两种。

函数定义的一般形式如下:

类型标识符 函数名 (【形参表说明】)

声明语句

执行部分

C语言中,除了主函数main外,其他函数都必须通过函数的调用来执

行。

函数调用的一般形式为:函数名(【实际参数表】);

按照函数在主调函数中的作用,函数调用可以有一下3种形式。

1. 函数语句

2. 函数表达式

3. 函数实参

第六章 指针

一个变量在内存中所占用的存储单元的地址称为该变量的指针。即“指

针”仅表示对象在内存中的地址。

在计算机中,内存是一个连续编号或编址的空间。也就是说,每个存储

单元都有一个固定的编号,这个编号称为地址。

不同的数据类型占用不同字节的存储空间,而每个字节都有一个地址,

一般把每个数据的首字节地址称为该数据的地址。

如果一个变量专门用来存放其他变量的地址,那么就称这个变量为指针

变量。

指针变量定义的一般格式为:

【存储类型标识符】 数据类型标识符 *指针变量名;

数据类型标识符是指该指针变量所指向的变量的类型。

存储类型标识符是指指针变量本身的存储类型,可为

auto,static,register,extern,默认则为auto型。

定义一个指针变量必须用符号“*”,它表明其后的变量是指针变量。

指针变量初始化的一般形式为:

【存储类型标识符】数据类型标识符*指针变量名=初始地址值;

取地址运算符“&”,取内容运算符“*”

1.取地址运算符“&”是取操作对象的地址而不是其值。

2.取地址运算符“&”后面只能跟变量或数组元素,而不能跟表达式或

常量,也不能跟数组名。

取内容运算符“*”又称为间接存取运算符,功能是取指针变量所指向

的变量的内容。在运算符“*”之后跟的变量必须是指针变量。

指针变量的值是一个地址值,因此指针变量作参数就是在函数间传递变

量的地址,是一种地址复制的值传递方式。

第7章 结构图与共用体

结构体类型和数组类似,都属于构造数据类型。

数组是由相同数据类型的多个数据组成的,结构体是由不同数据类型的

多个数据组成的,其中每个数据称为结构体中的一个成员。

访问数组中的元素是通过数组的下标,访问结构体中的成员则通过成员

的名字。

对结构体的组成进行描述,称为结构体类型的定义。

结构体类型定义的一般格式为:

Struct 结构体类型名

数据类型 成员1;

数据类型 成员2;

......

数据类型 成员n;

};

结构体变量的定义方式有3种:

1. 先定义结构体类型,再定义结构体类型的变量

2. 在结构体类型定义的同时定义结构体类型的变量

3. 直接定义结构体类型的变量

第三种方法特点:不能在别处用来另行定义其他的这种结构体类型的变

量,要想定义就得将“struct{......}”这部分重新写。

结构体变量的初始化和引用

结构体变量的常规引用就是对结构体变量中的各成员进行引用

结构体变量各成员的引用格式为:

结构体变量名.成员名

“.”是c语言中的一种运算符,称为成员运算符,它对应的运算称为访

问成员运算。它的优先级为第一级,结合方向为从左向右。


本文标签: 变量 函数 数组 结构 数据