最新c语言基础知识资料Word文件下载.docx
《最新c语言基础知识资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新c语言基础知识资料Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
(二)变量:
在程序运行期间,变量的值是可以改变的。
1.变量必须先定义后使用。
2.刚定义尚未赋值的变量具有随机值。
3.定义变量要同时定义名字和类型。
4.变量名和变量值是两个不同的概念。
i.变量名实际是以这个名字代表一个内存地址。
ii.变量值就是该内存单元当前存储的值。
(三)标识符:
一个对象的名字。
1.只能由字母,数字和下划线三种字符组成,而且第一个字符必需为字母或下划线。
2.标识符的长度无限制,但不能以关键字作为标识符。
3.不合法的标识符:
M.D.John,#33,3D64,Include。
(四)数据类型:
就是对数据分配储存单元的安排,包括储存单元的长度以及数据的存储形式。
数据类型
宽度
Char
1B
Shortint
2B
Int
4B
Longint
Float
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个字节。
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
符号常量在使用之前必须先定义:
#define标识符常量名常量值
#define是一条预处理命令,称为宏定义命令,其功能是把该标识符定义为其后的常量值。
习惯上常量的标识符用大写字母,而变量名用小写字母。
(五)运算符:
1.算术运算符:
整数除法:
两个整数相除的结果为整数。
Ex:
5/3=1,舍去小数部分。
-5/3=-1,向零取整。
浮点除法:
保证除数和被除数中至少有一个是浮点数。
Ex:
5/4.0=1.25.
%模运算要求运算元为整数,结果也是整数。
5%3=2.
C语言没有乘方运算,但pow函数可以实现乘方运算。
pow(x,y)x的y次方。
#include<
math.h>
.
算数运算符的优先级与结合性:
先乘除后加减,从左至右。
不同类型数据的混合运算:
类型的自动转换,编译系统会自动把各操作系统操纵数转化为操作数中最长的类型。
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);
×
%f"
&
√
如果输入在格式控制字符串中除了格式字符还有其它字符,那么在输入时这些字符将被作为间隔符,要输入相同的字符。
scanf(“a=%d,b=%d"
a,&
b)a=12,b=34
在输入数据时遇到以下情况,则认为是一个数据输入的结束:
遇到空格键,回车键,tab键。
满足域宽,如%4d,输入4位结束。
遇到非法字符。
在输入字符型数据时,若格式控制字符中没有非格式字符,则认为所有输入的字符均为有效字符。
如:
%c%c%c"
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种循环可以互相嵌套。
三种循环的比较:
一般情况下,三种循环可以互相代