C程序设计-01程序设计和C语言

目录

1.指令、程序、软件

2.计算机语言

3.高级语言的发展

5.注释

6.C程序语言的结构

7.程序设计的任务

8.C程序执行的步骤

9.问题来一波


1.指令、程序、软件

  • 指令:可以被计算机理解并执行的基本操作命令。
  • 程序:一组计算机能识别和执行的指令。 一个特定的指令序列用来完成一定的功能。
  • 软件:与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

2.计算机语言

计算机语言是用于人与计算机之间通信的语言,分为机器语言,汇编语言,高级语言三类。,C语言属于高级语言。

|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| 机器语言 | 汇编语言 | 高级语言 |
| 计算机能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机器语言。 特点:难学,难记,难检查,难修改,难以推广使用。依赖具体机器难以移植。 | 机器语言的符号化。用英文字母和数字表示指令的符号语言。 特点:相比机器语言简单好记,但仍然难以普及。汇编指令需通过汇编程序转换为机器指令才能被计算机执行。依赖具体机器难以移植。 | 高级语言更接近于人们习惯使用的自然语言和数学语言。 特点:功能强大,不依赖于具体机器。用高级语言编写的源程序 需要通过编译程序转换为机器指令的目标程序。 |
| 5F 01 | MOV | S=1+2 |

3.高级语言的发展

发展:非结构化的语言→结构化语言→面向对象的语言

结构化语言的规定: 程序必须由具有良好特性的基本结构(顺序结构、选择结构、循环结构) ,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。

特点: 程序结构清晰,易于编写、阅读和维护。

4.c语言程序

cpp 复制代码
#include <stdio.h>	    //编译预处理指令
int main()				//定义主函数 
{				        //函数开始标志 
    printf("This is a C program.\n");	//输出所指定的一行信息 
    return 0;			//函数执行完毕时返回 函数值0
}				        //函数结束标志
  • main是函数的大名,它是 主函数! 当家人!;每一个C语言程序都必须有一个 main 函数。
  • main前的int:此函数的类型是int类型(整型),在执行主函数后会得到一个值(函数值),其值为整型,也是需要返回值的类型!
  • return 0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处;
  • 函数体由花括号{}括起来;
  • printf是C编译系统提供的函数库中的输出函数。printf函数中双引号内的字符串″This is a C program.″按原样输出。\n是换行符,即在输出″This is a C program.″后,显示屏上的光标位置移到下一行的开头;
  • 每个语句最后都有一个分号,表示语句结束;
  • // 是"注释",用来对程序有关部分进行必要的说明;方便人理解程序各部分的作用,是给人看的,而非计算机执行。
  • 在使用函数库中的输入输出函数时,编译系统要求程序提供有关函数的信息,"#include <stdio.h>"的作用就是用来提供这些信息的。
  • stdio.h是系统提供的一个文件名,stdio是standard input & output的缩写,文件后缀.h的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在stdio.h文件中。

5.注释

// :单行注释

/*开始,以*/结束 : 块式注释

在字符串中的//和/*都不作为注释的开始。而是作为字符串的一部分

6.C程序语言的结构

  • 一个程序由一个或多个源程序文件组成 ,其中源程序文件包括:预处理指令( #include <stdio.h> )、全局声明(int ..)、函数定义(int max(int a,int b) )
  • 函数时C程序的主要组成部分

一个C语言程序是由一个或多个 函数组成的,其中必须包含唯1 一个main函数

程序中被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己设计的函数

  • 一个函数包括两个部分:函数首部和函数体,函数体一般包括声明部分和执行部分
  • 程序总是从main函数开始执行
  • 程序中的操作是由函数中的C语句完成的
  • 在每个数据声明和语句的最后必须有一个分号
  • C语言本身不提供输入输出语句,输入输出操作由函数完成
  • 程序应当包含注释

7.程序设计的任务

  1. 问题分析
  2. 设计算法
  3. 编写程序
  4. 对源程序进行编辑、编译和连接
  5. 运行程序 分析结果
  6. 编写程序文档

8.C程序执行的步骤

注意每个阶段对应的后缀

编辑---对应源程序 .c

编译 --对应目标程序 .obj

连接--库函数和其他目标程序 可执行目标程序.exe

执行--可执行目标程序 .exe

9.问题来一波

  1. 程序是什么? 是一组计算机能识别和执行的指令集合,每一条指令使计算机执行特定的操作。 计算机(who )能识别和执行( do )的一组指令集合,(aim)每条指令都能让计算进行执行特定的操作。
  2. 程序设计是什么?它是指从确定 任务到得到结果 最后写出文档的全部过程。
  3. 为什么需要计算机语言?高级语言有哪些特点 ?

计算机语言解决了人与计算机交流的语言问题

高级语言更加接近自然语言人更能理解和掌握 。高级语言需要编译才能成为语言 。高级语言和计算机结构关系不大而机器语言和计算机结构关系较大。

|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 源程序 | #include int main() { printf("hello!"); return 0; } |
| 目标程序 | 源程序通过编译器编译,形成一个文件里面包含机器码集合,可以进行机器直接执行,该文件 以.obj作为扩展名,这就是目标程序。 |
| 可执行程序 | 可执行程序是将所有得到的目标程序模块连接 起来再与函数库连接为一个整体,生成一个可供计算机执行的总的目标程序,成为可执行程序。 |
| 程序编辑,程序编译,程序连接 | 程序编辑:上机输入或者编辑源程序 .c 程序编译∶先用C提供的"预处理器",对程序中的预处理指令进行编译预处理。对源程序进行语法检查,判断是否有语法错误,直到没有语法错误未知,编译程序自动把源程序转换为二进制形式 的目标程序 .obj 程序链接∶将所有编译后得到的目标模块 连接装配起来,在与函数库相连接成为一个整体的过程称 之为程序连接 |
| 程序模块,程序文件 | 程序模块∶可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令 程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序 |
| 函数,主函数,被调用函数,库函数 | * 函数∶将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能; * 主函数 ︰又称main函数,是程序执行的起点 * 被调用函数︰由一个函数调用另一个函数,则称第二个函数为被调用函数 * 库函数︰一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数 |
| 程序调试,程序测试 | * 程序调试∶是将编制的程序投入实际运行前 ,用手工或编译程序等方法进行测试,修正语法错误和 逻辑错误的过程 * 程序测试︰是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测 ,以确保该程序能按预定的方式正确地运行 |

相关推荐
ん贤2 小时前
GO项目开发规范文档解读
开发语言·后端·golang
ChineHe2 小时前
Golang语言基础篇003_数组、切片、map详解
开发语言·后端·golang
争不过朝夕,又念着往昔3 小时前
go语言并发
开发语言·golang
潼心1412o3 小时前
C语言(长期更新)第21讲:动态内存管理
c语言·开发语言
JAVA学习通3 小时前
微服务项目->在线oj系统(Java-Spring)----6.0
java·开发语言·spring
racerun3 小时前
CSS Display Grid布局 grid-template-columns grid-template-rows
开发语言·前端·javascript
袁煦丞 cpolar内网穿透实验室3 小时前
Remote JVM Debug远程给Java程序“做手术”!cpolar内网穿透实验室第626个成功挑战
java·开发语言·jvm·远程工作·内网穿透·cpolar
2301_764441333 小时前
使用python的加权Jaccard分析流程
开发语言·python
超级大福宝3 小时前
使用 LLVM 16.0.4 编译 MiBench 中的 tiff-v3.5.4 时遇到编译链接错误
c语言·c++