软件是将一组程序组织起来

每个程序由一组指令组成

数据结构+算法

数据结构

在程序中要指定数据的类型和数据的组织形式。

算法(程序的灵魂)

就是为了解决实际问题而提出的具体方法与步骤.

算法的特点

有穷性:         一个算法一定是有限的步骤.

确定性:        每一个步骤都是确定的,不是含糊的.

有零个或多个输入:    指在执行算法时需要从外界取得必要的信息.

有一个或多个输出:    目的是为了求解,”解”就是输出

有效性:         每一步都应当有效的执行,并得到确定的结果.

算发-解决问题

1.为了解决一个问题

2.清楚地理解这个问题

3.收集相关信息

4.处理这些信息

5.得出解决方案

C 语言的应用领域

C 语言最初用于系统程序设计

系统程序是计算机操作系统或操作系统支持的实用程序的组成部分

操作系统、解释器、编辑器以及汇编器通常称为系统程序

UNIX 操作系统是用 C 语言开发的

有许多种 C 编译器,可以满足几乎所有类型 PC 的需要

C语言的特点

C语言同时具有汇编语言和高级语言的优势。

(1)语言简洁、紧凑,使用方便、灵活。

(2)运算符极其丰富。

(3)生成的目标代码质量高,程序执行效率高。

(4)可移植性好(较之汇编语言)。

(5)可以直接操纵硬件。

C语言规则

C语言有32个关键字

这些关键字结合惯用语法构成了 C程序设计语言

所有用C语言编写的程序必须遵守的规则

所有关键字使用小写形式

C语言是区分大小写的,int 和 INT 不同

关键字不能用作变量名或函数名

程序执行总是先调用main()函数

每个程序必须有一个而且只能有一个称作主函数的main()函数; main()函数后面必须跟有圆括号。括号内可以有参数可以没有参数。

所有函数名后必须跟一个左大括号{ 表示代码块开始。同样,右大括号 }表示代码块的结束。

大括号之间写处理问题的代码。除了在函数中,在循环语句、判断语句等其他语句情况下也必须使用大括号{}。

代码语句的结束用分号;表示。编译器无法识别回车、空格,每条语句只能以分号结束,同一行中可以有多条语句。

注释是用于描述命令、函数或整个程序。

它有两种形式“多行注释”和“单行注释”。

多行注释部分包含在“/*”和“*/”之间, 在编译时它被 C编译器忽略。

单行注释则在 // 后面,在编译时它被C编译器忽略。

每个C程序的最上面必须倒入头文件

#include,也可以倒入其他头文件#include根据实际需要。

#include

void main()

{

printf("Hello World\n");

}

常量

常量就是一个保持不变的值,而且不可能被改变

示例

5    数字/整型常量

5.3  数字/实型常量

''Black''   字符串常量

'C'         字符常量

什么是变量?

变量是储存信息的地方.

变量是内存中的一个地址

在地址中可以进行数据的存储和读取

示例:变量

BEGIN

DISPLAY ‘Enter 2 numbers’

INPUT A,B

C=A+B

DISPLAY C

END

A 、B和C是伪代码中的变量

*变量类型(如整型)告诉编译器给变量分配

多大的内存

操作系统负责记住变量在内存中的地址

要引用内存空间中的值,只需指定变量名

标识符

用来标识变量名、符号常量名、函数名、数组名、类型名、文件名和其他各种用户定义的对象的名称都称为标识符

标识符的长度可以是任何合适的数值,但是各种编译器能够识别的变量中的字符数目有所不同,见意不要超过8个字符(VC环境)

C 语言中的标识符区分大小写

标识符的命名规则

变量名应该以字母或下划线开头

第一个字符后面可以跟字母、数字或

应该避免使用专有名词来命名变量

应该避免使用可能引起混淆的字母

变量名区分大小写

编写程序时应该遵循一些标准的变量命名约定

变量名应该是有意义的而且是描述性的

标识符命名的良好习惯──见名知意:

通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。

例如, name/xm(姓名)

sex/xb(性别)

age/nl(年龄)

标识符举例:

[合法的]  如:

areana、 _count、mark40、class_one

[不合法的]

