编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]

上传人:博****1 文档编号:586640625 上传时间:2024-09-05 格式:PPT 页数:57 大小:620.50KB
返回 下载 相关 举报
编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]_第1页
第1页 / 共57页
编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]_第2页
第2页 / 共57页
编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]_第3页
第3页 / 共57页
编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]_第4页
第4页 / 共57页
编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页]》由会员分享,可在线阅读,更多相关《编程语言基础语言第2章基本数据类型与简单程序设计[共57页][共57页](57页珍藏版)》请在金锄头文库上搜索。

1、第2章 基本数据类型与简单程序设计2.1 C语言的基本数据类型 2.1.1 常用标准数据类型类型标识符名 称字节数范 围char字符型1-27 +27-1 (-128 +127)short短整型2-215 +215-1 (-3276832767)int 或long长整型4-231 +231-1 (-21474836482147483647)float浮点型(实型)410-37 10+38 (绝对值)double双精度浮点型810-307 10+308(绝对值)说明:在Dev-C+或visual c中,int 同long,在winTC中,int 等同short。2.1.2 无符号类型如果在sho

2、rt或char类型标识符前面加上关键字unsigned,则表示无符号类型,其值为非负整数其值为非负整数类型标识符名 称字节数范 围unsigned char无符号字符型10255unsigned short 无符号短整型2065535unsigned int或unsigned long无符号长整型40 42949672952.2 常量和变量2.2.1 常量和符号常量 在程序的运行过程中,其值保持不变的量称为常量。#define PI 3.1415926 此后,凡在文件中出现的PI均可用3.1415926来代替。2.2.2 整型常量 除了我们比较熟悉的整型常量如: 100、0、-256之外, C

