C语言大集合

     下面是学习C语言时总结的一些基础知识,希望对初学C语言的读者有些许作用,写的不好勿喷。

(1)

一. 简单程序的一般形式

1. 学习了解文件信息

2. #include 在本文件中导入其他文件

3. 一个程序中有且仅有一个main函数,他是程序的入口

3. 每条语句都要以分号结尾

4. 注释

1) // 注释一行

2) /* */注释多行

PS:注释仅仅是为了结束语句的作用,编译时并不会执行

二. 基本数据类型

1. 整型

1) short 短整数类型,占两个字节,取值范围是,五位数

1. 无符号类型(不包含负整数):0 ~ 65535(2^16-1)

2. 有符号类型(包含负整数):-32768 ~ 32767

2) int 整数类型,占四个字节,取值范围是,十位数

1. 无符号类型(不包含负整数):0 ~ 4294967296(2^32-1)

2. 有符号类型(包含负整数):-2147483648 ~ 2147483648

3) long 长整型,32位的系统占4个字节,64位的系统占八个字节,取值范围是,超过10位数的

2. 浮点型

1) float 单精度浮点数类型,占四个字节,6位有效数字

2) double 双精度浮点数类型,占8个字节,15位有效数字

PS:系统的默认类型是双精度浮点型Double,在使用单精度浮点型float类型时,需要在数字后面添加F或f用以区分

3. 字符型

1) char 占一个字节

2) 用于存储字母和标点等字符

3) 字符在计算机中采用二进制的ASCII码来存储,可以通过字符对应的ASCII码来比较字符的大小

4. 总结:必须掌握的

1) 整型,有四种类型,short表示五位数,int表示十位数,long表示十位以上的数

2) 浮点型有单精度和双精度,双精度的精确度高,小数,系统默认是双精度,后面加f可以表明该小数是单精度

3) char 用于存储字符及标点

5. 练习

声明short/int/long/char/f类型的变量各两种

三. 常量、变量

1. 常量:程序运行期间值不能被改变的值

比如:

3

5

2.3

'R'

2. 变量:程序运行期间值能被改变的值

1) 变量代表一个存储区域

2) 存储区域内存储的内容就是变量的值

3) 变量的值可以在程序运行期间改变

3. 变量的定义

1) 变量定义

格式

数据类型 变量名 = 初始值;

int age = 25;

int 指整数类型

age 指变量名

=  指将后面的初始值赋给变量

25  指初始值

;  指语句结束

I      2) 变量、常量命名规则

1. 只能由数字、字母、下划线组成,并且不能以数字开头

2. 不可以与系统保留字同名

å          3. 见名只意

4. 不能使用重复的变量名

å

5. 驼峰命名法

总结:必须掌握的内容

1. 什么是常量,什么是变量

2. 如果定义常量和变量

四. 运算符

1. 赋值运算符

用于给变量赋值,将等号右边的值赋给等号左边的变量

练习:如何交换两个int型变量的值

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;

5. 总结:必须掌握的内容

1) =    +=

2) ++  --

3) 条件运算符

五. 表达式

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 单、双精度浮点数

%c 字符

5) 格式转换控制

printf("%04d",12) 最小字段占四个位置,不足用0补齐,如果不加0试试效果

prinft("%-4d",112);最小字段宽度占四个位置,左对齐

prinft("%4.2f",1.2345);

最小字段宽度占四个位置,保留小数点后两位

6) 转义序列

\n  回车符

\\  打印\

%%  打印%

2. 输入函数 scanf()

1) scanf以回车确定输入结束,并且只接受大键盘的回车,不接受小键盘的回车

2) scanf("%d,%d",&num1,&num2); 输入的时候两个整型数之间必须有『,』,格式串中除了转换说明的其他字符都要从控制台输入

3) 不要在格式串后面加『\n』字符,会抵消掉人工输入的回车

3. 总结:必须要掌握的内容

1. prinft和scanf,这两个单词

2. 学会输入和输出指定的内容

3. 验证密码


(2)


一. 分支语句

1. BOOL 布尔类型

1). 在Xcode中想要使用布尔类型,需要导入stdbool文件

2). 布尔类型的值只有两个true和false,我们也可以给布尔类型赋0,表示假,赋非0表示真

2. 关系运算符

>  >= < <= == !=

主要用于比较运算,返回的结果只有真假两种情况,结果值用bool类型变量存储

