当前课程知识点:C语言程序设计(上) >  从问题到C语言程序设计 >  1.2 C语言与C程序 >  1.2.2-C初步

返回《C语言程序设计(上)》慕课在线视频课程列表

1.2.2-C初步在线视频

1.2.2-C初步

下一节:讨论题:运算符

返回《C语言程序设计(上)》慕课在线视频列表

1.2.2-C初步课程教案、知识点、字幕

我们再看简单的C程序

这里我们讨论也是三个问题

C程序的一个基本结构

还有常数与变量

当然是C程序里边的常数与变量

还有赋值语句

我们看

这是一个非常简单的

只有一句执行语句的程序

我们看对这个程序的解释是这样

为什么要包含

是因为这用了printf

我们看这个main()长得这个样子

一个名字后面一对圆括弧

非常像函数的样子

所以C就是这样的函数结构

那和main匹配的是什么呢

这一对花括弧里边

就是n多句执行语句

这叫函数体

我们看这些语句一个重要的标识

就是分号

每一个语句后边都有一个分号

我们再来看一个稍微长一点的程序

看看是不是这样的结构

由这两个程序

我们是不是可以看到了一个

C程序的一个基本结构概貌

那就是由main函数开始

其实C里边所有的结构框架

都是函数结构

里边可以由n多个函数

但是main只能有一个

由main开始可以调用多个函数

但是我们刚才给出来的程序里边

不论它是有多少对花括弧

实际上只有一个main函数

没有其它的函数

大家说到计算机程序设计语言

有没有注意过

其实program这个词

那么对程序

我们经常把它叫作程序设计语言

但是我们要从做规划这个角度上讲的话

实际上这件事情做什么

是对你现有的问题

要把它按有限步骤的事情去做规划

那这个规划的过程里边

为什么

是因为计算机

它只能做有这么几种特点的事情

而且我们对一个复杂的问题

我们首先要分解

分解完了 也是要能够是说

它表现出来的是顺序性

周期性或者是有选择性

我们对一个复杂的事情

如果这样分解下来

我们分解的目的是什么

是说我们分解成这么多步骤

比如说一个事情我们分解成

f1(x)能做

f2(x)能做

这个周期性的f3(x)能做

那么我们

分别在三个函数里边去完成这件事

最后我们把它输出

printf(x)可以解决这问题

直接调用了我们就不用自己编了

那这样的话

起到的一个作用是什么

大家可以第一是可以分工

第二是可以重用

比如说

我们这周期性的f3(x)做的这件事情

如果另一个应用

或者另一个程序要使用的话

它也可以再使用

所以

我们说做规划按有限的步骤去做规划

然后分解

分解的目的是

用一个一个的让程序由一个一个的函数

这样的架构来形成

就能使得

你对这件事情的处理过程

合作并且重用

还有一个目的是说

你这样分解

能够更合理的使用计算机的资源

那这样的事情是应该是

在我们后期的学习里边会有更多的体会

整体上

我们对C的整体架构做一个小结的话

这几个红颜色标识的

就是我们的关键字

我们再看一个程序

求圆的周长和圆面积的一个程序

大家看一下

是不是它也符合我们刚才说的

C程序的一个框架

在这个函数体里边做什么

求圆的周长和面积

我们对这个程序有印象

下边我们接着来讨论常数与变量

我们刚才那个程序里边有常数吗

有没有印象

首先我们看常数

都有哪些是C里边的常数

在C里边有这么四种

都可以是常数

整型的就是我们平常看的正的负的

只要没有小数的数

实型的简单说就是带小数的数

不管正的负的

除过这个数值型的之外

还有字符型的

我们看

用单引号括起来的这个一个字符

这叫字符型的常量

而用双引号把那个a括起来

单引号括起来

我们叫它是一个字符常量

而用双引号把这个a括起来

它叫字符串常量

这有什么不同 有不同

这个字符常量

在计算机里边占一个字节

我们知道Σ一个字符占一个字节

而如果是字符串

什么叫串

计算机怎么知道你是个串

这个串有多长

两个还是四个

C是这样标识这个串的

后边加一个结束标志

用一个占一个字符的位置

所以这个一个字符如果你是个串

后边一定还占一个字符的位置

所以这个串占了两个字节

ab这个串占了三个字节

当然这个是占了五个字节

所以

在C里边字符型的常量有两种

一种是字符型常量

一个是字符串是用双引号引起来的

除过刚才的这几种常量之外

还有一种常量叫符号常量

什么时候会用到符号常量

什么又是符号常量

比如说

举个例子 比如说π

我们要写3.1415926

如果我们继续还把它写下去

写了很长的话

