c语言重修第2章
C语言第2章(谭浩强)
§ 2.4
怎样表示一个算法
表示方法: 1、自然语言 2、传统流程图 3、N—S流程图 4、结构化流程图 5、伪代码 、PAD图
10
2.4.1 用自然语言表示算法
用自然语言表示通俗易懂,但容易出现 “歧异性”。
2.4.2 用传统流程图表示算法
直观形象,易于理解。成为世界各国程序 工作者普遍采用。 下面给出传统流程图的说明:
2
§2.1
算法的概念
做任何事情都有一定的步骤,这些步骤都 是有一定的顺序。如:起床上学,用电脑画画, 弹奏乐曲。不要以为只有“计算”的问题才有 算法的。
什么叫做算法?广义:为解决一个问题而采 用的方法和步骤就称为“算法”。
例如:求 1+2+3+4+……+100 可先算1+2、再加3、再加4……直到加上100; 也可采用 100+(1+99)+(2+98)+……+ (49+51)+50 3 本书所关心的算法只限于计算机算法。
5
例2.2 有50个学生,将成绩在80分以上的学 号和成绩打印出来。 说明:n:学号,ni:第i个学生学号,g:成绩, gi:第i个学生成绩 步骤如下: S1:1=>i S2:若gi>80,则输出ni和 gi ,否则不输出。 S3:i+1=>i S4:若i小于等于50,则返回 S2继续执行; 否则算法结束。
著名计算机科学家沃思提出一个公式: 数据结构+算法=程序 实际上,一个程序还应当采用结构化程序设计 方法进行程序设计,并且用某一种计算机语言表示。 因此,可以这样表示。 程序=算法+数据结构+程序设计方法+语言 以上四个方面是一名程序设计员所应具备的知 识。在这四个方面中,算法是灵魂,是解决“做什 么”和“怎么做”的问题。数据结构是加工对象, 语言是工具,编程需要采用合适的方法。
c语言与程序设计-第2章课后习题参考答案
2.1 下列哪些是词法记号?关键字(是)注释空白符八进制常量(是)三字符序列字符串常量(是)括号(是)2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法)(1)x+++y x, ++, +, y(2)-0xabL -, 0xabL(3) 2.89E+12L 2.89E+12L(4)"String+\"FOO\"" " String+ \"FOO\""(5)x**2 x, *, *, 2(6)"X??/" "X??/"(7)a?b a, ?, b(8)x--+=y x, --, +=, y(9)intx=+10 intx, =, +, 10(10)"String""FOO" "String", "FOO"(这道题当时改的时候有几个小题改得有错误,注意!)2.3 下列哪些不是标识符,为什么?标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。
4th 不是,以数字开头;sizeof 不是(标准C的关键字)_limit 是_is2 是xYshould 是x*y 不是,* 非法o_no_o_no 是temp-2 不是,- 非法isn't 不是,' 非法enum 不是(标准C的关键字。
注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。
关键字不能作为普通标识符,但可以作为宏名。
所有预处理均发生在识别这些关键字之前。
)2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。
2L 合法,long长整型''' 不合法,单引号组中的单引号前需要转义字符.12 合法,double双精度浮点型0x1ag 不合法,g不是16进制数中的符号,也不表示任何类型33333 合法,int整形"a" 合法,字符串常量"" 合法,字符串常量0.L 合法,long double长双精度浮点型E20 不合法,缺少尾数部分0377UL 合法,unsigned long无符号长整型'\18' 不合法,存在非8进制位'\0xa' 不合法,不符合十六进制字符码表示规则\xhh0x9cfU 合法,unsigned int无符号整形'\45' 合法,char字符型1.E-5 合法,double双精度浮点型'\0' 合法,char字符型3.F 合法,float浮点型"3'4"" 不合法,缺少转义符'"' 合法,char字符型(P35,双引号作为字符常量时既可用图形符号也可用转义序列表示)'\a' 合法,char字符型2.6 以下的变量声明语句中有什么错误?(1)int a; b = 5; 第一个分号改为逗号int a, b=5;(2)doubel h; 关键字错误double h;(3)int x = 2.3; 类型错误float x = 2.3;(4)const long y; 需要赋初值const long y = 0;(5)float a = 2.5*g; g未定义变量int g = 1; float a = 2.5*g;(6)int a = b = 2; b未定义变量int a = 2, b = 2;2.7 设变量说明为:int a = 1, b = 2, c = 3, d;double x = 2.0; y = 7.7;请给出下列表达式的值。
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语言第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语言程序设计第二章课后参考答案[修改版]
第一篇:c语言程序设计第二章课后参考答案第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。
A)语言的表达能力强B)语言定义严格C)数据结构系统化D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。
A)编辑和编译B)编译和连接C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。
A)标准库文件B)目标文件C)源程序文件D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。
A)auto,enum,includeB)switch,typedef,continue C)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。
A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。
A)表达式语句B)选择语句C)循环语句D)转移语句7、下面描述中,不正确的是________。
A)C语言的函数体由一系列语句和注释组成。
B)注释内容不能单独写在一行上。
C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。
D)scanf和printf是标准库函数而不是输入和输出语句。
8、下面描述中,正确的是________。
A)主函数的花括号必须有,而子函数中的花括号是可有可无的。
B)一个C程序行只能写一个语句。
C)主函数是程序启动时的唯一入口。
D)函数体包含了函数说明部分。
二、填空题1、一个完整的C程序至少要有一个________函数。
(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。
C语言程序设计-第2章
(4) 在赋值表达式x=y中,虽然赋值运算符两边的运算符对象都是x,但出 现在赋值号左边和右边具有不相同的含义。赋值号右边的x表示变量x 所代表的存储单元中的值。赋值号左边的x代表以x为标识的存储单元。 (5) 赋值运算符的左侧只能是变量不能是常量或表达式。 (6) 赋值号右边的表达式也可以是一个赋值表达式。 (7) C语言规定最左边变量所得到的新值就是赋值表达式的值。
• 在C语言的赋值表达式中,赋值号右边的 值先转换成与赋值号左边变量相同的类型 然后再进行运算。
本章完
祝大家学有所成! 祝大家学有所成!
Thanks!
存储形式
• 正整数:原码形式 • 负整数:补码(反码加1) • 无符号整数:原码形式
最高位用来存放整数的 符号:0为正,1为负
(最高位不再用来存放整数 的符号,16个二进制位全 部用来存放整数)
2.4 实型数据
实型常量(实数) • 小数形式:数学中常用的实数形式,由数字和小数点组成 • 指数形式:类似于数学中的指数形式。在C语言中,则以 字母“e”或“E”后跟一个整数来表示以10为底的冥数。 格式:小数 E 指数 指数 其值相当于:小数×10
C 语言的标识符可分为三类
一、关键字:C语言规定的、在程序中代表固定的含义、有 特殊用途的标识符,不能另作它用。 C语言中的关键字可分为以下几类 类型说明符: 1)数据类型:char、double、float、int、long、short、 struct、union、enum、signed、unsigned、void; 2)存储方式:auto,extern,static,register; 3)数据类型定义:typedef。
特别提示:
混合运算时整型数据类型之间的转换规则:
C语言程序设计教程(第二版第2章
下一页 返回
2.3 常量与变量
(1)二进制整数表示
一个二进制数有两个特点:
①它有两个不同的数码符号,即:0和1。 ②它是逢二进位的。如:10101、1010等都是二进制数。
通常,任意一个二进制整数M,都可以表示为:
其中i表示数的某一位,Mi表示第i位的数码,它可以是0、1 中的任意一个,n为整数M的位数。式中2就称为计数制底数 (或称为基数),所以这是二进制整数。
②它是逢八进位的。在C语言中,以0开头。如:0123、 056等都是八进制整数。
上一页 下一页 返回
2.3 常量与变量
通常,任意一个八进制整数B,都可以表示为: 其中i表示数的某一位,Bi表示第i位的数码,它可以是0~7 中的任意一个,n为整数B的位数,式中的8就是基数,故称 八进制整数。 例2-3 将八进制数372换成十进制数。 转换过程如下: (372)8=3×82+7×81+2×80=(250)10 (3)十进制整数表示 一个十进制数有两个特点: ①它有10个不同的数码符号,即:0、1、2、3、…、8和 9; ②它是逢十进位的。如:123、456等都是十进制整数。
所以与十进制96等值的二进制数是1100000。
上一页 下一页 返回
2.3 常量与变量
例2-6 将十进制数的215转换成八进制数。 转换过程如下:
所以与十进制215等值的八进制数是327。
上一页 下一页 返回
2.3 常量与变量
例2-7 将十进制数1234转换成十六进制数。 转换过程如下:
上一页 下一页 返回
2.2 C语言的基本符号
c语言第二章课后习题答案
第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。
(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。
(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。
(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。
(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。
(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。
(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。
(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。
谭浩强 C语言 第2章 程序的灵魂算法
缺点:难以阅读、修改,使算法的 传统流程图的流程可以是: 可靠性和可维护性难以保证。 解决办法:必须限制箭头的滥用, 即不允许无规律地使流程随意转向, 只能顺序地进行下去。
这种如同乱麻一样的算法称为BS型算法,意 为一碗面条(A Bowl of Spaghetti),乱无头绪。
2.三种基本结构
Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的 基本单元。
设y为被检测的年份,算法可表示如下 : S1:2000 → y S2:若y不能被4整除,则输出y “不是闰年”。然后转 到S6。 S3:若y能被4整除,不能被100整除,则输出y “是闰 年”。然后转到S6。 S4:若y能被100整除,又能被400整除,输出y“是闰 年”,否则输出“不是闰年”。 然后转到S6。 S5: 输出y “不是闰年”。 S6:y+1 → y S7:当y≤2500时,转S2继续执行,如y>2500,算法 停止。
2.4.4 用N-S流程图表示算法
1973年美国学者I.Nassi和B.Shneiderman 提出了一种新的流程图形式。在这种流程图 中,完全去掉了带箭头的流程线。全部算法 写在一个矩形框内,在该框内还可以包含其 它的从属于它的框,或者说,由一些基本的 框组成一个大的框。这种流程图又称N--S结 构化流程图。
例2.10 将例2.5判断素数的算法用流程图 表示
小结: • 流程图是表示算法的较好的工具。 一个流程图包括以下几部分 : (1)表示相应操作的框; (2)带箭头的流程线; (3)框内外必要的文字说明。
2.4.3 三种基本结构和改进的流程图 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语言重修第2章
§3-3 算术运算与赋值运算
i=2; K=i++ +i++ +i++;
i=2; K=++i+(++i)+(++i);
§3-3 算术运算与赋值运算
四、赋值运算符
x=5 将一个常量或一个表达 y=x+10 式的值赋给一个变量 可以将一个实型赋给一个整型 也可将一个整型赋给一个实型
c =100 d =65436
§3-2 基本数据类型及其表示
三、实型数据 实型数据包括实型常量和实型变量。 1、实型常量 实型常量只能用十进制 两种表 小数 0.123 形式表示,不能用八进 示形式 指数 3e-3 制和十六进制表示 1e3、1.8e-3、-123e-6、-.1e-3 × e5、1e-3.2、e、.e-03
§3-2 基本数据类型及其表示
2、变量 在程序运行中,其值改变的数据称为变量 有关变量的规定: 变量通过变量名标识,变量名和内存中的存 储单元相对应。编写程序时通过变量名来存、 取存储单元。 memory 变量必须先定义,后使用 a
256 12 8
变量
§3-2 基本数据类型及其表示
变量名的规定
§3-1 数据与数据类型
计算机完成上述计算,首先要解 决数据的输入和存放问题 常数3、5、3.6的存放空间是否相同? 变量a如何表示?如何存放? 计算机如何知道3.6和a之间的关系? 3/5和sinx如何输入?如何存放? 计算机如何识别“=‖?运算结果放在哪里? 数据的描述 数据的操作
§3-1 数据与数据类型
求25、-25的补码
25
-25
0000000000011001
20111《C语言程序设计》课程重修教学计划、授课与测试安排
20111《C语言程序设计》课程重修教学计划、授课与测试安排一、教学管理、考试及相关事项1.重修班实行严格的教学管理以往的重修可以不上课、不交作业,但本次专门开设的重修班则不同,必须认真上课并完成作业,参加相应的平时单元测试并有平时成绩:(1)普通重修班上课、上机严格考勤,考察上课与上机效果,检查作业和单元测试的完成质量。
在教学过程中,若确实因生病、课程冲突等原因临时无法上课(上机),应向任课教师请假并获批准,但也必须完成相关的作业。
(2)在线重修班不上课,但要严格考察每周的作业和每两周的单元测试的完成质量——单元测试在指定的机房完成并有严格的监考。
2.考试资格审核对于旷课、听课效果较差、缺交作业、上交作业质量较差(含抄袭作业)、单元测试违纪者,将按学校相关规定取消考试资格。
对于取消考试资格者,成绩以零分计。
有以下情形之一者,取消考试资格:(1)全期旷课累计达该课程教学时数五分之一(含五分之一)以上者;(2)全期缺交该课程任课教师布置作业三分之一(含三分之一)以上者——抄袭作业视为缺交处理、一次单元测试计两次作业;或全期所交该课程作业,虽达到任课教师布置作业三分之二以上,但所交作业的准确度、整洁度有二分之一不合格者——本次课程的作业和单元测试的合格标准为≥75分;(3)单元测试有违纪者。
3.考试要求与考试时间与正修班的考试试题要求完全一样并在同一时段进行考试,预计在第19周周末或20周进行考试。
4.考试内容现有题库将在第15周前进行完善,考试内容以题库为基础,少量题为题库原题,大部分题为题库试题稍加变换(不增加新的复杂算法和实质难度),具体详见第15周的相关通知。
5.开专门重修班的目的是为了让更多的同学能真正学好“C语言程序设计”,避免浪费重修费。
严格审核考试资格的目的,也是为了督促相关同学和更多的同学努力学习——程序设计能力需要长时间的编程实践。
6.交重修费时限下周四(2011年11月03日)16:00之后,不再受理重修交费,教务处将即时取消已预选课但未交重修费者的报名资格。
C语言重修复习资料(2016年4月答案)讲解
《C语言程序设计》重修班辅导资料陈世清第一章 C语言概述一.知识点1.C语言的特点:①语言简洁、紧凑,使用方便、灵活;②运算符丰富;③数据结构丰富;④具有结构化控制语句;⑤语法限制不太严格,程序设计自由度大;⑥可以进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作;⑦生成的目标代码质量高,程序执行效率高;⑧程序的移植性好。
2.C程序的组成:⑴C程序是由函数构成的;⑵一个函数包括函数的首部(即函数的第一行)和函数体(即花括号部分);⑶函数体一般包括声明部分和执行部分;⑷一个C程序总是从main函数开始执行,从main函数结束;⑸C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上;⑹每个语句和数据定义的最后必须有一个分号;⑺C语言本身没有输入输出语句,是通过函数实现输入输出的;⑻可以用/*……*/对C程序的任何部分作注释。
3. C 语言风格⑴C 语言严格区分英文字母大小写。
⑵C 语言用“;”作为语句分隔符。
⑶C 语言中“{}”用于标识一组语句,构成复合语句。
⑷C 程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上。
⑸注释用来向用户提示或解释程序的意义。
(注释部分允许出现在程序的任何位置。
编译时,会忽略所有的注释符,即不对他们作任何处理。
)4.C语言程序的运行:源程序文件的扩展名为.c,目标程序文件的扩展名为.obj,可执行程序文件的扩展名为.exe。
二.练习㈠.填空题:1.在TURBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是 .c 。
2.C语言源程序文件的后缀是 .c ,经过编译后,生成文件的后缀是 .obj ,经过连接后,生成文件的后缀是 .exe 。
3.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。
㈡.选择题:1.组成C语言程序的是( C )。
A.子程序 B.过程 C.函数 D.主程序和子程序2.以下叙述中正确的是( C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§3-3 算术运算与赋值运算
i=2; K=i++ +i++ +i++;
i=2; K=++i+(++i)+(++i);
§3-3 算术运算与赋值运算
四、赋值运算符
x=5 将一个常量或一个表达 y=x+10 式的值赋给一个变量 可以将一个实型赋给一个整型 也可将一个整型赋给一个实型
内存中存储形式
0 1 1 0 0 0 0 1
在ASCII范围以内,整型数据与字符型 数据可以通用
§3-2 基本数据类型及其表示
3、字符串常量 字符串常量是用双引号括起来的一个或多个字符 例 ―a‖ 串长 1 ―This is C string‖ 串长 16 ― ‖ 串长 1 C中没有专用 ―‖ 串长 0 的字符串变量 n个字符组成的字符串常量,在内存中 占空间为 n+1 个字节 c h i n a \0 字符串结束标记 “空”字符
§3-3 算术运算与赋值运算
a=5,b=5 5+5=10 5+5=10 7+5=12 6+5=11 6+5=11 5+5=10 a 5 6 7 6 5 5 b 5 5 5 5 5 5 s 10 10 12 11 11 10
s=a+b; s=a+++b; s=++a+b; s=--a+b; s=a--+b; s=a+b;
Hale Waihona Puke §3-3 算术运算与赋值运算
算术表达式 已知: int i = 3; long e = 4 ; float f = 1.5; double d = 2.0 ;
f= 10 + ‗a‘ + i * f – d / e
f= 107 + 4.500000 – 0.500000 f= 111.500000 – 0.500000 f = 111.000000
√
§3-2 基本数据类型及其表示
2、实型变量 实型变量的形式 单精度型 双精度型 类型说明符 占内存字节数 float 4 double 8 数的范围
-3.4*10-38~+3.4*1038
实型变量的有关规定 有效数字
float double
7位
15位
-1.7*10-308~+3.4*10308
求25、-25的补码
25
-25
0000000000011001
1111111111100111
§3-2 基本数据类型及其表示
1、整型变量 整型变量的形式: 基本整型 短整型 长整型 无符号整型 无符号短整型 无符号长整型 占存储空间:
占内存字节数 int short int long int unsigned int unsigned short unsigned long
√
不提倡大小写混合使用
§3-2 基本数据类型及其表示
C语言的数据类型有: 整型 字符型 基本类型 浮点型
单精度型 双精度型
数据类型 构造类型 指针类型 空类型
枚举类型 数组类型 结构体类型 共用体类型
§3-2 基本数据类型及其表示
二、整型数据 整型数据包括整型常量和整型变量,整型数据以 二进制补码形式存储
100、-8、0;010、024;0x37、0X1F
3、整型数据的取值范围
§3-2 基本数据类型及其表示
Int型数的表示范围: 存储长度16位二进制
最大正数
最大负数
0111111111111111 1111111111111111
最大的正数? =215-1=32767 最大的负数? =-215=-32768
§3-1 数据与数据类型
计算机完成上述计算,首先要解 决数据的输入和存放问题 常数3、5、3.6的存放空间是否相同? 变量a如何表示?如何存放? 计算机如何知道3.6和a之间的关系? 3/5和sinx如何输入?如何存放? 计算机如何识别“=‖?运算结果放在哪里? 数据的描述 数据的操作
§3-1 数据与数据类型
§3-3 算术运算与赋值运算
三、自增、自减运算符 变量自身加(减)1 i + + 先使用变量i的值,再加1 + + i 先加1,再使用变量i的值 i - - 先使用变量i的值,再减1 - - i 先减1,再使用变量i的值
i=i+1
i=i-1
§3-3 算术运算与赋值运算
i=3;printf(―%d‖,i++); i=3; printf(―%d‖,++i); 输出3后,i的值为4 输出4后,i的值为4
用字符和整 数输出a 按整数输出 c 按字符输出 d
b=‗\60‘在计算机中的存储 0 0 1 1 0 0 0 0
§3-2 基本数据类型及其表示
字符串“w\14‖占几个字节?
字符串“w\14\0good‖占几个字节?
§3-2 基本数据类型及其表示
五、变量的初始化 在定义变量时为其指定值 方法: int int int int 1、定义变量的同时为 a=5; 其初始化 a,b ,c=5; a5,b=5,c=5 ; 2、初始化不是在编译 时进行,而是在程序运 a=b=c=5; 行时完成的
§3-2 基本数据类型及其表示
4、转义字符(特殊形式的字符常量)
有些以“\‖开头的特殊字符称为转义字符
例:‘\60‘是十进制数48,代表ASCII码字符0 ‗\105‘是十进制数69,代表ASCII码字符E ‗\x61‘是十进制数97,代表ASCII码字符a
§3-2 基本数据类型及其表示
main( ) { char a , b , c ; int d; a=‗\5‘ ; b = ‗\60‘ ; d 0000010001000001 c = ‗A‘; d = 1089 ; 65 printf(―a=%c b=%c c=%d d=%c\n‖,a,b,c,d) printf(―a=%d b=%d\n‖,a,b); }
表达式的运算结果称为表 达式的值
§3-3 算术运算与赋值运算
A + B 运算符的种类与功能 运算符与运算分量的关系 (a〉b)?a:b 个数 目 单目运算 双目运算 三目运算
学习运算符应掌握的要点:
不同类型的变量,所占存储 类型 空间、数的表示范围、有效 位和允许的操作不同
§3-3 算术运算与赋值运算
§3-2 基本数据类型及其表示
四、字符型数据 字符型数据包括字符型常量和字符型变量 1、字符型常量 用单引号包含的一个字符时字符型 常量 只能包含一个字符 ‗a‘ , ‗A‘ , ‗1‘ ‗abc‘ , ―a‖
×
§3-2 基本数据类型及其表示
2、字符型变量 定义形式 char 占存储空间 一个变量
本 章 要 点
整型数据表示数的范围 实型数据的有效数字 字符和字符串的区别 转义字符的概念
§3-1 数据与数据类型
为什么要有语言规则 把自然语言描述问题的方式转化 为C语言的形式表达给计算机
程序设计语言的基本规则 常量 变量
常量 变量 运算符 表达式 函数
表达式
3 F(x)=3.6a+—sinx 5 函数 运算符
1、变量名由字母A、B、…、Z、a、b、…、z,数字 0、1、…、9和下划线_组成。 2、变量名的第一个字符必须是英文字母或下划线。 3、不能用系统中的关键字作为变量名。 4、变量名中的字母是区分大小写的。 sum、sum_name、_age、Lts_1_2、a2 × 32c、x.y、start+9、c2.0 NAME、name表示两个不同的标识符。
×
§3-3 算术运算与赋值运算
一、认识C中的运算符和表达式 X=5 + b * c 运算分量
运算符
对数据进行 运算的符号
被加工 的数据
表达式
§3-3 算术运算与赋值运算
运算符与运算分量构成表达式 算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算 逗号运算符 条件运算符 …………
C中运算符
main( ) { char c ; c = ‗c‘ ; printf ( ―%c‖ , c ) ; } 运行结果: c
题目中有几个c, 哪些是等价的?
一个字符变量只 能包含一个字符
§3-2 基本数据类型及其表示
字符型数据的存储格式:ASCII码
字符‘a‘ 、 ‘A‘ 、 ‘1‘ 存储为:97、65、 49 ‗a‘的ASCII值为97
程序的任务是对数据进行处理,数据是 程序处理的对象,而运算符是施加给这 些数据的操作。 数据和运算符是表达式的基本元素
§3-2 基本数据类型及其表示
一、计算机语言表示数据的基本形式 1、常量 在程序运行中,其值保持不变的量称为常量 常量的表示方法:
整型 100,125,-100,0 实型 3.14,0.125,-3.789 字符型 ‘a‘,‘b‘,‘2‘
优先级:运算符的执行顺序 x=a+b*c 结合性:相同优先级的多个运算符的运算顺序 左结合
运算结果的类型 整型
逻辑型
左结合
a+b-c 5>7>2 a=b=5
13 .F.
X=5+8 ‗a‘>100
二、算术运算符和算术表达式
§3-3 算术运算与赋值运算
+ 加法运算符(4) 1、参加运算的对象都是int 型,其结果截取为int型 - 减法运算符(4) 10 / 3 11 / 3 1/2 1. / 2 * 乘法运算符(3) 10.0 / 3 10 / 5 * 3 10 / ( 5 * 3 ) / 除法运算符(3) 2、求余运算的对象必须是 整型 % 求余运算符(3) 10 % 3 9 % 3 -10 % 3 10 % - 3 -10 % -3 (结合性 )