C语言程序设计教程第2章_北京邮电大学出版社
- 格式:ppt
- 大小:339.00 KB
- 文档页数:47
c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第1章进入c语言程序世界二、1.i love china!printf(we are students.\n)2.6项目实训题参考答案1.编写一个c程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *i am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf(********************\n);printf( i am a student!\n);printf(********************\n);}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。
解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000第2章编制c程序的基础知识一选择题c b a b a c c二操作题,2,-8,23.000000,2.500000,-8.0000002. abc defghwhy is21+35equal 523.34214. aaa项目实训题1.定义一个符号常量m为5和一个变量n值为2,把它们的乘积输出。
#define m 5main(){ int n,c;n=2; c=m*n;printf(%d\n,c);}2.编程求下面算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7;(2)(float)(a+b)/2+(int)x%(int)y,设a=2,b=3,x=3.5,y=2.5。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
《C语言程序设计》课程教学大纲一、课程基本信息课程编号:××××课程名称:C语言程序设计学时:64学时实验学时:24学时课程类别:公共基础课课程性质:必修课先行课程:计算机导论或计算机应用基础适用专业:计算机科学与技术、网络工程、电气工程及其自动化、自动化、电子信息工程、机械工程及自动化等责任单位:电气信息工程系二、课程性质、目的与任务本课程是为电气信息类等本、专科学生开设的,以培养学生程序设计能力为目的的公共基础课,是学习其他专业课的基础,同时也是第一门高级语言程序设计课。
本课程的任务是结合一般数值计算向学生介绍计算机程序设计的基本知识,使学生掌握C语言的基本语法,掌握程序设计的基本思想、基本概念和基本方法和技巧,并能运用所学的知识和技能对一般问题进行分析和程序设计,编制出高效的C语言应用程序;同时了解进行科学计算的一般思路,培养应用计算机解决和处理实际问题的思维方法与基本能力,为进一步学习和应用计算机打下基础。
三、课程的内容及要求、教学重点与难点(一)C语言程序设计基础1、主要教学内容及要求1)了解C语言的发展、特点、功能及地位;2)了解机器语言、汇编语言和高级语言的差异;3)掌握C语言程序的基本结构;4)熟悉编写C语言程序的基本步骤和上机调试过程。
2、知识点与能力点要求1)知识点:C程序的基本结构、上机环境、进行简单C程序的编写;2)能力点:根据所学内容进行简单的C程序的编写以及上机运行。
3、教学的重点与难点1)教学重点:C程序的基本结构、编写C语言程序的基本步骤和上机调试过程、上机环境。
2)教学难点:C程序的基本结构。
(二)算法1、主要教学内容及要求1)理解算法的概念、特点;2)了解算法的描述方法;3)掌握流程图、N-S流程图;4)掌握程序设计的三种基本结构;5)理解结构化程序设计思想;2、知识点与能力点要求1)知识点:算法的的概念、算法的描述方法(流程图,N-S流程图)、程序设计的三种基本结构、结构化程序设计思想。
第2章基本数据类型2.2 浮点型2.3 字符型2.4 逻辑类型2.5 标准函数2.6 量的定义方法2.1 整型2.1.1 基本整型1. 类型名称int2. 取值范围 -32768~+32767(-215~215-1)3. 数据表示方法 与数学上类似, 不能有分隔符。
C语言允许使用八进制整数与十六进制整数, 八进制整数加前导0(数字), 十六进制整数加前导0X。
4. 运算操作 (1) 算术运算包括: +(加法)、-(减法)、*(乘法)、/(除法)、%(求余), 运算规则除除法外, 与数学中相同。
整数的除法运算是整除, 得到商, 如5/3结果为1。
对于负数, 多数机器采用向零取整法, 如-5/3结果为-1。
求余运算, 又称取模运算, 得到余数, 如5%3结果为2, -5%3结果为-2。
求余运算在许多场合都非常有用, 如判断整数a是不是b的倍数, 可看a%b是否等于零。
a%10得到a的个位数字, a/10)%10得到a的十位数字, 如此可分离一个整数的数字。
一般只有除数大于0, 求余运算才有意义。
当a小于0时, a%b等于-((-a)%b)。
(2) 关系运算包括: <(小于)、<=(小于等于)、==(等于)、!=(不等于)、>(大于)、>=(大于等于)等六种, 运算规则与数学中相同, 运算结果为逻辑类型数据。
关系运算成立结果为1, 不成立结果为0。
5. 存储 C标准没有具体规定各类数据存储的字节数, 各种机器处理有所不同, 一般以一个机器字(Word)存放1个int数据, PC机上int数据存储用两个字节。
机器中用最高位表示数的符号, 正数符号位用0表示, 负数符号位用1表示。
负数在机器中存放的是其补码。
6. 应用例2-1求两个整数的积。
/*程序2 -1, 求两个整数之积*/ #include ″stdio.h″ main() {int a, b; int m; printf(″请输入两个整数a, b: ″); scanf(″%d, %d”, &a, &b); m=a*b; printf(″积=%d\n″, m); }输入数据: 2000, 1 运行结果: 积=20002.1.2 拓展整型为拓展数据处理的范围, C语言通过类型修饰符来改变基本数据类型的含义, 使之精确适合于不同应用场合。
C程序设计教程第二版习题答案第1章:C语言概述1. 简述C语言的特点。
- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。
它支持多种编程范式,包括过程式、面向对象和泛型编程。
2. C语言的发展历史。
- C语言由丹尼斯·里奇在20世纪70年代初期开发,最初用于UNIX操作系统的编写。
随着UNIX的流行,C语言也逐渐普及。
第2章:C语言基础1. 变量声明的规则。
- 变量声明必须指定数据类型,变量名必须以字母或下划线开头,可以包含字母、数字和下划线,但数字不能作为变量名的首位。
2. 常量的使用。
- 常量是在程序执行过程中不能被修改的值,可以用#define预处理指令定义,或者直接使用字面量。
第3章:控制语句1. if语句的使用。
- if语句用于根据条件执行不同的代码块。
基本语法为:`if (条件) { 执行代码 }`。
2. switch语句的使用。
- switch语句用于根据变量的值执行不同的代码块。
基本语法为:`switch (变量) { case 值1: 执行代码1; break; ... }`。
第4章:循环语句1. for循环的使用。
- for循环用于重复执行一段代码直到满足特定条件。
基本语法为:`for (初始化; 条件; 增量/减量) { 执行代码 }`。
2. while循环的使用。
- while循环在条件为真时重复执行代码块。
基本语法为:`while (条件) { 执行代码 }`。
第5章:函数1. 函数的定义和调用。
- 函数是一段具有特定功能的代码块,可以被重复调用。
定义函数的基本语法为:`返回类型函数名(参数列表) { 函数体 }`。
调用函数时使用:`函数名(参数)`。
2. 函数的参数传递。
- 参数传递可以是值传递或引用传递。
值传递时,函数内部对参数的修改不会影响到外部变量的值;引用传递则相反。
第6章:数组1. 一维数组的声明和使用。
- 一维数组的声明语法为:`类型数组名[大小]`。
本文由jianhongwei810贡献 ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
第2章 数据类型,运算符和表达式 章 数据类型, 2.1 数据类型 2.2 C语言的基本符号 语言的基本符号 2.3 常量与变量 2.4 运算符与表达式 2.1 数据类型 数据是程序处理的对象. 语言在程序处理数据之前 语言在程序处理数据之前, 数据是程序处理的对象.C语言在程序处理数据之前,要求 数据具有明确的数据类型. 数据具有明确的数据类型.数据类型是指数据的内部表示形 体现的是数据的操作属性, 式,体现的是数据的操作属性,对具有不同数据类型的数据 可进行不同的操作. 可进行不同的操作.用户在程序设计过程中所使用的每个数 据都要根据其不同的用途赋以不同的类型, 据都要根据其不同的用途赋以不同的类型,一个数据只能有 一种类型.每种数据类型都由两方面组成, 一种类型.每种数据类型都由两方面组成,即数据的存储方 式和对该类型的数据的运算方式. 式和对该类型的数据的运算方式. 数据类型一般具有以下基本含义: 数据类型一般具有以下基本含义: ①数据类型规定了一个以值为其元素的集合,即规定该类型 数据类型规定了一个以值为其元素的集合, 中数据的定义域.例如double表明计算机能够计算的所有 中数据的定义域.例如 表明计算机能够计算的所有 实数;逻辑类型的数据取值范围是非" 实数;逻辑类型的数据取值范围是非"真"即"假". 下一页 返回 2.1 数据类型 ②数据类型定义了一个运算集,即不同类型的数据拥有不同 数据类型定义了一个运算集, 的运算关系.例如,对数值类型数据可进行算术运算, 的运算关系.例如,对数值类型数据可进行算术运算,对逻 辑类型数据可进行逻辑关系运算. 辑类型数据可进行逻辑关系运算. ③数据类型定义了数据在计算机内的存储以及在书写中的表 示方式.例如整型占用计算机一个字长, 示方式.例如整型占用计算机一个字长,而空类型的长度为 零. C语言规定任何数据都必须有明确的数据类型.C语言提供了 语言规定任何数据都必须有明确的数据类型. 语言提供了 语言规定任何数据都必须有明确的数据类型 5种基本数据类型:字符型(char),整型(int),单精 种基本数据类型: ),整型 ),单精 种基本数据类型 字符型( ),整型( ), 度实型(float),双精度实型 和空类型(void), 度实型 ,双精度实型(double)和空类型 和空类型 , 以及6种聚合类型 数组,指针,结构体,公用体(联合 种聚合类型: 联合), 以及 种聚合类型:数组,指针,结构体,公用体 联合 , 位域和枚举类型. 位域和枚举类型.实际上较为复杂的数据结构或类型是由基 本数据类型按照某种方式组合而成的. 本数据类型按照某种方式组合而成的. 上一页 返回 2.2 C语言的基本符号 语言的基本符号 2.2.1 基本符号集 C语言的基本符号集是 语言的基本符号集是ASCII字符集,参见本书的附录 . 字符集, 语言的基本符号集是 字符集 参见本书的附录1. 它由以下几部分组成: 它由以下几部分组成: 阿拉伯数字10个 ①阿拉伯数字 个:0,1,2,3,…,8和9. , , , , , 和 . ②大小写英文字母各26个:A,B,C,…,Z,a,b, 大小写英文字母各26个 A,B,C,…,Z,a,b, c,…,y和z. , , 和 . 下划线: . ③下划线:_. 特殊符号,主要是指运算符和操作符. ④特殊符号,主要是指运算符和操作符.相关内容我们将在 以后介绍. 以后介绍. 下一页 返回 2.2 C语言的基本符号 语言的基本符号 2.2.2 标识符 标识符是一个字符序列. 语言的标识符可分为用户标识符 语言的标识符可分为用户标识符, 标识符是一个字符序列.C语言的标识符可分为用户标识符, 保留字和预定义标识符3类 有些教材称保留字为" 保留字和预定义标识符 类,有些教材称保留字为"关键 标识符的作用是作为常量,变量,函数和类型的名称. 字".标识符的作用是作为常量,变量,函数和类型的名称. 1.用户标识符 用户标识符 用户可以根据需要对C程序中用到的变量 符号常量, 程序中用到的变量, 用户可以根据需要对 程序中用到的变量,符号常量,用户 函数或文件指针进行命名,形成用户标识符, 函数或文件指针进行命名,形成用户标识符,这类标识符的 构成规则如下: 构成规则如下: 由英文字母,数字和下划线组成,且第1个字符不能是数 ①由英文字母,数字和下划线组成,且第 个字符不能是数 必须是字母或下划线. 字,必须是字母或下划线. 例如: , , 都是合法的标识符, 例如:a,_A,aBc,xlz和y_3都是合法的标识符,而 , 和 都是合法的标识符 123,3_ab,#abc,! 和a*bc都是非法标识符. ,!45和 都是非法标识符. , , ,! 都是非法标识符 上一页 下一页 返回 2.2 C语言的基本符号 语言的基本符号 ②大,小写英文字母的含义不同.比如SUM,Sum和sum 小写英文字母的含义不同.比如 , 和 代表3个不同的标识符 这一点一定要注意. 个不同的标识符, 代表 个不同的标识符,这一点一定要注意. 语言本身并没有要求标识符的长度, ③C语言本身并没有要求标识符的长度,不同的 编译系统允 语言本身并没有要求标识符的长度 不同的C编译系统允 许包含的字符个数有所不同.通常可以识别前面8个字符 个字符, 许包含的字符个数有所不同.通常可以识别前面 个字符, 但在任何机器上,所能识别的标识符的长度总是有限的, 但在任何机器上,所能识别的标识符的长度总是有限的,有 些系统可以识别长达31个字符的标识符 个字符的标识符( 些系统可以识别长达 个字符的标识符(如VAX-11 VMSC),而有些系统只能识别 个字符长度的标识符.这 ),而有些系统只能识别 个字符长度的标识符. ),而有些系统只能识别8个字符长度的标识符 意味着即使第9个字符不同 只要前8个字符一样 个字符不同, 个字符一样, 意味着即使第 个字符不同,只要前 个字符一样,系统也认 为是同一个标识符, 为是同一个标识符,如:Category1和Category2表示同 和 表示同 一个标识符.因此,为了避免出错和增加可移植性, 一个标识符.因此,为了避免出错和增加可移植性,标识符 最好前8个字符有所区别 个字符有所区别. 最好前 个字符有所区别. 上一页 下一页 返回 2.2 C语言的基本符号 语言的基本符号 ④用户定义标识符时,应当尽量遵循"简洁明了"和"见名 用户定义标识符时,应当尽量遵循"简洁明了" 知意"的原则.一个写得好的程序, 知意"的原则.一个写得好的程序,标识符的选择应尽量反 映出所代表对象的实际意思.如表示" 映出所代表对象的实际意思.如表示"年"可以用year,表 可以用 , 示"长度"可以用length,表示加数的"和"可以用sum 长度"可以用 ,表示加数的" 可以用 等,这样增加了标识符的可读性,使程序更加清晰. 这样增加了标识符的可读性,使程序更加清晰. 指出以下各标识符组中合法的用户标识符. 例2-1 指出以下各标识符组中合法的用户标识符. 上一页 下一页 返回 2.2 C语言的基本符号 语言的基本符号 分析: 语言规定用户标识符可以由 个英文字母(大写或 语言规定用户标识符可以由26个英文字母 分析:C语言规定用户标识符可以由 个英文字母 大写或 小写),数字(0~ 和下划线 组成, 小写 ,数字 ~9)和下划线 (_)组成,且第 个必须是字 组成 且第1个必须是字 母或下划线.对于第1组选择项 由于A.和 中分别包含有 组选择项, 母或下划线.对于第 组选择项,由于 和D.中分别包含有 非法的标识符字符(#和 , 中又使用了关键字void, 非法的标识符字符 和*),而C.中又使用了关键字 中又使用了关键字 , 因此都不是合法的用户标识符;答案B.中虽然使用了预定义 因此都不是合法的用户标识符;答案 中虽然使用了预定义 标识符scanf,但它不是关键字,C语言语法允许将预定义 标识符 ,但它不是关键字, 语言语法允许将预定义 标识符作为用户标识符使用,因此编译时并不报错, 标识符作为用户标识符使用,因此编译时并不报错,只是这 样会使其失去原来的特定含义,所以虽然合法但不提倡. 样会使其失去原来的特定含义,所以虽然合法但不提倡.故 组中B.是正确答案 组中D.是正确答案 第1组中 是正确答案.同理第 组中 是正确答案,第3组 组中 是正确答案.同理第2组中 是正确答案, 组 是正确答案. 组的D.答案中有 中A.是正确答案.在第 组的 答案中有 是正确答案 在第2组的 答案中有INT为大写而不是 为大写而不是 关键字,因为C语言中大小写字母是不一样的字符 语言中大小写字母是不一样的字符. 关键字,因为 语言中大小写字母是不一样的字符. 上一页 下一页 返回 2.2 C语言的基本符号 语言的基本符号 2.保留字 保留字 保留字是C语言编译系统固有的 语言编译系统固有的, 保留字是 语言编译系统固有的,用作语句名和类型名的标 识符. 语言共有 个保留字,每个保留字在C程序中都代 语言共有32个保留字 识符.C语言共有 个保留字,每个保留字在 程序中都代 表着某一固定含义,所有保留字都要用小写英文字母表示, 表着某一固定含义,所有保留字都要用小写英文字母表示, 且这些保留字都不允许作为用户标识符使用. 且这些保留字都不允许作为用户标识符使用. ①描述数据类型定义:typedef,void. 描述数据类型定义: . ②描述存储类型:auto,extern,register,static和 描述存储类型: 和 volatile. . 描述数据类型: ③描述数据类型: char,const,double,float,int,long,short,signed,st ruct,union,unsigned和enum. 和 . 描述语句: ④描述语句: break,case,continue,default,do,else,for,goto,if, return,sizeof,switch和while. 和 . 上一页 下一页 返回 2.2 C语言的基本符号 语言的基本符号 3.预定义标识符 预定义标识符 这些标识符在C语言中都具有特定含义, 这些标识符在 语言中都具有特定含义,如C语言提供的编译 语言中都具有特定含义 语言提供的编译 处理预命令#define和#include.C语言语法允许用户把 和 处理预命令 . 语言语法允许用户把 这类标识符作其他用途, 这类标识符作其他用途,但这将使这些预定义标识符失去系 统规定的原意.鉴于目前各种计算机系统的 语言已经把这 统规定的原意.鉴于目前各种计算机系统的C语言已经把这 类标识符作为统一的编译预处理中的专用命令名使用, 类标识符作为统一的编译预处理中的专用命令名使用,因此 为了避免误解, 为了避免误解,建议用户不要把这些预定义标识符另作它用 或将它们重新定义. 或将它们重新定义. 上一页 返回 2.3 常量与变量 C语言中的各类数据类型都有常量和变量之分.常量用来表 语言中的各类数据类型都有常量和变量之分. 语言中的各类数据类型都有常量和变量之分 示数据的值.变量不但表示数据的值,也可用来存放数据. 示数据的值.变量不但表示数据的值,也可用来存放数据. 2.3.1 常量 所谓常量,就是在程序运行过程中其值不改变的量. 所谓常量,就是在程序运行过程中其值不改变的量.如: 21,'x',123.23,3.14e,3和"china"等.常量也 , , , , 和 等 有数据类型,根据常量的不同取值形式, 语言将常量分为 语言将常量分为5 有数据类型,根据常量的不同取值形式,C语言将常量分为 整型常量,实型常量,字符型常量, 种:整型常量,实型常量,字符型常量,字符串常量和符号 型常量. 型常量. 1.整型常量 整型常量 通常情况下,整型常量有4种表示形式 即二进制,八进制, 种表示形式: 通常情况下,整型常量有 种表示形式:即二进制,八进制, 十进制和十六进制. 十进制和十六进制. 下一页 返回 2.3 常量与变量 (1)二进制整数表示 ) 一个二进制数有两个特点: 一个二进制数有两个特点: ①它有两个不同的数码符号,即:0和1. 它有两个不同的数码符号, 和 . 等都是二进制数. ②它是逢二进位的.如:10101,1010等都是二进制数. 它是逢二进位的. , 等都是二进制数 通常,任意一个二进制整数 ,都可以表示为: 通常,任意一个二进制整数M,都可以表示为: 其中i表示数的某一位, 表示第 位的数码,它可以是0, 表示第i位的数码 其中 表示数的某一位,Mi表示第 位的数码,它可以是 ,1 表示数的某一位 中的任意一个, 为整数 的位数.式中2就称为计数制底数 为整数M的位数 中的任意一个,n为整数 的位数.式中 就称为计数制底数 (或称为基数 ,所以这是二进制整数. 或称为基数),所以这是二进制整数. 或称为基数 上一页 下一页 返回 2.3 常量与变量 将二进制数10101转换成十进制数. 转换成十进制数. 例2-2 将二进制数 转换成十进制数 转换过程如下: 转换过程如下: (10101)2=1×24+0×23+1×22+0×21+1×20=(2 × × × × × 1)10 (2)八进制整数表示 ) 一个八进制数也有两个特点: 一个八进制数也有两个特点: 个不同的数码符号, ①它有8个不同的数码符号,即:0,1,2,3,…,6和7; 它有 个不同的数码符号 , , , , , 和 ; 语言中, 开头. ②它是逢八进位的.在C语言中,以0开头.如:0123, 它是逢八进位的. 语言中 开头 , 056等都是八进制整数. 等都是八进制整数. 等都是八进制整数 上一页 下一页 返回 2.3 常量与变量 通常,任意一个八进制整数 ,都可以表示为: 通常,任意一个八进制整数B,都可以表示为: 其中i表示数的某一位, 表示第 位的数码,它可以是0~ 表示第i位的数码 其中 表示数的某一位,Bi表示第 位的数码,它可以是 ~7 表示数的某一位 中的任意一个, 为整数 的位数,式中的8就是基数 为整数B的位数 就是基数, 中的任意一个,n为整数 的位数,式中的 就是基数,故称 八进制整数. 八进制整数. 将八进制数372换成十进制数. 换成十进制数. 例2-3 将八进制数 换成十进制数 转换过程如下: 转换过程如下: (372)8=3×82+7×81+2×80=(250)10 × × × (3)十进制整数表示 ) 一个十进制数有两个特点: 一个十进制数有两个特点: 它有10个不同的数码符号 个不同的数码符号, ①它有 个不同的数码符号,即:0,1,2,3,…,8和 , , , , , 和 9; ; 它是逢十进位的. 等都是十进制整数. ②它是逢十进位的.如:123,456等都是十进制整数. , 等都是十进制整数 上一页 下一页 返回 2.3 常量与变量 通常,任意一个十进制整数 ,都可以表示为: 通常,任意一个十进制整数A,都可以表示为: 其中i表示数的某一位, 表示第 位的数码,它可以是0~ 表示第i位的数码 其中 表示数的某一位,Ai表示第 位的数码,它可以是 ~9 表示数的某一位 中的任意一个, 为整数 的位数,式中10就是基数 为整数A的位数 就是基数, 中的任意一个,n为整数 的位数,式中 就是基数,所以 这是十进制整数. 这是十进制整数. (4)十六进制整数表示 ) 类似于十进制,八进制有两个主要特点: 类似于十进制,八进制有两个主要特点: ①它有16个不同的数码符号,即:0~9和A,B,C,D, 它有 个不同的数码符号, ~ 和 , , , , 个不同的数码符号 E和F. 和 . 它是逢十六进位的, 语言中, 开头. ②它是逢十六进位的,在C语言中,以0X开头.如: 语言中 开头 0X123,0X18等都是十六进制整数. 等都是十六进制整数. , 等都是十六进制整数 上一页 下一页 返回 2.3 常量与变量 通常,任意一个十六进制数 ,都可以表示为: 通常,任意一个十六进制数C,都可以表示为: 其中i表示数的某一位,Ci表示第 位的数码,它可以是 ~F 表示第i位的数码 其中 表示数的某一位, 表示第 位的数码,它可以是0~ 表示数的某一位 中的任意一个, 为整数 的位数,式中以16为基数 为整数C的位数 为基数, 中的任意一个,n为整数 的位数,式中以 为基数,故称 十六进制整数. 十六进制整数. 例2-4 将十六进制数123转换成十进制数. 将十六进制数 转换成十进制数. 转换成十进制数 转换过程如下: 转换过程如下: (123)16=1×162+2×161+3×160=(291)10 × × × 上一页 下一页 返回 2.3 常量与变量 (5)十进制整数转换成非十进制数 ) 通常,十进制整数转换成非十进制整数,采用" 通常,十进制整数转换成非十进制整数,采用"整除基数倒 序取余数"的方法,即用十进制数不断除以相应的基数(如 , 序取余数"的方法,即用十进制数不断除以相应的基数 如2, 8和16)直至商为 为止.将所得余数,依次倒序排列,即可 直至商为0为止 和 直至商为 为止.将所得余数,依次倒序排列, 得到转换后的数制. 得到转换后的数制. 将十进制数的96转换成二进制数 转换成二进制数. 例2-5 将十进制数的 转换成二进制数. 转换过程如下: 转换过程如下: 所以与十进制96等值的二进制数是 所以与十进制 等值的二进制数是1100000. . 等值的二进制数是 上一页 下一页 返回 2.3 常量与变量 将十进制数的215转换成八进制数. 转换成八进制数. 例2-6 将十进制数的 转换成八进制数 转换过程如下: 转换过程如下: 所以与十进制215等值的八进制数是 等值的八进制数是327. 所以与十进制 等值的八进制数是 . 上一页 下一页 返回 2.3 常量与变量 将十进制数1234转换成十六进制数. 转换成十六进制数. 例2-7 将十进制数 转换成十六进制数 转换过程如下: 转换过程如下: 所以与十进制1234等值的十六进制数是 等值的十六进制数是4D2. 所以与十进制 等值的十六进制数是 . 上一页 下一页 返回 2.3 常量与变量 语言中整型常量不管是十进制, 在C语言中整型常量不管是十进制,八进制或十六进制,它 语言中整型常量不管是十进制 八进制或十六进制, 的数值范围为-2 的数值范围为 15~215-1.整型常量一般在微型机中占两 . 个字节. 个字节. 为了扩大整型数据的数值范围,C语言还提供了一种"长整 语言还提供了一种" 为了扩大整型数据的数值范围, 语言还提供了一种 型常量" 它的数值范围是 型常量",它的数值范围是-231~231-1,在微型机中占 ,在微型机中占4 个字节,但长整型数值后面通常要加" 或 个字节,但长整型数值后面通常要加"L"或"l".例如, .例如, 123L,78L等是长整型数.因此对于超出基本整型的数据, , 等是长整型数. 等是长整型数 因此对于超出基本整型的数据, 可使用长整型表示. 可使用长整型表示. 上一页 下一页 返回 2.3 常量与变量 2.实型常量 实型常量 实型常量又称为"浮点数" 有两种表示形式: 实型常量又称为"浮点数",有两种表示形式: (1)十进制小数表示形式 ) 它是由数字和小数点组成, 它是由数字和小数点组成,如:0.35,-0.56等都是十进制 , 等都是十进制 小数形式. 小数形式. (2)指数表示形式 ) 它是由尾数,字母 或 和指数 部分组成, 和指数3部分组成 它是由尾数,字母e(或E)和指数 部分组成,如:123e3 均表示123×103.但需要注意的是: 但需要注意的是: 或123E3均表示 均表示 × 之前必须有数字. ①尾数必须存在,即e(或E)之前必须有数字. 尾数必须存在, 或 之前必须有数字 ②指数必须是整数. 指数必须是整数. 上一页 下一页 返回 2.3 常量与变量 一个实数既可以用十进制小数表示,也可以用指数形式表示, 一个实数既可以用十进制小数表示,也可以用指数形式表示, 甚至可以有多种指数表示形式,例如1234.56可以表示为 甚至可以有多种指数表示形式,例如 可以表示为 1.23456e3,12.3456e2和0.123456e4等多种形式. 等多种形式. , 和 等多种形式 但所有这些表示形式中,只有1.23456e3是 "规范化指数 但所有这些表示形式中,只有 是 形式" 即在尾数中,小数点左边只有一个非零数字, 形式",即在尾数中,小数点左边只有一个非零数字,一般 地在C程序中一个实数在用指数形式输出时 程序中一个实数在用指数形式输出时, 地在C程序中一个实数在用指数形式输出时,都是按规范化 形式输出的.实型常量通常在微型机中占4个字节 个字节. 形式输出的.实型常量通常在微型机中占 个字节. 3.字符型常量 字符型常量 字符型常量是用单引号括起来的一个字符, 字符型常量是用单引号括起来的一个字符,通常在微型机中 占一个字节, 等都是字符型常量. 占一个字节,如' a',' *',' A' 和 ' 3' 等都是字符型常量. , , 需要注意的是: 语言中 字符区分大小写, 语言中, 需要注意的是:C语言中,字符区分大小写,且空格也是一 个字符. 个字符. 上一页 下一页 返回 2.3 常量与变量 指出下面不合法的常量. 例2-8 指出下面不合法的常量. 分析:从上面的4个选项可以看出 和C.是字符常量,选项 分析:从上面的 个选项可以看出A.和 是字符常量, 个选项可以看出 是字符常量 A.是一个普通的八进制转义字符 ASCII码值是 A.是一个普通的八进制转义字符,ASCII码值是2,C.仅由 是一个普通的八进制转义字符, 码值是2,C.仅由 两个连续的单引号组成,不是正确的字符常量,不过, 两个连续的单引号组成,不是正确的字符常量,不过, Turbo C 2.0之前的 语言版本不能检测出此类错误.B.和 之前的C语言版本不能检测出此类错误 之前的 语言版本不能检测出此类错误. 和 D.是字符串常量,由于 语言中允许空字符串,B.是正确的. 是字符串常量, 语言中允许空字符串, 是正确的 是正确的. 是字符串常量 由于C语言中允许空字符串 D.初看起来像是一个八进制的转义序列,但其中的数字8超 初看起来像是一个八进制的转义序列,但其中的数字 超 初看起来像是一个八进制的转义序列 出了八进制的范围,所以D.是不合法的常量 是不合法的常量. 出了八进制的范围,所以 是不合法的常量. 除了上述形式字符常量外,C还允许用一种特殊形式的字符 除了上述形式字符常量外, 还允许用一种特殊形式的字符 常量,就是以反斜杠" 开头的字符序列, 常量,就是以反斜杠"\"开头的字符序列,由于该形式将 反斜杠后面的字符序列转换成另外的含义,故称之为转义符. 反斜杠后面的字符序列转换成另外的含义,故称之为转义符. 所示的是常用转义字符. 下表2-1所示的是常用转义字符. 所示的是常用转义字符 上一页 下一页 返回 2.3 常量与变量 注意: 表示的含义是不同的, 注意:"A"和' A' 表示的含义是不同的,"A"为字符串 和 为字符串 常量, 是字符常量.字符' 常量,而' A' 是字符常量.字符' \234' 的值为 (234)8=156,不是 = ,不是234.字符 ' \x34 ' 的值为 . (34)16=52,不是 . = ,不是34. 在C语言中,字符是按其所对应的ASCII码值来存储的,一 语言中,字符是按其所对应的 码值来存储的, 语言中 码值来存储的 个字符占一个字节.例如字符' : 个字符占一个字节.例如字符' A': 字符常量是由单引号引起的一个字符, 字符常量是由单引号引起的一个字符,同时该字符常量也可 以用整数来表示(ASCII码值 .故其输出形式有两种,既可 码值).故其输出形式有两种, 以用整数来表示 码值 以输出字符本身,也可输出其ASCII码值. 码值. 以输出字符本身,也可输出其 码值 上一页 下一页 返回 2.3 常量与变量 写出下面程序的输出结果. 例2-9 写出下面程序的输出结果. #include main ( ) { char ch=′A′; /* 定义 为字符变 定义ch为字符变 同时赋初值′A′*/ 量,同时赋初值 printf(〃\c,%d,%o〃,ch,ch,ch); /*分别以字符,十 分别以字符, \ 分别以字符 进制,八进制形式输出ch*/ 进制,八进制形式输出 } 运行结果为: 运行结果为: A,65,101 上一页 下一页 返回 2.3 常量与变量 4.字符串常量 字符串常量 字符串常量就是用一对双引号括起来的若干字符序列. 字符串常量就是用一对双引号括起来的若干字符序列.如: \\" "china","c program\n","\\ , \ , \\ok!\\"和"a" \\ 等都是字符串常量. 等都是字符串常量. 一个字符串中所含字符的个数称为该字符串的长度,例如: 一个字符串中所含字符的个数称为该字符串的长度,例如: "TURBO"和"T\\ 和 \\ABC\\ 的长度分别是5和6,但它们 \\"的长度分别是 和 , \\ \\ 的长度分别是 在微机中所占字节数分别是6和7. C语言中字符串在微机 在微机中所占字节数分别是6和7.在C语言中字符串在微机 中所占的字节数不等于字符串的长度是因为C规定 规定: 中所占的字节数不等于字符串的长度是因。
参考文献
[1]杨路明.C语言程序设计教程(第三版).北京:北京邮电大学出版社,2015.
[2]杨路明.C语言程序设计上机指导与习题选解(第三版).北京:北京邮电大学出版社,2015.
[3]王曙燕.C语言程序设计教程.北京:人民邮电出版社.2014.
[4]安俊秀.C语言程序设计(第3版).北京.人民邮电出版社.2014.9.
[5]董妍汝,安俊秀.C语言趣味实验.北京.人民邮电出版社.2014.9.
[6]陈学进,王小林.C语言程序设计.北京.人民邮电出版社.2014.2.
[7]冯林.C语言程序设计教程.北京:高等教育出版社,2015.
[8]贾宗璞,许合利.C语言程序设计.北京:人民邮电出版社,2014.
[9]教育部考试中心.全国计算机等级考试大纲(2016版).北京:高等教育出版社,2016.[10]谭浩强.C程序设计(第二版).北京:清华大学出版社,2001.
[11]谭浩强.C程序设计题解与上机指导(第二版).北京:清华大学出版社,2001.
[12]李春葆.C语言与习题解答.北京:清华大学出版社,2002.
[13]李丽娟.C程序设计基础教程.北京:北京邮电大学出版社,2002.
[14]李丽娟.C程序设计上机指导与习题选解.北京:北京邮电大学出版社,2002.
[15]教育部考试中心.全国计算机等级考试大纲(2002版).北京:高等教育出版社,2002.[16]高福成,潘旭华,李军.C语言程序设计(二级)(重点与难点、例题解析、上机指导、
模拟试题).北京:电子工业出版社,2002.8.
227。
C语言程序设计教程(第二版)课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。
答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3 C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4★指出合法与不合法的标识符命名。
答AB12--√leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2 --√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。
答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main()printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。