Advertisement

20240702练习1

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOC


简介:
这个文档是2024年7月2日创建的一个练习文件或草稿,可能包含学习、工作或其他项目的初步尝试和思考。 根据提供的文件信息,可以提炼出以下几个主要的知识点: ### 1. C语言基础与运算符 #### C语言代码结构示例 ```c #include int main(int argc, char *argv[]){ int a = 10; // 定义变量a并赋值为10 int b = a--; // 定义变量b,并将a的值赋给b(此时a的值为10),然后a的值自减1变为9 int c = a + b + 2; // 计算表达式a + b + 2,其中a为9,b为10,所以c的值为21 int d = (b--) + (++c); // 计算表达式(b--) + (++c),此时b为10,c为21,先进行++c操作使c变为22,再进行b--操作使b变为9 printf(%d\n, d); // 输出d的值,即32 } ``` 这段代码的主要目的是演示不同运算符的应用,包括赋值运算符 `=`、递减运算符 `--`、加法运算符 `+` 和逗号运算符 `,`。 #### 运算结果分析 在该程序中,变量d的最终值为32。具体原因如下: - 变量b的初始值为10; - 变量c的初始值为21; - 在计算 d 的时候,先执行 b-- 使 b 的值减一变为9,并返回之前的旧值即10;接着进行 ++c 操作让 c 增加到22。因此,d 的值是 `10 + 22 = 32`。 ### 2. 文件操作与编辑器基础 #### Vi 编辑器常用命令 - 使用 `touch test1.c` 创建一个名为 `test1.c` 的空文件。 - 使用 `vi test1.c` 打开或创建 `test1.c` 文件以进行编辑。 - 使用 `cat test1.c` 在终端显示 `test1.c` 文件的内容。 - 使用 `head test1.c` 显示该文件的前 10 行内容,用命令行工具查看文件头信息。 - 使用 `tail test1.c` 显示该文件最后 10 行内容。 这些命令有助于进行文件创建、编辑及内容查看等操作。 ### 3. C语言预处理指令与编译过程 #### 预处理指令 - `#include `:引入标准输入输出库。 - `#include example.h`:引入用户自定义的头文件。 #### 编译过程 1. **预处理** (`gcc -E test.c -o test.i`):展开宏定义,替换包含的头文件,并移除注释; 2. **编译** (`gcc -S test.i -o test.s`):检查语法错误并生成汇编代码; 3. **汇编** (`gcc -c test.s -o test.o`):将汇编语言翻译为机器码,但尚未链接外部库或其它目标文件。 4. **链接** (`gcc test.o -o test`):将目标文件和库函数连接起来形成可执行程序。 整个过程确保了源代码被正确地转换成可以运行的格式。 ### 4. 数据单位与进制转换 #### 数据单位 - 字节 (Byte) = 8位(bit) - KB = 1024B - MB = 1024KB - GB = 1024MB - TB = 1024GB #### 进制转换规则: - 将二进制数 `1010110` 转换成八进制得到 `56` - 八进制的 `753` 对应于二进制的 `111 101 011` - 十六进制表示为 `8a` 的数转换成二进制是 `1000 1010` 这些转换有助于理解不同基数系统之间的关系。 ### 5. 关键字与标识符 #### 关键字 - 存储类型:`auto`, `static`, `extern`, `register` - 数据类型:`int`, `char`, `float`, `short`, `long`, `double`, `signed`, `unsigned` - 构造数据类型:`struct`, `enum`, `union` - 分支控制语句:`if`, `else`, `switch-case` - 循环结构:`for, do while, while` - 其他关键字: 如 void, const

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 202407021
    优质
    这个文档是2024年7月2日创建的一个练习文件或草稿,可能包含学习、工作或其他项目的初步尝试和思考。 根据提供的文件信息,可以提炼出以下几个主要的知识点: ### 1. C语言基础与运算符 #### C语言代码结构示例 ```c #include int main(int argc, char *argv[]){ int a = 10; // 定义变量a并赋值为10 int b = a--; // 定义变量b,并将a的值赋给b(此时a的值为10),然后a的值自减1变为9 int c = a + b + 2; // 计算表达式a + b + 2,其中a为9,b为10,所以c的值为21 int d = (b--) + (++c); // 计算表达式(b--) + (++c),此时b为10,c为21,先进行++c操作使c变为22,再进行b--操作使b变为9 printf(%d\n, d); // 输出d的值,即32 } ``` 这段代码的主要目的是演示不同运算符的应用,包括赋值运算符 `=`、递减运算符 `--`、加法运算符 `+` 和逗号运算符 `,`。 #### 运算结果分析 在该程序中,变量d的最终值为32。具体原因如下: - 变量b的初始值为10; - 变量c的初始值为21; - 在计算 d 的时候,先执行 b-- 使 b 的值减一变为9,并返回之前的旧值即10;接着进行 ++c 操作让 c 增加到22。因此,d 的值是 `10 + 22 = 32`。 ### 2. 文件操作与编辑器基础 #### Vi 编辑器常用命令 - 使用 `touch test1.c` 创建一个名为 `test1.c` 的空文件。 - 使用 `vi test1.c` 打开或创建 `test1.c` 文件以进行编辑。 - 使用 `cat test1.c` 在终端显示 `test1.c` 文件的内容。 - 使用 `head test1.c` 显示该文件的前 10 行内容,用命令行工具查看文件头信息。 - 使用 `tail test1.c` 显示该文件最后 10 行内容。 这些命令有助于进行文件创建、编辑及内容查看等操作。 ### 3. C语言预处理指令与编译过程 #### 预处理指令 - `#include `:引入标准输入输出库。 - `#include example.h`:引入用户自定义的头文件。 #### 编译过程 1. **预处理** (`gcc -E test.c -o test.i`):展开宏定义,替换包含的头文件,并移除注释; 2. **编译** (`gcc -S test.i -o test.s`):检查语法错误并生成汇编代码; 3. **汇编** (`gcc -c test.s -o test.o`):将汇编语言翻译为机器码,但尚未链接外部库或其它目标文件。 4. **链接** (`gcc test.o -o test`):将目标文件和库函数连接起来形成可执行程序。 整个过程确保了源代码被正确地转换成可以运行的格式。 ### 4. 数据单位与进制转换 #### 数据单位 - 字节 (Byte) = 8位(bit) - KB = 1024B - MB = 1024KB - GB = 1024MB - TB = 1024GB #### 进制转换规则: - 将二进制数 `1010110` 转换成八进制得到 `56` - 八进制的 `753` 对应于二进制的 `111 101 011` - 十六进制表示为 `8a` 的数转换成二进制是 `1000 1010` 这些转换有助于理解不同基数系统之间的关系。 ### 5. 关键字与标识符 #### 关键字 - 存储类型:`auto`, `static`, `extern`, `register` - 数据类型:`int`, `char`, `float`, `short`, `long`, `double`, `signed`, `unsigned` - 构造数据类型:`struct`, `enum`, `union` - 分支控制语句:`if`, `else`, `switch-case` - 循环结构:`for, do while, while` - 其他关键字: 如 void, const
  • 汇总1】Python
    优质
    本资料汇集了多个Python编程基础练习题及解答,适合初学者巩固语法和提高编码能力。 现有如下列表,请按照要求完成题目:L=[apple, banana, orange, cherry, watermelon, lemon, grape, pomegranate] (1)计算列表的长度并输出。 代码: ```python L = [apple, banana, orange, cherry, watermelon, lemon, grape, pomegranate] print(len(L)) ``` (2)通过步长获取索引为3的倍数的所有值,并打印获取后的列表L1。 代码: ```python L = [apple, banana, orange, cherry, watermelon, lemon, grape, pomegranate] L1 = L[::3] print(L1) ```
  • ISTQB 题(1-10)
    优质
    本资料包含ISTQB考试第1至第10题练习题,适合备考软件测试专业资格认证的学习者使用,帮助加深对相关概念的理解与掌握。 ISTQB Foundation Level 模拟题,包含答案,共28套,这是第1-10套。
  • 图结构1
    优质
    《图结构练习题1》是一本专注于帮助读者理解与掌握数据结构中图的相关概念和算法技巧的习题集。通过丰富的例题解析与实践操作,助力学习者提升问题解决能力,在编程竞赛、软件开发等领域取得优势。 【图形结构习题详解】 1. 顶点的度与边数关系:在无向图中,每条边连接两个顶点,因此会为每个相连的顶点增加一个度值。所以,在所有顶点中的总度数值是边数量的两倍。对于有向图而言,由于每一条弧线都有起点和终点,那么各个节点的入度之和与出度之和相等。在无向连通图中,最少需要n-1条边来确保其连通性(其中n为顶点数)。当使用邻接矩阵表示时,该矩阵大小应设置成nxn。 2. 有向图G=(V,E)分析:设顶点集合 V={a,b,c,d,e} 和弧线集合 E={, , , , , ,, , }。根据这些定义,可以得到以下信息: - 顶点 a 的入度为2(来自 b 和 e),出度为3(指向 b, d 和 e)。 - 顶点 b 的入度为2(分别由a和c提供),出度则仅为1,即向d的弧线。 - 对于 c 而言,它的入度是1(从b而来),而它向外发出两条弧线,所以其出度也是2。 - 顶点 d 的情况与 c 相反:它是唯一一个只有一条进来的边和两条出去的边的节点。因此 d 的入度为1且出度也为2。 - 最后,e 具有最高的入度(3),分别由 a, b 和 c 提供;同时 e 也有两个指向其他顶点的弧线,所以它的出度也是2。 3. 带权无向图表示:此部分介绍了带权重值边连接节点的情况,并提供了三种不同的方式来描述这类图形。 - 邻接矩阵可以用来展示各对相邻结点之间的距离或权重。比如,在给定的示例中,如果顶点v1和v2之间存在一条权值为1的链接,则在相应的邻接矩阵位置上应标记数字“1”。 - 边表法则直接列出所有边及其对应的权值信息;例如(v1, v2, 1)表示从结点v1到v2有一条权重为1的路径,以此类推。(这里省略了具体的例子) - 各顶点度数可以通过检查它们与其它节点相连的数量来计算。比如,在给定的例子中:v1和v2各有两条连接边(因此其度均为2),而其他三个结点(v3, v4 和 v5)的度分别为 3、2、以及 1。 4. 逆邻接链表表示有向图: - 此部分解释了如何通过逆邻接链表来构造一个具体的例子。同时,也展示了基于该列表构建出的邻接矩阵形式。 - 它还描述了从顶点a出发进行深度优先遍历和广度优先遍历所得到的不同序列结果。 - 最后提及根据这些遍历方式可以分别绘制出相应的生成树。 5. 关于最小生成树,说明即使在存在多条同权重边的情况下也可能有多种不同的解决方案。这取决于具体问题中的条件以及选择策略。 6. Prime算法和Kruskal算法用于构建给定图的最小生成树:这两种方法都通过逐步添加符合条件(即保证总权值最低且不产生环路)下的最短路径来完成任务,但它们的具体步骤会有所不同。 7. 使用Dijkstra算法求解从V4出发到其他各顶点之间的最短距离。此过程包括初始设置、迭代更新及最终确定每对节点间的最小代价路径。 8. Floyd-Warshall算法用于计算所有可能的两点间最短路径,通过反复迭代来不断优化结果直到无法再改进为止。 9. AOV网(Activity On Vertex Network)中的拓扑排序:这种类型的网络图通常用来表示一系列需要按特定顺序执行的任务。可以通过深度优先搜索或广度优先搜索等方法实现其有序排列。 10. 有向图的多种可能的拓扑序列;由于可能存在多个不同的节点排列方式,因此在进行此类操作时需要注意。 11. 深度优先遍历算法用于生成AOV网络中的一个合法顺序。这个过程从任一顶点开始,并且只访问每个结点一次。 12. 最后一部分讨论了最小生成树的多种情况以及如何通过不同的方法来解决问题,比如Prime和Kruskal算法的应用场景。 以上内容涵盖了图形理论中的一些基本概念及其
  • SQL作业1-数据库训
    优质
    本作业为SQL练习系列的第一部分,专注于基础数据库操作和查询技巧的学习与实践,帮助初学者掌握数据管理技能。 1. 创建数据库的输入语句是 `CREATE DATABASE SCHOOL`。检查一下这个语句是否正确后执行并刷新即可在数据库列表里找到新建的SCHOOL。 2. 在已创建好的SCHOOL数据库中添加用户WANG,进入该数据库的安全性设置选项卡下的用户部分,并右键点击选择“新建用户”。首先填写用户名,在按图示顺序操作过程中确保登录名也正确设置了。完成后点击确定按钮即可完成用户的建立。 3. 【例3.1】为用户WANG定义模式S-T:给用户WANG创建一个名为S-T的模式,使用以下语句: ```sql CREATE SCHEMA S-T AUTHORIZATION WANG; ``` 在执行此命令之前,请注意需要确保用户WANG已经在数据库SCHOOL中存在。
  • 顺序图单项1
    优质
    本资料为“顺序图单项练习1”,旨在通过一系列精心设计的问题和实例,帮助学习者深入了解并熟练掌握UML顺序图的基本概念、绘制技巧及应用场景。适合软件开发入门者使用。 单项练习——顺序图实验目的:理解并掌握顺序图的含义及其内容;熟悉顺序图的绘制方法;明确顺序图的应用范围。 实验任务:根据以下情景画出相应的顺序图: 某网络营销公司中,当有人申请加入会员时,负责人需要进行相关操作。
  • 180-作业-作业1
    优质
    本作业为课程《180》中的第一次作业练习,旨在帮助学生巩固课堂所学知识,并通过实践加深理解。包含多项练习题,要求学生在规定时间内完成提交。 1. 将以下程序划分为基本块并绘制程序流程图。 2. 对于下面的程序进行基本块划分,并制作其程序流图。 解答:可将该程序划分为如下基本块。
  • 1:Sample-Superstore-Subset-Excel.xlsx
    优质
    本文件为《Sample-Superstore-Subset》练习数据集,基于Excel格式。包含简化版超级市场销售信息,适用于数据分析与学习。 实践题1使用了文件Sample-Superstore-Subset-Excel.xlsx。