计算机基础与程序设计.docx
- 文档编号:23510692
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:42
- 大小:54.73KB
计算机基础与程序设计.docx
《计算机基础与程序设计.docx》由会员分享,可在线阅读,更多相关《计算机基础与程序设计.docx(42页珍藏版)》请在冰豆网上搜索。
计算机基础与程序设计
第一章计算机及程序设计基础知识
第一节计算机系统组成及基本工作原理
一个完整的计算机系统由硬件系统和软件系统两大部分组成。
概括地说计算机由运算器,控制器,存储器,输入设备,输出设备五大部分组成。
我们常把运算器和控制器统称为CPU,CPU是中央处理器(CentralProcessingUnit)的英文缩写,并把CPU和存储器合称为主机。
硬件系统:
①运算器②控制器③存储器④输入输出计算机系统④输入输出设备
软件系统:
①系统软件②应用软件
微型机的系统结构
内存一般分为ROM和RAM两类:
目前常用的外存有硬盘,软盘和CD-ROM光盘。
在系统总线上通常传输三种信号:
数据,地址和控制信号,相应地总线也分为数据总线,地址总线,控制总线三类。
MS-DOS由引导程序(BOOT),输入输出管理模块(IO.SYS),文件管理模块(MSDOS.SYS)和键盘命令处理程序(COMMAND.COM)四部分组成,
第二节计算机中数据的表示及存储形式
一,各种进制数之间的转换
R进制和十进制的转换
方法:
按权展开求和。
将十进制转换为R(R=2,8,16)进制数。
方法:
整数部分采用除基取余法;小数部分采用乘基取整法(“基”即进制的意思)。
二进制转换成八进制或十六进制时,只要把二进制数按3位或4位分组,然后写出其对应的八进制或十六进制数即可。
八进制或十六进制换成二进制数。
转换方法是3位或4位分解法。
只要依次把八进制数或十六进制数的每一位转换为3位(或4位)二进制数即可,整数部分的高位0和小数部分的低位0可以省略。
二,带符号数在计算机内部的表示
整数X的原码是指:
其符号位为0表示正,位1表示负;其数值部分就是X的绝对值的二进制数。
X的原码通常用[X]原来表示。
X的反码是指:
对于正数,反码与原码相同;对于负数,符号位不变,其数值位X的绝对值取反(1变0,0变1)。
X的反码通常用[X]反来表示。
X的补码是指:
对于正数,补码与原码相同;对于负数,符号位不变。
其数值位X的绝对值取反后在最低位加1。
X的补码通常用[X]补来表示,实际上[X]补=[X]反+1。
第二章关于C语言的基本知识
第三节C语言概述
C语言程序的基本结构和组成规则如下:
(1)C程序由一个或多个函数组成。
(2)组成C程序的若干函数中,只能且必须有一个名为main()的主函数,程序总是从main()函数开始执行[不论main()函数位置在何处],同时也在main()函数中结束。
(3)一个函数由函数说明和函数体两部分组成。
(4)函数体内一般包含变量的说明和执行两大部分。
(5)程序执行部分中每个语句均要以分号(;)为结束标志,但要注意,函数说明语句后边无分号。
(6)C语言程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在几行上。
(7)C程序中,可以在任何地方用/*…..*/对程序或语句加注释。
第二节C语言的数据类型
一、C语言的数据类型
整型
基本类型实型(浮点型)①单精度型②双精度字符型
数空类型
据数组类型
类构造类型结构体类型
型共用体类型
指针类型枚举类型
二、C语言中的常量
程序运行过程中其值不能被改变的量称为常量
1.整型常量
(1)十进制整数
(2)八进制整数
(3)十六进制整数
2.实型常量
(1)十进制形式
(2)指数形式
指数形式实数的构成规则为:
整数前边和指数前边的正号都可以被省略不写;整数或小数可以被省略,但不能同时都省,即e或E前必须有数字;阶码必须为整型数。
3、字符常量
转义字符的表示形式有两种:
(1)反斜杠开头后跟一个字符。
(2)反斜杠开头后跟一个用1~3位八进制数或1~2位X开头的十六进制数字。
4、字符串常量
字符串常量是由一对双引号括起来的字符序列。
C语言的字符串常量在内存中存储时,自动在其尾部追加一个转义字符‘\0’(ASCII码值为0的空字符),作为字符串的结束标志,以便系统据此判断字符串是否结束。
5、符号常量
符号常量必须先定义后使用,每个符号常量只能代替一个常量,为了使其与变量相区别,C语言中遵循变量名用小写,符号常量名用大写字母的原则以示区别。
三、C语言中的变量
1、变量的命名规则为:
由字母或下划线开头,其后可以跟字母、数字、或下划线三类字符组成的字符序列。
2、变量的定义:
C语言规定,无论是哪一种类型的变量,都须要“先定义,后使用”。
3、
4、
5、变量定义的一般形式为:
6、数据类型变量名;
第三节C语言的运算符和表达式
一、算术运算符和算术表达式
算术运算符
运算符
+
—
*
/
%
—
名称
加
减
乘
除
求余
取负
算术运算符的优先级规定:
—(取负)→(*、/、%)→(+、—)取负级别最高,再乘除,后加减。
同级运算的结合方向是:
从左向右(取负例外)
二、赋值运算符和赋值表达式
赋值运算符
赋值符
=
+=
-+
*=
/=
%=
&=
|=
^=
>>=
<<=
名称
赋值运算符
复合赋值运算符
赋值运算符、复合赋值运算符均为同级,在表达式中运算符结合方向为从右向左。
三、增量运算符和增量表达式
C语言提供两个增量运算符++(自加)、--(自减)。
++和--运算是使变量的值增1或减1,即增量运算只有一个运算量且只能是变量。
这两个运算符各自有两种用法,一种用在变量之前称前置运算,另一种用在变量之后称后置运算。
所谓前置运算是将变量的值先增1或减1,然后再将该变量的新值用于表达式中,而后置运算是先将变量的值用于表达式中,然后再将变量的值增或减1。
四、关系运算符和关系表达式
关系表达式的运算是比较两个运算量的运算关系是否成立,关系成立,则运算结果为“真”,关系不成立,则运算结果为“假”。
关系运算符>,>=,<,<=为同级,==,!
=为同级,且前者优先级高于后者,结合方向是从左向右。
五、逻辑运算符和逻辑表达式
逻辑运算符的优先级规定!
→&&→||.。
其中!
的结合方向是从右向左,&&和||是从左向右。
六,逗号运算符和逗号表达式
C语言中逗号的用途有两个:
一是作为分隔符,二是作为运算符。
(1)逗号分隔符。
逗号是C语言中标点符号之一,用来分开相应的多个数据
(2)逗号运算符,逗号作为运算符时是把两个运算分量连接起来,使之构成一个。
形式为:
表达式1、表达式2、该表达式的值为表达式2的值。
七、条件运算符和条件表达式
条件表达式的一般形式为:
表达式1?
表达式2:
表达式3。
如果表达式1的值为非0,则整个表达式的结果就取表达式2的值;否则,整个条件表达式的结果就取表达式3的值。
第四节关于C函数的一般概念
C函数有两大类,一类是系统提供的标准库函数,另一类是用户根椐需要自己编写的函数。
C语言是一和函数式语言。
第三章C的基本语句及顺序结构程序设计
第一节C语言语句综述
C语言的语句分为五类:
表达式语句、函数调用语句、复合语句、空语句和控制语句。
第二节赋值语句综述
一、赋值语句
赋值语句是由赋值表达式加上一个分号构成,它属于表达式语句类。
二、输入输出语
1、格式输出函数printf()
格式输出由printf()函数加一个分号构成。
一般形式为:
printf(“输出格式”,输出表列);
其中双引号内的输出格式是由格式说明、按原样输出的字符(包括空格符)、转义字符三部分组成。
输出格式说明符
格式字符
功能
d
以十进制带符号形式输出整数
x
以十六进制形式输出整数
o
以八进制形式输出整数
u
以十进制无符号形式输出整数
c
以字符形式输出一个单字符
s
输出字符串
f
以小数形式输出实数
e
以指数形式输出实数
g
选用%f和%e中输出宽度较短的一种格式,不输出无意义的0
%
输出百分号本身
2、格式输入函数scanf()
格式输入语句由scanf()函数加一个分号“;”构成,其一般形式为:
scanf(“输入格式”,变量地址表列);
输入格式的含义同printf()函数。
变量地址表列是由若干地址组成的输入项表,可以是变量的地址或字符串首地址。
输入格式字符
格式字符
功能
d
用于输入十进制整数
x
用于输入十六进制整数
o
用于输入八进制整数
c
用于输入字符串,输入时以非空白字符开始,以第一个空白字符结束,系统在串尾自动加一个‘\0’作为结束标志,一般存入一个字符数组中。
f
用于输入实数(可以用小数或指数形式都行)
e
与f作用相同,e和f可以互换使用。
在使用scanf()函数的过程中要注意下列规则:
(1)输入地址表列中必须写变量的地址,而不是写变量名。
(2)输入数据时,如果有多个整型或实型数据要输入,两个数据之间以个或多个空格来间隔,也可以用回车或Tab键来间隔。
(3)当有多个scanf()函数连用时,上一个输入行末尾输入的“回车”被下一个scanf()函数接受,因此,从第二个scanf()函数起,必须在格式控制的双引号后设一个空格字符以抵消上一行输入的“回车”。
(4)数值型与字符型混合输入时,遇非法则结束数据,不用分隔符。
(5)当双引号内的输入格式中有按原样输入的字符的话,则在键盘输入时,也应输入与这些字符相同的字符。
(6)可以指定输入数据所占列数m,系统会自动按m列截取数据,这就是输入时遇宽度数据结束的规则。
(7)输入实数时不能规定精度。
(8)%后的“*”格式选择符,用来表示跳过所对应的数据不用。
(9)输入时“转义字符”也将被视为有效字符,不能识别为转义字符。
三、字符输入输出函数
1、字符输出函数putchar()
一般形式为:
putchar(字符变量);表示向终端输出字符变量的值(一个字符)。
功能:
向终端输出一个字符。
2、字符输入函数getchar()
0一般形式为getchar();
功能:
从终端键盘输入一个字符。
函数的值就是从键盘得到的这个字符,这个值可以赋给一个整型变量,一个字符变量,也可以作为表达式的一部分。
第四章条件语句与选择结构程序设计
第二if语句的基本形式和N-S图
If语句有三种表达式:
一、if语句形式之一
if(表达式)
语句最简单的if结构
后续语句
语句功能:
如果条件满足(表达式值为非0),则执行内嵌语句,之后执行if结构的后续语句;如果条件不满足(表达式值为0),则什么也不做就直接执行后续语句if
的后续语句。
二、if语句形式之二
if(表达式)
语句1if……else…..结构
else
语句2
语句功能:
当重要条件满足时(表达式值为非0),执行语句1,之后执行if结构的后续语句;如果条件不满足(表达式值为0),执行语句2,之后也执行if结构的后续语句。
三、if语句的嵌套与if语句形式之三
1,if语句的嵌套
一般形式为:
If(表达式)
If(表达式1)
语句1内嵌if语句1
else
语句2if嵌套结构
else
if(表达式2)
语句3内嵌if语句2
else
语句4
执行过程:
当表达式值非0时,执行内嵌if语句1,如果表达式1值为非0,执行语句1;若表达式1值为0,执行语句2.若表达式的值为0,执行内嵌if语句2,
根据表达式2满足与否,决定执行语句3还是语句4.特别要明确的是if嵌套结构是一个整体,不论执行语句1、语句2、语句3、语句4哪一个嵌套结构的后续语句。
由此可见,if嵌套可以实现多路路选择。
2,if语句形式之三
if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
···
elseif(表达式n)语句n
else语句n+1
语句功能:
依次去对各条件进行判断测试,当满足某一个条件i,则执行相应的语句i,一个条件也不满足时,执行语句n+1,之后均执行if结构的后续语句.注意,如果没有语句n+1,则最后一个else可省,这种情况下,if结构中若一个条件也不满足,则相当于不执行任何操作。
第三节实现多路分支选择的switch语句
一,switch语句的一般形式与执行过程
Switch语句的一般形式为:
Switch(表达式)
{case常量表达式1:
语句1
case常量表达式2:
语句2
···
case常量表达式n:
语句n
default:
语句n+1
}
执行过程:
多路分支选择取决于”表达式”的特定值。
当表达式的值和某个case后面的“常量表达式i”的值相同时,程序就从这个case后边的“语句i”开始执行,然后接着一个个执行其下面的全部case后面的语句。
二、Switch语句的使用说明
(1)Switch后面的“表达式”可以是任何类型,在与常量表达式比较时被自动取整。
(2)常量表达式是由常数或符号常数组成的整型表达式(不允许出现变量)。
(3)如果有default项,那么在与所有case情况都不匹配时,程序将执行语句n+1,switch允许省略default,如果没有匹配的情况出现,也没有default,,实际上程序什么也没做就跳出了switch结构。
(4)switch后面的常量表达式,仅起人口标号的作用,一旦匹配,由此进入,在执行有关语句后,马上继续执行下面的所有case后面的语句,而不再判别是否与别的case匹配,这一点要特别注意。
(5)case后边可以有两个以上的执行语句,被顺序执行,而且允许不加花括号。
(6)多个case可以共用一组执行语句。
第五章循环语句与循环结构程序设计
第一节循环的概念
C语言提供了三种实现循环的语句:
while语句,do-while语句,for语句,由它们分别可以构成while循环、do-while循环、for循环等三种循环结构。
第二节while语句与while循环
while语句的一般形式为:
while(表达式)
语句
While循环的执行过程为:
计算表达式的值并进行判断,当表达式的值为非0时(条件成立),执行语句(即循环体),每执行一次循环体之后,都要再判断表达式的值,若非0,重复执行循环体``````如此一直循环到表达式的值为0时结束循环,转去执行while循环的后续语句。
第三节do-while语句与do-while循环
do-while语句的一般形式为:
do
语句do-while循环结构
While(表达式);
do-while循环的执行过程为:
进入do-while循环,先执行语句(即循环体),然后判断条件(即表达式),若表达式的值为非0(条件成立),那么再回去执行循环体
``````如此循环直到表达式的值为0(条件不成立)结束循环,转换执行do-while循环的后续语句。
第四节for语句与for循环
for语句的一般形式为:
for(表达式1;表达式2;表达式3)
语句
for循环的执行过程为:
(1)计算机表达式1,表达式1通常是为循环变量赋初值(在整个循环中它只做一次)。
(2)计算表达式2(循环的控制条件),判别它的值是否非0(条件成立),如为是,则进入(3);如为否,则进入(6)。
(3)执行语句(即循环体)。
(4)计算表达式3(表达式3通常是对循环条件施加影响的,它对表达式2中的循环控制变量进行修正,以便在进行若干次循环之后,能够使表达式2的值为0,结束循环)。
(5)返回
(2)。
(6)结束循环,执行for循环结构的后续语句。
第五节循环的嵌套
一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。
内嵌的循环中还可以嵌套其它循环,这就是多重循环。
While、do-while、for三种循环可以互相嵌套。
第六节几个无条件控制语句在循环中的控制作用
C语言提供了三种无条件控制语句:
break、continue、goto,它们分别是中断语句、继续语句,无条件转移语句。
一、break语句
语句形式:
break;
语句功能:
从switch结构或包含它的最内层循环结构中跳出。
它只能用于switch语句和循环语句中。
break语句在循环结构中的作用:
它被用来跳出循环体,提前结束循环,把流程无条件转到该循环结构的后续语句去执行。
二、continue语句
语句形式:
continue
语句功能:
结束本轮循环,即跳过循环体中它下面的语句,然后重新判断是否进行下一轮循环。
Continue语句只适用于循环语句中(while,do-while,for均可)。
注意:
continue语句和break语句的区别在于,continue语句只结束本轮循环,并未终止整个循环的执行;break则是结束包含它的整个循环,转到该循环的后续语句去执行。
三、goto语句
语句形式:
goto标识符;
语句功能:
无条件跳到标识符所指的语句去执行。
其中标识符是语句标号的符号名,代表语句的地址,是要跳转的目的地。
第六章数组
第一节数组的概念
数组是数目固定,数据类型相同的若干变量的有序集合。
如果集合体中的变量具有先后顺序的逻辑结构,则称其为一维数组;如果集合体中的变量具有行列顺序的逻辑结构,则称其为一维数组;如果集合体中的变量具有行列顺序的逻辑结构,则称其为二维数组。
数组在内存中占据一片连续的存储空间。
数组中的每一个成员称为数组元素。
第二节一维数组
一、一维数组的定义
使用数组与使用变量一样,必须先定义,后使用。
一维数组的定义格式为:
类型说明符节数组名[常量表达式];
说明如下:
(1)类型说明符用于说明数组中存放的数据的数据类型。
(2)常量表达式的值为数组的长度,表示数组中的元素个数,必须是整数,在编译时用以确定分配给数组存储空间的大小。
常量表达式可以是整型常量或符号常量,也可以是整型常量表达式,如果是符号常量必须在程序的开始处用预编译命令define说明。
要特别强调的是此处不能出现变量。
(3)可以同时说明多个数据类型相同的数组,以逗号为分隔符。
二,一维数组元素的引用
数组元素的引用格式为:
数组名【下标】
数组名表示数组元素从属的数组,是定义数组时给出的。
下标确定数组元素在数组中的位置,小标可以是整型常量、整型变量和整型表达式。
下标的有效取值范围是:
0<=下标<数组的长度。
三,一维数组的初始化
数组定义之后,数组元素的值是随机的,可以用三种方法给数组元素赋值。
(1)用赋值语句给数组元素赋值。
(2)用输入函数从键盘或从数据文件中读取数据并存放在数组元素中。
(3)定义数组的同时,为数组元素赋值。
这种方法就是我们所说的初始化。
四,以维数组的应用
在一维数组的应用中,需注意以下问题。
(1)一般具有先后顺序的一组数据用一维数组存放。
(2)数组元素的下标控制用循环实现。
(3)数组元素的下标从0开始,最后一个数组元素的小标等于数组长度大小减1。
第三节二维数组
一、二数组的定义
二维数组定义的一般格式:
类型说明符数组名[常量表达式1]【常量表达式2】;
其中:
常量表达式1说明二维数组行数的大小(即第一维的长度),常量表达式2说明二维数组列数的大小(即第二维德长度),二维数组包含的数组元素个数=常量表达式1x常量表达式2。
二、二维数组元素的引用
二维数组的使用与一维数组相同,只能使用相应的数组元素。
二维数组元素的引用格式为:
数组名[下标准][下标出]。
其中:
下标1确定数组元素所在的行,下标2确定数组元素所在的列。
下标1为任一整型表达式,满足:
0<=下标1<行数;
下标2为任一整型表达式,满足:
0<=下标2<行数。
三、二维数组在内中按行存放的特点,二维数组的初始化可用如下方法实现。
1.按行给数组元素赋初值
2.按行给部分元素赋初值
3.给全部元素赋初值
四、二维数组的应用
在二维数据的应用中,需要注意以下几点:
(1)一般具有行、列的表格数据用二维数组存放。
(2)定义存放数据的二维数组行与列的大小只能是整型常量或符号常量。
(3)行下标与列下标均从0开始,它们的值唯一确定二维数组元素在数组中的位置。
(4)二维数组元素的下标控制,一般用两重循环实现。
第四节字符数组
字符数组用于存放字符数据,每个数组元素只能存放一个字符,存放的是字符的ASCII代码。
一、字符数组的定义
字符数组的定义方法与其他类型数组的定义方法相同。
一维字符数组的定义格式为:
char数组名[常量表达式]
二维字符数组的定义格式为:
char数组名[常量表达式1][常量表达式2];
一般意味字符数组用于存放一个字符串,二维字符数组用于存放多个字符串。
二、字符串与字符数组
在C语言中,字符串用字符数组来存放和处理,字符串常量用系统自定义的字符数组来存放。
C的许多函数也都是通过’\0’来判断字符串是否结束。
在定义字符数组和存储字符串时应估计要存放的字符串的最大可能长度,使得字符数组的长度始终大于字符串的实际长度,保证有效字符之后是字符串的结束标志’\0’.
三、字符数组的初始化
字符数组的初始化既可用字符常量也可用字符串常量来实现。
(1)在用字符常量初始化字符数组时,特别要注意,如存放的时字符串,最后一般要放上字符串结束标志’\0’,否则,C不将其视为字符串。
(2)用字符串常量初始化字符数组时,系统自动在字符串的末尾加上字符串结束标志’\0’。
四、字符数组的输入与输出
(一)字符数组输入的3种方法
1.单个字符逐个输入
在scanf函数中,用格式字符“%c”,表示从键盘上输入单个字符。
2.整个字符串一次输入
在scanf函数中,用格式字符“%s”,输入项直接写数组名,表示一次从键盘上输入一串字符。
3.用输入函数输入字符串
C语言提供了专门输入字符串的函数。
格式:
gets(字符数组名);
功能:
从键盘上接收一串字符,存放在指定的字符数组中。
(二)字符数组输出的3种方法
1.逐个字符输出
在Printf函数中,用格式“%c”控制,输出一个数组元素(一个字符)。
2.一次输出整个字符串
在printf函数中,用格式“%s”控制,输出项直接写数组名,一次输出整个数组。
3.用输出函数输出字符串
C语言提供了专门输出字符串的函数。
格式:
puts(字符数组名);
功能:
在终端上输出存放在指定字符数组中的所有元素(即字符串)。
五、字符串处理函数
1.字符串复制strcpy
格式:
strcpy(字符数组1,字符数组2)
功能:
把字符数组2中的字符串复制到字符数组1中。
2.字符串连接函数strcat
格式:
strcat(字符数组1,字符数组2)
功能:
把字符数组2中的字符串连接到字符数组1中字符串的后面。
3.字符串比较函数strcmp
格式:
strcmp(字符数组1,字符数组2)
功能:
比较字符数组1中的字符串与字符数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 基础 程序设计