3、语言中还有其他形式的整型常量。例例 子子 说说 明明 -1234十进制整型常量十进制整型常量 (包含数字包含数字09)01234八进制整型常量(以八进制整型常量(以0开头,包含数字开头,包含数字07)0x1234十六进制整型十六进制整型常量常量(以以0x或或0X开头,包含数字开头,包含数字09、字母、字母AF或或af)0Llong型十进制整型常量(以型十进制整型常量(以l或或L结尾)结尾)例如:0235等于十进制数157,即 282 +381 +580 =157。 -0X23等于十进制数 -35。任何类型的数据在计算机中都是以二进制补码形式存储的。正数的补码等于其原码,而负数的补码等于其原码的

4、反码+1。例如:0000 0000 0101 0011 表示831111 1111 1010 1101 表示-830000 0000 0000 0000 0000 0000 0101 0011 表示83L1111 1111 1111 1111 1111 1111 1010 1101 表示-83L2.2.3 浮点型常量C语言中的浮点类型主要分为单精度和双精度浮点型两种。以下是合法的十进制浮点数以下是合法的十进制浮点数表示:1234.56、-1.2、0.0、.5、6.、1000000000.0。浮点数还可采用科学表示法,以下是合法的以下是合法的科学浮点数数表示:1.23456e2、 0.345E-

5、3、-765e12、-.5E-8、6.e-7、1.0e10。出现在字母e(或E)之前的小数点,其左边和右边应有一位数字在字母e(或E)之后必须是整数。1.34E1.2、.e2 均是非法的浮点数。2.2.4 字符型数据C的字符常量是用单引号(即撇号)括起来的一个字符。 如 *、a、A、&、! 等都是字符常量。注意,a 和 A 是不同的字符常量。字符数据存放在内存时,并不是字符本身,而是字符的代码,称之为ASCII码。 部分字符对应的ASCII码字符字符 回车回车 空格空格 * * + + 0 0 1 1 2 2 3 3 9 9 ASCIASCII I码码 1313 3232 4242 4343

6、4848 4949 5050 5151 5757 字符字符 A A B B C C Z Z a a b b c z z ASCIASCII I码码 6565 6666 6767 9090 9797 9898 9999 122122 常用的转义字符有:n 换行符(将当前位置移到下一行开头)t水平制表符(跳到下一个位置)b 退格r 回车(将当前位置移到本行开头)f走纸反斜杠单引号”双引号 转义字符看起来是两个字符,实际上只能算一个字符。 也可以使用 加上一个13位的8进制数或 x 加上一个12位的16进制数表示的ASCII码值来表示转义字符,例如: 0表示 空字符33 或 033 表示ESC(27

7、)07 表示响铃x0A 表示换行(10)。2.2.5 变量在程序的运行过程中,值可以改变的量称为变量。每个变量都有一个名字,称为变量名。每个变量均必须进行变量说明,指明变量的类型如: int k=50;变量名和符号常量名的命名方法相同,都是用标识符表示。标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,不允许使用数字。如下面是合法的标识符。 Class_1, _abc1, id, a1b2, sum, total 下面是不合法的标识符:a b/* 标识符不能含空格符 */ 1a/* 标识符不能以数字打头 */#abc/* 标识符不能

8、使用# */ xyz-1 /* 标识符不要把减号“-”和下划线“_”混淆 */ 注意:大写字符和小写字符被认为是两个不同的字符。如: a1和A1是两个不同的变量。变量和符号常量的不同之处在于:变量的值可以改变,而符号常量则不行。例2-1int i, j, k; char c1, c2; 上面两行语句定义了3个int型型变量i, j, k和2个字符型变量字符型变量c1、c2例2-2float x1, x2;/* 定义2个单精度浮点型变量 */double z1, z2; /* 定义2个双精度变量*/float x;double y;x = 123456.789; /* 给变量赋初值 */y =

9、1.23456789E5;2.3 赋值语句 所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。 对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。2.3.1 赋值语句的格式与功能一般形式:变量 = 表达式;功能: 首先计算赋值号“=”右边表达式的值,然后将结果值送给赋值号“=”左边的变量。例如:g = 9.8;g = 10 + 20 - 9;“=”不是等号,而是赋值号。例2-1char c1, c2;c1 = a;c2 = b; 上面定义了2个字符型变量 c1, c2,一个字符型变量可存放一个字符。 将一个字符常量存

10、放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的ASCII码存放内存单元中。 C语言字符型数据与整型数据之间可以通用。例2-2#include main( )char c1 = a, c2; int k; k = c1; /* 将字符型变量c1赋给整型变量k */ c2 = 97; /* 将整数97赋给字符型变量c2 */ printf(%c, %c, %d, c1, c2, c1); /* 字符变量既可按字符形式输出,亦可按整型输出 */ printf(n %d, %c, k, k ); /* 整型变量既可按整型形式输出,亦可按字符型输出 */ getch();运

11、行结果: a, a, 9797, a例2-3 将小写字母转换成大写字母。#include main( )char c1,c2; int i, j; c1 = a; c2 = c1-32; /* c2 = A */ printf(%c, %c, c1, c2 ); getch();运行结果: a, A2.3.2 赋值语句中的类型转换“=”左边变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类型的转换。转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。 例如:int a;long b;char c;a = b; /* long型变量b的值变换成int型后再赋

12、给a */b = a; /* int型变量a的值变换成long型后再赋给b */b = a + c; /* int型a + c的值变换成 long型后再赋给 b */当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。例2-4main( ) int a =350, b; char c ; c = a; b = c;printf(%d, %d, %d , a, c, b );getch( );运行结果为:350, 94, 942.4 数据的输出2.4.1 字符输出函数 putchar( )函数putchar( )

13、的功能是把一字节的代码值所代表的字符输出到显示器上。常用格式如下:putchar( c ); 其中参数C可以是字符常量、变量或字符表达式。例2-5 字符输出函数putchar( )的功能#include main( ) char c =A; putchar( c ); /* 输出字符A */ putchar(n); /* 输出换行符 */ putchar(#); /* 输出字符# */ getch( ); 2.4.2 格式化输出函数printf( )格式化输出函数是按指定的格式完成输出过程。一般使用形式如下:printf(输出格式串, 表达式表 );其中,输出格式串包含“格式符”或非格式符。“

14、格式符”以%开头后面跟一个字母。格式符见表2-4。格式符格式符 功能说明功能说明 %c%c 按字符形式输出按字符形式输出 %d%d 按十进制整数形式输出按十进制整数形式输出 %o%o 按八进制整数形式输出按八进制整数形式输出 %x%x 按十六进制整数形式输出按十六进制整数形式输出 %f%f 按浮点形式输出,默认按浮点形式输出,默认6 6位小数位小数 %m.nf%m.nf 按浮点形式输出,显示宽度不小于按浮点形式输出,显示宽度不小于m m,n n位小数位小数 printf( ) 函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。输出格式串中的转换说明

15、符与表达式的个数必须相同,它们按各自的先后顺序一对应,如图2-2所示。例如:a =100;b =200;printf(%d + %d = %d n, a, b, a + b ); 输出结果为:100 +200 =300(换行)例2-8#include main( )float x1 = 123.5678, x2 = -4567.789;printf(x1 = %f, x2 = %f n, x1, x2 );printf(x1 = %8.2f t x2 = %8.2f n, x1, x2 );getch( );/* 按任意键 */printf(%c%3c n, *, * );printf(%d%

16、3d n, 11, 22 ); 运行结果为x1 = 123.567802, x2 = -4567.789062x1= 123.57 x2 = -4567.79(按任意键后显示)* * 11 222.5 数据的输入 数据的输入,一般是以键盘为处理对象的,从键盘接受字符和数据。 字符输入函数getchar( ) 和输出函数putchar( ),是以一个字节的字符代码为单位来完成输入输出过程的。在程序中使用这两个函数时,要求在程序开头包含头文件stdio.h。即 #include 2.5.1 字符输入函数 getchar( )功能是接收从键盘上输入的字符。在程序中使用这个函数输入字符时,可以用另一个

