收藏 分享(赏)

第一二章基础知识.ppt

上传人:tkhy51908 文档编号:8010593 上传时间:2019-06-04 格式:PPT 页数:53 大小:198.50KB
下载 相关 举报
第一二章基础知识.ppt_第1页
第1页 / 共53页
第一二章基础知识.ppt_第2页
第2页 / 共53页
第一二章基础知识.ppt_第3页
第3页 / 共53页
第一二章基础知识.ppt_第4页
第4页 / 共53页
第一二章基础知识.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、全国计算机等级考试 二级C语言,第一章 程序设计的基本概念,1.1 程序和程序设计概念:程序:人们把这种可以连续执行的一条指令的集合。程序设计语言:人与机器对话的语言。机器语言:用0或1来表示的语言。源程序:由高级语言编写的程序。如高级语言VB、VC+、Java等。目标程序:由二进制代码表示的程序。编译程序:由源程序转换成机器能接收的目标程序。C程序:由C语言构成的指令序列。,C语言的编译过程C源程序经过C编译程序编译之后生成一个后缀为.OBJ文件,然后通过连接软件(link)把.OBJ文件生成.EXE文件。,C语言源程序,C语言编译程序,二进制机器指令,程序设计(1)确定数据结构(2)确定算

2、法(3)编码(4)在计算机上调试程序(5)整理并写出文档程序,1.2 算法,有穷性 确定性 可行性 有零个或多个输入 有一个或多个输出 记忆方法:有确可入出。,流程图基本组成部分,开始或终止框,处理框,输入输出框,判断框,流程线,连接点,1.3 结构化程序设计和模块化结构,结构化程序三种基本结构组成顺序结构选择结构循环结构,顺序结构流程图,语句1,语句2,选择结构流程图,判断表达式,语句2,不满足,语句1,满足,循环结构,循环体,判断表达式,不满足,满足,模块化结构,基本原理:就是将一个大的功能模块变换成一个或多个小模块,这就是程序设计中的模块化方法。 基本方法:自顶向下、逐步细化、模块化,第

3、2章 C程序设计的初步知识,2.1 简单C语言程序的构成和格式#include main() double a,b,area;a=1.2;/*将矩形的两条边长赋给a和b*/ b=3.6;area=a*b;/*计算矩形的面积并存储到变量area中*/printf(“a=%f,b=%f,area=%fn”,a,b,area);/*输出矩形的两条边长和面积*/,补充以下几点:,(1)任何一个C程序都必须包含以下格式:main() (2)C语言的函数体可以分为两大部分:定义部分和执行部分,定义部分必须在执行部分之前。 (3)C程序中用到的变量都必须先定义后使用,定义变量必须放在程序的定义部分。 (4)

4、C程序无论是定义语句还是执行语句,每一个语句最后都必须有一个分号,即使是程序的最后一个语句也不例外。分号是结束的标志。 (5)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。,2.2 标识符,在C语言中用于标识名字的有效字符序列称为标识符。标 识符可以用作常量名、变量名、函数名和后面要学到的指针 名、数组名等。 C语言中的标识符的命名规则如下: (1)标识符只能由字母、数字和下划线组成。 (2)标识符的第一个字符必须是字母或下划线。标识符中的大小写字母是有区别的,如abc与Abc是两个 完全不同的标识符。,合法的标识符: a x sum spels program ab1

5、_to file_5 a1b2c3 _2 B3 非法的标识符: yes? (含有不合法的字符“?”) 234a (第一个字符不能为数字) yes no (空格不是合法的标识符字符) yes/no (含有不合法的字符“/”) r (“”不是字母,为不合法标识符字符),C语言的标识符分为如下三类,关键字:关键字具有特定含义的、专门用来说明C语言特定成分的一类标识符。如int就是关键字,用来定义整型变量的标识符。 预定义标识符:预定义表示符在C语言中也由特定的含义。如库函数名字printf,scanf和编译预处理命令define,include等。预定义标识符可以作为用户标识符使用。这是一些专门的命

6、令,建议编程者不要把这类标识符另作它用。 用户标识符:由用户根据需要定义的标识符被称为用户标识符。用户标识符一般用来给变量、函数、数组或者指针等命名。命名时,标识符的选择由用户自定,但是不能与关键字相同。,常量,定义:所谓常量就是在程序的运行过程中,其 值不能改变的量。C语言中,常量分为整型常 量、实型常量、字符常量和字符串常量。整型 常量和实型常量被称为数值型常量。C语言 中,还有另外一种常量是用标识符命名的,称 为符号常量。,例:计算圆面积的C语言程序,#define PI 3.14159 main() float r, area;r=12.5;area=PI*r*r;printf(“ar

