C语言程序设计教程第2章_北京邮电大学出版社
C语言程序设计教程(第二版)第二版ppt课件(完整版)
#include “stdio.h” #include “conio.h” void main( )
{ int num1, num2; printf(“Input the first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); scanf(“%d”, &num2); printf(“max = %d\n”, max(num1, num2)); getch(); }
2022/1/12
17
[案例1.2]中的主函数main( ),也可写成如下格式:
……
void main() { int num1, num2; printf(“Input the first integer number: ”); scanf(“%d”, &num1); printf(“Input the second integer number: ”); scanf(“%d”, &num2); printf(“max=%d\n”, max(num1, num2)); }
21世纪高职高专新概念教材
• C语言程序设计教程(第二版)
2022/1/12
1
第1章 C语言概述
教学目的: 掌握C语言的程序结构,函数结构,源程 序书写规则,以及TC++3.0的基本操作。 了解C语言的特点和语句。
2022/1/12
2
教学内容: 1.1 发展简史和特点 1.2* 程序结构与函数结构 1.3* 源程序书写规则 1.4 C语言的语句 1.5* TC++3.0基本操作
c语言程序设计教程第二版课后答案
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语言第2章讲义
第 二 章 程 序 设 计 基 础
C 语 言 程 序 设 计 教 程 第 二 版
C语言的特点
简洁紧凑、 简洁紧凑、灵活方便 运算符丰富 C语言一共只有 多个关键字,9 语言一共只有30 数据结构丰富 30多个关键字,9种控制语句,程序书写 C的运算符包含的范围很广泛,共有种34个运算符。C 的运算符包含的范围很广泛,共有种34个运算符。C 自由,主要用小写字母表示。它把高级语言的基本结构 C是结构式语言 语言把括号、赋值、强制类型转换等都作为运算符处理。 和语句与低级语言的实用性结合起来。C 和语句与低级语言的实用性结合起来。C语言可以象汇 C的数据类型有:整型、实型、字符型、数组类型、 语法限制不太严格、 C语法限制不太严格、程序设计自由度大 结构式语言的显著特点是代码及数据的分隔化,即程 从而使C 从而使C的运算类型极其丰富表达式类型多样化,灵活 编语言一样对位、字节和地址进行操作,而这三者是计 指针类型、结构体类型、联合体类型等。能用来实现各 语言允许直接访问物理地址, C语言允许直接访问物理地址,可以直接对硬件进行操作 序的各个部分除了必要的信息交流外彼此独立。这种结 使用各种运算符可以实现在其它高级语言中难以实现的 一般的高级语言语法检查比较严,能够检查出几乎所 算机最基本的工作单元。 种复杂的数据类型的运算。并引入了指针概念,使程序 语言程序生成代码质量高, C语言程序生成代码质量高,程序执行效率高 C语言既具有高级语言的功能,又具有低级语言的许 构化方式可使程序层次清晰,便于使用、维护以及调试。 运算(具体见后面的章节)。 有的语法错误。而C 有的语法错误。而C语言允许程序编写者有较大的自由 效率更高。另外C 效率更高。另外C语言具有强大的图形功能,支持多种 C语言适用范围大,可移植性好 多功能,能够象汇编语言一样对位、字节和地址进行操 C语言适用范围大, 语言是以函数形式提供给用户的,这些函数可方便的 度。 显示器和驱动器。且计算功能、逻辑判断功能强大。 具有预处理功能 作,而这三者是计算机最基本的工作单元,可以用来写 调用,并具有多种循环、条件语句控制程序流向,从而 一般只比汇编程序生成的目标代码效率低10~20%。 一般只比汇编程序生成的目标代码效率低10~20%。 C语言有一个突出的优点就是适合于多种操作系统, 具有递归功能 系统软件。 使程序完全结构化。 。也适用于多种机型,在一种计 如DOS、WINDOWS、UNIX DOS、WINDOWS、UNIX。也适用于多种机型,在一种计 算机上编写的程序,无须修改或经过很少的修改,就可 C语言提供了预处理器,程序可以利用宏指令提高可 以在其它类型的计算机上运行。 读性和可移植性。 C语言允许递归调用,在解决递归问题上具有独特优 势。
c语言程序设计教学大纲(电气类)
《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流程图)、程序设计的三种基本结构、结构化程序设计思想。
新编C语言程序设计教程(本科)第2章
第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语言第2版(第2章基本语句)
(5)空类型:用void表示。
对整数型,有四种修饰:
①signed(有符号) ②unsigned(无符号)
③long(长型)
④short(短型)
数据类型决定了数据的大小、数据可执行的操作 以及数据的取值范围。
整理ppt1章 引言
8
2.2 基本数据类型及取值范围
数据类型的长度和取值范围会随着机器的CPU类型 和编译器的不同而不同。
命名。建议取有实际意义的标识符来命名。
标识符的第1个字符必须是字母或下划线,标识符的长度可以是一 个或多个字符,最长不允许超过32个字符。
例如:
score、number12、student_name等均为正确的标识符;
8times、price/tea、low!valume等均不为正确的标识符。
注意:
±1.112 537×10−308
最大值
±3.402 824×1038 ±1.797 693×10308
整理ppt1章 引言
7
2.2 基本数据类型及取值范围
1. C语言提供5种基本数据类型。
(1)字符型:用char表示。
(2)整数型:用int表示。
(3)单精度实数型:用float表示。
(4)双精度实数型:用double表示。
C 语言规定:变量必须在使用之前定义。
变量定义的一般形式是:
<类型名> <变量列表>;
∙<类型名>必须是有效的C数据类型,如:int、 float等,类型名规定了变量的存储空间和取值范围。
∙ <变量列表>可以由一个或多个由逗号分隔的多个 标识符名构成。
整理ppt1章 引言
12
2.3 标识符、变量和常量
C语言程序设计(北京邮电大学出版社第二版)主编占跃华算
整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 ‘a’, ‘ab’,‘1232’
例3.1 符号常量的使用 #define PRICE 30 #include <stdio.h> 说明:如再用赋值语句给PRICE赋值是错的 void main ( ) PRICE=40; /* 错误,不能给符号常量赋值 { int num, total; num=10; total=num * PRICE; printf(″total=%d\n″,total); } 说明: 程序中用#define命令行定义PRICE 符号常量: 用一个标识符代表一个常量。 代表常量 30,此后凡在本文件中出现的 符号常量的值在其作用域内不能改变 , PRICE 都代表30,可以和常量一样进行运算 也不能再被赋值。
整型数据
3.3
整型数据
(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-10。
3.3.2 整型变量 (1)整型数据在内存中的存放形式
数据在内存中是以二进制形式存放的。
如: int i;
i=10;
/* 定义为整型变量 */ /* 给i赋以整数10 */
3.2 常量与变量
变量命名的规定:C语言规定标识符只能由 字母、数字和下划线三种字符组成,且第一 个字符必须为字母或下划线。 例:sum,_total, month, Student_name,
lotus_1_2_3,BASIC, li_ling M.D.John, ¥123,3D64,a>b
C语言程序设计人民邮电出版社PPT课件
(D.M.RITCHIE,被尊为“C语言之父”) 在 BCPL 和 B 语言的基础上设计出了一种新的语言——C语言, 开发UNIX操作系统及其上的应用程序。
1999 年,ANSI 和 ISO 通过了最新版本的 C 语言 标准C99,这是关于 C 语言的最新、最权威的定义。
(2)源程序与目标程序:
• 源程序:程序员编写的程序
• 目标程序:计算机最终能识别并运行的程序(二进制)
源
汇编
目
程
编译
标
序
程 汇编编译
程
2用009机汇高.8 器编级朱语立华言俞编琼写王立
序
24
序
柱
C is the most beautiful language!
C 语言最早的原型是 ALGOL 60
既可以开发系统软件,又可以开发应用软件(中级语言) • C语言程序生成代码质量高,程序执行效率高 • C语言适用范围大,可移植性好,适合多种操作系统,多种
机型
2009.8 朱立华 俞琼 王立
26
柱
C程序开发过程
开始 编辑 编译
源程序 file.c
编辑 编译
程序代码的录入, 生成源程序*.c
语法分析查错,翻译 生成目标程序*.obj
操作码和操作数都用二进制数表示。 • 用机器语言编写的源程序就是机器能识别并执行的目标程序。
2009.8 朱立华 俞琼 王立
16
柱
SUCCESS
THANK YOU
2019/6/20
一台模型机的指令系统
指令名称 操作码|操作 说明 数
取数
01H
C语言程序设计教程第1章 北京邮电大学出版社
2010/9/6
C语言程序设计教程
第1章 C语言程序设计概述
14
1.4 C语言字符集、标识符和关键字 C语言字符集、 语言字符集
一、C语言字符集 英文字母:大小写各26 26个 共计52 52个 1、英文字母:大小写各26个,共计52个; 阿拉伯数: 9 10个数字 个数字; 2、阿拉伯数:0~9共10个数字; 下划线: 3、下划线: _ ; 特殊符号:通常指由1 个符号组成的运算符。 4、特殊符号:通常指由1~2个符号组成的运算符。 算术运算符: / % ++ -算术运算符: + - * 关系运算符: > >= <= == != 关系运算符: < 逻辑运算符: 逻辑运算符: && || ! 位运算符: & | 位运算符: ~ ^ >> << 条件运算符: 和赋值运算符: 条件运算符: ?: 和赋值运算符:= 其他分隔符: 其他分隔符: ( ) [ ] { } . , ;
2010/9/6
C语言程序设计教程
2010/9/6
C语言程序设计教程
第1章 C语言程序设计概述
5
4、面向任务的程序设计语言: 、面向任务的程序设计语言: 是非过程化的语言,不需要知道问题是如何求解的。 是非过程化的语言,不需要知道问题是如何求解的。 例如:要从某学生表SS用数据库(SQL) SS用数据库 例如:要从某学生表SS用数据库(SQL)查询语言获取 表中记录的信息,采用SELECT语句,描述如下: SELECT语句 表中记录的信息,采用SELECT语句,描述如下: SELECT SSNO,SSNAME,SSAGE,SSSEX FROM SS 5、面向对象的程序设计语言: 面向对象的程序设计语言: 认为系统是由许多对象组成的, 认为系统是由许多对象组成的,对象通过消息相互 联系和相互作用,从而完成系统的功能。 C++, 联系和相互作用,从而完成系统的功能。如C++, 设计的程序更易懂, 更适合更大规模的程序开发。 设计的程序更易懂, 更适合更大规模的程序开发。 程 序 数据的确定:确定数据的类型和数据的存放方式。 数据的确定:确定数据的类型和数据的存放方式。 设 高级语言中用变量定义来实现。 变量定义来实现 高级语言中用变量定义来实现。 计 操作步骤(也即算法)的确定: 语句来实现 来实现。 操作步骤(也即算法)的确定:用语句来实现。
C语言程序设计教程第2章北京邮电大学出版社.ppt
C语言程序设计教程
7
(1)变量名。每个变量都必须有一个名字──变量名,变量命名 遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程 序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或 下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长, 则超长部分被舍弃。
2019/4/5
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
11
5、变量的作用域 C语言程序是由函数组成的,且有且只能有一个main函数。 变量定义可以出现在函数内,亦可出现在函数外或者是函 数的参数中。 按照变量定义语句出现的位置,可以分为: 局部变量:在函数内定义; 只在该函数中才能使用。 全局变量:在函数外定义; 从它被定义的位置起,在之后的所有函数中有效。 形式参数:定义为函数的参数; 只在该函数中才能使用。
13
2.2 C语言的基本数据类型
一、整型数据 1、整型常量表示方法: (1) 十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 (2) 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) (3) 十六进制形式:在数码前加0X(数字0和字母X)。 例如: 0x12=1*161+2*160=18(十进制)
关键字 short unsigned short int unsigned long unsigned long
2019/4/5
所占位数 16 16 16 16 32 32
取值范围 -32768~32767 0 ~65535 -32768~32767 0 ~65535 -2147483648~2147483647 0~4294967295
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. 一维数组的声明和使用。
- 一维数组的声明语法为:`类型数组名[大小]`。
C语言程序设计教程(第二版第2章
本文由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规定 规定: 中所占的字节数不等于字符串的长度是因。
C语言程序设计》课后习题详细答案
printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c);
t=c; c=b; b=a; a=t;
printf(″(2) a=%d,b=%d,c=%d\n″,a,b,c);
}
第四章选择结构习题分析与解答
一、选择题
4.1【参考答案】A)
4.2【参考答案】A)
4.3【参考答案】A)
4.4【参考答案】D)
(6)设计输出语句。输出a、b、c和ave。
(7)把以上内容放在主函数的一对花括号中。
(8)编写程序如下:
main()
{ double a,b,c,ave;
printf(″Enter a ,b ,c :″);
scanf(″%lf%lf%lf″, &a, &b, &c );
ave=(a+b+c)/3;
2.15【参考答案】[1]4.2[2]4.2
2.16【参考答案】[1]{[2]}[3]定义[4]执行
2.17【参考答案】[1]关键字[2]用户标识符
2.18【参考答案】[1]int[2]float[3]double
2.19【参考答案】float a1=1.0, a2=1.0;
或float a1=1, a2=1;(系统将自动把1转换为1.0)
3.27【参考答案】x=127, x=127 , x=$127 ,x=$000127, x=%06d
参考文献_C语言程序设计教程_[共2页]
参考文献
[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语言程序设计教程(第2版)课后习题答案(完美版)
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程序是由若干个函数构成的,其中有且只能有一个___函数。
C++高级语言程序设计第二章
变量定义语句的位置,C++中没有要求,放在第一次使用该变量之前的任何位置均可以。
建议:把变量定义语句放在首次使用它的地方,这样可以提高程序的可读性。
变量的命名
2.3 变量
*
-*-
北京邮电大学信息与通信工程学院
遵循标识符定义的规则,常用的命名约定有三种:
Unix环境常用的命名法 my_age、num_of_student
-*-
在32位机上运行结果 char :1字节 int : 4字节 float : 4字节 double : 8字节 bool :1字节
*
北京邮电大学信息与通信工程学院
2.3 变量和常量
-*-
运行结果: myAge = 18 myAge = 20
typedef
2.3 变量
*
-*-
北京邮电大学信息与通信工程学院
05
04
02
03
01
为已有的数据类型定义一个同义词,或者叫做别名。
格式:typedef 原类型名 新类型名;
例如:typedef unsigned short int UINT16
不同的数据类型,加上不同的修饰符就具有了不同的特点,在内存中占用的空间也不同,因而其所能表示的数值范围也不尽相同。
数据类型与内存空间
数据类型与内存空间
2.2 基本数据类型
*
-*-
北京邮电大学信息与通信工程学院
3
2
4
1
特定数据类型在内存中占用的内存因机器的不同而不同
32位机:int=4字节。
整型int的长度等于机器的字长:
注意: C++的标识符是大小写敏感的,即abc≠ABC。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章 C语言的基本数据类型与表达式
10
例2-1: main( ) { int x,y,z,w; /*定义x,y,z,w为整型变量*/ unsigned int k; /*定义k为无符号整型变量*/ x=10;y=-20;k=30; z=x+k;w=y+k; printf(“x+k=%d,y+k=%d\n”,z,w); } 程序运行结果为: x+k=40,y+k=10
C语言程序设计教程
15
4.数据在内存中的形式——以二进制的形式存放,以补码表示。 数据在内存中是以二进制的形式存放的, 如定义 int i=12; 根据在C编译系统一个整型变量所占的字节数为 2,变量i在 内存中的实际存放情况如图2-1所示。
0 0
0 0 0
0 0 0 0 0 0
0 1 1 0 0
13
2.2 C语言的基本数据类型
一、整型数据 1、整型常量表示方法: (1) 十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 (2) 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) (3) 十六进制形式:在数码前加0X(数字0和字母X)。 例如: 0x12=1*161+2*160=18(十进制)
精度(位) 7 15
19
3.实型数据的舍入误差
void main() { float a=1234567.896; float b=1234567.848; printf(―a=%f\nb=%f\n‖, a,b); } void main() { double a=1234567.896; double b=1234567.848; printf(―a=%f\nb=%f\n‖, a,b); }
1 1 1 1 1 加1 得-3的补码 1 1 1 1 1
由此可知,在整数的16位中,最左边的一位为符号位, 为0,表示数值为正;为1,表示数值为负
2016/10/4
C语言程序设计教程
17
5.整型数据的溢出:
不同的整型数据有不同的取值范围,在程序运行过程 中,如果出现数值超出整型数据的允许值范围,就会 出现“溢出”。 例如:一个int型的变量的最大值为(215-1)=32767,如果再 加1,则产生溢出,其结果为: -215 =-32768
结果: a=1234567.875000 b=1234567.875000
结果: a=1234567.896000 b=1234567.848000
C语言程序设计教程
2016/10/4
20
为什么会出现这种情况?是由于实型数据是用 有限的存储单元进行存储的,因而能提供的有效 数字有限,在有效数字以外的数字将被舍弃。对 于float型变量,只能保证前7位数字是准确的, 后面的数字是无意义的,而采用double型变量后, 其精度大幅度提高,能保证前15位有效数字是准 确的。另外,同样因为有效数字的位数问题,在 程序中应避免用一个很大的数加上或减去一个很 小的数,否则会丢失小的数。
字符形式 \n \t \b \r \\ \‟ \ddd \xhh 2016/10/4 功能 换行 横向跳格 退格 回车 反斜杠字符 单引号字符 8进制数表示的ASCII码对应的字符 16进制数表示的ASCII码对应的字符 C语言程序设计教程
第2章 C语言的基本数据类型与表达式
22
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八进制) ∴字符A可以表示为‘A‟、’\x41‟、’\101‟。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括ASCII字符 表中的所有字符(可显示字符和非显示字符)。 4、变量值的存储 字符数据在内存中的存储形式 : 以二进制的 ASCII 码形 式存储。 字符数据在内存中存储的是字符的ASCII码── 一个无 符号整数,其形式与整数的存储形式一样,所以C语言允 许字符型数据与整型数据之间通用。
* 八进制的数码范围为0~7; 018 * 十六进制的数码除了数字0~9外, 还使用英文字母a~ f (或A~ F)表示10~15。 如:0x1e √
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
14
2、整型变量分类: 根据数据所占的二进制位数分为:int、short、long; 同样存储长度的数据又分unsigned、signed; 故可组合出六种类型。 3、整型变量值域: 由机器中数据的存储长度决定。 如Turbo C中,有 short(2字节)≤int(2字节) ≤long(4字节)
注意
小数点不能单独出现; 0.√ .0 √ . e或E的两边必须有数,且其后面必须为整数; 如: 6E0.2 e5 2、实型变量分类:
关键字 float double 字节数 4 8
2016/10/4
取值范围 3.4×10-38 ~ 3.4×1038 1.7×10-308 ~ 1.7×10308 C语言程序设计教程
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
21
四、字符类型 1、字符常量: (1) 用单引号括起来的一个字符;如:‘A‟、 ‘1„、’?‟ 等。 (2) 用单引号括起来的由反斜杠(\)引导的转义字符。 转义是指在源程序中碰到这种字符组合时,反斜杠的意 义已经发生转变,变成控制代码和具有某些特殊用途的单 个字符。例如,‘\n‟已不再代表英文小写字母n,而转义 成了“换行符”。
2.构造类型
分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。
4.空类型
C语言中的数据,有常量和变量之分,它们分别属于上述 这些类型。
2016/10/4
C语言程序设计教程
3
字符型(char) 整型(short,int,long,unsigned) 单精度型(float) 基本类型 实型 双精度型(double) 枚举类型(enum) 数据类型
习惯上,变量名和函数名中的英文字母用小写,以增加可 读性。
思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、 tOtAl等是同一个变量吗? 标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。 通常应选择能表示数据含义的英文单词(或缩写)作变量名, 或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、 salary/gz(工资)。
2016/10/4
C语言程序设计教程
12
变量的特点:
变量是指以标识符为名字,其值可以改变的量。
变量代表计算机内存中的某一存储空间,该存储空 间中存放的数据就是变量的值。 在同一程序块中,变量不能被重复定义。 使用变量时必须“先定义,后使用”
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
C语言程序设计教程
第 2 章 C语言的基本数据类型与表达式
2.1 常量和变量
2.2 C语言的基本数据类型
2.3 数据类型转换 2.4 运算符与表达式
第2章 C语言的基本数据类型与表达式
2
C语言的数据类型
C语言提供的数据结构,是以数据类型形式出现的。具体分 类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。
图2-1 整型变量i在内存中的存放示意图 实际上,数值是以补码表示的。 • 正数的补码: 与原码相同 • 负数的补码: 负数→取绝对值→二进制→按位取反→再加 1→补码
2016/10/4
C语言程序设计教程
16
例如:求-3在内存中的存放形式
3的原码 0 0 按位取反 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 0 1
32767
0 1 1 1 1 1 1 1 1 1 1 1 1 1
ห้องสมุดไป่ตู้1 1
-32768
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2016/10/4
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
18
二、实型数据 1、实型常量表示方法: (1) 十进制小数形式:由数字和小数点组成; 例如: 3.4, 4., .3。 (2) 指数形式:“十进制小数”+“ e(或E)”+“十进制数整 数”。 例如: 12.5e-6 表示12.5×10-6 。
2016/10/4
C语言程序设计教程
7
(1)变量名。每个变量都必须有一个名字──变量名,变量命名 遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程 序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或 下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长, 则超长部分被舍弃。
2016/10/4
C语言程序设计教程
9
4.变量的定义与初始化 在C语言中要求对所有用到的变量,必须先定义、后使 用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)定义形式:类型标识符: 变量名1 [,变量名2,变量名3...];
如:int, float,char
自己设定,满足 标识符的规定。
例如,由于student_name和student_number的前8个字符相同, 有的系统认为这两个变量,是一回事而不加区别。
在TC V2.0中,变量名(标识符)的有效长度为1~32个字符, 缺省值为32。
2016/10/4
C语言程序设计教程