0002557计算机基础与程序设计书本总结大全.docx
《0002557计算机基础与程序设计书本总结大全.docx》由会员分享,可在线阅读,更多相关《0002557计算机基础与程序设计书本总结大全.docx(18页珍藏版)》请在冰点文库上搜索。
0002557计算机基础与程序设计书本总结大全
(02557)计算机基础与程序设计书本总结大全
第一章到第十一章
(1)计算机的工作原理
指令:
是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一种操作。
一条指令通常由如下两个部分组成:
①操作码:
它是指明该指令要完成的操作。
②操作数:
它指操作对象的内容或者所在的单元格地址。
指令系统:
某一台计算机所能识别的所有指令的集合。
中央处理器(CPU)是计算机的核心部件,由运算器和控制器构成。
运算器又称算术逻辑部件,主要功能是完成对数据的算术运算、逻辑运算和逻辑判断等操作。
控制器是整个计算机的指挥中心,发出各种控制信号,指挥计算机各部分工作。
2.存储器(Memory)用来存储程序和数据,存储器可分为两大类:
内存储器和外存储器
(1)内存储器简称内存,可以与CPU直接交换数据,特点是:
容量小、速度快,但价格贵。
内存一般分为ROM和RAM。
ROM:
只读存储器,一种只能读取数据不能写入数据的存储器,断电后,ROM中的信息不会全丢失。
RAM:
随机访问存储器,一种既能读取数据又能能写入数据的存储器,断电后,RAM中的信息不会全丢失。
用户直接使用的内存是RAM,通常说的内存大小也是指RAM。
有关存储器的概念
地址:
存储器由若干单元组成,每个单元有一个唯一的编号,成为地址。
位(bit):
二进制数据中的一个位,简写为b,音译为比特,是计算机存储数据的最小单位。
字节(Byte):
是计算机数据处理的最基本单位,简记为B,每个字节由8个二进制位组成,即1B=8bit。
字(Word):
一个字通常由一个或若干个字节组成。
字(Word)是计算机进行数据处理时,一次存取、加工和传送的数据长度。
字长越长,计算机性能越好。
数据的换算关系:
1Byte=8bit1KB=1024B=210B1MB=1024KB=220B
1.总线:
是计算机各种功能部件之间传送信息的公共信号线和相关的控制逻辑电路。
计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和
1.二、八、十六进制数转换为十进制数
(1)二进制数转换成十进制数:
以2为基数按权展开并相加。
例:
(1101100.111)2=1×26+1×25+1×23+1×22+1×2-1+1×2-2+1×2-3
=64+32+8+4+0.5+0.25+0.125
=(108.875)10
(2)八进制数转换为十进制数:
以8为基数按权展开并相加。
例:
(652.34)8=6×82+5×81+2×80+3×8-1+4×8-2
=384+40+2+0.375+0.0625
=(426.4375)10
(3)十六进制数转换为十进制数:
以16为基数按权展开并相加。
例:
(19BC.8)16=1×163+9×162+B×161+C×160+8×16-1
=4096+2304+176+12+0.5
=(6588.5)10
十进制整数转换为八进制方法:
除8取余。
十进制整数转换为十六进制方法:
除16取余。
3.八进制与二进制数之间的转换
(1)八进制转换为二进制数
转换原则是“一位拆三位”,即把一位八进制数对应于三位二进制数,然后按顺序连接即可。
4.二进制数与十六进制数的相互转换
(1)二进制数转换成十六进制数
二进制数转换成十六进制数的转换原则是“四位并一位”,即以小数点为界,整数部分从右向左每4位为一组,若最后一组不足4位,则在最高位前面添0补足4位,然后从左边第一组起,将每组中的二进制数按权数相加得到对应的十六进制数,并依次写出即可;小数部分从左向右每4位为一组,最后一组不足4位时,尾部用0补足4位,然后按顺序写出每组二进制数对应的十六进制数。
六、程序设计语言
程序设计语言包括机器语言、汇编语言和高级语言。
1.机器语言:
以二进制指令代码表示的指令集合,是计算机能直接识别和执行的语言。
2.汇编语言:
用助记符来表示指令的符号语言。
用汇编语言编写的程序要经汇编程序翻译后得到的机器语言的目标程序后才能执行。
3.高级语言:
是一种接近于人们自然语言与数学语言的程序设计语言。
高级语言程序的翻译方式有两种:
(1)编译方式
结果
(2)解释方式:
对源程序按语句执行的动态顺序进行逐句分析,边翻译边执行,直至程序结束,不生成目标程序。
1.整型常量
在C语言中,整型常量有三种书写形式:
(1)十进制整数:
由数字0~9和正负号表示。
如:
0、-111、+15、21等。
(2)八进制整数(在前面0).00、-0111、+015、021。
(3)十六进制整数(在前面0x)。
例如0x0、-0x111、+0xff、0x2d。
说明:
2、整型常量在一般微型机中占用2个字节,数值范围都是十进制的-32768+32767。
长整型常量(在整数的末尾字母“L”):
例如0L(十进制)、-0111L(八进制)、+0x15L(十六进制)
2.实型常量
实型常量只使用十进制,它的书写形式有两种:
(1)十进制数形式:
(必须有小数点)如0.123,.123,123.0,0.0,123.
(2)指数形式:
(e或E之前必须有数字;指数必须为整数)如12.3e3,123E2,1.23e4,e-5,1.2E-3.5
说明:
实型常量在一般的微型机中占用4个字节数值范围都是-1038~1038。
3.字符常量
字符常量用两个单引号(’)前后括住的单个字符来表示。
例如,’a’、’1’、’%’、’A’、’\n’、’\101’。
说明:
(1)C语言规定,字母是区分大小写的。
(2)在内存中,每个字符常量都占用一个字节,具体存放的是该字符对应的ASCII代码值。
(3)在C语言中,一个字符常量也可以看成是“整型常量”,其值就是该字符的ASCII代码值。
例如,’a’,可以看作是97。
’a’+5等于整数值102。
(4)oid)___________________________________________________________________________________________________________________________如果其值在0~127之间,整型常量也可以将其看成一个字符型常量.例如97,可以当成字符常量’a’来使用。
转义字符
\n
\t
\v
\b
\r
\f
\0
回车换行符号
Tab符号
垂直制表符号
左退一格符号
回车符号
换页符号
空操作字符,字符串结束标记
\a
\"
\’
\\
\ddd
\xhh
响铃符号
双引号
单引号
反斜杠
1~3位8进制数ddd对应的符号
1~2位16进制数hh对应的符号
4.字符串常量
字符串常量简称为“字符串”。
字符串就是用两个双引号(")前后括住的一串字符。
例如,"abc"、"12345"、"a"、"A"、"\101\n\x43"都是字符串。
空字符串:
没有字符的字符串称为“空字符串”。
例如,""。
字符串的长度:
一个字符串中所有字符的个数称为该字符串的长度
第三章C的基本语句及顺序结构程序设计
一、格式输出函数(每年必考)
printf(输出格式字符串,输出表达式表)
要熟练掌握的输出格式字符串:
%d以十进制带符号形式输出整数
%o以八进制形式输出整数
%x以十六进制形式输出整数
%u以十进制无符号形式输出整数(多次考到)
%c以字符形式输出单个字符
%s输出字符串
%f以小数形式输出实数
%e以指数形式输出实数
%g自动选取%f或%e中宽度较小的格式,不输出无意义的0
%%输出一个%
%m.nf输出实数,格式是n位小数,总宽度为m,超过m位,按实际位数输出,不足m位,用空格补足m位。
二、格式输入函数(每年必考)
scanf(输入格式字符串,输入变量地址表)
%d用于输入十进制整数
%o用于输入八进制整数
%x用于输入十六进制整数
%c用于输入单个字符
%s用于输入字符串
%f,%e用于输入实数
注意:
(1)如果多个整型或实型数据输入时,中间要用一个或多个空格隔开,也可以用键或回车键隔开。
(2)如果连续多个字符输入时,中间不能用任何字符或键隔开。
(3)输入格式字符串中出现了格式字符外的其他字符,输入时必须原样将这些字符输入。
三、字符输入输出函数
1、输入函数getchar()从键盘读取单个字符。
2、符输出函数putchar(ch)将参数ch对应的字符输出到显示器上。
1)dowhile循环至少执行1次。
2.
(2)for语句主要用来实现次数型循环结构
1)dowhile循环至少执行1次。
3.
(2)for语句主要用来实现次数型循环结构
二、break语句、continue语句和goto语句
1、break语句
【格式】break;
【功能】强制结束当前的循环,不再执行循环体中break后面的语句。
说明
(1)break语句只能用在三条循环语句的循环体中或switch语句中。
(2)通常break语句是和单分支语句配合使用,从而构成第二个结束循环的条件。
2、continue语句
【格式】continue;
【功能】跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环。
【说明】
(1)continue语句只能用在三条循环语句的循环体中。
(2)通常continue语句是和if语句配合使用,从而构成其后的部分循环体是否执行的单分支结构。
3、goto语句
【格式】goto标识符;
【功能】无条件转到标识符所指的语句去执行。
【说明】
(1)goto语句一般和if语句构成循环结构。
(2)goto语句也可用于退出多重循环。
三、循环嵌套
所谓循环嵌套就是一个循环体内包含另一个完整的循环结构。
设计多重循环结构时,要注意内层循环语句必须完整地包含在外层循环的循环体中,不得出现内外层循环体交叉现象。
但是允许在外层循环体中包含多个并列的循环语句。
二、二维数组的定义与应用(教材P88-97)
1.二维数组的定义:
数据类型数组名[行长度][列长度];
例如:
inta[3][4];
2.二维数组元素的引用:
数组名[行下标][列下标]
0~行长度-1
0~列长度-1
说明:
(1)二维数组的存放规律是“按行排列”,即先顺序存放第一行的元素,再存放第二行,以此类推。
(2)一个二维数组可以看成若干个一维数组。
二维数组a[3][4]理解为:
有三个元素a[0]、a[1]、a[2],每一个元素是一个包含4个元素的数组。
3、二维数组的不同初始化方法。
(1)分行给二维数组所有元素赋初值。
例如:
inta[2][3]={{1,2,3},{4,5,6}};
012
结果:
0
1
1
2
3
4
5
6
(2)不分行给多维数组所有元素赋初值。
例如:
inta[2][3]={1,2,3,4,5,6}
012
结果:
0
1
1
2
3
4
5
6
(3)只对每行的前若干个元素赋初值,此时所有未赋初值的数组元素均获得零值(对整型数组是0;对实型数组是0.0;对字符型数组是’\0’)。
例如:
inta[2][3]={{1},{4,5}};
012
结果:
0
1
1
0
0
4
5
0
(4)只对前若干行的前若干个元素赋初值,此时所有未赋初值的数组元素均获得零值。
例如:
inta[2][3]={{1,2}};
012
结果:
0
1
1
2
0
0
0
0
(5)若给所有元素赋初值,行长度可以省略。
例如:
floata[][3]={{1,2,3},{4,5,6}};
floata[][3]={1,2,3,4,5,6};
自动认为数组a[][3]的行长度是2。
012
结果:
0
1
1
2
3
4
5
6
三、字符数组及定义和应用及其常用字符处理的系统函数
1、字符数组的定义语句:
(1)一维字符数组的定义:
char数组名[长度];
(2)二维字符数组的定义:
char数组名[行长度][列长度];
2、字符数组的初始化
(1)每个元素均赋初值
chars1[3]={’1’,’2’,’3’};
012
结果
‘1’
‘2’
‘3’
(2)所有元素均赋初值可省略数组长度
chars2[]={’1’,’2’,’3’};
012
结果
‘1’
‘2’
‘3’
数组长度为3
(3)不赋初值的元素值为空字符’\0’
chars3[3]={’1’,’2’};
012
结果
‘1’
‘2’
‘\0’
注意,’\0’是字符串结束标记,所以字符数组s3中实际存放的是一个字符串”12”。
(4)chars4[5]={’1’,’2’,’\0’,’3’,’\0’};
01234
结果
‘1’
‘2’
‘\0’
‘3’
‘\0’
注意,数组s4中存放了一个字符串”12”。
3、字符数组的输入方法
(1)单个字符逐个输入
charc[11];inti;
for(i=0;i<10;i++)scanf(“%c”,&c[i]);c[10]=’\0’;
(2)整个字符串一次输入
charc[11];scanf(“%s”,c);
只能输入不含空格的字符串。
(3)用输入函数输入字符串
gets(字符数组名);
可以输入含空格的字符串。
4、字符数组的输出方法
(1)逐个字符输出
for(i=0;i<10;i++)printf(“%c”,c[i]);
(2)一次输出整个字符串
printf(“%s”,c);
(3)用输出函数输出字符串
puts(字符数组名);
5、常用字符串处理函数
(1)字符串复制函数
【格式】strcpy(字符数组1,字符数组2)
【功能】将字符数组2中的字符复制到字符数组1中。
(2)字符串连接函数
【格式】strcat(字符数组1,字符数组2)
【功能】把字符数组2中的字符串连接到字符数组1中字符串的后面。
(3)求字符串长度函数
【格式】strlen(字符数组)
【功能】求字符数组中字符串的长度(除字符串结束标记外的所有字符的个数)。
(4)字符串比较函数
【格式】strcmp(字符串1,字符串2)
【功能】若“字符串1”小于“字符串2”,函数返回值为小于0的整数;
若“字符串1”等于“字符串2”,函数返回值为0;
若“字符串1”大于“字符串2”,函数返回值为大于0的整数。
注意:
使用上述4个函数,应在程序的开头写上命令“#include”
(2)存储类型符
extern定义的函数叫做外部函数,它可以被其它编译单位中的函数调用。
static定义的的函数叫做内部函数,它只能被本编译单位中的函数调用
存储类型说明符可以省略,省略时,默认为外部函数。
(3)函数名和形式参数都是由用户命名的标识符。
在同一程序中,函数名必须唯一,形式参数名只要在同一函数中唯一即可,可以与其他函数中的变量同名。
(4)C语言规定,不能在函数的内部定义函数,即不能嵌套定义函数。
(5)定义的函数可以没有形参(无参函数),但函数名后面一定要一对圆括号。
(6)函数体内也可以没有任何操作,即空函数,调用空函数,什么也不做。
(1)自动型auto
自动型变量存储在动态储存区,函数被调用时,给该变量分配内存用于存放变量的值。
当函数调用结束时,C语言就释放该变量
当定义变量时,省略了存储类型符,系统将默认为自动型变量。
自动型变量如果进行初始化,则每次进入所定义的函数或复合语句都随着重新定义而重新初始化。
自动型变量如果不进行初始化,变量值将不确定。
(2)静态型static
静态型变量存储在静态储存区,是在程序开始运行时就分配了固定的内存,在程序运行过程中不释放。
只有程序运行结束后,才释放所占用的内存。
静态型变量如果进行初始化,只有第一次执行定义语句时随着分配内存赋于初值,当退出所定义的函数或复合语句时,将保留分配给它的内存和其中的值。
再次进入所定义的函数或复合语句时,不再重新分配内存,也不进行初始化。
此时,该变量值是上次离开时的值。
静态型(static)变量如果不进行初始化,C语言编译系统将自动为其赋予“零值”:
对数值型变量赋0,对字符型变量赋空字符’\0’(空字符的ASCII代码值为0)。
2、指针变量的定义和初始化
格式:
数据类型符*指针变量名1[=初值1];
【例】inta=10;int*p=&a;
3、取地址运算符&与指针运算符*
【例】设有数据定义语句:
floata,*p=&a;
则:
*&a是正确的。
相当于“*(&a)”,代表变量a。
*&p是正确的。
相当于“*(&p)”,代表p。
&*p是正确的。
相当于“&(*p)”,代表a的地址。
4.&*a是错误的。
相当于“&(*a)”,因为a不是指针变量,所以*a不正确。
二、指向一维数组的指针变量
1、指针变量指向一维数组的方法:
方法一:
在数据定义语句中用赋初值的方式
例:
shorta[10],*pa=a;
方法二:
在程序中用赋值方式
例:
shorta[10],*pa;
pa=a;
2、指针变量指向某一维数组元素的方法:
方法一:
在数据定义语句中用赋初值的方式
例:
shorta[10],*pa=&a[3];
方法二:
在程序中用赋值方式
例:
shorta[10],*pa;
pa=&a[3];
3、用指向一维数组的指针变量处理数组元素
当指针变量指向一维数组后,对下标为i的数组元素及其地址的引用有四种方法:
例:
shorta[10],*p=a;
数组元素:
a[i]等价于p[i]等价于*(p+i)等价于*(a+i)
数组元素的地址:
&a[i]等价于&p[i]等价于p+i等价于a+i
1、动态分配内存函数
格式:
(数据类型*)malloc(sizeof(数据类型))
功能:
根据字节运算符sizeof计算分配给指定数据类型的存储单元字节数,并返回该存储单元的首地址。
1、文件指针
文件型指针的定义方法:
FILE*文件型指针名;
【例】FILE*fp/*fp被定义为指向文件类型的指针变量*/
2、打开文件函数fopen()
【格式】文件指针=fopen(“文件名”,”使用方式”)
【功能】以指定的“使用方式”,打开指定的“文件名”对应的文件,文件指针指向该文件。
【返回值】正常打开,为指向文件结构体的指针;打开失败,为NULL
3、关闭文件函数fclose()
【格式】fclose(fp)
【功能】关闭fp所指向的文件。
4、文件头定位函数rewind()
【格式】intrewind(fp)
【功能】将文件内部位置指针置于fp所指向的文件开头。
5、判断文件结束函数feof()
【格式】feof(fp)
【功能】判断fp所指向的文件是否到达文件尾。
是文件尾返回非0,否则返回0。
【例】常用语句
while(!
feof(fp))/*若不是文件尾则继续循环*/
6、单个字符的读函数fgetc()
【格式】fgetc(fp)
【功能】从fp所指向的文件当前位置读入单个字符。
7、单个字符的写函数fputc()
【格式】fputc(ch,fp)
【功能】将ch中的字符写到fp所指向的文件的当前位置。
8、字符串读函数fgets()
9、字符串写函数fputs()
【格式】fputs(str,fp)
【功能】将str指向的一个字符串,舍去结束标记符‘\0’后写入fp所指向的文件中。
str也可以是一个字符串常量。
10、格式化输入fscanf()
【格式】fscanf(fp,格式控制字符串,地址表列);
【功能】从fp所指文件按照“格式控制字符串”的格式把读出的数据放入“输入项表”中的各变量。
【例】若文件指针fp已指向一个已打开的文本文件,a、b分别为整型变量,则以下语句从fp所指的文件中读人两个整数放入变量a和b中:
fscanf(fp,“%d%d”,&a,&b);
11、格式化输出函数fprintf()
【格式】fprintf(fp,格式控制字符串,输出项表列);
【功能】按格式将将输出项表列的各个数据依次写入fp所指文件中。
【例】fprintf(fp,“%d%d”,x,y);
把x和y两个整型变量中的整数按%d格式输出到fp所指的文件中
12、从二进制文件一次读一个数据块的函数fread()
【格式】fread(stu,size,n,fp)
【功能】从fp所指向的文件当前位置读取n个数据,每个数据的字节数为size,组成n个长度为size个字节的数据存入以stu为首地址的内存区。
13、向二进制文件中一次鞋一个数据块的函数fwrite()
【格式】fwrite(buf,size,n,fp)
【功能】将buf地址开始的n个数据(每个数据字节数为size)写入fp指向的文件。
14、文件随机定位函数fseek()
【格式】fseek(fp,offset,from)
【功能】将fp所指向的文件内部指针从from指定的起始位置移动offset个字节,指向新的位置。
【参数】offset长整型表达式,表示从from为起始位置的偏移字节数。
可以取正数(向文件尾方向移动)、0(不移动)、负数(向文件头方向移动)。
5.