最新c语言基础知识资料.docx
《最新c语言基础知识资料.docx》由会员分享,可在线阅读,更多相关《最新c语言基础知识资料.docx(20页珍藏版)》请在冰豆网上搜索。
最新c语言基础知识资料
C语言期末复习之基础知识篇
---杨士帅
一C语言概述
Ø程序:
一组计算机能够识别和执行的指令。
指令的有序的集合。
Ø计算机语言:
人和计算机交流信息,计算机和人都能识别的语言
ØC语言的注释:
//单行注释
/*……*/多行注释。
ØC语言的结构:
1.由一个或多个源程序文件组成。
2.函数是C程序的基本单位。
3.一个C程序至少含有一个main函数,也可以由一个main函数和若干个其他函数组成。
4.C的这些特点容易实现程序的模块化。
5.C程序总是从main函数开始执行,而且不论main函数的位置如何。
Ø每个语句和数据的定义后面必须有一个括号。
ØC语言本身没有输入输出函数,输入输出操作是库函数scanf和printf提供的。
二数据的类型和运算
(一)常量:
在程序运行的过程中,其值不能被改变。
1.整型常量:
1000.
2.实型常量:
0.34,12.34e3.
3.字符常量:
’a’,’\n’.
4.字符串常量:
“boy”。
5.符号常量:
#definePI3.1416
(二)变量:
在程序运行期间,变量的值是可以改变的。
1.变量必须先定义后使用。
2.刚定义尚未赋值的变量具有随机值。
3.定义变量要同时定义名字和类型。
4.变量名和变量值是两个不同的概念。
i.变量名实际是以这个名字代表一个内存地址。
ii.变量值就是该内存单元当前存储的值。
(三)标识符:
一个对象的名字。
1.只能由字母,数字和下划线三种字符组成,而且第一个字符必需为字母或下划线。
2.标识符的长度无限制,但不能以关键字作为标识符。
3.不合法的标识符:
M.D.John,#33,3D64,Include。
(四)数据类型:
就是对数据分配储存单元的安排,包括储存单元的长度以及数据的存储形式。
数据类型
宽度
Char
1B
Shortint
2B
Int
4B
Longint
4B
Float
4B
Double
8B
Longdouble
80B
整数的默认时signed,各整数类型均可加修饰符unsigned表示无符号整数类型,unsignedint可以简写成unsigned.
1.整型:
Ø一个十进制数是0到9的序列。
Ø十六进制应该加前缀0x。
如:
0xfa,0xAE03
Ø八进制应该加前缀0.如:
030.
Ø使用科学记数法,e/E的后面绝对不能在跟小数,且E/e的前面必须有值。
2.字符型:
Ø用单引号括起来的单个字符。
如:
’a’,’0’.实际上存储的是该数据的ASCII码。
所以也可以把他们看成是整型量,C语言容许对整型变量赋以字符型,也允许对字符变量赋以整形值。
3.转义字符:
转义字符
含义
\b
Backspace
\t
Tab
\n
换行
\r
回车
\”
双引号
\’
单引号
\\
反斜杠
4.字符串:
ØC语言中并没有字符串类型,用字符数组来处理字符串。
Ø字符串是由一对双引号括起来的字符数列。
Ø字符串常量和字符常量的区别:
Ø字符常量由单引号括起来,字符串常量由双引号括起来。
Ø字符常量只能是单个字符,字符串常量则可以是一个或多个字符。
Ø字符常量占一个字节的内存空间,字符串所占的内存空间常量等于字符串中的字符数加一。
增加的一个字节中存放字符‘\0’.
ØASCII为0,这是字符串结束的标志。
ØEx:
Ø‘a’在内存中占一个字节,“a”在内存中占2个字节。
5.符号常量:
Ø在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义:
#define标识符常量名常量值
Ø#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。
习惯上常量的标识符用大写字母,而变量名用小写字母。
(五)运算符:
1.算术运算符:
Ø整数除法:
两个整数相除的结果为整数。
Ex:
5/3=1,舍去小数部分。
-5/3=-1,向零取整。
Ø浮点除法:
保证除数和被除数中至少有一个是浮点数。
Ex:
5/4.0=1.25.
Ø%模运算要求运算元为整数,结果也是整数。
Ex:
5%3=2.
ØC语言没有乘方运算,但pow函数可以实现乘方运算。
pow(x,y)x的y次方。
#include.
算数运算符的优先级与结合性:
先乘除后加减,从左至右。
Ø不同类型数据的混合运算:
类型的自动转换,编译系统会自动把各操作系统操纵数转化为操作数中最长的类型。
EX:
若int型与float或double型数据进行运算时,系统会自动把int与float型数据转化为double型,然后在进行运算,结果时double型。
2.自加自减运算符:
Øi++,i--:
在使用i之后将i的值加/减1.
Ø++I,--i:
在使用i之前,先将i的值加/减1.
3.强制类型转换:
(double)a将a转化为double类型。
短类型->长类型安全
长类型->短类型有可能会丢失数据。
4.运算符的优先级:
1,()、{}、[]、.、(结构体成员运算符)、->(指向结构体成员运算符)
2,单目运算符!
(非)、--(自减)、++(自加)、~(按位取反)、正号(+)、负号(-)
3,算术运算符*、%、/,+、-
4,关系运算符<、>、>=、<=,==、!
=
5,逻辑运算符&&和||
6,赋值运算符=
7,逗号运算符(表达式1),(表达式2),(表达式3)...
还有就是左右运算顺序
a+b+为双目运算符,(a>b)?
a:
b中?
:
为3目运算符.!
a为单目运算符.
单目,三目运算符都为自右向左结合,双目运算符除赋值运算符都为自左向右结合.
5.关系运算符:
>,<,>=,<=,==,!
=.用来比较两个操作数之间的关系,运算结果为1或0.
6.逻辑运算符:
!
,&&,||。
用来实现逻辑运算和逻辑判断。
用非0表示逻辑值的true,用0表示逻辑值的false。
7.条件运算符:
三目运算符:
表达式a?
表达式b:
表达式c
若表达式的值非0,则返回表达式b的值;若表达式的a的值为0,则返回表达式c的值。
8.逗号运算符:
用来将若干独立的表达式分隔并连接构成一个逗号表达式。
9.赋值运算符:
变量=表达式。
右结合性。
三输入输出函数
(一)控制台I/O:
程序与外界交流。
(二)C语言中所有的I/O都是由库函数完成的,要用#include将相关头文件包含在源文件当中。
使用标准输入输出函数时要用到stdio.h文件。
(三)格式输出函数:
printf(“格式控制字符串”,表达式列表)。
格式字符
意义
d,i
以带符号的十进制输出整数
o
以八进制形式输出无符号整数(不带前缀0)
X,x
以十六进制的无符号数输出整数(不带前缀0x)
u
以无符号的十进制形式输出整数
f
以小数的形式输出单,双精度实数,隐含6位小数
E,e
以指数的形式输出单,双精度实数
G,g
以%f或%e中较短的输出宽度输出单、双精度实数
c
输出单个字符
s
输出字符串
格式修饰符:
¡%-m.nlf,%-mld
字符
说明
l
用于输出长整形数据以及double型数据
m
数据显示的最小宽度
n
对实数,表示输出n位小数。
对字符串,表示截取的字符个数。
-
输出的数字或字符在显示宽度区域内左对齐。
Ø未指定输出宽度m,则按实际位数输出。
Ø未指定小数位数,默认6位。
Ø宽度计算中小数点要占一位。
Ø若数据实际宽度比制定宽度要小,默认右对齐,即左补空格。
有修饰符-,则左对齐,即右补空格。
Ø若数据的实际宽度比指定宽度大,则按实际宽度输出。
<4>格式输入函数:
用户用指定的格式从盘上把数据输入到指定的变量中。
scanf(“格式控制字符”,变量地址列表);
Ø在scanf语句的格式字符串中,如果没有非格式字符在“%d%d%d”之间做输入时的间隔,在输入时要用一个或一个以上的空格或回车或TAB键作为输入数据之间的间隔。
Øscanf函数中的格式控制后面应当是变量地址,而不是变量名。
Ø不能用格式控制来规定输入数据的精度。
¡:
scanf("%7.2f",&a);×
scanf("%f",&a);√
Ø如果输入在格式控制字符串中除了格式字符还有其它字符,那么在输入时这些字符将被作为间隔符,要输入相同的字符。
Øscanf(“a=%d,b=%d",&a,&b)a=12,b=34
在输入数据时遇到以下情况,则认为是一个数据输入的结束:
遇到空格键,回车键,tab键。
满足域宽,如%4d,输入4位结束。
遇到非法字符。
Ø在输入字符型数据时,若格式控制字符中没有非格式字符,则认为所有输入的字符均为有效字符。
¡如:
scanf("%c%c%c",&a,&b,&c);
●只有当输入为:
def时(即:
不能有间隔),才能把‘d’赋于a,‘e’赋予b,'f'赋予c。
四流程控制
(一)顺序:
Ø按语句的先后顺序依次执行。
Ø复合语句:
可用{}括起来的多个语句,构成一个复合语句。
在C语言中复合语句被认为是一条语句。
(二)分支:
if语句:
实现两个分支的选择结构。
最常用的3种if语句的形式:
1.if(表达式)语句1(没有else子句)
2.if(表达式)语句1
else语句2(有else子句)
3.if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
┆
elseif(表达式m)语句m
else语句m+1
IF嵌套:
在if语句中又包含一个或多个if语句称为if语句的嵌套。
else总是与它上面最近的为配对的if配对。
if()
if()语句1
else语句2
else
if()语句3
else语句4
Switch语句:
实现多分支的选择结构。
根据表达式的值,使流程跳转到不同的语句。
switch语句的一般格式:
switch(表达式)
{case常量1:
语句1
case常量2:
语句2
┇┇┇
case常量n:
语句n
default:
语句n+1
}
switch语句中表达式和常量可以是整形以及字符型。
任何两个case后面的常量不可有相同的值。
先计算表达式的值,在根据表达式的值转向不同的分支。
每个case分支的语句无需用{}括起来。
每个case分支都是入口点。
break语句时转移语句,即跳出switch,无break语句,将执行入口点之后的所有语句。
(三)循环:
ØWhile(表达式)语句
先判断循环条件表达式的值,若为真,则执行循环体;若为假则不执行循环体语句。
Ødo
循环体语句
whilie(表达式)
先无条件执行一次循环体,然后在判断循环条件是否成立。
ØFor(表达式1;表达式2;表达式3)
循环体语句。
表达式1:
为循环变量设置初始值。
表达式2:
判断是否继续循环。
表达式3:
修改循环变量的值。
循环嵌套:
一个循环体内又包含另一个完整的循环结构,称之为循环嵌套。
内层循环中还可以嵌套循环,这就是多层循环。
3种循环可以互相嵌套。
三种循环的比较:
Ø一般情况下,三种循环可以互相代