C语言程序设计概念
程序
程序:按照一定的顺序安排的具体步骤,例如,开学典礼程序
计算机程序:用计算机语言描述的解决某一问题的一系列加工步骤,表征上是符合语法规则的符号序列
程序设计语言
程序设计语言的发展阶段:机器语言——汇编语言——高级语言(Fortran,Pascal,C)——面向任务的程序设计语言(SQL Server-->关系型数据库系统)——面向对象的程序设计语言(Java,python)
程序设计语言能力:数据表达(基本数据类型+构造数据类型)+流程控制(顺序、分支、循环)
- 机器语言特点:执行效率高,编程效率低
- 汇编语言特点:需要熟悉机器内部结构
- 高级语言特点:面向算法过程,接近自然语言
- 面向任务的程序设计语言特点:只需要描述问题,无需知道如何求解
- 面向对象的程序设计语言特点:针对客观事物,例如,python-->一切皆对象
算法
算法:对特定问题求解步骤的一种描述。Niklaus Wirth提出程序=数据结构+算法,老爷子于1月4日去世,详细了解如下:Pascal 之父、图灵奖得主 Niklaus Wirth 逝世!发明多款编程语言,首提「算法+数据结构=程序」
程序和算法的区别:
程序和算法是计算机科学中的两个基本概念,它们有一定的相似性,但也存在一些区别。
程序是一组按照特定语法和语义规则编写的计算机指令的有序集合。它可以被计算机执行,完成特定的任务。程序通常由程序员编写,可以包含各种语句、表达式、循环、条件判断等。程序是具体的实现,是对问题解决方案的具体描述。
算法是解决问题的一种方法或步骤的描述。它是抽象的、通用的,不依赖于具体的编程语言或机器。算法描述了问题的输入、输出和中间步骤之间的关系,告诉我们如何将输入转换为输出。算法可以用自然语言、伪代码或流程图等方式表示。
因此,程序是算法的具体实现。一个问题可以有多种不同的算法来解决,每种算法都可以通过编写程序来实现。算法的好坏取决于解决问题的效率、正确性和可读性等因素,而程序的质量则取决于对算法的正确实现和编写的规范性。
算法的特点:有穷性、确定性、有效性、有数据输入、有数据输出
算法的描述方法:自然语言、流程图、伪代码
C语言的特点:
-
结构化语言:由函数组成,有完整的控制语句和构造数据类型机制
-
简洁紧凑:32个保留字和9种控制语句,形式自由
-
便于移植:库函数实现功能
-
处理能力强:有汇编语言的特点,及涉及高级语言,又涉及低级语言的底层
-
代码质量高:相比汇编,执行效率仅低15%~20%
C语言程序的基本框架:
-
头文件包含(一组#include命令),可以将有关文件信息包含到程序,个人理解类似于python的import功能。其中头文件后缀一般以.h结尾
-
用户自定义函数声明
-
主函数main(),程序的主控函数,程序的执行从该函数体的第一行开始。每个程序仅有一个main函数
-
若干自定义函数
C语言字符集:
-
英文字母:不是26个,是52个,因为包含大小写。C语言的命名中是区分大小写的
-
阿拉伯数字:0~9
-
下划线:_
-
其他特殊字符
C语言标识符:
-
开头必须是字母和下划线,后面可以用字母、下划线、数字任意搭配
-
MS C 规定命名长度不超过8
-
Turbo C规定不超32
C语言关键字:
-
auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, void, unsigned, volatile, while
C语言的主要语法单位:
-
常量:不可改变。区别字符常量和字符串常量,字符常量是一个整型量,只不过用字符表示了,而字符串常量背后其实是一个内存地址,两者区别很大
-
变量:定义的一般形式为数据类型名+空格+变量名;
-
运算符:算术、关系、逻辑
-
表达式:算术表达式、关系表达式、逻辑表达式、复合语句
-
语句:赋值语句、分支语句、循环语句。其中赋值语句的执行过程是先计算'='右边的表达式,再赋值给变量,循环语句中for用于已知次数,while用于未知次数
-
函数:可传参,可返回结果
-
输入和输出:
scanf("%d",&n);
printf("%d",n);