12sttes、 oh!god、start…end

关键字

在一个特定语言的上下文中有特殊意义的单词

所有的数据类型都是保留的关键字

在指定变量名的同时还要指定将要存储在其中的数据类型-变量声明

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  unsigned void

volatile while

基本数据类型

int

float

double

char

void

int 类型

存储数字数据

声明方式:int num;

不能存储类似于“Alan” 或“abc”等任何其他类型的数据

*分配16 位(2 个字节)的内存空间,整数的范围是从 - 32768 到 32767

(注意:在我们当前环境里,int占用4个字节)

示例:12322、0、-232

如: int num = 12332;

float 类型

存储整数或包含小数位的值

声明方式:float num;

最高精度是 6 位

*分配32 位(4 个字节)的内存空间

示例:23.05、56.5、32

如: float num = 23.05;

double 类型

存储超出float类型大小的限制的值

声明方式: double num;

最高精度是 10 位

*分配64 位(8 个字节)的内存空间

示例:23.34232324

如: double num = 23.34232324;

char 类型

存储一个字符信息

声明方式: char gender;

gender='M';

*分配8位(1 个字节)的内存空间

示例:'a'、'm'、'$'、'%'、'1'、'5'

如: char gender = ‘A’;

[注意] 给字符型变量赋值必须加上一对单引号‘’

字符型变量 C

char 与 int的联系

字符在计算机中是以ASCII来存储的,

字符变量在内存中的值是ASCII表中对应的整数

void 类型

告诉编译器没有任何类型的值

声名方式:void num

不返回任何值

派生数据类型

通过修改四种基本数据类型以适应不同的

情况而产生的数据类型叫做派生数据类型

signed 和 unsigned 类型

signed最重要的是修改char数据类型(缺省为signed )

(0-127)有符号的, 有正负之分的

unsigned 类型指定变量只能接受正值

unsigned int varNum;

varNum=63123;

加上unsigned前缀,正数的取值范围是原来的两倍

修饰符可以与 int 和 float 数据类型一起使用

unsigned int 支持的范围是从 0 到 65535

long 和 short 类型

要求某个整数的长度比正常长度更长或更短时,使用long 和short

* short int 占 8 位(1 个字节)的内存空间

允许的数字范围是从 -128 到 127

* long int 占 32 位(4 个字节)的内存空间

-2,147,483,648 到 2,147,483,647

* long double 占 128 位(16 个字节)的内存空间

数据类型范围 2-1

类型  *近似大小(位)  最小范围

char   8  -128 到 127

unsigned char  8  0 到 255

signed char  8  -128 到 127

int   16  -32,768 到 32,767

unsigned int  16  0 到 65,535

signed int  16  与 int 相同

short int  8

unsigned short int 8  0 到 65, 535

signed short int 8  与 short int 相同

signed short int 8  与 short int 相同

long int  32  -2,147,483,648 到 2,147,483,647

signed long int  32  0 到 4,294,967,295

unsigned long int 32  0 到 4,294,967,295

float   32  六位精度

double   64  十位精度

long double  128  十位精度

声明示例

main ()

{

char abc;    /*声明abc */

int xyz;    /*声明xyz */

float length;   /*声明length */

double area; /*声明area */

long int liteyrs;   /*声明liteyrs */

short int arm;    /*声明arm */

}

运算符

算术     一元、二元运算符都是算术运算符

逻辑    用于对包含关系运算符的表达式进行合并或取非

关系    测试两个变量或一个变量和一个常量之间的关系

位        将数字按位进行计算

算术运算符

一元运算符            操作            二元运算符              操作

-                              一元减             +                               加

++                                递增             -                               减

--                                 递减             *                               乘

%  模                       计算一个整数除法的余数

/                                 除(整除)

++和--运算符前置和后置有很大区别

算术运算符

用于各类数值运算

包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

++和--运算符前置和后置有很大区别

++在前 如  “++a” 先加后加入运算。

++在后 如  “a++” 先加入运算后加。

“--”也是同样道理

x++ 和 ++x 可以写成 x= x + 1

x-- 和 --x 可以写成 x = x - 1

[举例] 算术运算符.c  先加后加.c