3. 逻辑运算符

1) &&,逻辑与:运算符两边同时为真,整个逻辑表达式的结果才为真

2) ||,逻辑或:运算符两边同时为假,整个逻辑表达式的结果才为假

3) !,逻辑非:将表达式的结果取反

4. 总结必须掌握的内容

1) 怎么让Xcode支持布尔类型

2) 逻辑运算符的三种应用

二. if语句

1. 用if语句可以构成分支结构,它根据给的条件进行判定,以决定执行某个分支程序段

2. C语言的if语句三种基本形式

1) if(条件表达式){

语句段

}

当条件表达式为真,运行大括号内的语句段,否则继续执行下面的程序,如果在if括号的后面加上一个分号,试试效果如何

练习:控制台输入字符,判断如果输入的是m,则在控制台输出男性,否则输出女性

2) if(条件表达式){

语句段

}else{

语句段

}

当条件表达式为真时,运行if语句段,否则运行else语句段

练习:输入一个年份,判断该年份是否是闰年(能被四整除而不能被100整除,能被400整除)

3) if(条件表达式1){

语句1

}else if(条件表达式2){

语句2

}else if(条件表达式3){

语句3

}

条件表达式1为真,执行语句1,条件表达式2为真,执行语句2,条件表达式3为真,执行语句3

3) 总结

1. 会使用if做判断

2. 会使用if做多层判断

练习:

1) 从键盘输入一个字符,

2) 是数字打印This is a digital

3) 是大写字母打印this is capital letter

4) 是小写字母打印this is letter

5) 如果是其他字符,打印other

三. Switch语句

1. 多重选择,在日常生活中,常常需要把表达式和一系列值进行比较,从中找出当前匹配的值

2. 格式:

switch(表达式){

case 可能的值: {

语句1;

}break;

case 可能的值: {

语句2;

}break;

default :{

上面列举的值都不是的话,执行这段代码

}break;

}

3. 注意事项

1) switch语句和if-else相比,switch更容易阅读,更加直观

2) case后面的标签只能是整型常量或者整型表达式,不能用变量作为case的标签

3) default后面的break可以舍掉

4) 整个default语句可以舍掉

5) case中定义变量需要加{}

4. 总结:

1) switch的正确书写格式

4. 练习:

从控制台输入1-4,对应打印出春夏秋冬的英文词

4. 枚举类型

1. 枚举类型的目的是提高程序的可读性

2. 枚举值其实就是整形变量

3. 格式:

enum 枚举名字 {

枚举类型 = 初始值(数字或字符串),

summer,

autumn,

winter,

};

4. 枚举值表中罗列出一个事物的所有可能的状态,默认从0开始

5. 练习:

从控制台输入1-4,对应打印出春夏秋冬的英文词(使用枚举的方式)









(3)

一. 循环概述

一种好的语言应该能够提供一下三种形式程序流

1. 顺序

顺序执行语句序列

2. 分支

通过进行一个判断在两个可选的语句序列之间执行

3. 循环

在满足某个条件之前反复执行一个语句

1) 学会循环语句,你可以控制计算机循环做某件事情,计算机没有情感,重复做某一件事情,他不会有情绪的,也就多费点电,所以循环结构是程序设计中最能发挥计算机特长的程序结构。

2) 特点:在给定的条件成立时,反复执行某程序段,直到条件不成立为止。

3) 给定的条件成为循环条件,反复执行的程序段称为循环体

二. while循环

1. 格式

while(循环条件表达式){

循环体

}

2. while语句中的循环表达式一般是关系表达式或者逻辑表达式

3. While循环直到循环条件为假的时候,循环停止

4. 练习:

1) 计算1+2+3+....100的和

2) 计算100内所有是13倍数的数字之和

5. 循环辅助手段:break

在循环中,break主要作用是提前结束while循环,执行循环后面的语句,通常break语句总是与if语句连在一起,想想摘草莓

6. 循环辅助手段continue

continue语句能筛选不执行哪一次循环,但不会终止整个while循环

三. do..While循环

1. 格式

do {

循环体

}while(循环条件表达式);

2. 执行循环的时候,先执行循环体,在判断循环条件,直到条件不满足的时候,循环结束

3. 练习,判断控制台输的数字有几位

四. for循环

1. 格式

for(循环变量初值;循环条件;循环变量增量){

}

