ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C程序设计(一)

2022-09-15 09:34:46  阅读:213  来源: 互联网

标签:运算 C89 数值 算法 指令 程序设计 语言


前言

这是本人大学第一课,C程序设计第一二章节内容摘要及知识总结.

教材版本:C程序设计第五版(谭浩强著)

第一章 程序设计和C语言

基础定义

  1. 计算机程序:一组计算机能够识别&执行的指令.

  2. 计算机语言

    1. 机械语言(指令):计算机能够直接识别并执行的二进制代码称为机械指令,机械指令的合集即为该计算机的机械语言

      优点: 可直接执行,执行速度快,没有冗余.
      缺点: 难学/记/写/检查/修改.目前很少(几乎没有人)使用.

    2. 汇编语言(符号语言/符号汇编语言): 为克服机械语言的缺点而使用一些数字英语字母表示指令的语言,因无法直接被计算机识别所以需要汇编程序将其转换为机械指令.

      优点: 比机械语言好记忆,可直接操作硬件,执行速度快
      缺点: 学习难度大,与计算机硬件强相关,可移植性较差.

    3. 高级语言:为克服低级语言的种种缺点而创造的更接近于人们使用习惯使用的自然语言和数学语言.
      高级语言同样无法直接被计算机识别,须使用编译程序将源程序(source program)转换为目标程序(object program)

      优点: 不依赖于具体机械,不需(或仅需少量的)修改即可在各平台使用.可读性高易于维护,代码量少
      缺点: 不同平台上依赖不同编译器,编译中可能存在多余部分使效率低下,对硬件的操作较困难.

高级语言发展阶段:

  1. 非结构化语言:大量使用goto等跳转操作使结构混乱,可读性,可维护性等较差.如basic,Fortran等.
  2. 结构化语言: 规定程序必须由具有良好特性的基本结构构成(顺序结构,选择结构,循环结构),不允许随意跳转.
  3. 面向对象编程:关于这个,可以看这个解释

C语言的发展及其特点

历史

1972,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出C语言.
标准历程:

  • 1989年 ANSI C(又称C89)
  • 1990 ISO接收C89作为国际标准ISO/IEC 9899:1990,和C89基本一致
  • ISO在1999,2001,2004对C89进行修正并添加了一些新特性被称为C99,C99是对C89的补充.

特点

  1. 语言简洁,紧凑,仅有37个关键字
  2. 运算符丰富(34种)
  3. 数据类型丰富,C99支持bool, long long;指针是C系语言的特色,用好的话非常强大,用不好就会.....
  4. 是完全模块化和结构化的语言.
  5. 语法限制不严格(好坏参半)
  6. 可直接访问物理地址,可进行位操作,可直接对硬件进行操作.
  7. 可移植性好
  8. 生成代码质量高.

第一个C代码

#include<stdio.h>//包含头文件,scanf,printf等函数不是C的关键字,而是stdio.h库中的函数
int main(){		//main函数,所有的C程序都是从main函数开始执行
	int a,b;//定义两个整数类型的数a,b
	scanf("%d%d",&a,&b);//输入a,b
	a=a+b;//不解释
	printf("%d",a);//%d,整数类型,输出a
	return 0;//正常结束
}

第二章算法

数据结构

对指定要用到的数据进行特定方式的存储和修改,或者说是计算机中存储、组织数据的方式如链表,线段树等。

算法

定义: 广义来说,算法是为解决一个问题而采取的方法和步骤.

算法可分两种:数值运算算法和非数值运算算法.
数值运算算法 :如计算方程的根,开平方等,一般数值运算算法大部分封装在math库中.
非数值运算算法: 因种类繁多,仅有部分常用经典的方法被总结出来,如排序算法(快排,桶排,插排等),搜索算法( DFS , BFS 等)等
目前,非数值运算算法的应用范围要远大于数值运算算法

算法的特点

  1. 有穷性
  2. 确定性:指执行步骤确定,因此可以有随机算法(如模拟退火,蚁群等)
  3. 有效性
  4. 有零或多个输入
  5. 有一或多个输出
算法的表示方法
  1. 自然语言
  2. 流程图
  3. N-S流程图
  4. 伪代码
  5. 程序

---END

标签:运算,C89,数值,算法,指令,程序设计,语言
来源: https://www.cnblogs.com/study-and-alg/p/16691926.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有