C语言知识复习资料Word文件下载.docx
- 文档编号:21694308
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:31.04KB
C语言知识复习资料Word文件下载.docx
《C语言知识复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言知识复习资料Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
C程序设计的初步知识
简单C语言程序的构成和格式
例:
求矩形的面积,程序如下:
#include<
stdio.h>
main()
{doublea,b,area;
a=1.2;
b=3.6;
/*将矩形的两条边长分别赋给a和b*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area);
/*输出矩形的两条边长和面积*/
}
main是主函数名,C语言规定必须用main作为主函数名。
其后的一对圆括号中间可以是空的,但是这一对圆括号不能省略。
程序中的main()是主函数的起始行,也是C程序执行的起始行。
每一个可执行的C程序都必须有一个且只能有一个主函数。
一个C程序中可以包含任意多个不同名的函数,但只能有一个主函数。
一个C程序总是从主函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
在函数的起始行后面用一对花括号“{}”括起来的部分为函数体。
函数体内通常有定义(说明)部分和执行语句部分。
执行部分的语句称为可执行语句,必须放在定义部分之后,语句的数量不限,程序中由这些语句向计算机系统发出操作指令。
定义语句用分号“;
”结束。
在以上程序中只有一个定义语句,该语句对程序中所用到的变量a,b,area进行定义,说明它们为double类型的变量。
C程序中的每一条执行语句都必须用“;
”结束,分号是C语句的一部分,不是语句之间的分隔符。
在添加注释时,注释内容必须放在符号“/*”和“*/”之间。
“/*”和“*/”必须成对出现,“/”和“*”之间不可以有空格。
按语法规定,在注释之间不可以再嵌套“/*”和“*/”。
注释是对程序的说明,可出现在程序中任意合适的地方。
程序中的“#include<
”通常称为命令行,命令行必须用“#”开头,行尾不能加“;
”,它不是C程序中的语句。
一对括号“<
”和“>
”之间的stdio.h是系统提供的头文件,该文件中包含着有关输入输出函数的说明信息。
在程序中调用不同的标准库函数,应当包含相应的头文件,以使程序含有所调用标准库函数的说明信息。
书写格式:
每条语句的后面必须有一个分号,分号是语句的一部分。
一行内可写多条语句,一个语句可写在多行上。
标识符,常量和变量
标识符是标识名字的有效字符序列,可以理解为C程序中的单词。
合法标识符的命名规则是:
(1)标识符只能由字母,数字和下划线组成,字母区分大小写。
(2)标识符的第一个字符必须是字母或下划线,不能为数字。
C语言标识符分如下3类:
(1)关键词:
它们在程序中都代表着固定的含义,不能另作它用。
如int,for,switch等。
(2)预定义标识符:
是指在C语言中预先定义并具有特定含义的标识符。
如define,include等。
(3)用户标识符(又称自定义标识符):
由用户根据需要定义的标识符,符合标识符命名规则且不与关键字相同。
常量是指在程序运行过程中,其值不能被改变的量。
在C语言中,常量分为整型常量,实型常量,字符常量,字符串常量,符号常量5种。
整型常量分为短整型常量,长整型常量等。
整型常量和实型常量又称为数值型常量,它们有正值和负值之分。
基本整型常量只用数字表示,不带小数点。
实型常量必须用带小数点的数表示。
在C语言程序中,可以用一个符号名来代表一个常量,称为符号常量。
编译系统将大写字母和小写字母认为是两个不同的字符。
用define进行定义时,必须用“#”作为一行的开头,在#define命令行的最后不得加分号。
变量是指在程序运行过程中其值可以改变的量。
一个变量实质上是代表了内存中的某个存储单元。
C语言规定,程序中所有变量都必须先定义后使用。
对变量的定义通常放在函数体内的前部,但也可以放在函数的外部或复合语句的开头。
建议变量名的长度最好不要超过8个字符。
变量有整型变量,实型变量,字符型变量等。
C语言中没有字符串变量。
存放字符串使用字符数组。
整型数据
在C语言程序中,整型常量可以用十进制,八进制和十六进制等形式表示,没有二进制形式。
八进制数是使用一串连续的数字表示,但其开头必须是数字“0”。
注意:
八进制数必须用合法的八进制数字表示。
不能出现8,9。
十六进制数用数字0和字母x(或大写字母X)开头。
十六进制数必须用合法的十六进制数字表示。
十六进制数中的字母a,b,c,d,e,f既可以用小写也可以用大写。
在C程序中,只有十进制数可以是负数,而八进制和十六进制只能是整数。
整型常量有短整型,基本整型,长整型和无符号型不同类型。
整型变量可以分为基本型,短整型,长整型和无符号型四种。
一个基本整型占四个字节。
基本型的整型变量用类型名关键字int进行定义,例如:
intk;
/*定义k为整型变量*/
一个定义语句必须以一个“;
”号结束。
在一个定义语句中也可以同时定义多个变量,变量之间用逗号隔开。
整型的变量只能存放整型数值。
C语言规定,可以在定义变量的同时给变量赋初值,也称变量初始化。
数值是以补码表示的。
若不指定变量为无符号型,则变量隐含为有符号型。
无论是短整型数还是长整型数,都被识别为有符号整数。
无符号整数在数的末尾应该加上字母后缀u或U,若是长整型无符号整型常量,则可以加后缀lu或LU。
在一个整常量后面加一个字母l或L,则认为是longint型常量用于函数调用中。
如果函数的形参为longint型,则要求实参也为longint型。
VC6.0中定义的整型数所占字节数和数值范围
类型名称
占用的字节数
数值范围
【signed】int
4
-2147483648~2147483647
【signed】short【int】
2
-32768~32767
【signed】long【int】
unsigned【int】
0~4294967295
Unsignedshort【int】
0~65535
Unsignedlong【int】
计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),计算机中,内存储器的最小存储单位称为“位”。
八个位构成一个字节(Byte),并给每个字节分配一个地址。
若干字节组成一个“字”,用一个“字”来存放一条机器指令或一个数据。
一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。
每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。
通常把一个字节中的最右边一位称为最低位,最左边一位称为最高位。
对于一个有符号整数,其中最高位(最左边的一位)用来存放整数的符号,称为符号位。
若是正整数,最高位放置0;
若是负整数,最高位放置1。
对于正整数的存储形式称为用“原码”形式存放。
负整数在内存中是以“补码”形式存放的。
取某个二进制数的补码,步骤如下:
(1)求原码的反码。
把原码除符号位之外的二进制码按位取反,即把1变成0,0变成1,即得到该原码的反码。
(2)把所得的反码加1,即得到原码的补码。
把内存中以补码形式存放的二进制码化成十进制的负整数,步骤如下:
(1)先对除符号位之外的各位取反。
(2)将所得二进制数转换成十进制数。
(3)对所求得的数再减1。
用两个字节存放一个整数时,若说明为无符号整型,则最高位不再用来存放整数的符号,16个二进制全部用来存放整数,因此无符号整数不可能是负数。
考点四:
实型数据
实型常量又称实数或浮点数。
在C语言中可以用小数形式和指数形式表示一个实型常量。
C编译系统将浮点型常参作为双精度来处理。
小数形式是由数字和小数点组成的一种实数表示形式。
小数形式表示的实型常量必须要有小数点。
在C语言中,则以“e”或“E”后跟一个整数来表示以10为底的幂数。
C语言语法规定,字母e或E之前必须要有数字,且e或E后面的指数必须为整数。
在字母e或E的前后以及数字之间不得插入空格。
规范化的指数形式:
在字母e或E之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字。
C语言中实型变量分为单精度型和双精度型两种,分别用类型名float和double进行定义。
单精度型变量定义的形式如下:
floata,b,c;
双精度型变量定义的形式如下:
doublex,y,z;
一个浮点型数据一般在内存中占4个字节(32位)。
浮点型数据是按照指数形式存储的。
在一般计算机系统中,为float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元,并按实型数的存储方式存放数据。
实型的变量只能存放实数型,不能用整型变量存放一个实数,也不能用实型变量存放一个整数。
单精度实数(float类型)的数值范围约在-10^38~10^38之间,并提供7位有效数字位;
绝对值小于10^-38的数被处理成零值。
双精度实数(double类型)的数值范围约在-10^308~10^308之间,并提供15~16位有效数字位,具有精度到多少位与机器有关;
绝对值小于10^-308的数被处理成零值。
考点五:
算术表达式
在C语言中,基本的算术运算符是:
+,-,*,/,%,分别为加,减,乘,除,求余运算符。
这些运算符需要两个运算对象,称为双目运算符。
除求余运算符%外,运算对象可以是整型,也可以是实型。
求余运算符的运算对象只能是整型。
“+”和“—”也可用作单目运算符,运算符必须出现在运算数的左边。
运算数可为整型,也可为实型。
说明:
(1)如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。
(2)如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边的类型达到一致后,再进行运算。
(3)在C语言中,所有实型数的运算均以双精度方式进行。
若是单精度数,则在尾数部分添0,使之转换为双精度。
算术运算符和圆括号的优先级高低顺序:
()+—*/%+—
单目运算符“+”和“—”的结合性是从右到左的,其余运算符的结合性都是从左到右。
例如:
5*-2与5*(-2)等价。
用算术运算符和一对圆括号将运算符(或称操作数)连接起来的,符合C语言语法的表达式称为算术表达式。
算术表达式中,运算符对象可以是常量,变量和函数等。
在计算机语言中,算术表达式求值的运算规则和要求:
(1)在算术表达式中,可使用多层圆括号,但左右括号必须配对。
运算时从内层圆括号开始,由内向外依次计算表达式的值。
(2)在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。
强制类型转换表达式的形式:
(类型名)(表达式)
(类型名)称为强制类型转换运算符。
利用强制类型转换运算符可以将一个表达式的值转换成指定的类型。
(double)a将a转换成double(int)(x+y)将x+y的值转换成整型。
考点六:
赋值表达式
在C语言中,赋值号“=”是一个运算符,称为赋值运算符。
由赋值运算符组成的表达式称为赋值表达式,其形式如下:
变量名=表达式
赋值号左边必须是变量名,右边必须是C语言中合法的表达式。
(1)赋值运算符的优先级别只高于逗号运算符,比任何其他运算符的优先级都低,且具有自右向左的结合性。
(2)赋值运算符不同于数学中的“等于号”这里不是等同的关系,而是进行“赋予”的操作。
(3)赋值运算符的左侧只能是变量,不能是常量或表达式。
(4)等号右边的表达式也可以是一个赋值表达式。
(5)C语言规定最左边变量中所得到的新值就是赋值表达式的值。
在赋值运算符之前加上其他运算符可以构成复合赋值运算符。
C语言规定可以使用10种复合赋值运算符,其中与算术运算有关的复合赋值运算符有:
+=,-=,*=,/=,%=(注意:
两个符号之间不可以有空格)。
复合赋值运算符的优先级与赋值运算符的优先级相同。
在C语言的表达式(不包含赋值表达式)中,如果运算符两边的整型类型不相同,将进行类型之间的转换。
转换规则如下:
(1)若运算符两边一个是短整型,一个是长整型,则将短整型转换成长整型,然后进行运算
(2)若运算符两边一个是有符号整型,一个是无符号整型,则将有符号整型转换成无符号整型,然后进行运算。
(1)当赋值号左边的变量为短整型,右边的值为长整型时,短整型变量只能接受长整型数低位上两个字节中的数据,高位上两个字节中的数据将丢失。
(2)当赋值号左边的变量为有符号整型,右边的值为无符号整型时,复制的机制同上,这时若符号位为1,将按负数处理。
(3)当赋值号左边的变量为无符号整型,右边的值为有符号整型时,则把内存中的内容原样复制。
右边数值的范围不应超出左边变量可以接受的数值范围。
同时需要注意,这时负数将转换为正数。
考点七:
自加自减运算和逗号运算符
自加运算符“++”和自减运算符“--”的运算结果是使运算对象的值增1或减1。
运算符“++”和“--”是单目运算符,运算对象可以是整型变量,也可以是实型变量,但不能是常量或表达式,因为不能给常量或表达式赋值。
运算符“++”和“--”的结合方向是自右至左。
不要在一个表达式中对一个变量进行多次诸如i++或i--等运算。
“,”是C语言提供的一种特殊运算符,用逗号将表达式连接起来的式子称为逗号表达式。
逗号表达式的一般形式为:
表达式1,表达式2,表达式3,……,表达式n。
(1)逗号运算符的结合性为从左到右,因此逗号表达式将从左到右进行运算。
最后一个表达式的值就是此逗号表达式的值。
(2)在所有运算符中,逗号运算符的优先级最低。
VC6.0中int类型变量所占字节数是4。
i++与++i的区别:
++i是先执行i=i+1后,再使用i的值。
i++是先使用i的值后,再执行i=i+1。
自增(减)运算符常用于循环语句中是循环变量自动加1,也用于指针变量,使指针指向下一个地址。
第三章:
顺序结构
赋值语句
在赋值表达式的尾部加上一个“;
”号,就构成了赋值语句,也称表达式语句。
数据输出
把数据从计算机内部送到计算机外部的设备上的操作称为“输出”。
从计算机外部设备将数据送入计算机内部的操作称为“输出”。
printf函数是C语言提供的标准输出函数,用来在终端设备上按指定格式进行输出。
printf函数的调用形式:
printf(格式控制,输出项1,输出项2……)格式控制是字符串形式。
在printf函数调用之后加上“;
”,则构成输出语句。
printf(“a=%d,b=%d”a,b);
printf函数中格式控制的作用是:
(1)给输出项提供输出格式说明
输出格式说明的作用是将要输出的数据按照指定的格式输出。
格式说明由“%”符号和紧跟在其后的格式描述符组成。
当输出项为int类型时,用d作为格式描述字符,其形式为%d,当输出项为float或double类型时,用f或e作为格式描述字符,其形式为%f或%e(对于double类型也可用%lf或%le)。
printf的各输出项之间要用逗号隔开(函数的各个参数之间必须用逗号隔开)。
输出项可以是任意合法的常量,变量或表达式。
printf可以没有输出项。
\n是C语言中特定的转义字符“回车换行”。
格式字符及其功能
格式字符
说明
c
输出一个字符。
d或i
输出带符号的十进制整型数。
%ld为长整型,%hd为短整型,%164d为64位长整型。
o
以八进制格式输出整型数。
%o不带先导0;
%#o加先导0。
X或x
以十六进制格式输出整形数。
%x或%X不带先导0x或0X;
%#x或%#X带先导0x或0X。
u
以无符号十进制形式输出整形数。
f
以带小数点的数学形式输出浮点数(单精度和双精度数)。
E或e
以指数形式输出浮点数(单精度和双精度数)。
G或g
由系统决定采用%f格式还是采用%e(或%E)格式输出,以使输出宽度最小。
s
输出一个字符串,直到遇到“\0”。
若字符串长度超过指定的精度则自动突破,不会截断字符串。
p
输出变量的内存地址。
%
输出一个%。
长度修饰符:
在%和格式字符之间,可以加入长度修饰符,以保证数据输出格式的正确和对齐。
对于长整型数(long)应该加l,即%ld;
对于短整型数(short)可以加h,即%hd。
格式控制中,每个格式说明都必须用“%”开头,以一个格式字符作为结束,在此之间可以根据需求插入“宽度说明”,左对齐符号“-”,前导零符号“0”等。
输出数据所占的宽度说明:
(1)在%和格式字符之间插入一个整数常数来指定输出的宽度n。
(2)对于float和double类型的实数,可以用“n1.n2”的形式来指定输出宽度(n1和n2分别代表一个整常数),其中n1指定输出数据的宽度(包括小数点),n2指定小数点后小数位的位数,n2也称为精度。
对于f,e或E,如果指定“n1.0”或“.0”格式,则不输出小数点和小数部分。
对于G或g,宽度用来指定输出的有效数字位数。
不指定宽度,将自动按照6位有效数字输出。
(3)对于整型数,若输出格式是“0n1”或“.n2”格式,则如果指定的宽度超过输出数据的实际宽度。
输出时将会右对齐,左边补0。
对于float和double类型的实数,若用“0n1.n2”格式输出,如果给出总宽度n1大于n2加上整数位数和小数点(E或e格式还要加上指数的5位),则数字右对齐,左边补0。
通常系统只能保证float类型有7位有效数字,double类型有15位有效数字。
输出数据左对齐:
由于输出数据都隐含右对齐,如果想左对齐,可以在格式控制中的“%”和宽度之间加一个“-”号来实现。
使输出数据总带+号或-号:
通常输出数据如果是负数,前面有符号“-”,但正数前面的“+”一般都省略了。
如果要每一个数前面都带正负号,可以在“%”和格式字符间加一个“+”号来实现。
如果要输出%符号,可以在格式控制中用%%表示,将输出一个%符号。
printf函数有返回值,返回值是本次调用输出字符的个数,包括回车等控制符。
数据输入
scanf函数是C语言提供的标准输入函数,其作用是从终端键盘上读入数据。
scanf函数的一般调用形式如下:
scanf(格式控制,输入项1,输入项2,……)
在scanf函数调用之后加上“;
”,则构成输入语句,例scanf(“%d%f%lf”,&
k,&
a,&
y);
格式控制的主要作用是指定输入时的数据转换格式,即格式转换说明。
输入项之间用逗号隔开。
&
是C语言中的求地址运算符,输入项必须是地址表达式。
用于输入的格式字符及其功能
输入一个字符
d
输入带符号的十进制整型数
i
输入整型数,整型数可以是带先导0的八进制数,也可以是带先导0x(或0X)的十六进制数
以八进制格式输入整型数,可以带先导0,也可以不带
x
以十六进制格式输入整型数,可以带先导0x或0X,也可以不带
以无符号十进制形式输入整型数
f(lf)
以带小数点的数学形式或指数形式输入浮点型(单精度数用f,双精度数用lf)
e(le)
同上
输入一个字符串,直到遇到“\0”。
若字符串长度超过指定的精度则自动突破,不会截断字符串
(1)在格式串中,必须含有与输入项一一对应的格式转换说明符。
(2)在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以对小数指定小数位的宽度。
(3)由于输入是一个字符流,scanf从这个流中按照格式控制指定的格式解析出相应数据,送到指定地址的变量中。
(4)scanf函数有返回值,其值就是本次scanf调用正确输入的数据项的个数。
当用scanf函数从键盘输入数据时,每行数据在末按下回车键(Enter键)之前,可以任意修改。
但按下回车键(Enter键)后,scanf函数即接受了这一行数据,不能再回去修改。
在输入整数或实数这类数值型数据时,输入的数据之间必须用空格,回车符,制表符(Tab键)等间隔符隔开,间隔符个数不限。
即使在格式说明中人为指定了输入宽度,也可以用此方式输入。
可以在格式字符前加入一个正整数指定输入数据所占的宽度。
可以在%和格式字符之间加入“*”号,作用是跳过对应的输入数据。
scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,因此若想在屏幕上输出提示信息,应该首先使用printf函数输出。
在C语言中,一对花括号“{}”不仅可用作函数体的开头和结尾的标志,也可用作复合语句的开头和结尾的标志。
复合语句也可称为“语句块”。
复合语句的形式:
{语句1语句2……语句n}
用一对花括号把若干语句括起来构成一个语句组。
一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。
C程序中的所有语句都必须由一个分号“;
”作为结束。
如果只有一个分号,如:
{;
}
这个分号也是一条语句,称为“空语句”,程序执行时不产生任何动作。
程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,而且这种错误十分隐蔽,编译器也不会提示逻辑错误。
在scanf函数中给double类型变量输入数据时,应该使用%lf格式转换说明符,而输出时,对应的格式转换说明符可以是%lf,也可以是%f。
第四章:
选择结构
考
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)