7、ea=%fn”,area); ,变量,定义:变量就是在程序的运行过程中其值可以改变的量。它 们是由用户定义得标识符,变量的命名必须遵循标识符的命 名规则。 例子: 变量的应用 #include “stdio.h” main() int a=10,b=20,c;a=30;b=40;c=a+b;printf(“c=%dn”,c); ,2.3 整形数据,一. 数值转换四种表现形式:十进制、二进制、八进制和十六进制。在十进制中,采用09这10个代码组成一系列的数字, 进位的规则为逢十进一。在二进制中,采用0和1这2个代码组成二进制的每位数 字,二进制的进位规则为逢二进一。在八进制中,采用07这8个代码

8、组成八进制的每个数 字,八进制的进位规则就是逢八进一。在十六进制中,数字由16个代码组成,分别是09和 AF(或者是af)这16个代码,十六进制的进位规则就是逢十 六进一。,1.将十进制数转换成二进制、八进 制、和十六进制,十进制数转换成二进制的规则为:将十进制的数字除以2,得到的商数继续除以2,直到商为0,然后将各次相除所得的余数从后往前排列,就得到该十进制数转换成的对应得二进制数。例如,将十进制数13转换成二进制的过程如下:2 13 2 6 12 3 02 1 10 1所得的余数从后往前排列,得到二进制数为1101.,2.将二进制、八进制和十六进制数 转换成十进制,举例说明二进制转换为十进

9、制数的规则。例如,将 二进制数1101转换为十进制数的计算步骤如下:(1101)2=1*23+1*22+0*21+1*20=(13)10 从上面的例子中,可以总结出将二进制数转换为十 进制数的方法:将二进制的每一位数从高位到低位 (与十进制相同,左边为高位,右边为低位)乘以2的 n-1次幂,n为该位的位数(将一个数字从右往左编 号,得到每一位的位数),然后将这些数求和。,将八进制转换为十进制数的规则:将八 进制数的每一位从高位到低位乘以8的n-1次 幂,n为该位的位数,然后将这些积求和。将十六进制转换为十进制规则与二进制 和八进制转换为十进制类似,每一位从高位 到低位乘以16的n-1次幂。,3

10、.二进制与八进制、十六进制之间 的转换,二进制转换成八进制数规则:每三位二 进制数转换成一位八进制数,二进制数从右 向左数,简称三转一。(同理一转三)二进制转换为十六进制数规则:每四位 二进制数转换成一位十六进制数,二进制从 右向左数,简称四转一。(同理一转四),二.整型常量,在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六 进制整型常量三种表示形式。注意,在C语言中没有直接二进制的整型 常量。(1)十进制整型常量由一串连续的09数字组成,如0、120、365、 1250等。(2)八进制整型常量以数字0开头,其中的数字为07,如0112, 0113,077等。(3)十六进制整型常量

11、以0x(数字0和字母x)或0X开头,其中的数字可 以是09、af或AF中的数字或英文字母,如0x11,0xa5等。整型变量又分为短整型(short int)、基本整型(int)、长整型 (long int)和无符号整型(unsigned)等几类。,例2.1 以下选项可作为C语言合法整数的是_ A) 10110B B) 0368 C) 0Xffa D) x2a2 例2.2 以下程序运行后的输出结果是_main()int x = 0210printf(“%Xn”,X);,答案分析:,例2.1 本题答案为C)。答案A不是C语言中三种整形常量之一。答案B不是合法的八进制整形常量中不能出现8。答案D中x

12、2a2前加上“0”就是一个合法的十六进制整形常量。 例2.2 变量x的初始化为210,是八进制的,转化为十进制为136,然后将十进制转化为十六进制数为88。最后程序的运行结果就是88。,三、整型变量,整型变量是用于存放整型值的变量。例如:人 口、次数、序号等应定义为整型变量。对应于整型 常量,整型变量也可分为短整型、基本整型、长整 形和无符号整型四种。定义基本整型变量用关键字int,形式如下:int i;当对变量赋值时,这个值就存储在这个存储单 元中。例如,执行了赋值语句:i = 6,变量的字节个数反映变量存储值的范围,不同的计算机 系统对以上所列的4种整型数所占用的字节数和数值范围有 不同的

