第2章 C语言数据类型
第2章 c语言基本数据类型、运算符和表达式
1000000000000101
1111111111111010
1111111111111011
整型数据所分配的字节数及数的表示范围(16位系统)
整型数据类型
[signed ]int unsigned [int] [signed] short [int] unsigned short [int] [signed ]long [int] unsigned long [int]
制和十六进制只是整型数值的三种表现形式而已。 整型常量类型的确定:根据值大小默认类型。 整型常量后面加后缀1或L,则认为是long int型。 无符号数也可以用后缀表示,整型常数的无符号数的后缀为“U”或“u”。 注意:在程序中是根据前缀来区分各种进制数的。因此在书写时不要把前缀弄错造
成结果不正确。
缺省形式的 整型数据类型
int unsigned short int unsigned short int long int unsigned long
字节数
取值范围
2
-32768~32767(-215~215-1)
2
0~65535
2
-32768~32767(-215~215-1)
2
0~65535(0~216-1)
3.字符型常量
字符常量是用单引号括起来的一个字符。它有二种形式:可视字符常量、转义字符常量。 (1)可视字符常量:单引号括起来的单个可视字符。
大多数字符常量都可以通过加单引号的方式表示,但有些特殊字符,如单引号本身和有些不 可见的特殊字符,就无法通过这种方法表示,为了解决这一问题,C语言引入了“转义字符”。
C语言教程课件第二章 数据类型、运算符和表达式
例 整型变量的定义与使用
#include <stdio.h> void main() { int a,b,c,d; /*指定a、b、c、d为整型变量*/ unsigned u; /*指定u为无符号整型变量*/ a=12;b=-24;u=10; c=a+u;d=b+u; printf("a+u=%d,b+u=%d\n",c,d); }
例 向字符变量赋以整数。 • 运行结果: #include <stdio.h> a b void main() 97 98 { char c1,c2; c1=97; c2=98; printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); }
• 说明:在第4和第5行中,将整数97和98分别赋给c1和c2,它 的作用相当于以下两个赋值语句: c1='a';c2='b'; 因为'a'和'b'的ASCII码为97和98
• 字符型变量用来存放字符常量,注意只能放一个字符。 • 字符变量的定义形式如下:char c1,c2; • 在本函数中可以用下面语句对c1,c2赋值: c1='a';c2='b'; • 一个字符变量在内存中占一个字节; • 将一个字符常量放到一个字符变量中,是将该字符的 相应的ASCII代码放到存储单元中,这样使字符型数据 和整型数据之间可以通用。一个字符数据既可以以字 符形式输出,也可以以整数形式输出。
运行结果: total=300 例2.1 符号常量的使用 #define PRICE 30 #include <stdio.h> void main ( ) 说明:如再用赋值语句给PRICE赋值是错的 { PRICE=40;/*错误,不能给符号常量赋值*/ int num, total; num=10; total=num * PRICE; printf(″total=%d\n ″,total); } 说明: 程序中用#define命令行定义PRICE代表常量30,此后凡在 本文件中出现的PRICE都代表30,可以和常量一样进行运算
C语言学习第二章数据类型
基本整型:表示的范围为0X0~0XFFFF。
2.4.2 整型变量
1.整型变量在内存中的存放形式
以二进制补码的形式存放。
正数:最高位为0,其余各位是该数的二进制表示 负数:最高位为1,其余各位是该数绝对值的二进制
再按位取反加1
2. 整型变量的分类
放一个字符。
下面是对c1、c2赋值: c1=‘a’;c2=‘b’; (实际上其内存中存放的是该字符的ASCII码)
字符变量的初始化,如:char c1=‘a’,c2=‘b’;
2.5.3 字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,实际上是将该字 符的ASCII代码以二进制形式放到存储单元中。
无符号型:(只能存放0和正整数) ① 基本整型:类型说明符为unsigned int或unsigned
在内存中占2个字节 取值范围为0~2161,即0~65535。 ② 短整型:类型说明符为unsigned short (int) 所占字节和取值范围均同基本整型。 ③ 长整型:类型说明符为unsigned long (int) 在内存中占4个字节 其取值范围是0~2321 即0~4294967295
实型常量也称为实数或者浮点数。 实型常量不分单、双精度,都按双精度double型处理,其有 效位数为(15~)16位。
实型常量的表示方式有:
(1)十进制小数形式
小数形式由数字0~ 9和小数点组成。
当某浮点数整数部分或小数部分为0时,0可以省略,但小 数点不可省略。
例如:
0.0 , .25 ,5.789 ,0.13 ,5.0 , 300. 267.8230 , 123. 等均为合法的实数。
C语言基本数据类型
0.0314159 +2
数字部分 指 数 (尾数) (阶码)
<
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
例转义••转字字转义符符义字转常字符义量符举字的:例反符如值含(斜c及义:h‘线2其该_a后0含’字0面1义符.‘cA跟:,的c’h一转A2‘?S_个义C0’字I0字I4符‘码.符\cn)值或’ 一‘\1个01代含’ 码义值表示 m{} \\\\\vnaar‘ppppirrrrniiii<(nnnn)如ttttffff((((""""IT\\‘‘‘例1\Cu\\s036例‘a如r\1A70{}垂Py1bm6’单’:\:0or-x直’\换回响1oa-"引4-\p-’gi-‘‘'制H-行车铃-2nCr--r号---i(-oa表-C-A0\n-)--'-wm-’’’-"t\--\——-nf--1)\-(a--";\-“0--\r——--)n-Y1e--;’-’"’0\64-y-b)’--58o;‘-=,Au-’\-,?n’--\”\\\"’‘‘\\tfb‘‘)\\“\\\\x;nx4n‘a4\68"’’10—13—)’1;’’-2—-—--’运 AI\T--Cs-u--1-运 屏 打a9B-行--rP0-y-7--b--行 幕 印--:rC结,o--”-6o---H结显机5g--果‘-C---or水--果示输(a:’w--m’-退换反双平::出)a-(a屏\-’r格页斜引制’:=e\幕n线号表¥y’显ou示?”)
{
in•t可i =用0;sizeof(类型标识符)测量
printf ("char: %d bytes.\n",sizeof(char));
C语言程序设计 第2章 数据类型
2.2常量和变量 变量名与变量值的关系:
2.2常量和变量
变量的使用:先定义后使用
变量定义的一般形式:
数据类型 变量名1,变量名2,…,变量名n;
2.2常量和变量
➢ 凡未被事先定义的,系统不把它认作变量名,这就 能保证程序中变量名使用的正确
例:varname,在使用的时候误写成vaname
➢ 在定义变量时要指定变量的类型,在编译时就能为 变量分配相应的存储单元
5
2.2常量和变量
甘草 三七 干姜 葛根
枸杞 人参 陈皮 地黄
山药 当归 谷芽 黄连
贴上标签 加以区分
用标识符给变量起名字
2.2常量和变量 变量命名规则
➢ 只能由字母(a~z,A~Z)、数字(0~9)和下划线(_)构 成
➢ 第一个字符不能为数字 ➢ 不能与关键字同名
例:a9,_a, A_num √ 9a, a*num,int ×
控制语句:控制语句用于控制程序的流程。 C语言提供三类控制语句: ➢ 选择语句 ➢ 循环语句 ➢ 转移语句。 控制语句会在第三章和第四章详细介绍。
2.7 表达式与语句
复合语句: 复合语句由一对大括号括起来的一 条或多条语句组成。 例:{
turnOn(0,3); turnOn(0,4); turnOn(0,5); turnOn(1,4); }
2.7 表达式与语句
表达式语句:表达式末尾加上“;”就构成一条 表达式语句。 例:
s = 3.14 * r * r; 就是一条赋值表达式语句。表达式语句最后的 分号是语句中必不可少的一部分。
2.7 表达式与语句
函数调用语句:函数调用语句由函数调用加分 号构成。 例:
turnOn(1,1);
C语言第02章 数据类型、运算符与表达式
回到 首页
运算符和结合性 P325,附录3
2.8 算术运算符和算术表达式
3、自增、自减运算符
自增运算符++和自减运算符--均是单目运算符, 功能是使变量的值增1或减1。其优先级高于所有 双目运算符,结合性为右结合性(自右至左)。
回到 首页
例如:++i或i++ 等价于i=i+1; --i或i-- 等价于i=i-1;
2.7数值型数据之间的混合运算
回到 首页
1、整型、实型、字符型数据之间可以混合运 算
整型(包括int,short,long)和实型(包括float,double)数据可 以混合运算,另外字符型数据和整型数据可以通用,因此,整 型、实型、字符型数据之间可以混合运算。 例如,表达式10+'a'+1.5-8765.1234*'b'是合法的。
2.9赋值运算符和赋值表达式
1、赋值运算符和赋值表达式
赋值运算符:“=”为双目运算符,右结合性。 赋值表达式:由赋值运算符组成的表达式称为赋值表达 式。 赋值表达式一般形式: 变量 赋值符 表达式 如 a=5 类型转换:将高精度的数据类型赋值给低精度的数据类 型,可能出错。
回到 首页
2.9赋值运算符和赋值表达式
2.8 算术运算符和算术表达式
3、自增、自减运算符
回到 首页
y=++x;等价于先计算x=x+1(结果x=6),再执行y=x,结果y=6。 y=x++;等价于先执行y=x,再计算x=x+1,结果y=5,x=6。 y=x++*x++;结果y=25,x=7。x++为后缀形式,先取x的值进行“*” 运算,再进行两次x++。 y=++x*++x;结果y=49,x=7。
C语言 第2章C语言的基本数据类型和存储类
2.2.2 字符型变量
字符型变量是通过保留字char来说明的,其格式如下: char c1, c2; 该语句说明了c1和c2两个字符型变量。每个字符型变 量可用来存放一个字符,例如:
2.2.3 字符型数据的存储表示
printf首先对格式串从左向右扫描,当遇到可显示字符时就在 终端上原样输出,当遇到控制字符(如‘\n‟,响铃符等)就 产生相应的动作(换行,响铃等),当遇到转换符时,就将 后面的实参依次按转换符的要求转换并输出。常用的转换符 有:%d 十进制整型、%c 字符型、%f 浮点型、%s 字符串型 在使用ASCII编码系统的机器上,用C编写一个将大写英文字 母转换为小写字母的程序,可用如下一些语句实现: { char ch; ch=getchar(); if(ch>=„A‟ && ch<=„Z‟) putchar(„a‟+ch-‟A‟); } 若将上面程序中的字符常量‘A‟, ‘ Z‟和‘a‟分别用整常数 65,90和97来代替程序能否正确运行?
2.6.3 静态变量
静态变量是通过在变量说明前面加保留字static来说
明的,如:
static int x=1; static char c1; static float f1; static double d1,d2;
静态局部变量的生存期一直延长到程序运行结束。 静态局部变量不一定赋初值,编译时对无值的赋予0。
内存中的补码 十进制负整数:
对补码各位取反:[1111111111111010]补码,取反后 得:1000000000000101 将其转换为十进制数:得-5 将结果减1,得-5-1=-6。 考虑[1000000000000000]、[1111111111111111]
第2章 C语言,数据类型、运算符和表达式
(C语言运算符总表见教材P26或P325附录C) return 31
C语言程序设计
算术运算符
+ - * / % 功能: 操作数要求: 结合性: 优先级: 注意事项: 算术运算 两个操作数 (当-用作负号时除外) 自左至右(当-用作负号时除外) -(负号) —— * / % —— + - (由高→低) ① 两个整数相除,结果为整数! 例: 3/2=1 ② %要求两个操作数均为整型数据! 且余数与被除数同号!
说明: ① 字符变量中存放的是字符ASCII码值! ② char与int数据间可进行算术运算!
char choice = 'A';
return24
C语言程序设计
字符串常量
字符常量是用双引号括起来的字符序列. 例如: "hello!" , "0" (1) 字符串常量在内存中的存储 (2) 字符串常量.vs.字符常量
整型
浮点型 字符型 说明:
① 数据类型所占字节数随机器硬件不同而不同! ② 可用sizeof(数据类型说明)来计算某一数据类型占内存的字节数! return
C语言程序设计 next part
2. 常量与变量
标识符命名 常量 变量
go go go
6
C语言程序设计
标识符命名
例: 判断下列标识符号合法性
next
ห้องสมุดไป่ตู้
20
C语言程序设计
字符常量
转义字符是用反斜杠\后面跟一个字符或一个八进制或十 六进制数表示的ASCⅡ码值。例如: '\n', '\101' (1) C语言中常用的转义字符 (2) 转义字符使用实例
C语言第2章 数据类型及运算符
C/C++程序设计第2 章数据类型及表达式计算机学院C/C++程序设计课程组C/C++程序设计第2章主要内容本章主要介绍:基本数据类型和存储类型的说明方法,以及基本运算符的运算规则和表达式的构成方法,为后续章节的学习奠定一个基础。
C/C++程序设计2.1 C 语言的数据类型使用高级语言编写程序,主要工作有两项:一是描述数据,二是描述数据加工的方法。
数据类型图 2.1C 语言的数据类型基本类型整型实型字符型带符号长整型(简称长整型)带符号整型无符号整型无符号整型无符号短整型无符号长整型单精度型双精度型空类型构造类型指针类型枚举类型数组类型结构体类型共用体类型C/C++程序设计2.2 常量常量是程序运行过程中其值不发生变化的数据。
2.2.1 整型常量表2.1 整型数据的表示方式2.2.2 实型常量3.14、.9999、-3.14159、834.、–0.666 、6.89E-52.2.3 字符常量’x’,’a’,’A’,’b’,’$’,’#’ ,printf("\tab\rcd\n\’ef\\g");2.2.4 符号常量#define 符号常量字符串#define PI 3.14159C/C++程序设计【例2.1】求一个圆柱体体积,用符号常量代替π。
#include <stdio.h>#define PI 3.14159 /*定义PI为符号常量*/void main(){float r,h,v;scanf("%f,%f",&r,&h);v=PI*r*r*h; /* PI相当于3.14159,参与运算*/printf("Volume=%f",v);}运行时输入:3,2↙运行结果为: Volume=56.548618C/C++程序设计2.2.5 字符串常量"\tab\rcd\n\’ef\\g“"I am a student" 、"x"、""注意:’\0’和’0’不同,’\0’是编码为0的字符,而’0’则是数字0,其编码为48。
C语言第二章 基本数据类型
常量
一对单引号括起来的单一字符。 字符常量在内存中占1个字节,其值为该字符的ASCII码值。 P325 注:不能用单引号把单引号和反斜杠这两个符号括起来
转义字符 变量
P23 P31
字符串常量
P23
一对双引号括起来的零个或多个的字符序列,字符序列中字 符个数称为字符串的长度。
例如: "this is a\"c\"program\n" 长度为0的字符串(即一个字符都没有的字符串)称为空串, 表示为"" (一对紧连的双引号)。 在存储字符串常量时,由系统在字符串的末尾自动加一个空字 符‘\0’作为字符串的结束标志。 例如: 有一个字符串“CHINA” ,它在内存中的实际存储 如 下所示。 字符串如果有n个字符,则占用n+1个字节的内存空间。
例:整型 字符型
(2) 一种数据类型对应着一个值的范围。
例:无符号整型 无符号字符型 例:整型 实型 求余 0~65535 0~255
(3) 一种数据类型对应着一个运算集。
2.1.2 数据类型
基本类型 字符型 单精度 实型(浮点型) 双精度 数据类型 构造类型 枚举类型
P18
整型(有符号、无符号的短、基、长)
长整型数:
long
有符号长整型(32位):-2147483648 ~ +2147483647 [signed] long [int] unsigned long [int] 无符号长整型(32位):0 ~ 4294967295
溢出:整数的值超出了所能表示的范围
整型数据
常量
常量可以用十进制、八进制、十六进制来表示
长双精度
数组类型
结构体类 型 联合体类 型
C语言第二章数据类型及表达式解析
2.1.3 字符型
例2.2
1 #include <stdio.h> 2 int main() 3{ 4 int i, j; 5 char c1,c2; 6 c1='a'; //字符数据赋值给字符型 7 c2=98; //整数数据赋值给字符型 8 i='A'; //字符数据赋值给整型 9 j=66; //整数数据赋值给整型 10 printf("i=%d , j=%d , c1=%c , c2=%c\n",i,j,c1,c2); 11 printf("c1-32=%c\n",c1-32); //字符型可以进行减法运算 12 return 0; 13 }
13
2.1.3 字符型 ► C语言字符型分为有符号(signed char)和无符号 (unsigned char)两种,其中signed书写时可以省略。 ► 字符型数据在内存中占用1个字节,采用二进制形式存储。
14
2.1.3 字符型 ► 字符型数据可以存储整型数值,有时也称为字节型。字符 型数据存储整数时的内存形式与整型一样,只不过其数值 范围要小得多。 ► 字符型数据可以存储单字节字符,如ASCII码,此时在内存 中的数据是字符的ASCII码值。例如字符'A'在内存中的存储 形式为
3.41038 3.41038
1.710308 1.710308
同上/ 1.2104932 1.2104932
精度
7 16 19
5
2.1.1 整型 ► C语言整型分为长整型(long int)、基本整型(int)和短 整型(short int) ► long int可以简写为long、short int可以简写为short。 ► int型数据的内存长度与系统平台相关,通常int型为机器的 一个字长,short型不比int型长,long型不比int短。
第2章 (C语言) 数据类型、运算符和
2.1 >c语言的数据类型2.2 常量与变量2.2.1 标识符命名2.2.2 常量2.2.3 变量2.3 整型数据2.3.1 整型常量2.3.2 整型变量2.4 实型数据2.4.1 实型常量2.4.2 实型变量2.5 字符型数据2.5.1 字符常量2.5.2 字符串常量2.5.3 转义字符2.5.4 符号常量2.5.5 字符变量2.6 运算符2.6.1 算术运算符2.6.2 自增和自减2.6.3 关系和逻辑运算符 2.6.4 位操作符2.6.5 ? 操作符2.6.6 逗号操作符2.6.7 关于优先级的小结2.7 表达式2.7.1 表达式中的类型转换2.7.2 构成符cast2.7.3 空格与括号2.7.4c语言中的简写形式2.1 C语言的数据类型C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。
尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以b i t为例,整数与C P U字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定。
对于多数微机,表2 - 1给出了五种数据的长度和范围。
表2-1 基本类型的字长和范围表中的长度和范围的取值是假定CPU的字长为16 bit。
C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举。
这些复杂类型在以后的章节中讨论。
除void类型外,基本类型的前面可以有各种修饰符。
修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。
修饰符如下:• signed(有符号)。
• unsigned(无符号)。
• long(长型符)。
• short(短型符)。
修饰符signed、short、long和unsigned适用于字符和整数两种基本类型,而long还可用于double(注重,由于long float与double意思相同,所以ANSI标准删除了多余的long float)。
《新概念C语言能力教程》第2章基本数据类型
• 其中的l(long)和h(short)称为长度修饰符,是附加的格式说明符。
格式字符串与数据类型
• unsigned short a = -1u; • 语句printf("%hu", a);中格式字符串hu(无符号短整型)准确地匹配了变量a
printf函数的输出结果不会是22亿。这条语句有逻辑错误。
分析下面语句的输出结果。
• printf("%lu", 2200000000); • printf("%ld", -1); • printf("%lu", -1u); • printf("%hd", -1); • printf("%hu", -1u); • printf("%hu", -2);
编码和解码
• 现实世界中的数据转换成由0和1组成的二进制串,计算机才能存储和处理。 由数据得到01串称为编码;由01串得到数据称为解码。
• 每类数据都各有特点,只用一种编码规则统一编码是不现实的。不同类型的 数据如整数和小数,采用了不同的编码规则。
• 多种编码规则导致不同数据的编码结果可能相同,因此,只有确定了编码规 则,才能正确解码。
功的识别的16。 • 当用户输入32789↙时,全部识别成功,但短整型变量m的实际值不会是
的类型,printf函数正确地输出变量a的实际值65535。 • 语句printf("%hd", a);中格式字符串hd(短整型)与变量a的类型不匹配,
第二章 C语言的基本数据类型
标识符的有关规定:只能由字母、数字和下划线 组成,且第一个字符必须是字母或下划线;字母区分 大小写;不同的C编译系统规定标识符长度不同(如 IBM PC的MS C取8个字符,而Turbo C则允许32个字 符),考虑到程序的可移植性及阅读程序的方便,标 识符的长度一般不要超过8个字符,且应注意做到“见 名知意”
2、十六进制整常数:十六进制整常数的前缀为0X或0x。 其数码取值为0~9,A~F或a~f。 以下各数是合法的十六进制整常数: 0X2A(十进制为42)、 0XA0 (十进制为160)、 0XFFFF (十进制为65535) 以下各数是不合法的十六进制整常数: 5A (无前缀0X)、 0X3H (含有非十六进制数码) 3、十进制整常数: 十进制整常数没有前缀。其数码为0~9。 以下各数是合法的十进制整常数: 237、 -568、 65535、 1627 以下各数是不合法的十进制整常数: 023 (不能有前导0)、23D (含有非十进制数码)
各种无符号类型量所占的内存空间字节数与相应的有符号 类型量相同。但由于省去了符号位, 故不能表示负数
Turbo C中各类整型量所分配的内存字节数及数的表示范围。 类型名称 (中文) 类型名称 (英文) 占用的 字节数 2 2 2 2 4 4 取值范围 -32768~32767 0~65535 -32768~32767 0~65535 -2147483648 ~2147483647 0~4294967295
第二章 C语言的基本数据类型
教学内容: 1 C语言的数据类型 C语言的数据类型 2 常量与变量 3 整型数据 4 实型数据 5 字符型数据 6 变量赋初值 7 变量数据类型转换 基本要求: (1) 掌握基本数据类型及其常量的表示方法; (2) 掌握变量的定义及初始化方法; (3) 掌握变量数据类型的转换法 重点: C的数据类型、常量与变量、变量定义、变量赋初 始化、变量数据类型的转换 难点: 难点: 变量数据类型的转换
第2章 C语言数据类型
2.2.4 字符串常量
字符串常量在内存中存储时,系统自动在每一 个字符串常量的尾部加一个“字符串结束标志”, 即字符‘\0‟( ASCII码值为0)。 因此,长度为n个字符的字符串常量在内存中 要占用n+1个字节的空间。 例如,字符串“C program”的长度为9(即字 符的个数),但在内存中所占的字节数为10,即存 放“C program\0”。
49-33
2.3.2
变量的定义与初始化
2. 变量的初始化
在定义变量的同时可以给变量赋初值,称为变量初始化。 变量初始化的一般格式为: 数据类型标识符 变量名1=常量1[,变量名2=常量2,…,变量名n=常量n]
例如:
int m=3,n=5; /* 定义m和n为整型变量,同时m,n分别赋初值3,5 */ float x=0,y=0,z=0; /* 定义x,y,z为单精度实型变量,
算。
如,„6‟和6是不同的,‘6‟是字符常量,而6是 整型常量。
49-16
#include
<stdio.h>
void main() { char c1,c2; c1='a'; c2='b'; printf("a=%c,b=%c",c1,c2); c1=c1-32; c2=c2-32; printf("a=%c,b=%c\n",c1,c2 ); }
49-24
2.2.5 符号常量
在程序中,可以定义一个符号来代表一个常量 ,这种相应的符号称为符号常量。例如:用PI代表 圆周率π,即3.14159。 符号常量可以增加程序的易读性。 例如:用PI代表圆周率π,NAME代表姓名等。 符号常量可以提高程序的通用性和可维护性, 可以使修改该常量变得十分方便。
C语言知识点:第2章 数据类型、运算符与表达式
主讲教师:杨剑
第 2 章:数据类型、运算符与表达式
1. 本章目标:
理解变量和常量的含义 熟悉基本数据类型 - int、char、float 和 double 使用算术运算符 理解类型转换 使用关系和逻辑运算符
2. 内存如何存放数据
电脑使用内存来记忆计算时所使用的数据 内存如何存储数据? 内存像旅馆.数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空
23. 复合赋值表达式
24. 赋值表达式和逗号运算符
赋值表达式 a=b=c=5;(从右向左计算) a +=a-=a*a
逗号运算符和逗号表达式 3+5,6+8 a=3*5,a*4
25. 习题
~7~
C 语言程序设计知识点
主讲教师:杨剑
有以下程序
main()
{
char a1=’M’,a2=’m’;
12. 单精度浮点型
float 在 C 语言中用于存储单精度浮点数 float 32 位 10-38 至 10+38 ,7 位有效数字 声明:
float price; 初始化:
float score = 11.3; score = 65.90;
13. 双精度浮点型
double 32 位 16 位有效数字 声明:
const float PI=3.14; S=PI*r*r; //等价于 3.14*r*r const 关键字的作用就是“冻结”一个量,它的值不能被修改,是一个只读(read only) 量。 优点:比数值常量可读性好、修改容易
18. 符号常量 2(宏常量)
还可用宏定义符号常量 语法:#define 符号名 常量值 例: 计算圆的周长时
第2章 数据类型、运算符、表达式
第二章 数据类型、运算符、表达式一、数据类型C 语言中的数据类型比别的语言丰富。
基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。
1、常量与符号常量常量:在程序执行过程中,其值不发生改变的量称为常量。
常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a ’,‘b ’,‘c ’则为字符常量。
常量即为常数,一般从其字面即可判别。
符号常量:有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。
如:#define PI 3.142、变量变量:程序执行过程中其值可以改变的量。
定义方法定义形式:数据类型 变量名1,变量名2,……变量名n ;整型(int )数据类型 基本类型 整型 单精度型(float )字符型(char )长整型(long )短整型(short )实型 双精度型(double )枚举类型(enum )共用体类型(union )构造类型结构体类型(struct )数组类型空类型(void )指针类型(*)如:char ch1, ch2; /* ch1,ch2为变量*/float x, y; /* x ,y 为实型变量*/int a, b, c; /* a,b,c 为整型变量*/在书写变量说明时,应注意以下几点:(1) 允许在一个类型说明符后,说明多个相同类型的变量。
各变量名之间用逗号间隔。
类型说明符与变量名之间至少用一个空格间隔。
(2) 最后一个变量名之后必须以“;”号结尾。
(3) 变量说明必须放在变量使用之前。
一般放在函数体的开头部分。
另外,也可在说明变量为整型的同时,给出变量的初值。
其格式为:类型说明符 变量名标识符1=初值1,变量名标识符2=初值2,...;3、数据在内存中的表示整型数据:以二进制的形式表示(1) int 类型正数: 如 123 (+123)用 16 位二进制(二个字节)表示原码 反码(原码同) 补码(原码同)最大正整数 215-1=214+213+212+211+210+29+2827+26+25+24+23+22+21+20=32767负数:如 –123原码补码(补码加 1)1取反加1 最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215 而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16最大数215+214+213+2122+21+20=65535最小数 0 (3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short 用16 位二进制(二个字节)表示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
普通高等教育“十一五”国家级规划教材
2.2.3 字符常量
字符常量是用单引号括起来的一个字符。例如
:‘a‟、‘0‟、‘A‟、‘-‟、‘*’都是合法字符常 量,注意,‘a‟和‘A‟是不同的字符常量。 除了以上形式的字符常量以外,C语言还定义 了一些特殊的字符常量,是以“\”开头的字符序列 ,称为转义字符。转义字符是一种特殊的字符常量 ,具有特定的含义,不同于字符原有的意义,故称 “转义”字符。如‘\n‟中的n不表示字母n而作为 “换行”符。
以下各数不是合法的十六进制整型常量:
5A(无前缀0X) 0X3H (含有非十六进制数码H)
49-10普通高等教育“十Fra bibliotek五”国家级规划教材
2.2.2 实型常量
在C语言中,实型常量只能用十进制形式表
示,不能用八进制和十六进制形式表示。
它有两种形式:
小数形式和指数形式。
49-11
普通高等教育“十一五”国家级规划教材
49-17
普通高等教育“十一五”国家级规划教材
2.2.4 字符串常量
字符串常量在内存中存储时,系统自动在每一 个字符串常量的尾部加一个“字符串结束标志”, 即字符‘\0‟( ASCII码值为0)。 因此,长度为n个字符的字符串常量在内存中 要占用n+1个字节的空间。 例如,字符串“C program”的长度为9(即字 符的个数),但在内存中所占的字节数为10,即存 放“C program\0”。
49-18
普通高等教育“十一五”国家级规划教材
2.2.4 字符串常量
字符串常量在内存中存储时,系统自动在每一个字符 串常量的尾部加一个“字符串结束标志”,即字符‘\0‟( ASCII码值为0)。因此,长度为n个字符的字符串常量在内 存中要占用n+1个字节的空间。例如,字符串“C program” 的长度为9(即字符的个数),但在内存中所占的字节数为 10,即存放“C program\0”。
49-8
普通高等教育“十一五”国家级规划教材
2.2.1 整型常量
八进制整型常量的表示以数字0开头,即以0作 为八进制数的前缀,由0~7的数字组成,八进制数 通常是无符号数。 以下各数是合法的八进制常数: 015(十进制为13) 0101(十进制为65) 0177777(十进制为65535) 以下各数不是合法的八进制常数: 256(无前缀0),03A2(包含了非八进制数字A) -0128(出现了非八进制数字8和负号)
不变的量。
常量可以有不同的类型,可分为直接常量和符 号常量。直接常量也就是日常所说的常数。符号常 量则是指用标识符定义的常量,从字面上不能直接 看出其类型和值。
49-6
普通高等教育“十一五”国家级规划教材
2.2 常量
常量
49-7
普通高等教育“十一五”国家级规划教材
2.2.1 整型常量
C语言中整型常量有十进制、八进制、十六进制3 种形式。 十进制整型常量的表示与数学上的整数表示相 同,十进制整型常量没有前缀,由0~9的数字组成 。 以下各数是合法的十进制整型常量: 237,-568,65535,1627 以下各数不是合法的十进制整型常量: 023 (不能有前导0),23D (含有非十进制数码)
算。
如,„6‟和6是不同的,‘6‟是字符常量,而6是 整型常量。
49-16
普通高等教育“十一五”国家级规划教材
2.2.4 字符串常量
在C语言中,字符串常量是用双引号括起来的字符序列。 例如,以下是合法的字符串常量: “CHINA” “This is a C program.” “402754” “+++\\? ab” “*****” “ ” 表示一个空格 “” 表示什么字符也没有 “\n” 表示一个转义字符换行 ‘ab‟ 既不是字符常量,也不是字符串常量。
}
程序运行结果: 5,8↙ 5+8=13 5-8=-3 5*8=40
49-30
普通高等教育“十一五”国家级规划教材
2.3.2
变量的定义与初始化
1. 变量的定义 在C语言程序中,常量是可以不经定义而直接引用的,而程 序中用到的所有变量必须先定义后使用。 变量定义的一般格式为: 数据类型标识符 变量名1[,变量名2,变量名3,…,变量名n]; 其中,[]表示可选项。 例如: int a; /* 定义a为整型变量 */ int m,n; /* 定义m和n为整型变量 */ float x,y,z; /* 定义x,y,z为单精度实型变量 */ char ch; /* 定义ch为字符型变量 */ long int t; /* 定义t为长整型变量 */ static double r; /* 定义r为长静态的双精度实型变量 */
2.2.2 实型常量
1.小数形式
由正负号、0~7的数字和最多一个小数点
组成(必须有小数点)。
如:
-1.85,0.3456, 120.0,.426,-11
都是十进制小数形式实数。小数点前面和后面
可以没有数字。
49-12
普通高等教育“十一五”国家级规划教材
2.2.2 实型常量
2. 指数形式
由十进制数加上阶码标志“e”或“E”以及阶码组成。其 一般形式为:a E n。其中a为十进制数,n为十进制整数(n 为正数时“+”可以省略)其值为:a×10n。 例如,1.234e+12 表示 1.234*10¹ ² 0.25e-8 表示 0.25*10-8。 以下是合法的实数: 1.234e+12(等于1.234×1012), 3.7E-2(等于3.7×10-2) 2.34e+8(等于2.34×108) 以下是非法的实数: 568(无小数点), e-5(阶码标志“e”之前无数字), -5(无阶码标志), 58.+e5(负号位置不对) 2.7E(无阶码), 6.4e+5.8(阶码为小数)
普通高等教育“十一五”国家级规划教材
2.3.1 变量的概念
变量的特征: (1)它有一个变量名,变量名的命名方式符合标识符的 命名规则。例如,可以用name,sum作为变量名。 (2)变量有类型之分。 不同类型的变量占用的内存单元(字节)数不同, 因此每个变量都有一个确定的类型。例如,整型变 量、实型变量、字符型变量等。 (3)变量可以存放值。 程序运行过程中用到的变量必须有确切的值,变量 在使用前必须赋值,变量的值存储在内存中。在程
printf(“input a,b=”);
/* 输出提示字符串input a,b= */ scanf(“%d,%d”,&a,&b); /* 由键盘输入a和b的值 */ printf(“%d+%d=%d\n”,a,b,a+b); /*计算a和b之和,并输出结果*/ printf(“%d-%d=%d\n”,a,b,a-b); /*计算a和b之差,并输出结果*/ printf(“%d*%d=%d\n”,a,b,a*b); /*计算a和b之积,并输出结果*/
49-2
普通高等教育“十一五”国家级规划教材
2.1 数据类型间简介
普通高等教育“十一五”国家级规划教材
2.1 数据类型简介
C语言为我们提供了丰富的数据类型
49-4
普通高等教育“十一五”国家级规划教材
2.2 常量
普通高等教育“十一五”国家级规划教材
2.2 常量
常量是指在程序运行的整个过程中,其值始终
13
12 92 39
\"
\0 \ddd \xhh
49-15
双引号字符“"”
空字符 1到3位八进制数所代表的ASCII码字符 1到2位十六进制数所代表的ASCII码字符
34
0
普通高等教育“十一五”国家级规划教材
2.2.3 字符常量
注意:
(1)字符常量只能用单引号括起来,不能用双引
号或其他括号。 (2)字符常量只能是单个字符,不能是字符串。 (3)字符可以是字符集中任意字符,但数字被定 义为字符型之后就以ASCII码值参与数值运
49-25
普通高等教育“十一五”国家级规划教材
2.3 变量
普通高等教育“十一五”国家级规划教材
2.3.1 变量的概念
变量是指在程序运行过程中,其值可以改变 的量。 例如,计算圆的周长的C语句: i=2*3.14159*r; i和r都是变量,其中,r可以有不同的值,i 的值因r的值不同而不同。
49-27
2.2.4 字符串常量
字符常量与字符串常量的区别: ⑶ 存储要求不同。 字符常量存储的是字符的ASCII码值,而字 符串常量除了要存储字符串常量的有效字符外 ,还要存储一个字符串结束标志‘\0‟。 说明: 在C语言中,没有专门的字符串变量,字符 串常量如果需要存放在变量中要用字符数组来处 理。
49-23
序中通过变量名来引用变量的值。
49-28
普通高等教育“十一五”国家级规划教材
2.3.1 变量的概念
程序运行过程中从变量中取值,实际上是通过变量 名找到相应的内存地址,从其存储单元中取数据。
49-29
普通高等教育“十一五”国家级规划教材
2.3.1 变量的概念
例2.2 任意输入两个整数,输出它们的和、差、积 #include <stdio.h> void main( ) { int a,b; /* 定义a,b为整型变量 */
49-9
普通高等教育“十一五”国家级规划教材
2.2.1 整型常量
十六进制整型常量的表示以0x或0X开头,即以0x或 0X作为前缀(注:十六进制数前缀字符0x,x前面是数字 0而不是字符o),由0~9,A~F或a~f的数字组成。 以下各数是合法的十六进制整型常量: 0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)