C语言概述

第一章 C语言概述

1.1 C语言的发展及特点

1.1.1 C语言的发展

二进制语言---->汇编语言---->高级语言

1.1.2 C语言的特点

  1. C语言简洁紧凑,使用灵活方便。有32个关键字(int、float等)、9种控制语句(if、while、return等)
  2. 运算符丰富,有34种运算符
  3. 数据类型丰富
  4. 理想的结构化语言,面向过程
  5. 允许直接访问物理地址,可进行位操作

1.2 C语言程序的基本结构

例1.2.1 求两个整数和

#include <stdio.h>							/*编译预处理*/
main ()										/*主函数*/
{
    int a,b,sum;							/*定义整型变量a,b,sum*/
    printf("please input two integers:\n"); /*输出提示信息*/
    sacnf("%d%d",&a,&b);					/*输入两个整数,并分别赋给a,b*/
    sum=a+b;								/*将a+b的值赋给sum*/
    printf("%d+%d=%d",a,b,sum);				/*输出结果*/
}
  • 该程序右侧用/**/括起来的内容为注释,解释该行或该程序的含义,程序不执行注释部分
  • 该程序第一行是一个预编译处理命令,表示把尖括号<>内的文件stdio.h直接包含到程序内,C语言要求在使用函数前必须声明,文件stdio.h中包含scanf、printf等标准库函数的函数声明,故调用这些函数前应该包含stdio.h文件
  • 该程序只包含一个主函数,C语言规定程序必须有且只有一个主函数,且必须用main作为主函数名
  • 函数由函数首部和函数体构成,该程序函数首部为main (),函数体为首部后面用{}括起来的部分
  • 该函数体内有5条语句,每条语句后用;作为语句结束标志,第1句为声明语句,其他4句为执行语句

例1.2.2 求两个整数中较大者

#include <stdio.h>							/*包含头文件*/
main ()										/*主函数首部*/
{
    int x,y,z;								/*定义整型变量x,y,z*/
    int max(int a,int b);					/*声明函数max*/
    printf("please input two integers:\n");	/*输出提示信息*/
    sancf("%d%d",&x,&y);					/*输入x,y的值*/
    z=max(x,y);								/*调用max函数*/
    printf("The maximum number is %d\n",z);	/*输出结果*/
}
int max(int a,int b)						/*max函数首部*/
{
    if(a>b)	return a;						/*if else条件语句,实现选择结构*/
    else return b;							/*把结果返回主函数*/
}
  • 该程序有两个函数,主函数main,自定义函数max
  • max函数前int表示该函数是整型类型,即执行完该函数后产生一个整型的函数值,由return语句将该值返回到main函数中调用max函数的位置

综上结论

  1. C程序可由一个或多个函数构成,函数是C程序的基本单位
  2. 一个函数由函数首部和函数体组成,函数首部为函数的第一行,包含了数据类型、函数名、函数参数等信息。函数可以没有参数,即函数名后括号内为空,但圆括号不能省略;函数体一般由声明部分和执行部分组成,声明部分是对函数中要用到的变量的定义和对所调用函数的声明,一个函数可以没有声明部分。
  3. C程序必须有且只有一个主函数即main函数
  4. 一个C程序总是从主函数开始执行,不管主函数在整个程序哪个位置,主函数执行完,该程序也执行完了
  5. 每条语句必须以分号结尾,但编译预处理命令、函数首部、花括号后面不能加分号,数据类型定义除外
  6. C语言本身没有输入、输出语句,输入、输出功能用输入、输出函数实现
  7. C程序允许一行写多条语句,也允许一条语句写在多行上,且无需续行符

1.3 算法及其描述

1.3.1 算法的概念

1.3.1.1 算法——程序的灵魂

一个程序包含下面两种描述

  1. 对数据的描述:在程序中要指定用到哪些数据及这些数据的类型,数据之间往往存在某种联系,还要指定数据的组织形式,即数据结构

  2. 对操作的描述:操作步骤也就是算法,为解决一个问题而采取的方法和步骤,成为算法

    算法+数据结构=程序

1.3.1.2 算法的分类
  1. 数 值 算 法 :目的是求数值解,可以运用数值分析方法解决
  2. 非数值算法:应用领域广泛,远超过数值运算,最常见的是用于事务管理领域
1.3.1.3 算法的特性
  1. 有穷性:包含有限的操作步骤,在合理的范围内结束
  2. 确定性:算法的含义是唯一的,每个步骤都是确定的
  3. 0个或多个输入:一个算法可以没有输入,也可以有多个输入
  4. 1个或多个输出:算法为了求解。故至少有一个输出
  5. 有效性:算法的每个步骤必须是切实可执行的,如在实数范围内对负数开平方根无效

1.3.2 算法的描述方法

  1. 自然语言:用人们日常使用的语言
  2. 传统流程图:用一些图框表示各种操作的算法描述方法
  3. N-S流程图:在传统流程图基础上去掉箭头的流程线,由一些基本的框组成一个大的框
  4. 伪代码:介于自然语言和计算机语言之间的文字和符号来描述算法
  5. 计算机语言:C、C++、JAVA、python、Go

1.4 程序设计方法

1.4.1 程序设计的一般步骤

  1. 分析问题并确定数据结构
    • 这个问题要做什么,有哪些已知条件,要求解什么;
    • 再决定采取什么思路来解决这个问题,根据要求指定的输入输出确定存放数据的数据结构
  2. 算法设计
    • 解决做什么和怎么做
  3. 编写程序
    • 根据确定的数据结构和算法,使用计算机语言编码
  4. 上机调试
    • 将源代码输入计算机中,进行编译、连接和试运行
  5. 整理写出文档资料
    • 有助于以后的维护和修改工作、总结经验

1.4.2 结构化程序设计方法

结构化程序由顺序结构、选择结构、循环结构三种基本结构组成

结构化程序设计方法的主要原则可以概括如下:

  1. 自顶向下:先总体后细节
  2. 逐步细化:对复杂问题,应设计一些子目标过渡,逐步细化
  3. 模块化设计:处理较大的复杂任务时,常把大任务分解为若干个子任务,如规模还大,则继续划分
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值