C语言程序入门:源程序、主函数与三种基本结构详解

会员分享了《计算机二级复习资料完整版.doc》,并且可以在线阅读。若想获取更多相关内容,可在温州文客信息科技有限公司上进行搜索。该资料共 10 页。

C语言程序入门:源程序、主函数与三种基本结构详解

C 程序是用 C 语言编写的,这样的程序被称为 C 语言源程序,其源程序文件的后缀是“.c”。源程序经过编译后会生成后缀为“.obj”的目标文件,接着把目标文件与各种库函数连接起来,就能生成“.exe”可执行文件。C 语言有三种基本结构,分别是顺序结构、选择结构、循环结构。main 函数被称作主函数,它是 C 程序的入口。main 后面带有一对小括号以及一对花括号,由花括号所括起来的那部分被称作 main 函数的函数体。一个 C 程序会从 main 函数开始进行执行,直至 main 函数体执行完毕才结束,不管 main 函数在整个程序中的位置处于何处。每一个程序都只有一个 main 函数,而其他的函数都是用来为 main 函数服务的。

计算机在电脑中保存数据采用二进制形式。二进制由 0 或 1 构成,其中一个二进制位称为位(bit)。八个位构成一个字节(Byte),即 1 个 Byte 等于 8 个 bit。二进制、八进制、十六进制转化为十进制使用乘法,而十进制转化为二进制、八进制、十六进制则使用除法。书写格式方面,每条语句的后面必须有一个分号,分号是语句的一部分。一行内可以写多条语句,一个语句也可以写在多行上。【考点 6】标识符是标识名字的有效字

其一,关键字,它们在程序中具有固定含义,不可另作他用,如 int、for、switch 等。【考点 7】常量与变量方面,常量指的是在程序运行期间,其值无法发生改变的量。常量可分为整型常量、实型常量、字符常量、字符串常量、符号常量这 5 种。在程序运

