C语言

一、     目标

a)   SRS—分析—画流程图—code

b)   给你一段程序,能看懂运行过程,写出运行结果

c)   养成良好的编码习惯—代码前需要加注释

为性能测试做铺垫;为后期学习其他语言打基础;提高测试的深度

注意:没基础—多练;有基础—深度/帮助

二、     课程安排

a)   第一天

i.         程序是什么

ii.         程序的组成

iii.         面向过程的编程思想

iv.         函数的定义和使用

b)   第二天

i.         程序的算法—分支

ii.         程序的算法—循环

c)   第三天

i.         程序的其他数据结构

1.   数组

2.   结构体

ii.         购物系统的设计分析

第一天

一、     语言的发展史

二、     程序的组成

程序 =数据结构 + 算法

功能 = 输入/输出 + 处理逻辑

数据结构:

1 + 1 =2 固定的,已知的 —常量

x + y = z 变化的,未知的 —变量

x1+x2+x3+……= y 变化的,未知的,一组相同类型 —数组

name、age、salary 不同类型,多组,变化的未知的 —结构体

数据类型:

int —整型(整数);float—浮点型(6位小数);char —字符型(字母、数字、汉字)

double —双精度(12位小数)

算法:

顺序

40d0f7d2d503f62173c7d83b20b09770.png

分支

2a794b0c57e3295e14020fab1e5cbf3f.png

循环

b5fb9c9785e07699ee634b103fb1bef6.png

三、    面向过程的编程思想

例子:求两整数之和

分析:

1、确定数据结构和数据类型

数据结构:输入—两个变量;输出:一个变量

数据类型:int

2、确定算法

顺序

3、画出流程图

55b37a462552d07262c41c4ff06d0590.png

4、将流程图中的文字复制到代码模板中,作为注释,把注释翻译成代码

单行注释– //多行注释– /* xxx */

代码模板:

1、程序说明:说明程序实现的功能

2、头文件:#include

标准输入输出头文件,需要用到头文件中的一些函数,所以需要提前加载进程序

字符串头文件

3、函数声明(自定义函数需要):

4、主函数的实现:voidmain()

5、自定义函数的实现:

1、定义变量:

int a; —-数据类型 变量名;

2、赋值:a = 5; —变量名 = 值;

int a = 5;

3、输入函数

scanf(“%d”,&a);

第一部分:接收的数据类型–%d-int;%f-float;%c-char;

第二部分:用哪个变量接收:&变量名

4、输出函数:

printf(“%d”,c);

第一部分:输出的数据类型–%d-int;%f-float;%c-char;

第二部分:输出哪个变量:变量名

注意:

1、     语句未加分号;2、符号是中文;3、格式不对;4、单词不对

2、     写一句,编译一句

3、     输出函数的变化:

a)   printf(“%d+%d=%d”,a,b,c);

b)   printf(“%d”,a+b);

引号内部的字符除了%d/%f/%c其他字符全部原样输出,第二部分的变量也可用表达式代替

思考:系统内的多个模块编写的代码是否都写在主函数里面

四、     函数的定义和调用

函数:若干条语句组成的一段代码的集合,能够完成某项功能

分类:主函数(main)、自定义函数(除main外)

定义函数:类型 函数名—int add() void—无返回值的

函数声明:同定义语句

1、调用:通知自定义函数工作—直接写函数名即可

2、传参:给自定义函数传数据—在括号中写上参数即可

3、接收返回值:接收函数return的结果—变量=函数名()

局部变量:在任意函数中定义的变量,作用域不能出大括号

全局变量:不在大括号中定义的变量,作用域可在任何函数中使用

类型:4种

注意:让自定义函数工作首先得调用,然后根据被调用函数的实际情况考虑是否传参和接收返回值

练习:

1、     从键盘接收两个数,求积(4种类型)

2、     从键盘接收两个数,分别求和差积商(使用不同函数类型)

补充:

强制类型转换:(float)a

输入数据:scanf(” %c”,&a); —在%c前面加空格,可以过滤空白字符