如果我在我的程序里边

多次的多处的用到了这个π

你这个写起来

第一是很麻烦

第二是它也容易出错

那么这时候我们不如说这样子

用一个符号来代替它

你在那个地方就写这个符号

等程序真正运行的时候

它在会把这个符号

置换成你要的那个数值

那这时候我们说

看一下比如说这个程序里边

在这个程序里边

前边有一个define PI

3.14

当然它不长

但是我用define定义了说

我这个PI PI代替了3.14

是说凡是在你的程序里边

这碰到了PI

这也碰到了PI

在这两处

程序真正的编译链接执行的时候

实际上已经置换成了3.14

3.14被两次置换在了这个地方

那这个PI就叫作符号常量

那么变量是什么

跟常数相对应

我们看这是memory内存

如果a是一个变量

也就说是一个内存的存储单元

它是内存的一个存储单元

变量就要允许说

这个变量里边

变量是对应于内存的地址的

这个变量是可以被重新改变的

它可以改变成说

这个地址号里边再送过去个8

我在程序的运行过程里边

这个值又被改变了

再改成了256

都是同一个地址1000H

我们不知道它实际上在内存里边

到底是1000H还是别的什么地址

我们只知道我们给这个变量叫a

它和1000H对应的问题

是系统自己做的

我们只知道

a里边的内容是可以被重写的

还可以重新改变

这就叫变量

这里边我们关心的问题是

你这个a是个变量

它到底占了内存的多大地盘

放在内存的哪个位置

这有谁来做

是我们程序员来做

还是系统自己做

我们还是通过这个例子来看

在这个例子里边

大家有没有注意到

函数体里边有这么两句话

int给r送了0

还有一个float

给c和s都分别赋值了0

这里边重要的是这个int float

int float就是类型说明符

然后后面跟着是你的变量名表

就相当于

在这里边我们说int r=0

那就是说int是我们类型说明符

而后边的r是我们的变量

float后边的

float是类型说明符

c和s是我们的变量名

为什么说变量名表

变量可以是r一个

可以是c s还可以有别的

可以有多个

它们之间用逗号分开

在C里边

通常用的关于变量的定义

其实有很多

常用的就这四种

通常咱们的内存是分成了这们三大块

一块是红颜色的系统区

一块是

这个系统区就放操作系统

语言处理系统

那是系统级的在使用

在剩下的蓝颜色的深色的浅色的

都是我们用户可以用的

一部分是用来放咱们的程序的

一部分就是放数据的

在数据的这一块

我们平常定义的变量

比如说int r

r被放在数据区

float c和s也被放在数据区

因为你的r占两个字节

它占的存储单元就是两个字节

而c和s都比r大一倍

是因为你要的是float

存放类型

说明了它存储的空间

你说float

你就是要的空间比int要大

你说double就是比float要大

是通过这个类型

来说明你要的存储空间的大小

实际上这个类型

对我们编程序的人来说

是根据什么要大小

是根据你对这个数据的精度

比如说你在处理一个字符

你何必要一个float

它也不会有小数

所以就合理的使用

关于变量定义的语句至关重要

是因为我们

每一个程序里边几乎都会要用到它

它的规则是

先定义也就说先预约

让内存给你留好空

再赋值把数送到里边

最后才能使用

大家考虑一下

我如果没有预约

我直接能用吗

这必然不能

内存没给你那个空你怎么用

那我再说我没赋值能用吗

我们刚才讨论了关于常数和变量

那接下来我拉看关于赋值的问题

我们还拿这个例子

求已经知道圆的半径r

求圆的周长c和圆的面积s

我们对这个问题分析一下

有这么几点需要考虑的

一个是说

你无论是求周长还是求面积

你需要知道圆的半径

那计算机如何得到圆的半径

也就说计算机如何和你交互

还有得到的这个半径

以及你求的周长和面积

它在哪里放 存放在哪里

还有接下来

最核心的问题是你要计算

这计算模型是什么

也就说C它的计算公式是2πr

很简单圆面积是πr方

这个我们大家都知道

那如果是一个复杂问题

你就不是一嘴就能说出来的

你需要分析需要建立这个数学模型

最后一个问题不能没有的

把结果给我

计算机计算完了把结果输出来

进行最后的人机交互

那关于C程序

我们今天看到了一个最简单的概貌

我们对它做一点小结

当然变量里边留的

只是最后一次赋进去的值

所以你要试图给符号常量

那个符号里边去赋值

那是错的

是因为它根本就没在内存

它根本就没有存储单元

你的值是赋不进去的

所以符号常量是常量

千万不要把它认为是变量

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

1.2.2-C初步笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。