13、规定。(如表2.1,p12)说明:如果要表示一个长整型常量,则应该在对应的整 型常量后面加上一个字母后缀l(L的小写)或者是L。如 0L,110L,123L等。在数字后面加上L,则表明为长整型常 量,在内存中占四个字节存储单元。无论是短整型还是长整型常量,C语言系统都默认为是 有符号整数。无符号整数在数字的后面加上一个字母后缀u 或者U。若是长整型无符号整型常量,则应该加后缀lu或者 是LU.,例2.3 以下选项中不属于C语言类型的是_ A) Signed short int B) unsigned long int C) Unsigned int D) long short 答案:D,四.整

14、数在内存中的存储形式,在计算机内存中最小存储单位称为“位 (bit)”。每一位中或者存放0,或者存放1,因 此称为二进制。一个字节(Byte)一般8个二进 制位。把最右边一位称为最低位,把最左边 一位称为最高位。(一个字节),1.有符号正整数,有符号正整数得存储形式称为“原码”。例 如:当用两个字节存放一个正整数10时,在 内存中的二进制为:0000000000001010 有符号正整数的取值范围为:132767,2.负整数,反码:将原码中的“0”变成“1”,“1”变成“0”。 补码:将反码加1就得到补码。 例如:求-6在内存中的存储形式。 (1) 正整数6在内存中存放的“原码”为:00000

15、00000000110 (2) 反码表示:1111111111111001 (3)反码加1得:1111111111111010,补码转换成对应的负整数步骤如下:,(1)将补码各位取反。 (2)将得到的结果加上1。 (3)把所取的二进制数转换成十进制数。 (4)因为原来得补码最高位为1,所以在所得到的十进制数前加一个负号。(例如:1111111111111101),3.无符号正整数,无符号整数存放在内存中时,最高位不再代表“符号位”。其取值范围为: 065535. 例2.4 有以下程序 main() unsigned int a;int b=-1;a=b;printf(“%u”,a); 程序运行

16、后的结果是_。 A) -1 B) 65535 C) 32767 D) -32767 答案:B,2.4 实型数据,一.实型常量在C语言中,实型常量有两种表示形式:小数形式和指 数形式。(1)小数形式。其中表现形式是包含一个小数点的十进 制数字串,小数点的前面或后面可以没有数字,但不能同时 没有数字。如:3.14159 0.158 12. .36 0.0 -18.0(2)指数形式。其格式由两部分组成:一部分是十进制 小数形式或十进制常量部分,另一部分为指数部分。指数部 分是在e或者E后跟整数价码(即可带符号的整数)。比如: 1e5 1.25E+4 2.0E-3口诀:e前e后必有数,e后必定是整数,

17、例2.5 以下选项中合法的实型常数是_。 A) 5E2.0 B) E-3 C) .2E0 D) 1.3E答案:C 例2.6 以下选项中,不能作为合法常量的是 _。 A) 1.234e04 B)1.234e0.4 C)1.234e+4 D) 1.234e0 答案:B,二.实型变量,C语言中,实型变量分为单精度实型(float)与 双精度实型(double)两种。它们定义的形式分别如 下:float x,y,z; /*定义单精度实型变量x,y,z*/double a,b,c; /*定义双精度实型变量a,b,c*/ 单精度占4个字节的存储单元,双精度占8个字节的 存储单元。注意:实型变量只能存放实型

18、值,不能用整型 变量存放实型值,也不能用实型变量存放整型值。,2.5 算术表达式,一.算术运算符与算术表达式在C语言中,有下列五个基本的算术运算符: +,-,*,/和%,依次表示为加,减,乘,除,求 余运算。将运算符分为单目运算、双目运算和三目 运算符等类型。上述五个基本的运算符都为双目运 算符。注意:求余运算符%的运算对象只能是整型, 即%左侧的被除数与右侧的除数都只能为整型值。,说明:,(1)算术运算符两边的运算对象类型必须一致才能运算, 运算结果的类型与运算对象的类型一致。(2)如果算术运算符两边的运算对象类型不一致,系统 会按照低类型(数据占用较少的存储字节数)向高类型(数据占 用较多

19、的存储节数)的转换规则将两个运算对象的类型变为一 致,然后在运算。(3)在C语言中,所有实型数的运算都是以双精度方式进 行的。若是单精度数,则在尾部补充0,使之转换为双精 度。,二. 运算符的优先级、结合性和算术 表达式,(1)优先级优先级由高到低:()、+ 、-、*、/、%、+、-,单目,双目,同级,同级,同级,高,低,(2)算术运算符和圆括号的结合性单目运算符“+”和“-”的结合性是从右到左的,其余运算符的结合性是从左到右。例(5+1)/2=35+1/2=55*-2=-10等价于5*(-2)=-10原因:单目运算符“-”的优先级高于乘号。,(3)算术表达式运算规则:1. 在算术表达式中,可