关系运算符

用于测试两个变量或一个变量和一个常量之间的关系

运算符 关系运算

> 大于

>= 大于等于

<= 小于等于

== 等于

!= 不等于

逻辑运算符

逻辑运算符用于对包含关系运算符的表达式进行合并或取非

运算符 逻辑运算

&& 与

|| 或

! 非

示例:if ((a>10) && (a<20))

使用逻辑运算符的表达式,返回 0 表示假,返回 1 表示真

位运算符

将数字转换成等价的二进制形式后再处理数据(按位表示法)

运算符  描述

按位与

( x & y)  如果两个操作数的相应位均为 1,则该位的结果值为 1

按位或

( x | y)   如果两个操作数的相应位有一个为 1,则该位的结果值为 1

按位取反( ~x)   将操作数按位取反 (0 到 1 和 1 到 0)

按位异或( x^y) 如果参加运算的两个操作数的相应位同号,则结果为 0,异号则为 1

示例

操作数  位操作  位表达式  数字

10 & 15     1010 & 1111 1010  10

10 | 15  1010 | 1111 1111  15

10 ^ 15  1010 ^ 1111 0101   5

~ 10  ~1010  0101  5

位运算符将数字视为二进制值,并按位进行相

应运算,运算完成后再重新转换为数字

赋值运算符

用于赋值运算

分为简单赋值(=)

复合算术赋值(+=,-=,*=,/=,%=)

复合位运算赋值(&=,|=,^=,>>=,<<=)

三类共十一种

变量赋值

赋值语句是由赋值表达式再加上分号构成的表达式语句。

其一般形式为:

变量=表达式

可以用在任何有效的 C 表达式中

通用的形式:变量名=表达式

将同一个值赋给多个变量的操作叫做多重赋值

a=b=c=10

但是,不能像下面的语句中那样赋值:

int a=int b=int c=10

表达式

运算符和操作数的有效组合

在程序执行的过程中,变量

的实际值和表达式中出现的

常量一起使用

运算符优先级

优先级建立了计算算术表达式时,一组运算符相对于另一组的层次关系

优先级指 C 计算运算符的顺序

可通过将表达式括在括号中 来改变运算符的优先级

运算符类型 运算符  结合律

一元  - ++ --    从右向左

二元      ^    从左向右

二元      * / %    从左向右

二元      + -    从左向右

二元      =    从右向左

当一个表达式中的运算符具有相同优先级时,

结合律还指出C语言计算这些运算符的顺序

示例:-8*4%2-3

计算顺序如下:

完成的操作                         结果

-8(一元减法)                       -8

-8*4                                -32

-32%4                               0

0-3                                -3

比较运算符之间的优先级

不存在相对于其他算术运算符有较高的优先级

始终按从左向右顺序进行计算

优先级 运算符

1     非

2     与

3    或

当条件中有多个逻辑运算符时,计算将从右向左进行

运算符之间的优先级

当公式中含有多种类型的运算符时,必须确立不同类型运算符之间的优先级顺序。一般来说,算术、比较、逻辑运算符的优先级符合下表

优先级 运算符类型

1     算术

2     比较

3    逻辑

修改优先级

括号 ( ) 的优先级最高。

使用括号 ( ) 可修改运算符的优先级。

在括号嵌套 ( ( ( ) ) )  的情况下,最里层的最先执行。

包含多个括号的表达式从左向右进行计算。

数据类型转换

变量的数据类型是可以转换的。

转换的方法有两种:

一种是自动转换

一种是强制转换。

类型转换

运算符的操作数属于不同的数据类型,运算时通常会将这些操作数转换为同一类型

自动转换遵循以下规则

若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

转换按数据长度增加的方向进行,以保证精度不降低。

所有的浮点运算都是以双精度进行的

char型和short型参与运算时,必须先转换成int型。

强制类型转换

通过类型转换运算来实现的

其一般形式为:

(类型说明符)  (表达式)

例如:

(float) a      把a转换为实型

(int)(x+y)     把x+y的结果转换为整型