17、变量接收读取的字符,例如:c = getchar( );例2-9 字符输入函数getchar( )的功能#include main( )char ch; ch = getchar( ); printf(ch = %c, ch = %d n, ch, ch ); getch( ); 当执行到语句:ch = getchar( ); 时,计算机就会等待用户击键(等待输入)。2.5.2 格式化输入函数 scanf( )scanf( ) 函数的功能是按指定的格式从键盘接受输入信息。一般使用格式如下:scanf(“格式串”,地址表 ); “格式串”中既可以含格式符,也可以含非格式符。输入时,凡遇非格式符,

18、要求原样输入,凡遇格式符,按指定格式输入数据。输入格式符表格式符格式符 功能说明功能说明 %c%c 接收一个字符型数据接收一个字符型数据 %d%d 接收一个整数型数据,直到遇到空格、接收一个整数型数据,直到遇到空格、或回车符或回车符 %f%f 接收一个浮点型数据接收一个浮点型数据 例2-10 从键盘上输入直径d的值,然后计算圆的面积area和周长len。# define PI 3.1415926main( ) float d, area, len, r;printf(请输入直径的值:);scanf(%f , &d );r = d / 2;area = PI * r * r;len =2 * P

19、I * r;printf(半径r = %f, 面积S = %f, 周长L = %f n, r, area, len );2.6 运算符和表达式将运算符和运算对象按一定规则连接起来就成为表达式.2.6.1 算术运算符运算符运算符 运运 算算 优先级优先级 例例 子子 ( ) 圆括号圆括号 1 1 5 /5 /(1 1 3 3 ) * * 乘法乘法 3 3 7 * 3 = 217 * 3 = 21 / / 除法除法 3 3 7 / 37 / 3 .0 = = 2.3333337 / 3 = 27 / 3 = 2 % % 模除模除 3 3 7 % 3 = 1 + + 加法加法 4 4 7 + 3 =

20、 10 - - 减法减法 4 4 7 - 3 = 4 说明:1. 模除运算是两个整数相除后取余数;要求 % 两边必须是整型数据。2. 若算术运算符两边均为整数,则结果仍为整数。例:7 / 3 = 21 / 2 = 03. 若参加运算的两个数中有一个数为实数,则结果为double型。 4. 每个运算符都有一个优先级。如乘除的优先级高于加减。在表达式求值时,按运算符的优先级高低次序进行。如先乘除,后加减。( )可改变运算次序。若在一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。有些运算符的结合方向为“从右到左”,即“右结合性”。2.6.2 自增、自减运算符“右结合性”,优先级为