20、使用多层圆括号,但左右括号必须匹配。2. 在算术表达式中,若包含不同优先级的 运算符,则按运算符的优先级由高到低进行;若表达式运算符的优先级相同, 则按运算符的结合方向进行。,三.强制类型转换,在进行算术运算时,如果希望将某一运算量转 换成指定的类型,则可以利用强制转换符。强制转 换表达示如下:(类型名)表达式其中,“(类型名)”是强制类型转换符,它将右边 表达示的类型转换为括号中的类型。 注意:将类型名括起来的一对圆括号是不能省略的。,2.6 赋值表达式,一.赋值运算符和赋值表达式在C语言中,“=”是赋值运算符,由赋值运算符 组成的表达示称为赋值表达式。它的一般格式如 下:变量名=表达式它的

21、含义是将赋值运算右边的表达式的运算结 果赋值给左边的变量。因此,赋值号左边必须是一 个代表某一存储单元的变量名,赋值号右边是C语 言任意合法的表达式。,说明:,赋值运算符左边必须是变量,而不能是表达式。如x+1=3就是错误的。 赋值运算的作用是将赋值运算符右边的值赋值给左边的变量,运算后左边变量的值被右边表达式的值代替,而右边的值不会改变。如 y=10;x=y; 则x=10;y=10; 赋值表达式的值是赋值号左边变量被赋值后的值。如x=(y=10); 赋值运算法不同于数学上的“等号”。 如果赋值号两边的运算对象不一致,则系统会自动进行类型转换。如int a=4.9 结果为4。,二. 复合赋值表

22、达式,在C语言中,可以将算术运算符与赋值运算符组合在一起组成复合赋值运算符。它们是:+=、-=、*=、/=、%=。表达式n+=1等价于n=n+1。表达式n*=m+3等价于n=n*(m+3),例2.7 已有变量a,其值为9,计算表 达式a+=a-=a+a。,(1)先计算a+a=18。 (2)计算a-=18等价于a=a-18,结果为a=-9。 (3)最后就是a+=-9等价于a=a-9,结果为-18。,三. 赋值运算中的类型转换,转换规则:(1)若运算符两边一个是短整型,一个是长整形,则将短整型转换为长整型,然后在运算。(一长一短,向长转换)(2)若运算符两边一个是有符号整型,一个是无符号整型,则将

23、有符号整型转换成无符号整型,然后进行运算。(一有一无,向无转换),说明:,当赋值号左边的变量为短整型,右边的值为长整型时,短整型变量只能接受长整型低位两个字节中的数据,高位上两个字节中的数据将丢失。也就是说,右边的值不能超出短整型的数值范围,否则将得不到预期的结果。 当赋值号左边的变量为无符号整型,右边的值为有符号整型时,则把内存中的内容原样复制。 当赋值号左边的变量为有符号整型,右边为无符号整型时,复制的机制同上。,2.7 自加、自减运算符和逗号运算符,形式:i+, i-, +i, -i 规则:+在右,表达式不变,其自身值 +1;(-类似)+在左,表达式、其自身值都+1。 (-类似),逗号运算符和逗号表达式,逗号运算符:把两个或两个以上的表达式连接起来,可以构成一个新的表达式。如:x=5,y=6,z=7;(1)逗号表达式是从左到右的运算。(2)在所有运算中,逗号运算符的优先级最低。(3) 最后一个表达式的值为逗号表达式的 值。,例2.8 有以下程序main()int x,y,z;x=y=1;z=(x+,y+,+y);printf(“%d,%d,%dn”,x,y,z);程序运行后的输出结果是_。A) 2,3,3 B) 2,3,2C) 2,3,1 D) 2,2,1 答案:A,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报