第二章 程序设计起步【🆗】
2.1 计算圆面积
例1:蔬菜大棚自动灌溉装置射程为15m,求喷灌面积
#include <stdio.h>//包含头文件
#define PI 3.14//将符号PI的数值定义为3.14
double Area(int r)//自定义函数功能
{
double s;//定义面积变量为s
s=PI*r*r;//计算s
return s;//函数返回s
}
int main(void)//主函数一定要有
{
double s;//定义s 这里的s不是函数中的s 函数中的s是形式参数
s=Area(15);//将实际参数15传入函数 替换函数中的形式参数
printf("喷灌的面积是:%f",s);//输出
return 0;//主函数返回0 其实也可以没有
}
2.2 结构化程序设计
①C语言程序是模块化的,C程序由【函数】组成,用户创建的函数,或者C语言编译器提供的函数,可充当新函数的基础。
②C语言提供的大量函数都被集中存放在标准库头文件中,如printf()就在stdio.h文件中定义,使用时必须把stdio.h包含进源程序中
③C语言在规划程序时能够首先确定需要什么样的函数,以及应该如何将他们联系起来,然后再编写每一个函数以完成他们应当执行的任务
例2:用户输入喷射半径,计算面积【改进 让用户自己输出】
#include <stdio.h>
#define PI 3.14
double Area(int r)
{
double s;
s=PI*r*r;
return s;
}
int main(void)
{
int r;
double s;
printf("请输入半径:");//这里不同 接收用户输入为r
scanf("%d",&r);
s=Area(r);
printf("面积是:%f",s);
return 0;
}
2.3 必备知识
1 标识符
什么是标识符
【函数名称】【变量名称】以及允许在程序中使用的所有单词统称为标识符
标识符命名规则【重要】
①字母、数字、下划线组成,必须由字母或下划线开头
②标识符中字符个数不能超过规定长度
③严格区分大小写
关键字【知道常用的就可以了】
①又称保留字,是编程语言为特定用途预先定义的一个字,只能按其规定的方式用于它预先定义的用途
②C语言有32个关键字,全是小写
auto | defaule | float | register | struct | volatile | break | do |
---|---|---|---|---|---|---|---|
for | return | switch | while | case | double | goto | short |
typedef | char | else | if | signed | union | const | enum |
int | sizeof | unsigned | continue | extern | long | static | void |
预定义标识符
C语言中预先定义的字符,一般为C语言标准库中提供的函数名,如之前使用的printf,具有预定义的用途,但用户可以重新定义这些标识符的用途
用户自定义的标识符
用户可以创建自己的标识符来命名数据和函数,需要遵循以下几点
①所有关键字和预定义标识符都不可以用于用户自定义标识符
②标识符要有意义,增加程序的可读性
2 常量和变量
常量
程序运行过程中,值不能改变的量,如“15”,“3.14”这种字面值
变量
程序中可以改变的量,变量名是由用户根据需要自己创建的标识符
3 数据类型
整型类型【记住占的存储空间大小】
类型 | 存储空间-字节 | 取值范围 |
---|---|---|
int | 4 | -231-(231-1) |
short | 2 | -215-(215-1) |
long | 4 | -231-(231-1) |
unsigned int | 4 | 0-(2^32-1) |
unsigned short | 2 | 0-(2^16-1) |
unsigned long | 4 | 0-(2^32-1) |
整型常量的不同进制表示【看到实例知道是什么进制】
整型常量表示 | 实例 | 说明 |
---|---|---|
十进制 | 12,-128 | |
八进制 | 017,-063 | 0开头 |
十六进制 | 0x34,0X4F | 0x或0X开头 |
整形常量的不同类型表示【看到实例知道是什么类型数据】
整型常量表示 | 实例 | 说明 |
---|---|---|
有符号整型常量 | 12,-128 | 不加任何标记 |
无符号整型常量 | 70u,456U | 末尾加u或U |
长整型常量 | -128l,128L | 末尾加l或L |
无符号长整型常量 | 23lu,23Lu,23LU,23lU | 末尾加lu |
整型变量
例3 整型变量的定义和使用
#include <stdio.h>
int main(void)
{
int month,day;//同时定义两个整型变量
short b;
month=12;
day=365;
b=7;
printf("%d月%d天\n",month,day);
printf("short=%d\n",b);
return 0;
}
浮点类型【知道占的字节数】
浮点类型 | 存储空间-字节 | 有效数字 |
---|---|---|
float | 4 | 6-7 |
double | 8 | 15-16 |
long double | 8 | 15-16 |
浮点类型常量的表示形式【知道科学计数法表示】
浮点类型常量 | 实例 | 说明 |
---|---|---|
小数形式 | +3.4,3.4,.45,-.2 | |
指数形式 | 123.6e9(123.6*10^9) | e代表10为底的指数,前面必须有数字,后面必须是数字 |
浮点类型变量
例4 浮点类型变量的定义和使用
#include <stdio.h>
int main(void)
{
float temperature;//定义浮点类型变量
temperature=6.5;//浮点类型变量赋值
printf("温度是:%.2f",temperature);
return 0;
}
不同类型变量的声明和定义
①选择使用有意义的变量名来定义合适类型的变量
②变量类型相同时,可以在一行声明多个变量
③不同类型的变量要分别定义
④不同类型的变量不能同时声明
变量的初始化
//1 声明变量的同时指定初值
int a=2;
//2 先声明变量 然后赋值
int a;
a=2;
//3 从外部读入数据存入指定内存
int a;
scanf("%d",&a);
4 基本运算【重要】
算术运算【除法重要】
运算符 |
---|
+ 正号 |
- 负号 |
+ 加号 |
- 减号 |
* 乘法 |
/ 除法 |
% 模 |
赋值运算【从右往左赋值 重要】
//1 赋值运算符= 优先级很低 变量在左边 表达式在右边 从右到左运算
a=3;
a=a+3;
a=b+3;
//2 赋值表达式的值与类型
x=10;
//表示将10赋值给左边变量x,表达式的值就是=左侧变量x的值10,类型和x一致
//因此表达式可以作为一个整体参与运算
a=b=c=d=10;
//3 如何理解从右往左运算
a=b=40+(c=d=8);
//①括号内先运算 从右往左 首先d=8 c=8
//②向左 b=40+8=48
//③向左 a=48
复合赋值运算符
运算符 | 实例 | 等价式 |
---|---|---|
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |
%= | a%=b | a=a%b |
赋值运算符训练
int a=4,b=5,c=6;
a*=b-=c+3;
//①c+3=9
//②b-=9 相当于b=b-9 所以b=-4
//③a*=-4 相当于a=a*-4 所以a=-16
a+=b-=c*=2;
//①c=c*2 所以c=12
//②b-=12 所以b=b-12 b=-7
//③a+=-7 所以a=-3
sizeof运算【可以和前面整数数据类型的长度结合】
单目运算符,用来计算某种类型或数据所占用的【字节数】
//计算数据类型所占字节数
sizeof(int);//返回4
sizeof(char);//返回1
sizeof(long double);//返回8
//计算数据所占字节数
double a=2.0;
float b=3.4;
sizeof(a);//返回4
sizeof(b);//返回8
C语言其他运算符
略 以后再学
5 数学库函数【重要 记住这些函数】
//必须引入库文件
#include <math.h>
函数 | 用途 | 实例 | 使用函数 |
---|---|---|---|
abs(x) | 整数x的绝对值 | |-4| | abs(-4) |
fabs(x) | x的绝对值 | |-3.5| | fabs(-3.5) |
exp(x) | e的x次方 | e^-3.2 | exp(-3.2) |
log(x) | 求lnx | ln18.697 | log(18.697) |
log10(x) | 求log10 x | log10 18.697 | log10(18.697) |
pow(x,y) | 求x^y | 2^4 | pow(2,4) |
sqrt(x) | 求根号x | 根号16 | sqrt(16) |
6 printf()函数和scanf()函数【重要 记住格式控制符】
printf("格式控制字符串",输出值参数列表);
%d | 输出十进制整型 |
---|---|
%f | 输出十进制浮点数 |
%o | 输出无符号的八进制整型 |
%X %x | 输出十六进制整型 |
%E %e | 科学计数法输出十进制浮点数 |
scanf("格式控制字符串",地址列表);
//对变量进行赋值时,要注意加上&
%d | 输入十进制整型变量的值 |
---|---|
%f | 输入float类型变量的值 |
%lf | 输入double类型变量的值 |