2. 循环条件为假的时候,循环结束

3. 用for循环练习:

1) 打印出1~3

2) 打印三遍1~3,每一遍打印都换行

3) 打印

1

1 2

1 2 3

4. 打印乘法口诀表

五. 总结

1) for最常用,通常用于知道循环次数的循环

2) while也很常用,通常用于不知道循环次数的循环

3) do...while不是特别常用,通常用于需要先执行一次的循环


(4)


一维数组 

 1. 之前我们所学的变量都是标量,标量只能保存单一数据,C语言也支持聚合变量,这类变量可以存储一组或者多组的数值  

 2. 数据变量就是聚合变量,但是只能存储相同类型的数值  

 3. 数组的每个成员称为一个数组元素 

 4. 数组定义    1) 格式      数据类型 数组名[数组长度] = {值1,值2}    2) 数组长度可以是常量、变量、表达式    3) 数组通过下标来存取值,第一个元素的下标是0,第二个元素的下标是1,依次类推    4)

 随机数      

  1. 导入框架

2. arc4random()%5 随机生成从0到4的随机数

5. 练习:

建一个数组,里面存放这咱们人的工号

二. for循环与数组

数组和for循环常常结合在一起使用,通过for循环对数组中的每个元素执行一些操作称为遍历数组

1. 系统不会检测,数组元素的下班是否越界,编程时必须保证下标不能越界

2. 数组是一个整体,不能直接参加运算,只能对单个元素进行处理

3. 练习:

从控制台输入5个学生的分数,并算出平均值

三. 宏定义

1. 格式

#define 宏定义的名字 被替代的内容

2. 无参宏和带参宏

四. 数组排序

1. 开发中经常会对一系列的数值经行排序:例如:对班级学员按照年龄、分数排序,常见的排序方法很多,最常用的是冒泡排序

冒泡排序原理:

1) 先比较第一个和第二个元素,如果第一个比第二个大,就交换他们两个的位置

2) 然后用第二个与第三个比较,如果第二个比第三个大,就交换位置,之后不断重复

PS:通过这方方式,让最大值也每一个元素进行比较。

3) 练习:

自定义一个包含五个元素的数组,在控制台重新给这五个元素赋值,然后,找到数组里面最大的值


 (5)

一. 二维数组

1. 类型说明符二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,之前学习的以为数组是一维数组,只能有一行元素,而二维数组能有多行数据。

2. 格式:

数据类型 数组名[][] = {

{值1,值2,值3},

{值4,值5,值6},

{值7,值8,值9},

}

3. 案例

1)定义一个四行四列的数组

2)对上诉的数组随机赋值

3) 打印上诉的二维数组每个元素

4) 打印上诉的二维数组的最大值,和

4. 练习:

1) 定义一个三行五列的二维数组,对其进行随机赋值

2) 打印整个数组的最大值、和

3) 打印每列的最大值

4) 按照列数打印该数组中的每个值

5) 将数组的行和列交换,存储另一个五行三列的数组中

二. 字符串数组

1. 字符串数组:数组当中的每个元素都是一个字符串,字符串是一维的字符数组,所以字符串数组实质上是二维字符数组

2. 格式

char 数组名[行数][列数] = {字符串1,字符串2...}

3. 字符串数组的存取

1) 字符串的访问和二维数组一样,都是通过下标来获取

2) 打印字符串数组中的每个字符串

3) 打印字符串数组中的每个字符

4) 打印字符串数组中的每个字符串的长度

4. 练习:

1) 输入三个单词,查找并输出最长的单词

2) 有五个名字的字符串数组,按照英文字母的大小,进行升序排序

三. 多维数组

当数组下标在2个或2个以上时,该数组称为多维数组,例如

int a[2][3][4]表示整形的三维数组,2层4行3列

一般通过三层for循环操作

1. 总结:

1)多维数组理论上,维数可以任意

2)多维数组的元素个数 = 各维数个数乘积

3)多维数组占用内存 = 元素个数乘以单个元素所占的空间

四. 总结

对于多维数组,定义的时候多一个[常量表达式],就多一个维度,几维就对应几层循环字符串数组实质是一个二维字符数组,注意每个字符串的长度不能超过第二个纬度的长度.

---------------------------------------------------------------------


                                                                                                   未完(接C语言大集合续)

你可能感兴趣的:(C语言大集合)