官方服务微信:dat818 购买与出租对接

C语言源程序编写与编译流程详解:从.c文件到.exe可执行文件的生成

2万

主题

2

回帖

8万

积分

管理员

积分
87795
发表于 2025-1-1 15:43:12 | 显示全部楼层 |阅读模式
    【测试点1】C程序

    用C语言编写的程序称为C语言源程序,源程序文件的后缀为“.c”。源程序编译后生成后缀为“.obj”的目标文件,然后该目标文件与各种库函数连接生成“.exe”可执行文件。 C语言具有三种基本结构:顺序结构、选择结构、循环结构。

    【测试点2】主要功能

    也称主函数,是C程序的入口。 main 后面是一对圆括号和一对花括号。大括号括起来的部分称为主函数的函数体。 AC程序从main函数开始执行,到执行完main函数体时结束,与main函数在整个程序中的位置无关。每个程序有且只有一个主函数,其他函数为主函数服务。

    【测试点3】存储形式

    计算机以二进制形式将数据存储在计算机中。由0或1组成的二进制系统称为位。八个位构成一个字节(Byte)。 1 字节 = 8 位。乘法用于将二进制、八进制和十六进制转换为十进制,除法用于将十进制转换为二进制、八进制和十六进制。数据存储的位置就是它的地址。

    【测试点4】注意事项

    它是程序的描述,可以出现在程序中任何适当的位置。注释从“/*”开始,以最新的“*/”结束。计算机不会执行中间的任何操作。注释不能嵌套。

    【测试点5】写作格式

    每个语句后面必须跟一个分号,它是语句的一部分。多条语句可以写在一行上,一条语句可以写在多行上。

    [测试点6] 标识符

    它是标识名称的有效字符序列,可以理解为C程序中的单词。

    标识符的命名规则是:

    (1) 标识符只能由字母、数字和下划线组成,字母区分大小写。

    (2) 标识符的第一个字符必须是字母或下划线,不能是数字。

    C语言标识符分为三类:

    (1)关键词。它们在程序中具有固定的含义,不能用于其他目的。如int、for等。

    (2) 预定义标识符。预定义的且具有特定含义的标识符。比如诸如此类。

    (3) 用户标识符。用户根据需要定义的标识符,符合命名规则,与关键字不同。

    【测试点7】常量和变量

    常量是指在程序运行时其值不能改变的量。常量有五种类型:整型常量、实数常量、字符常量、字符串常量和符号常量。在程序运行过程中其值可以改变的量称为变量。 C语言中没有字符串变量。使用字符数组来存储字符串。

    【测试点8】整数数据

    整数常量有十进制、八进制和十六进制三种表示形式,但没有二进制形式。八进制整数常量添加前导数字 0,十六进制常量添加前导数字 0X。 8 不出现在八进制常数中。

    整型变量可以分为基本整型(int)、短整型(short)、长整型(long)和无符号整型()。一个基本整数占用4个字节。其他类型整数占用的字节数和取值范围详见教材第9页。

    【测试点9】真实数据

    实际数据有两种表示形式:小数形式和指数形式。掌握决策指标表的合法性。

    公式:E之前和E之后必须有一个数字,并且E之后必须有一个整数。

    实型变量分为单精度型(float)和双精度型()。单精度类型占用四个字节。

    【测试点10】算术运算

    有五种算术运算符:+、-、*、/ 和 %。求余运算要求操作数只能是整数类型。当除法运算符两边的操作数为整数类型时,运算结果也为整数类型,即舍去小数部分。

    【测试点11】强制类型转换

    将操作数转换为指定类型,格式为(类型名)表达式,注意括号的位置。

    [测试点12]作业

    赋值运算符是“=”,它与关系等价的“==”不同。赋值表达式的格式为:变量名=表达式。赋值运算符的左侧必须是变量。赋值操作是将赋值运算符右侧表达式的值赋给左侧变量。

    复合赋值运算符是将算术运算符或按位运算符与赋值运算符组合在一起的运算符。掌握复合赋值表达式转换为赋值表达式的方法。例如,n+=100可以转换为n=n+100。

    【测试点13】自加自减运算

    自加运算符“++”和自减运算符“--”是一元运算符,操作数必须是变量。自增自减操作分为前缀操作和后缀操作。它们对应的表达式的值是不同的。例如,j=i++;等价于 j=i;i=i+1; j=++i;相当于i=i+1;j=i;。

    提示:使用前添加,使用后添加,添加后添加。

    【测试点14】逗号操作

    逗号运算符的操作优先级最低,可以将多个表达式组合成一个新的表达式。

    第2章 顺序结构

    【测试点1】运算符、表达式、语句

    操作数加上运算符形成表达式,表达式加上分号形成表达式语句。操作数可以是表达式、常量或变量。例如,赋值运算符加上操作数构成赋值表达式,赋值表达式加上分号可以构成赋值语句。

    【测试点2】算子的优先级和组合顺序

    运算符根据参与运算的对象数量可以分为一元运算符、二元运算符和三元运算符。基本运算符具有最高优先级,其次是一元运算符、算术运算符、关系运算符、逻辑运算符(逻辑非除外!)、条件运算符、赋值运算符和逗号运算符。位运算符的优先级介于算术运算符和逻辑运算符之间。组合顺序多为从左到右,从右到左有三种:一元运算符、条件运算符和赋值运算符。

    【测试点3】功能

    格式为:(输出控制、输出列表)。输出控件用双引号引起来,并包含格式化指令和原样信息。输出列表包含多个输出项。

    【测试点4】函数中的格式说明

    %d对应整数类型,%f对应单精度实数类型,%c对应字符类型,%o对应八进制无符号整数类型,%x对应无符号十六进制整数类型,%u对应无符号整数类型, %e对应指数类型,%s对应字符串类型。可以在%和格式字符之间添加数字来控制数据的宽度和小数位数。

    【测试点5】scanf函数

    输入项需要地址字符&。使用键盘输入多个数据时,请在数据之间使用分隔符。分隔符包括空格、制表符和回车符,但不包括逗号。

    【测试点】6 如何交换两个变量

    要使用中间变量,语句是:t=x; x=y; x=t;。

    第三章选择结构

    【测试点1】关系运算

    C语言用非零表示逻辑真,用0表示逻辑假。关系运算符共有 6 个,即 >、>=、),称为结构指向运算符。

    【测试点4】链表

    链表是由节点组成的,节点是一个结构体变量。每个节点可以分为两部分:数据域和指针域。数据域用于存储要存储的数据,指针域用于指向下一个节点。链表是考试中的一个难点。他们将在C语言和公共基础部分进行测试。你必须理解并掌握它们。

    【测试点5】普通本体

    联合体的使用格式与结构体类似。 union定义的关键字是union。 union占用的字节数是所有成员中字节数最大的那个。

    第十一章 文件

    【测试点1】文件类型指针

   


    文件指针是一个指向结构体类型的指针,定义格式为:FILE *指针变量名。使用文件时,需要先定义文件指针。

    【测试点2】文本文件和二进制文件

    文本格式存储的是字符的ASCII码,二进制格式存储的是数据的二进制格式。例如,如果“100”是文本形式,则存储“1”、“0”、“0”这三个字符的ASCII码(00)。如果是二进制形式,则将100转为二进制()。

    【测试点3】打开文件

    文件打开格式如下:FILE *fp; fp=fopen(“c:\\lab.c”,“rb”);. fopen函数的前一部分是文件名,后一部分是文件的使用方式。详细打开方法参见教材第127页,其中r代表读,w代表写,a代表加,b代表二进制位。

    【测试点4】文件功能

    判断文件结尾feof函数、移动文件指针位置fseek函数、获​​取文件位置ftell函数、移动文件位置到开头函数、文件字符输入输出fgetc函数和fputc函数、文件输入输出函数和函数,文件字符串输入输出 fgets 函数和 fputs 函数,读写二进制文件的函数和 fread 函数。

    上述函数要求您知道所使用的格式,并知道它是用于二进制文件还是文本文件。一定要仔细复习课本文件章节,考试时不要混淆这些文件功能。

    第12章 深入讨论

    【测试点1】编译预处理

    任何以#开头的行都是编译和预处理命令行。编译和预处理不包含分号,也不考虑运行时间。宏替换只是简单的文本替换。例如,替换 f(2+2) 时,# f(x) (x)*(x) 和 # f(x) x*x 之间存在差异。前者展开为(2+2)。 )*(2+2),后者就是2+2*2+2。

    如果源文件f2.c中存在#"f1.c",则可以理解为将源文件f1.c原样包含到f2.c中,从而将f1.c和f2.c合并在一起编译 C 程序。因此,C程序必须有main函数,但C源文件可能没有main函数。

    【测试点2】标识符范围

    局部变量是在函数或复合语句中定义的变量,其作用域在定义它的函数内。局部变量有三种类型:auto、 和 。

    自动变量随着函数使用与否而消失;寄存器变量在CPU中分配,没有内存地址;静态变量占用固定的存储单元,在程序执行过程中直到程序结束才被释放。

    全局变量是在函数外部定义的变量。它的作用范围从定义它的位置一直延伸到整个源文件的末尾,它的生存期是整个程序的运行时间。全局变量都是静态变量。

    【测试点3】动态存储分配

    (size)用于创建一个连续大小的字节存储区域,返回值类型为void *。函数常用于动态创建链表节点,如int *p; p=(int *)((int));。

    (n,size)创建n个相同类型的存储空间,可以理解为n。

    free(p) 释放动态分配的存储单元。

    结构化设计

    【测试点1】两种编程方法:结构化编程和面向对象编程

    注:清晰第一,效率第二。避免使用降低可读性的临时变量。

    程序设计的基本结构:序列、选择、循环。

    结构化编程原则:1.模块化2.自上而下3.逐步细化4.限制goto语句的使用

    结构化程序要求: 只允许一个入口和一个出口。

    面向对象编程:面向对象编程以对象为核心,强调对象的“封装”、“继承”、“抽象”、“多态”和“分类”。

    “标志的独特性”和“良好的独立模块化性”。

    面向对象方法的基本原理:运用人类在现实世界中常用的思维方法来认识、理解和描述客观事物。

    面向对象方法的基本概念: 1. 对象 2. 类和实例 3. 消息 4. 继承 5. 多态

    【测试点2】

    软件的定义:一是机器可执行的程序和数据,二是非机器可执行的与软件开发相关的文档。

    软件危机:落后的软件生产方式与快速增长的计算机软件需求之间的矛盾,以及成本、质量和生产率之间的矛盾。

    软件工程三要素:方法(技术手段)、工具(支撑软件的生成)、过程(各个环节的控制和管理)

    【测试点3】软件生命周期:软件规划期(需求分析)、软件开发期、软件维护期,是指软件从提出到使用结束、退役的整个过程。

    需求分析的目的:创建所需的数据模型、功能模型和控制模型(确定软件系统功能)

    需求分析的阶段:需求获取、需求分析、撰写需求说明书、需求评审。

    需求分析方法:1.结构化分析2.面向对象分析

    【测试点4】需求阶段:结构化分析

    结构化分析方法是一种面向数据流、自上而下、循序渐进的需求分析方法。

    结构化分析常用工具:数据流图(DFD)、数据字典(DD)、决策树和决策表。

    象征

    表达意思

    ○

    数据处理(转换)

    →

    数据流***

    数据存储(数据源)

    □

    源和池是系统和环境之间的接口,是系统之外的实体。

    【测试点5】模块独立性

    耦合:衡量模块互连紧密程度(低耦合)

    内聚性:它衡量模块内元素相互集成的紧密程度(高内聚性)

    【测试点6】软件需求规范(SRS)

    作用: 1、方便用户和开发人员之间的理解和沟通 2、反映用户问题的结构 3、作为软件开发的基础和依据 4、作为验收和测试的依据。

    【测试点7】结构化设计方法

    1、软件设计的基本概念:确定系统的物理模型。

    2、概要设计:软件设计的系统结构、数据结构和数据库设计,编写概要设计文件,审查概要设计文件。

    轮廓设计工具:结构图(SC)图,箭头或直线表示模块之间的调用关系。

    3、详细设计:图形化工具:1.PAD图2.程序流程图3.NS图

    【测试点8】软件测试

    软件测试:发现错误(注意错误没有被纠正)

   


    软件调试:诊断和纠正错误

    软件测试方法:根据被测试的软件分为:静态测试和动态测试

    (1)静态测试包括代码检查、静态结构分析、代码质量测量

    (2)静态测试并不实际运行软件,主要是手动执行。

    (3)动态测试是执行程序发现错误的过程

    按功能分为:黑盒和白盒

    白盒测试:后续测试并追踪逻辑路径。常用方法:逻辑覆盖、基本路径测试

    黑盒测试:只看结果。常用方法:等价类划分法、边界值划分法、错误推测法、因果图软件测试四步骤:单元测试、集成测试、验收测试(确认测试)、系统测试

    单元测试:最小单元

    集成测试:重点测试模块间接口是否正常

    验收测试:用户参与的确认测试

    系统测试:实际运行环境

    软件运维是软件生命周期中最长的时期,也是消耗精力和费用最多的时期。

    【测试点9】程序调试

    程序调试的任务是诊断和纠正程序中的错误。

    软件调试方法:静态调试和动态调试。

    数据库设计基础

    【测试点1】数据库系统核心:数据库管理系统(系统软件)。

    数据库管理员:数据库设计、数据库维护、提高系统性能。

    数据库系统:由数据库、数据库管理系统、应用系统、管理员和用户组成。

    数据库应用系统:数据库系统+应用软件+应用界面。

    数据库系统的开发:手工管理->文件系统->数据库系统。其中,数据库系统的数据独立性最高。

    数据库的基本特点: 1. 集成度高; 2、高共享、低冗余; 3、独立性高; 4、数据统一管控。

    数据库三级模式:模式、外部模式、内部模式

    模式也称为概念模式或逻辑模式,是数据库中全局数据逻辑结构的唯一描述。

    外部模式,也称为子模式或用户模式,是呈现给用户的多个视图。

    内部模式也称为物理模式。它是数据内部物理结构和存储方式的独特表示。

    数据模型的三个部分:数据结构、数据操作和完整性约束。

    数据模型的分类:概念模型、逻辑模型、物理模型。

    【测试点2】ER模型

    ① 实体(矩形) ② 属性(椭圆形) ③ 代码:唯一标识一个实体的属性集合称为代码; ④定义域:属性的取值范围称为属性的定义域; ⑤ 联系方式(钻石)

    【测试点3】

    层次模型:树结构,最早的数据模型。

    网络模型:网络结构,解决非层级关系。

    关系模型用二维表来表示,一种关系对应一张二维表。可以说关系就是一个二维表,但二维表不一定是关系。元组:在二维表(具体关系)中,水平行称为元组。属性:二维表中垂直的列称为属性,每列都有一个属性名称;域:属性的取值范围,即同一属性由不同元组限定的取值范围。

    急诊室

    关系

    急诊室

    关系

    财产

    财产

    实体集

    关系

    实体

    元组

    连接

    关系

    【测试点4】二维表中唯一标识一个元组的最小属性值称为表的键或码。二维表中可能存在多个键,称为表的候选码或候选键。从二维表中所有候选键中选择一个键作为用户使用的键称为主键或主码。有一个或多个候选键。

    【测试点5】关系代数

    (1)投影操作指定关系模式中的若干属性,形成新的关系,称为投影。投影是从列角度进行的操作,相当于关系的垂直分解。通过投影运算可以得到新的关系。关系模式中包含的属性数量往往少于原始关系的属性数量,或者属性的排列顺序不同。 (2) 选择操作 从关系中查找满足给定条件的元组的操作称为选择。选择是从行的角度进行的,即水平提取记录。选择操作后得到的结果可以形成一个新的关系,其关系模式保持不变,但其中的元组是原始关系的子集。 (3)笛卡尔积有一个n元关系R和一个m元关系S,分别有p和q个元组。那么R和S的笛卡尔积记为:R×S。是m+n个元素关系,元组数量为p×q。 (4)交集假设有n元关系R和n元关系S,它们的交集仍然是一个n元关系,由属于关系R和属于关系S的元组组成,记为R ∩S。可以表示为 推导出基本运算: R∩S = R – (R–S) (5) 差值属于前一个关系,但不属于后一个关系的数据 (6) 以上皆是不符合除法运算

    【测试点6】数据库设计

    1.需求分析。 2. 概念设计 3. 逻辑设计 4. 物理设计:

    队列计算通用公式

    环队:为了充分利用存储空间,将阵列的前端和后端连成一个环。最初,后=前=0;进出队列时,指针逆时针前进1;

    队伍是空的还是满的:都有q->front==q->rear。两者的区别是:队伍满了:(q->后+1)%==q->前;队伍是空的:q->前= =q->后。

    关键操作:计算元素个数=(后-前+)%

    在某个队列中,进出队列后,

    1、rear-front=0,则队列中有0个元素或者满元素。

    2.如果rear-front>0,则存在rear-front元素。

    3. 前后

更多帖子推荐

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-4-24 09:26 , Processed in 0.089436 second(s), 17 queries .