雌鲳签 发表于 6 天前

程序设计和C语言

什么是计算机程序

程序:就是一组计算机能识别和执行的指令
计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。
计算机的本质是程序的机器,程序和指令是计算机系统中最基本的概念。
什么是计算机语言

计算机语言:计算机和人都能识别的语言
低级语言

面向机器的语言称为低级语言
机器语言

机器指令:计算机能直接识别和接受的二进制代码
机器语言:机器指令的集合技术该计算机的机器语言
汇编语言[符号汇编语言、符号语言]

符号语言:用一些英文字母和数字表达一个指令
例如:ADD代表加,SUB代表减,LD代表传送
计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件,把符号语言转换为机器指令。
一般,一条符号语言的指令对应转换为一条机器指令,转换的过程称为“代真”或“汇编”。
符号语言又称为符号汇编语言或汇编语言
高级语言

不依赖于具体机器的语言称为高级语言
计算机也是不能直接识别高级语言程序的,也要进行“翻译”。
用一种称为编译程序的软件把高级语言写的程序(称为源程序)转换为机器指令的程序(称为目标程序),然后计算机执行机器指令程序,得到最后的结果。
高级语言的一个语句往往对应多条机器指令。
 
高级语言经历了不同的发展阶段:

[*]非结构化的语言
[*]结构化语言
[*]面向对象的语言
C语言的发展及其特点

发展

C语言是国际上广泛流行的计算机高级语言。
C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件 。
特点

C语言有以下一些主要特点:

[*]语言简洁、紧凑,使用方便、灵活
[*]运算符丰富
[*]数据类型丰富
[*]具有结构化的控制语句
[*]语法限制不太严格,程序设计自由度大
[*]C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作
[*]用C语言编写的程序可移植性好
[*]生成目标代码质量高,程序执行效率高
最简单的C语言程序

最简单的C语言程序举例

/*
* 例1.1
* 要求在屏幕上输出以下一行信息
* This is a C program
*/

/*
stdio是“standard input & output”的缩写
.h的意思是头文件(header file)
*/
#include <stdio.h>//编译预处理器指令


/*main前面的int表示此函数的类型是int类型*/
int main()//定义主函数
{//函数开始的标志
   
    /*
    printf是C编译系统提供的函数库中的输出函数
    \n是换行符
    */
        printf("This is a C program\n");//输出所指定的一行信息
        return 0;//函数执行完毕时返回函数值0
}//函数结束的标志


//C语言允许用两种注释方式:
//1、以//开始的但凡注释
//2、以/*开始,以*/借书的块式注释,这种注释可以包含多行内容,也可以独占一行运行结果如下:

/*
* 例1.2
* 求两个整数的和
*/

#include <stdio.h>//编译预处理器指令

int main()//定义主函数
{//函数开始的标志
        int a, b, sum;//本行是程序的声明部分,定义 a,b,sum为整型变量
        a = 123;//对变量 a 进行赋值
        b = 456;//对变量 b 进行赋值
        sum = a + b;//进行 a+b 的运算,并把结果存放在变量 sum 中
   
    /*
    这个printf函数圆括号内有两个参数:
    第一个参数是双撇号中的内容:sum is %d\n,它是输出格式字符串,作用是输出用户希望输出的字符和输出的格式
    其中 sum is 是用户希望输出的字符
    %d 是指定的输出格式
    d 表示用“十进制整数”形式输出
    第二个参数是 sum,表示要输出变量 sum的值
    */
        printf("sum is %d\n", sum);//输出结果
        return 0;//函数执行完毕时返回函数值0
}//函数结束的标志运行结果如下:

/*
* 例1.3
* 求两个整数中的较大者
*/

#include <stdio.h>