我的世界c语言程序,C语言基本知识相关推荐

  1. 棱形旋转c语言程序_C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!

    在上个月的 TIOBE 编程语言排名中,C 语言和 Java 的差距只有 0.01%.在近日 TIOBE 公布的 2020 年 5 月编程语言排行榜中,C 语言成功超越了 Java,重返第一的王者宝座 ...

  2. 蜂鸣器发出7种音阶c语言程序_C语言编程新思路

    第一章 单元测试 1.单选题: 关于一个C语言程序执行的起点和终点,以下选项正确的是 ( ). 选项: A: main 任意 B: main 最后一个 C: main main D: 第一个 最后一个 ...

  3. 文件的记录c语言程序,c语言程序学生籍贯信息记录簿设计.docx

    c 语言程序学生籍贯信息记录簿设计 学生籍贯信息记录簿 课程设计报告书 班 级: 方 0909-1 学 号:姓 名: 苑 小 叶 指导教师 : 康 亚 男 石家庄铁道大学四方学院 2010年 07月 ...

  4. 学生实验平台搭建c语言程序,c语言程序设计实验学生用.doc

    c语言程序设计实验学生用 C语言程序设计 实验指导 (学生用) 计算机基础教研室 <C语言程序设计>课程组 2012年9月 前 言 <C语言程序设计>是计算机科学技术系面向全校 ...

  5. 插入法排序c语言程序,C语言之插入排序算法

    一.什么是直接插入算法? 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列. 选择 ...

  6. 青花瓷音乐的单片机c语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

  7. 框图c语言程序,C语言程序设计框图

    <C语言程序设计框图>由会员分享,可在线阅读,更多相关<C语言程序设计框图(86页珍藏版)>请在人人文库网上搜索. 1.第三章控制结构,返回总目录,目录,3.1节目结构框,3. ...

  8. 简单谱子C语言程序,c语言曲谱_单片机c语言音乐简谱代码

    51单片机曲谱编写音乐程序,我看不懂曲谱,谁能教下我! //<世上只有妈妈好>51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ ...

  9. 用直接分解法求方程组的C语言程序,c语言编程求解线性方程组论文

    计算机编程求解线性方程组 第一章 绪 论 在自然科学.工程技术.经济和医学各领域中产生的许多实际问题都可以通过数学语言描述为数学问题,也就是说,由实际问题建立数学模型,然后应用各种数学方法和技巧来求解 ...

最新文章

  1. AS4下搭建cacti
  2. linux操作系统字段含义,Linux系统 /etc/fstab各个字段含义解释
  3. canva怎么拼接图片_搭配图片:短款外套+纱裙的冬季搭配,可爱又青春!|周二搭配...
  4. MySQL实习训练1
  5. php隐藏notice错误,php屏蔽notice错误
  6. SAP 采购订单关单
  7. Windows获取本地安装软件详细信息(对标卸载程序控制面板)
  8. Oracle 常用 语句
  9. 谷歌提前关闭 G+;春运 12 天后开售,“候补购票”功能将上线 12306
  10. “火星一号”项目计划于2026年实现载人登陆火星
  11. 百万调音师—Audition初识
  12. oracle官网下载教程
  13. 自定义ComboBox控件,完美解决C#自带的ComboBox效率慢的问题
  14. Python日历模块| 使用示例的weekday()方法
  15. 集成XXL-JOB任务调度中心
  16. 斯密斯圆图-学习笔记
  17. 【Arduino】点亮灯和灯闪烁实验
  18. 全球各地区MODIS影像对应行列号
  19. iStat Menus mac中文
  20. matlab解薛定谔方程,有限差分法解薛定谔方程与MATLAB实现

热门文章

  1. NokiaLogo Mobile版,仅供试用
  2. Linux学习笔记——利用samba服务、NFS服务及iSCSI服务实现存储分离
  3. a60 sim卡管理设置的系统属性
  4. MiniMax算法实现井字棋
  5. 当前机器学习用于保险业和信用评分的可能性分析
  6. Ajax请求后防止自动刷新方法
  7. 解决视频转码后颜色有变化的问题
  8. 匪夷所思的未来手机十大用途
  9. halcon和halcon XL适用的图像尺寸
  10. 前端打包工具Esbuild--模块化、ESM、esbuild-loader、