C语言的基本概念
一.简单程序的一般程序.
include
//std标准i输入o输出//标准输入输出文件,想当前文件有
文件的功能
main函数是程序的入口,一个程序有且只有一个main函数
intmain(intargc,constchar* argv[])
{
printf("Hello, World!\n");
return0;
}
1)每条语句都要以分号结尾
2 ) 注释分 :// 注释一行 和 /* */ 注释多行
PS:注释仅仅是为了结束语句的作用,编译时并不会执行
二.基本的数据类型.
1.整型
1)short短整数类型,占两个字节,取值范围是,五位数
1.无符号类型(不包含负整数):0-65535(2^16-1)
2.有符号类型(包含整数):-32768-32768
2) int整数类型,占四个字节,取值范围是10位数
1.无符号类型(不包含负整数):0-4294967296(2^32-1)
2.有符号类型(包含负整数):-2147483648-2147483648
3)long长整形,32位的系统占四个字节,64位的系统占8个字节,。取值范围 是超过10位的数。
2.浮点型
1)float 单精度浮点数类型,占四个字节,6位有效数字
2)都不;double双精度浮点数类型,占8个字节,15位有效数字
ps:系统的默认类型是双精度浮点数类型double,在使用单精度浮点型float类型时,需要在数字的后面加上F或者f用于区分
3.字符型
1)char占一个字节 用单引号''括起来,如'a'.
2)用于储存字母和标点等符号
3)字符在计算机中采用二进制ASCII码来储存,可以通过字符对应的ASCII码来比较字符的大小
三.常量和变量
1.常量:程序运行期间值不能被改变的值
2.变量:程序运行期间能够改变的值
1)变量代表一个存储区域
2)存储区域内的内容就是变量的值
3)变量的值可以在程序运行期间改变
3.变量的定义
1)变量定义
格式
数据类型 变量名 = 初始值;
int age = 25;
int 指整数类型
age 指变量名
= 指将后面的初始值赋给变量
25 指初始值
; 指语句结束
2)变量、常量命名规则
1. 只能由数字、字母、下划线组成,并且不能以数字开头
2. 不可以与系统保留字同名
3. 见名只意
4. 不能使用重复的变量名
5. 驼峰命名法
四.运算符
1. 赋值运算符
用于给变量赋值,将等号右边的值赋给等号左边的变量
2. 算术运算符
+ - * / %
1) 除号右边的数字不能为0
2) 取余运算符两边必须都是整数
3) 两个整数相除,得到的是整数
4) 小数?和整数相除,得到的小数
++ --
1) ++或--在前,先执行++或--,后运算
2) --或++在后,先运算,后执行++或--
3. 复合运算符
+= -= = /= %=
1) a += b; ==> a = a+b;
2) a -= b; ==> a = a-b;
....
4. 条件运算符
格式: 条件表达式 ? 真结果表达式 : 假结果表达式
比如:
int a = 3;
int b = 5;
int c = 0;
c = a > b ? a : b;
五.表达式
1. 常量、变量、运算符的组合
2. 每个表达式都会有运算结果
3. 例如: 3+5, a+b
4. 语句,用结束处的一个分号表示,语句是程序执行的最小单位
六.输入输出函数
1. 输出函数 prinft()
1) printf函数被设计用于显示格式串,并在该串中的指定位置插入可能的值
2) 格式:
prinft("格式串",表达式1,表达式2,...);
3) 格式串中包含普通字符和转换说明
1. 转换说明以字符%开头。是用来表示打印过程中待填充的占位符,如果后面跟的是d,表明打印时要在这个位置打印出一个整形数据。
2. 普通字符,会将普通字符完整的打印出来
4) 转换说明符
%d 整型
%hd 短整型
%ld 长整形
%f 单、双精度浮点数%
g不带小数后的0
%c 字符
%s字符串
5) 格式转换控制
printf("%04d",12) 最小字段占四个位置,不足用0补齐,如果不加0试试效果
prinft("%-4d",112);最小字段宽度占四个位置,左对齐
prinft("%4.2f",1.2345);
最小字段宽度占四个位置,保留小数点后两位
6) 转义序列
\n 回车符(代表换行,puts("“);也代表换行)
\ 打印
%% 打印%
2. 输入函数 scanf()
1) scanf以回车确定输入结束,并且只接受大键盘的回车,不接受小键盘的回车
2) scanf("%d,%d",&num1,&num2); 输入的时候两个整型数之间必须有『,』, 格式串中除了转换说明的其他字符都要从控制台输入
3) 不要在格式串后面加『\n』字符,会抵消掉人工输入的回车
3. 验证密码
#include
int main(intargc,constchar argv[])
{
//设定一个正确的密码
intcorrectPaw =123;
//声明一个储存密码的变量
int inputPawc;
//输入一个密码的友好提示
printf("请输入您的密码:");
scanf("%d",&inputPawc);
correctPaw ==inputPawc ?printf("恭喜你笨蛋密码输入正确\n"):printf("对不 起傻瓜密码错误,请重新输入:\n");
return0;
}
七 .if 语句和switch语句
一. BOOL布尔类型
C89
没有布尔类型
int flag;flag=0;...flag=1;
程序员自己解决:#define TRUE 1;#define FALSE 0;
#define BOOL int;
C99
提供了bool类型。实际就是int型。
只能复制为0或1.存储非0值会导致变量复制为1.
二. 关系运算符
> >= < <= == !=
主要用于比较运算,返回的结果只能有真假两种情况,结果用bool类型储存
三.逻辑运算符
1)&&(逻辑与):运算符两边同时为真的时候,整个表达式的结果为真
2)||(逻辑或):运算符的两边同时为假的时候,整个逻辑表达式的结果为假
3) !(逻辑非) :将表达式的结果取反
注意逻辑与和逻辑或的短路现象
四.if语句
用if语句可以构成分支结构,它根据给的条件进行判定,以决定执行某个分支程序段
c语言的if语句有三种基本形式
1. if(条件表达式)
{
}
当条件表达式为真,运行if语句块,否则,不运行if语句块,-继续执行下面的程序
当上述代码表达式括号后面跟了“;”,则导致if语句为空语句,大括号内的语句跟if语 句没有关系,无论条件真假都会执行该语句
2. if(条件表达式)
{
语句
}
else
{
语句
}
当条件表达式为真时运行if语句块,否则运行else语句块
3.if(条件表达式1)
{
语句1
}
else if(条件表达式2)
{
语句2
}
else if(条件表达式3)
{
语句3
}
语句3:
条件表达式1为真,执行语句1,
条件表达式2为真,执行语句2,
如果条件表达式1与条件表达式2都为假,执行语句3
注意事项
1.比如表达式1为真,表达式2也为真,只会执行语句1,语句2不会执行。就算所有表达式都为真,也会执行语句1
2.最后一个可以是else,也可以是else if结束
五.switch语句
多重选择,在生活中,常常需要把表达式和一系列值进行比较,从中找出当前匹配的值
switch(表达式)
{
case :{语句1;break;}
case :{语句2;break;}
case :{语句3;break;}
default {语句n+1;break;}
}
或者
条件判断之switch语句(又叫开关语句)
语法:switch(表达式)
{
case 值1:
做值是1的事
break;
case 值2:
做值是2的事
break;
case 值3:
做值是3的事
break;
……….
deflault:
做前面值都不是的值
}
break用switch...case 中用于结束某个case,然后执行switch之外的语句
1)switch语句和if else级联式比较,switch语句往往比级联式更容易阅读,更直观
2)switch--开关,case--情况,开关决定发生的情况
3)case后边的标签只能是整型常量或者整形表达式,不 能用变量作为case的标签
注意事项
1.default后面的break可以舍掉
2.整个default语句都可以舍掉
3.多个case可以运行一个语句块
4.case中定义变量需要加 {}
六.枚举类型
1)可以使用枚举类型声明代表整数常量的符号名称
2)枚举类型的目的是提高可读性
3)枚举值其实就是整型变量
枚举类型
enum season
{
spring = 0,
summer,
autumn,
winter,
};
其中spring=0,summer=1....
枚举值表中可以列出一个事物的所有的可能的状态,默认值从 0开始
核心作用:将人能够看懂的标示符与计算机能看懂的数字建立对 应的关系
总结:
1.if以及switch是实际开发最常用的语法
2.if语句的表达式通常是关系表达式或者逻辑表达式
3.switch...case语句通常会有break结束case语句的执行
八 . 循环
一.循环概述
一种好的语言应该能够提供以下三种形式程序流
1.顺序
顺序执行语句序列
2.分支
通过进行一个判断在两个可选的语句序列之间执行
3.循环
在满足某个条件之前反复执行一个语句
1) 学会循环语句,你可以控制计算机循环做某件事情,计算机没有情感,重复做某一件事情,他不会有情绪的,也就多费点电,所以循环结构是程序设计中最能发挥计算机特长的程序结构。
2) 特点:在给定的条件成立时,反复执行某程序段,直到条件不成立为止。
3) 给定的条件成为循环条件,反复执行的程序段称为循环体
二.while循环
1.格式
white(循环条件表达式)
{
循环体
}
- while语句中的循环表达式一般
- while循环知道循环条件为假的时候,循环停止
- 循环辅助手段:break
在循环中,break主要作用是提前结束while循环,执行循环后面的语句,通常break语句总是与if语句连在一起,想想摘草莓 - 循环辅助手段continue
continue语句能筛选不执行哪一次循环,但不会终止整个while循环
三. do..While循环 - 格式
do
{
循环体
}while(循环条件表达式); - 执行循环的时候,先执行循环体,在判断循环条件,直到条件不满足的时候,循环结束
- 练习,判断控制台输的数字有几位
四. for循环- 格式
for(循环变量初值;循环条件;循环变量增量)
{
循环体
}
1)首先看初始值,确定循环的起点在哪里
2)看判断条件,如果成立,执行循环体;不成立,退出循环
3)循环体执行结束后,看自加或者自减 - 循环条件为假的时候,循环结束
- 格式
- 打印乘法口诀表
9*9乘法表
include
intmain(intargc,constchar* argv[])
{
//第一层for循环换行,index表示第几行
for(intindex =1; index<10; index++)
{
printf("\n");
//利用第二层for循环打印每一行的,表示该行的第几个
for(inti =1; i<=index; i++)
{printf("%d%d=%d ",i,index,index*i);}
}
printf("\n");
return0;
}
九 . 循环,数组的概述
一.数组
1.之前我们所学的变量都是标量,标量只能保存单一数据,C语言也支持聚合变量,这类变量可以储存一组或者多组的数值。
2.数据变量就是聚合变量,但是只能存储相同类型的数值
3.数组的每个成员称为一个数组元素
4. 数组定义
1) 格式
数据类型 数组名[数组长度] = {值1,值2}
2) 数组长度可以是常量、变量、表达式
3) 数组通过下标来存取值,第一个元素的下标是0,第二个元素的下标是1,依次类推
4) 随机数
1. 导入框架
2. arc4random()%5 随机生成从0到4的随机数
二. for循环与数组
数组和for循环常常结合在一起使用,通过for循环对数组中的每个元素执行一些操作称为遍历数组
1. 系统不会检测,数组元素的下班是否越界,编程时必须保证下标不能越界
2. 数组是一个整体,不能直接参加运算,只能对单个元素进行处理
三. 宏定义
1. 格式
#define 宏定义的名字 被替代的内容
2. 无参宏和带参宏
四. 数组排序
1. 开发中经常会对一系列的数值经行排序:例如:对班级学员按照年龄、分数排序,常见的排序方法很多,最常用的是冒泡排序
冒泡排序原理:
1)先比较第一个和第二个元素,如果第一个比第二个大 ,就交换他们两个的位置
2) 然后用第二个与第三个比较,如果第二个比第三个大,就交换位置,之后不断重复
PS:通过这方方式,让最大值也每一个元素进行比较。
数组能够存放多个同类型的数值,相当于一个存放数值的容器
*格式:int list[4]={1,2,3,4};
数据类型数组名[该数组的容量]={赋初值}(用大括号括起来)
*数组里面的每一个只,就叫做数组的元素
*数组的存取相应值,通过数组的下标完成的