//主函数
int main()//定义主函数
{//主函数体开始
        int max(int x, int y);//对被调用函数 max 的声明
        int a, b, c;//定义变量 a, b, c
   
    /*
    scanf是输入函数
    圆括号内有两部分:
    第一部分是双撇号中的内容:它指定输入的数据是按照什么格式输出
    “%d”的含义是十进制整数形式
    第二部分是输入的数据准备放到哪里,即赋值给哪个变量
    在C语言中“&”是地址符
    “&a”的含义是“变量a的地址”
    “&b”的含义是“变量b的地址”
    */
        scanf("%d %d", &a, &b);//输入变量 a 和 b 的值
        c = max(a, b);//调用 max 函数,将得到的值赋值给 c
        printf("max=%d\n", c);//输出 c 的值
        return 0;//返回函数值为0
}

int max(int x, int y)//定义 max 函数,函数值为整形,形式参数 x 和 y 为整形
{
        int z;//max 函数中的声明部分,定义本函数中用到的变量 z 为整形
        if (x > y) z = x;//若 x > y 成立,将 x 的值赋值给 z
        else z = y;//否则将 y 的值赋值给 z
        return z;//将 z 作为 max 函数值,返回到调用 max 函数的位置
}运行结果如下:
https://img2024.cnblogs.com/blog/3512406/202410/3512406-20241004131123763-1855580397.png
运行时会报错误:
C4996    'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 
解决方案见如下链接:     
C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)
C语言程序的结构的特点

1、一个程序由一个或多个源程序文件组成
在一个源程序文件中可以包含三个部分:
①预处理器指令
②全局声明
在函数外面声明的变量称为全局变量
在函数中声明的变量是局部变量,只在函数范围内有效
③函数定义
2、函数是C程序的主要组成部分
函数是C程序的基本单位
在设计良好的程序中,每个函数都用来实现一个或几个特定的功能
编写C程序的工作主要就是编写一个个函数
一个C语言程序是由一个或多个函数组成的,其中必须包含一个main函数(有且仅有一个main函数)
在进行编译时是以源程序文件为对象进行的
3、一个函数包括两个部分
①函数首部:函数的第一行
包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型
一个函数名后面必须跟一对圆括号,括号内写函数的参数名以及其类型。
如果函数没有参数,可以在括号中写void,也可以是空括号
②函数体:函数首部下面花括号内的部分
如果一个函数中包括有多层花括号,则最外面的一对花括号是函数体的范围
函数体一般包括两个部分:

[*]声明部分:定义在本函数中所用到的变量,对本函数所调用的函数进行声明
[*]执行部分:由若干语句组成,指定在函数中所进行的操作
在某些情况下,也可以没有声明部分,甚至可以既没有声明部分也没有执行部分。
4、程序总是从main函数开始执行
不论main函数在整个程序中的位置如何,程序总是从main函数开始执行
5、程序中对计算机的操作是由函数中的C语句完成的
6、在每个数据声明和语句的最后必须有一个分号
分号是C语句的必要组成部分
7、C语言本身是不提供输入输出语句
输入和输出的操作是由库函数scanf和printf灯函数来完成的。
C对输入输出实行“函数化”
8、程序应当包含注释
一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。
运行C程序的步骤与方法

计算机不能直接识别和执行用高级语言写的指令,必须用编译程序(也称编译器)把C源程序翻译成二进制形式的目标程序,然后再将该目标程序和系统的函数库以及其他目标程序连接起来,形成可执行的目标程序。
在编好一个C源程序后,上位机进行编译和运行一般要经过以下几个步骤:

[*]上位机输出和编译源程序
[*]对源程序进行编译,先用C编译系统提供的“预处理器”(又称“预处理程序”或“预编译器”)对程序中的预处理指令进行编译预处理。由预处理得到的信息与程序其他部分一起,组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对该程序进行编译
[*]进行连接处理
[*]运行可执行程序,得到运行结果
程序设计的任务

程序设计是指从确定任务到得到结果、写出文档的全过程
从确定问题到最后完成任务,一般经历以下几个工作阶段:

[*]问题分析
[*]设计算法
[*]编写程序
[*]对源程序进行编辑、编译和连接
[*]运行程序,分析结果
[*]编写程序文档
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 程序设计和C语言