21、2。“+”为自增运算符,“-”为自减运算符。自增、自减运算表达式的结合方向都是自右至左。但 +k与k+ 的不同之处在于:1.前者先执行k = k + 1,然后再使用k的值;2.而后者则先使用k的值,再执行k = k +1。例2-11#include main( )int i, j, k;k = 30;i = k+;/* 先将k值30赋给i,再使k值增1,此时k =31, i = 30 */printf(i = %d, k = %d, i, k );j = +k;/* k值先增1,再将k值赋于i,此时k =32, i = 32 */printf(n j = %d, k = %d, j, k );

22、运行结果:i = 30, k = 31j = 32, k = 322.6.3 赋值运算符“右结合性”,优先级为14。赋值运算符为“=”例2-12main( )float k, x, y;x = ( k = 9.8 ) +7;printf(k = %5.1f, x = %5.1f n , k, x );y = k = 9.8 + 7;printf(k = %5.1f, y = %5.1f n, k, y );运行结果:k= 9.8, x= 16.8k= 16.8, y= 16.82.6.4 逗号运算符逗号运算符将两个表达式连接起来。其优先级15,最低。格式:表达式1,表达式2功能:先求解表达式1

23、,再求解表达式2。整个逗号表达式的值为表达式2的值。在很多情况下,使用逗号表达式只是想求出各个表达式的值。例2-13main( ) int i, j = 0123; /* 012是八进制数,其等价的十进制数是83*/i = 0x3a; /* 0x3a是十六进制数,其等价的十进制数是58*/printf(%d, %d n , i, j );运行结果:58, 832.7 常用的数学函数在使用数学函数之前,要求在程序开头包含头文件math.h,即:#include 以下函数的参数类型和函数值类型均为实型。sqrt( x )求x的开平方,x0。pow( x,y )求xyexp(x )求exabs(x)

24、求x的绝对值,n为int整型数。fabs(x)求x的绝对值,n为double型浮点小数。log( x )求x的对数,以e为底,x0。log10( x )求x的对数,以10为底,x0。sin( x )求x的正弦,x的单位为弧度。cos(x )求x的余弦,x的单位为弧度。tan(x )求x的正切,x的单位为弧度。rand()产生032767范围内的整数随机数。例2-14:输入一个正数x,求x的开平方。#include main( )float x,y;printf(input x:);scanf(%f, &x );y = sqrt( x );printf(sqrt (%7.2f ) = %7.2f

25、 n, x, y );运行程序的结果是:input x: 81sqrt ( 81.00) = 9.00例2-15: 使用pow函数求幂 ab。#include main( ) float a, b; scanf(%f %f, &a, &b );printf(a = %.1f,b = %.1f,a b = %.1f n, a, b, pow(a,b) );输入:5 3 回车,输出:a = 5.0, b = 3.0, a b = 125.02.8 顺序结构程序设计应用实例一个结构化程序有三种基本结构,就是顺序结构、选择结构、循环结构。顺序结构是一组按书写顺序执行的语句。顺序结构程序是按语句的书写顺

26、序执行的.例2-19:已知三角形的两边A、B及其夹角a,求第三边C及面积S。 题目分析:根据三角形公式可知; C=S= ABsin程序如下:#define PI 3.1415926#include main( ) float a, b, c, s, alfa; scanf(%f %f %f, &a, &b, &alfa ); alfa = alfa * PI / 180; c = sqrt( a * a + b * b -2 * a * b * cos ( alfa ) ); s = a * b * sin( alfa ) / 2; printf(a=%.1f, b=%.1f,alfa =%.

27、1fn,a,b,alfa); printf( c = %.1f, s = %.1f n, c, s ); getch( ); 若输入:5 8 30 ,则输出:a = 5.0, b = 8.0, alfa = 0.5c = 4.4, s = 10.0本章小结C语言的基本数据类型有:char、int、long、float、double等几种。计算机中没有无限大或无穷大的数。与整型不同的是,浮点运算无法表示百分之百的精确,它受到精度的限制。使用运算符时,应特别注意运算符的优先级、结合方向和运算对象的类型。末尾有分号的是表达式语句。末尾没有分号的是表达式。注意基本输入、输出函数getchar、putchar、scanf、printf等的使用,特别是输入输出格式要求。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号