在程序运行过程中,其值能够发生改变的量被称作变量。在 C 语言里,不存在字符串变量这一说法。用于存放字符串的是字符数组。【考点 8】关于整型数据,整型常量存在十进制、八进制、十六进制这三种表示形式,而没有二进制形式。八进制整型常量需要添加前导数字 0,十六进制常量则要添加前导 0X,并且在八进制常量中不会出现 8 这个数字。整型变量分为基本整型(int)、短整型(short)、长整型(long)以及无符号整型(unsigned)。基本整型占 4 个字节。其它类型的整型占用字节数以及取值范围在教材第 9 页可查看。【考点 9】实型数据有两种表现形式,分别是小数形式和指数形式。要掌握判定指数形式是否合法。口诀内容为:在 E 之前和 E 之后必定有数字,并且 E 之后必须是整数。实型变量可以分为单精度型(

单精度型(float)以及双精度型(double),其中单精度型占据四个字节。【考点 10】在算术运算方面,算术运算符共有 + 、* 、/ 、%这五个。求余运算规定运算对象必须为整型,当除法运算符两边的运算对象都为整型时,运算结果也为整型,也就是会舍弃小数部分。【考点 11】强制类型转换的作用是将一个运算对象转换成指定的类型,其格式是(类型名)表达式,要特别注意小括号的位置。【考点 12】赋值操作使用的是“=”运算符,它和关系等于“==”是不同的。赋值表达式的格式为:变量名 = 表达式,并且赋值运算符的左边必须是变量,赋值运算就是把右边表达式的值赋给左边的变量。复合赋值运算符是由算术运算符或位运算符与赋值运算符组合而成的运算符。要掌握复合赋值表达式,需将其转化为赋值。

表达式的方法。例如,n 加上 100 可以写成 n += 100,这其实就是 n = n + 100。【考点 13】自加自减运算自加运算符“+”以及自减运算符“-”属于单目运算符,其运算对象必须是变量。自增自减运算包含前缀运算和后缀运算。这两种运算所对应的表达式的值存在区别。例如,j = i + ; 这等价于 j = i; 然后 i = i + 1; 而 j = +i; 则等价于 i = i + 1; 接着 j = i; 。口诀为:加加在前时先进行加操作然后再使用,加加在后时先使用然后再进行加操作。【考点 14】逗号运算逗号运算符的运算优先级是最低的,它可以将多个表达式组合成一个新的表达式。运算对象与运算符组合能构成表达式,表达式加上分号就构成了表达式语句。运算对象可以是表达式,也可以是常量或者变量。例如,赋值运算符与运算对象组合能构成赋值表达式。

式中,赋值表达式加上分号便能构成赋值语句。【考点 2】运算符按参与运算的对象数目来划分,可分为单目运算符、双目运算符和三目运算符。初等运算符的优先级别是最高的,接着依次是单目运算符、算术运算符、关系运算符、逻辑运算符(除逻辑非!)、条件运算符、赋值运算符、逗号运算符。位运算符的优先级处于算术运算符与逻辑运算符之间。其结合顺序大多是自左向右,不过有三个是自右向左的,分别是单目运算符、条件运算符和赋值运算符。【考点 3】printf 函数的格式是:printf(输出控制,输出列表) 。输出控制是用一对双引号括起来的,其中包含格式说明和原样信息。输出列表里包含若干输出项。【考点 4】printf 函数中格式说明%

d 对应整型;%f 对应单精度实型;%c 对应字符型;%o 对应八进制无符号整型;%x 对应无符号十六进制整型;%u 对应无符号整型;%e 对应指数型;%s 对应字符串型。可在%与格式字符之间加一个数,以此来控制数据所占的宽度和小数位数。【考点 1】在 C 语言中,用非 0 来表示逻辑真,用 0 来表示逻辑假。关系运算符一共有 6 个,分别是等号(=)等。按位与可以被理解为基类型是(int *)类型。指针变量在使用前必须进行初始化。要给指针变量赋予一个具体的地址,不然在引用时会产生副作用。如果指针变量不指向任何数据,就给它赋“空值”。

9、NULL。【考点 4】指针变量的引用是合法的。int a3 进行初始化,值为 2,3,4,这种初始化是合法的。而 int a2 进行初始化,值为 2,3,4,这种初始化是非法的。数组初始化时,元素值若未明确指定则默认为 0,若没有进行初始化则元素值为随机。例如在 int a5 = 0,1,2 中,元素 a4 的值为 0;而在 int a5 中,元素 a4 的值为一个不确定的随机数。【考点 4】二维数组,数组 a23 = 1,2,3,4,5,6 ,其中包含 6 个元素,有 2 行 3 列。第一行为 a0行,第 2 行为 a1行,a0、a1叫行首

地址是地址常量。*(a0 + 1)表示从第一行第一个元素往后跳一列,其对应的元素 a01 的值为 2。*(a0 + 3)表示从第一行第一个元素往后跳三个,其对应的元素 a10 的值为 4。数组名是数组的首地址。数组名不可以单独进行引用,也无法通过一个数组名来代表所有的元素。因为数组名属于地址常量,不能给数组名进行赋值操作,所以 a+这种情况是错误的。然而,数组名能够当作地址,与一个整数相加后可以得到一个新的地址。【考点 7】元素形式的转换

助记:“脱衣服法则”对于 a2 ,可变为*(a + 2);对于 a23 ,先变为*(a + 2)3 ,再可变为*(*(a + 2) + 3) 。第九章 字符串【考点 1】字符串常量是由双引号括起来的一串字符,例如”ABC”。系统在存储字符串时,会自动在其尾部加上一个空值 0。空值需要占用一个字节。这意味着字符串“ABC”需要占用四个字节。【考点 2】字符数组 C 语言不存在字符串变量,只能通过字符数组来存储字符串。数组的大小需要比将要实际存放的最长字符串多一个元素,以便存放 0。字符串赋值可以通过以下两种形式来进行:一种是 char str = "Hello!"; ;另一种是 char *p; p = "Hello!"; 。然而,不能使用 char 这种形式来进行赋值。

str 是一个地址常量,不能进行赋值操作。因为 str 被赋值为 "Hello",即 str10 被赋值为 "Hello",所以不能对其进行赋值操作。字符串的输入可通过 scanf 函数,如 scanf("%s",str);输出可通过 printf 函数。此外,还可用 gets 和 puts 这两个专门处理字符串的函数。同时,也能够对字符数组逐个元素进行赋值,并且一定要在最后赋一个 0。使用 gets 函数能够接收空格,而 puts 函数会在最后输出一个换行。【考点 5】需要掌握的四个字符串函数为:字符串拷贝函数 strcpy(),用于求字符串长度的函数 strlen(),进行字符串链接的函数 strcat(),以及进行字符串比较的函数 strcmp()。在预处理部分使用这些函数。

包含头文件“string.h”。字符串的长度需小于字符数组的长度,比如:有 char str10 = “Hello”; 此时 sizeof(str) 的值是 10(数组长度),而 strlen(str) 的值是 5(字符串长度)。这些函数在考试中是经常会用到的,大家务必熟练运用这几个函数。可以使用 typedef 将结构体类型替换为一个只有几个字母的简短标识符。【考点 2】结构体变量的定义结构体变量是

用说明的结构体类型定义的一个变量,这和结构体类型本身不是一回事。一个结构体变量所占据的字节数是其所有成员所占字节数的总和。例如,对于“struct stu { char name[10]; int age; } a, b;”,这表明定义了两个结构体变量 a 和 b,每个变量占据 14 个字节。a,b 与 int i,j 中的变量 i 和 j 处于同样的地位。【考点 3】结构体成员的引用:引用成员可以通过以下 3 种方式来实现,其一为结构体变量名.成员名;其二为指针变量名-成员名;其三为(*指针变量名).成员名。其中,点(.)被称作成员运算符,箭头(-)则被称作结构指向运算符。链表是由一个个结点组成的,一个结点即为一个结构体变量,每个结点能够分为数据部分和指针部分,指针部分用于指向下一个结点,通过这样的方式将各个结点连接起来形成链表结构。

域包含数据域和指针域两个部分,数据域用于存放要存储的数据,指针域则用于指向下一个结点。链表在考试中属于难点,在 C 语言以及公共基础部分都会被考到,需要领悟并掌握。【考点 5】共用体,共用体的使用格式和结构体相似,其定义的关键字为 union,共用体所占字节数是所有成员中字节数最大的那个。【考点 2】:文本文件中存放的是字符的 ASCII 码,而二进制文件存放的是数据的二进制形式。存储 1、0、0 三个字符的 ASCII 码即为“100”;“100”可通过存储 1、0、0 这三个字符的 ASCII 码来表示;“100”意味着存储 1、0、0 这三个字符的 ASCII 码。

如果是二进制形式,就将 100 转化为二进制(01100100)。【考点 3】文件的打开形式如下:有一个 FILE 类型的指针 fp,通过 fp = fopen("c:lab.c", "rb")来打开文件。fopen 函数由两部分组成,一部分是文件名,另一部分是文件的使用方式。打开方式在教材第 127 页有详细说明,其中 r 表示读,w 表示写,a 表示添加,b 表示二进制位的。文件函数中,有判断文件结束的 feof 函数,有移动文件指针位置的 fseek 函数,有获得文件位置的 ftell 函数,有将文件位置移到开头的 rewind 函数,还有进行文件字符输入输出的 fgetc 函数和 fputc 函数。

函数包括文件输入输出的 fscanf 函数和 fprintf 函数,还有文件字符串输入输出的 fgets 函数和 fputs 函数,以及读写二进制文件的 fread 函数和 fwrite 函数。以上函数需知晓格式的使用,明确其是用于二进制文件还是文本文件。要对教材文件的这一章进行仔细复习,以免在考试时将这些文件函数混淆。第十二章深入讨论【考点 1】编译预处理,凡以#开头的这一行,皆为编译预处理命令行,编译预处理无需加分号,也不占运行时间。宏替换只是简单的文本替换。例如,#define f(x) (x)*(x)和#define f(x) x*x 这两种定义,在替换 f(2+2)时会有差别。前者会展开为(2+2)*(2+2),而后者则是 2+2。

2+2。若源文件 f2.c 中包含有“#include”f1.c“,这意味着将源文件 f1.c 原封不动地包含进 f2.c 里,让 f1.c 与 f2.c 融合在一起,从而能够作为一个 C 程序进行编译。因此,一个 C 程序必定有主函数,然而一个 C 源文件却不一定有主函数。标识符作用域方面,局部变量是在函数内部或者复合语句内部进行定义的变量,其作用域仅限于定义它的那个函数之内。在局部变量中,存在三种类型,分别是自动类型(auto)、寄存器类型(register)以及静态类型(static)。自动变量会随着函数的使用或不使用而创建或消失;寄存器变量被分配在 CPU 中,并且没有内存地址;静态变量会占用固定的存储单元,在程序执行过程中不会被释放,要到程序运行结束才会释放;全局变量是在函数外部定义的变量,其作用域是整个程序。

从定义它的位置开始,一直到整个源文件结束,其生存期是整个程序运行期间。全局变量都属于静态变量。【考点 3】动态存储分配,通过 malloc(size)来创建连续 size 个字节的存储区,它返回的是 void * 型的值。malloc 函数常用于动态地创建链表结点,例如会有这样的操作:定义一个指针 int *p;然后通过 p=(int *)malloc(sizeof(int)) 来分配内存空间。calloc(n,size)这个函数可以创建 n 个同一类型的存储空间,从某种程度上可以将其理解为是 n 个 malloc 的操作。而 free(p) 则是用于释放动态分配的存储单元。结构化设计【考点 1】包含两种程序设计方法,分别是结构化程序和面向对象程序。需要注意的是,要以清晰为首要目标,将效率置于其次。同时要避免因使用临时变量而导致可读性下降。程序化设计具有基本结构,其中之一是顺序结构。

面向对象程序方面,其设计以对象为核心,强调对象具有“封装性”“继承性”“抽象性”“多态性”“分类性”“标志唯一性”以及“独立模块性好”这些特点。【考点 2】软件的定义如下:其一,是机器可执行的程序和数据;其二,是机器不可执行的与软件开发相关的文档。软件生产方式较为落后,而计算机软件需求却在迅速增长,二者之间存在着软件危机。

矛盾存在于成本、质量和生产率之间。软件工程有三要素,分别是方法,它属于技术手段;工具,用于支持软件的生成;过程,对各个环节进行控制管理。【考点 3】软件生命周期包含软件计划时期(需求分析)、软件开发时期以及软件维护时期,也就是从软件被提出到停止使用并退役的整个过程。需求分析的目的在于创建所需的数据模型、功能模型和控制模型,以确定软件系统的功能。需求分析包含多个阶段,包括需求获取、需求分析、编写需求规格书以及需求评审。需求分析的方法主要有两种,其一为结构化分析,其二为面向对象分析。其中,【考点 4】需求阶段所采用的是结构化分析。结构化分析法是一种面向数据流的方法,它自顶向下,逐步求精,用于进行需求分析。- 判定。

22、表。符号的表达含义包括数据加工(转换)以及数据流。*表示数据存储(数据源)。源和潭作为系统和环境的接口,属于系统之外的实体。【考点 5】模块独立性和耦合性,耦合性是对模块间互相连接紧密程度的度量(低耦合),内聚性是对一个模块内部各元素间彼此结合紧密程度的度量(高内聚)。【考点 6】软件需求规格说明书(SRS)的作用有:其一,便于用户与开发人员进行理解与交流;其二,能够反应用户问题的结构;其三,可作为软件开发的基础和依据;其四,可作为验收和测试的依据。【考点 7】结构化设计方法:其一,软件设计的基本概念是确定系统的物理模型。概要设计包含软件设计的系统结构、数据结构以及数据库设计,需要编写概要设计文档,并且要对概要设计文档进行审评,概要设计工作包括这些方面。

结构图(SC)图中,箭头或直线能够代表模块间的调用关系。 - 白盒测试:进行跟综测试,对逻辑路径进行跟踪。常用方法包括逻辑覆盖,并且只关注结果,还有基本路径测试等黑盒测试方法。常用方法还有等价类划分法、边界值划分法、错误推测法以及因果图。软件测试有 4 个步骤,分别是单。

元测试、集成测试、验收测试(确认测试)和系统测试属于单元测试。单元测试是以最小单位进行的测试。集成测试主要是重点测试模块间的接口是否正常。验收测试是在用户参与的情况下进行的确认测试。系统测试是在实际运行环境下进行的。软件运行与维护在软件生命周期中时间最长,花费的精力和费用也最多。【考点 9】程序调试的任务是诊断并改正程序中的错误。数据库应用系统是由数据库系统、应用软件以及应用界面构成的。数据库系统的发展:人工管

理文件系统和数据库系统。在这两者当中,数据独立性最高的是数据库系统。数据库具有以下基本特点:其一,高集成性;其二,高共享且低冗余性;其三,高独立性;其四,数据统一管理控制。数据库有三级模式,分别是模式、外模式、内模式。模式也被称作概念模式或逻辑模式,它是对数据库中全局数据逻辑结构的描述,且是唯一的。外模式也被称作子模式或者用户模式,它是呈现给用户的视图,并且有多个。内模式又被称为物理模式,它是对数据内部物理结构和存储方式的表示,而且是唯一的。数据模型包含三部分,分别是数据结构、数据操作以及完整性约束。数据模型可以进行分类,有概念模型、逻辑模型和物理模型。【考点 2】E-R 模型中,实体用矩形表示,属性用椭圆表示。码是指唯一标识实体的属性集;域则是属性的取值范围,即该属性的域。

联系(菱形)涉及【考点 3】。层次模型呈树状结构,是最早出现的数据模型。网状模型为网状结构,可解决非层次关系。关系模式用二维表来表示,一个关系对应一张二维表。也就是说,一个关系就是一个二维表,然而一个二维表未必是一个关系。在一个二维表(一个具体关系)中,水平方向的行被称为元组。二维表中垂直方向的列被称作属性,每一列都有其对应的属性名;属性的取值范围也就是不同元组对同一属性的取值所被限定的范围。E-R 关系中,属性是其中的一部分,还有实体集和关系等。【考点 4】在二维表中,能够唯一标识元组的最小属性值被称为该表的键或码。二维表中可能存在多个这样的键,它们被称为表的候选码或候选键。 从二维表的所有侯

投影是从列的角度进行的运算,它相当于对关系进行垂直分解。选择是从行的角度来进行的运算,也就是在水平方向上抽取记录。选择运算得到的结果能够形成新的关系,这种新关系的关系模式保持不变,不过其中的元组是原关系的一个子集。迪卡尔积方面,存在 n 元关系 R 和 m 元关系 S,它们分别具有 p 和 q 个元组。

若有 q 个元组,那么 R 与 S 的笛卡儿积被记为 RS。RS 是一个 m + n 元关系,其元组个数为 pq。(6)以上所有不符合上述情况的就是除运算。【考点 6】数据库设计 1、需求分析。概念设计、逻辑设计、物理设计:队列计算万能公式环队。其目的是为了能够充分利用存储空间,将数组的前端与后端连接起来,从而形成一个环。初始时, rear 的值为 0,front 的值也为 0;在进行进队或出队操作时,指针都按逆时针方向进 1;判断队空或队满的情况:当队空或者队满时,都有 q-front 等于 q-rear;而区分队满和队空的条件是:队满时,(q-rear+1)%MaxSize 等于 q-front;队空时,q-front 等于 q-rear。在某队列中,关键运算是计算元素个数,其计算方式为(rear-front+MaxSize)%MaxSize。经过入队出队操作后:1. 若 rear-front=0,那么队列中要么有 0 个元素,要么是满元素;2. 若 rear-front≠0,则队列中有 rear-front 个元素。若为 rear-front0 这种情况,那么就会有 rear-front 加上队列长度这么多个元素。包括实体、元组、联系以及关系。

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读