收藏 分销(赏)

第二章顺序结构程序设计.doc

上传人:仙人****88 文档编号:6105172 上传时间:2024-11-28 格式:DOC 页数:10 大小:38.50KB 下载积分:10 金币
下载 相关 举报
第二章顺序结构程序设计.doc_第1页
第1页 / 共10页
第二章顺序结构程序设计.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
第二章 顺序结构程序设计 教学时间: 6学时 教学目的: 1、掌握常量与变量的书写和定义 2、掌握三种基本数据类型 3、掌握运算符和表达式的使用 4、掌握顺序结构程序设计的方法 内容、重点、难点:  内容:  2.1 常量和变量 2.2 整型数据 2.3 实型数据 2.4 字符型数据 2.5 变量的初始化 2.6 运算符和表达式 重点: 1、三种基本数据类型的定义和使用 2、各种运算符的使用 难点: 1、运算符的使用 2、使用顺序结构编程 第2章 顺序结构程序设计 顺序结构是一组按书写顺序执行的语句。本章将主要介绍程序中用到的一些基本要素(常量、变量、运算符、表达式和输入输出语句等),以及基本的数据类型(整型、实型和字符型)。 2.1 常量和变量 2.1.1常量 1)常量:在程序运行的过程中,其值不能被改变的量。 如2、4、-1.6等。 2)分类:普通常量和符号常量 3)符号常量:用一个标识符代表一个常量,这样的标识符称为符号常量。如用PI代表3.1415926 4)注意:符号常量的值在其作用域内不能改变,也不能再被赋值。如在程序中,对PI重新赋值: PI=2;这样是不允许的。 2.1.2变量 1)变量 C语言规定在程序运行的过程中,其值可以改变的量,称为变量。 2)标识符:用来标识变量名、符号常量名、函数名、数组名、类型名和文件名的有效字符序列。 3)C语言规定:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。一般变量名的长度不能超过8个字符。 如下面是合法的标识符,也是合法的变量名: sum,average,day,month,student,_above,k_1_2_3,basic 下面是不合法的标识符和变量名: M.D.John,$123,#33,3D64,a>,-ab 在C语言中,要求对所有用到的变量作强制定义,也就是″先定义,后使用″。 2.2 整型数据 2.2.1整型常量 C语言整型常数可用以下三种形式表示: 1. 十进制整数:数码直接开头的十进制数。 2. 八进制整数:以0开头的常量是八进制数。 3. 十六进制整数:以0x开头的数是16进制数。 2.2.2整型变量 1.整型变量的分类 整型变量可分为:基本型、短整型、长整型和无符号型四种,其定义的关键字如下: (1)基本型,以int表示。范围为-32768~32767,即-215~(215-1)。 (2)短整型,以short int或short表示。范围与基本型相同。 (3)长整型,以long int或long表示。若一个整型常量后面加上一个字母l或L,则认为是long int型常量。范围为-2147483648~214783647即-231~(231-1) (4)无符号型,在实际应用中变量的值常常是正的,如年龄、工资、成绩等,因此可以将变量定义为″无符号″类型。 无符号型又分为: ① 无符号整型,以unsigned int或unsigned表示。 范围:0~65535 即0~(216-1)。 ② 无符号短整型,以unsigned short表示。范围:0~65535即0~(216-1)。 ③ 无符号长整型,以unsigned long表示。范围:0~4294967295即0~(232-1)。 2. 整型变量的定义 变量的定义格式为:数据类型 变量表列; 其中若定义多个同类型的变量,则用逗号分开。 例: int a,b;(指定变量a,b为整型) unsigned short c,d;(指定变量c,d为无符号短整型) long e,f;(指定变量e,f为长整型) 3. 整型数据的输入 整型变量键盘输入,是通过scanf函数实现的,scanf函数是数据输入函数,格式为: scanf (格式控制,地址表列); 例如:scanf (″%d%d″,&a,&b); (1)格式控制是用双引号括起来的字符串,由″%″和格式字符组成,作用是将输入数据转换为指定的格式输入。 (2)格式字符,对于不同的数据用不同的格式字符。d格式符是用来输入十进制整数的。因为本节问题中变量a,b是整型变量,所以输入时,用了d格式符。 (3)&a,&b中的″&″是″地址运算符″,&a是指a在内存中的地址。上面scanf函数的作用是:将a、b的值放到a,b在内存的地址单元中去。所以,在该问题中,若输入:3 5↙ 则输出结果为 a+b=8 4. 整型数据的输出 整型数据的输出用printf函数来实现。如printf(″a+b=%d″,c); printf函数的格式为: printf(格式控制,输出表列); (1)格式控制和输入函数scanf的格式控制基本一致。 (2)输出表列是需要输出的数据或表达式。 (3)在输出整型数据时,格式字符如下: ① %d,按整型数据的实际长度输出。 ② %md,m为输出字段的宽度,如果输出数据的位数小于m则左端补以空格,若大于m,则按实际位数输出。例如 printf (″%4d,%4d″,a,b); 若a=123,d=12345,则输出结果为 V123,12345(注:V表示空格字符,下同) ③ %ld,输出长整型数据。如 long a=135790; printf (″%8ld″,a); 输出结果为:VV135790 一个int型数据可以用%d或%ld格式输出。 ④ %u,输出unsigned型数据,即无符号类型,如unsigned u;那么u在输出的时候,应该用u格式控制符,那么输出时应使用语句: printf (″%u″,u); 例2.1 从键盘输入任意一个整数,输出这个数的平方的值。 main( ) { int a; long s; scanf(″%d″,&a); s=a*a; printf(″s=%ld\n″,s);} 2.3 实型数据 2.3.1实型常量 实数在C语言中,又称浮点数。实数有两种表示形式: 1.十进制数形式。由数字和小数点组成(注意必须有小数点)。 2.指数形式。但注意字母e(或E)之前必须有数字,且e后面指数必须为整数,如e3、2.1e3.5、.e3、e都不是合法的指数形式。 2.3.2实型变量 在本节问题中,已知两个数是实数,那么两数之和与积也必定为实数,所以需要设四个实型变量,分别为a,b,sum,mul。定义语句为: float a,b,sum,mul; C实型变量分为: 1. 单精度型(float型) 一个float型数据在内存中占4个字节(32位),在TURBO C中, 单精度实数的范围约为-1038~1038之间并提供7位有效位;小于10-38 的数被处理成零值。 2. 双精度型(double型) 一个double型数据在内存中占8个字节,双精度实数的数值范围约为 -10308~10308。并提供15~16位有效位,具体精确多少位与机器有关;小于10-308的数被处理成零值。 2.3.3实型数据的输入和输出 1. 实型数据的输入 实型数据的输入也用scanf函数实现的,格式符使用的是f字符,以小数的形式输入数据,也可以使用e字符,以指数的形式输入数据。 如本节问题中的scanf(″%f%f″,&a,&b); 2. 实型数据的输出 实型数据的输出用printf函数实现,格式符使用f字符,以小数的形式输出数据。输出时应注意: (1)%f:不指定字段宽度,整数部分会全部输出,并输出6位小数。 (2)%m.n:指定输出数据共占m列,其中有n位小数。如果数值长 度小于m,则左端补空格。 (3)%-m.n:指定输出数据共占m列,其中有n位小数。如果数值长度小于m,则右端补空格。 (4)若是双精度型变量输出时应用%lf格式控制,如 double f; 输出时应使用语句: printf (″%lf″,f); 2.4 字符型数据 2.4.1字符常量 1.字符常量 C语言的字符常量是用一对单引号括起来的单个字符。如:´a´、´b´、´x´、´D´、´?´、´$´等都是字符常量。 2.转义字符 除了这样的字符常量外,C语言还允许用一种特殊形式的字符常量,就是以一个´\´开头的字符序列.例如,前面已经用到,在printf函数中的´\n´,它表示一个″换行″符。 例2.2 字符常量的输出。 main ( ) { printf (″ab c\n\tde″); } 运行结果: ab c de 2.4.2字符变量   在本节问题中,设了两个字符型变量c1和c2。定义形式如下: char c1,c2;   它表示 c1和 c2为字符型变量,各可以放一个字符。可以用下面语句对 c1,c2赋值: c1=´a´;;c2=´b´; 因此在内存中一个字符变量只占一个字节。 2.4.3字符数据的存储形式 字符在内存中存储的不是字符本身,而是它的ASCII码,例如字符´a´的ASCII码为97,´b´的ASCII码为98。那么字符的存储形式与整数的存储形式是类似的。C语言使字符型数据和整型数据是通用的。 例2.3 main ( ) { char a1,a2; a1=97;a2=98; printf (″%c %c\n″,a1,a2); printf (″%d %d\n″,a1,a2); } 程序运行时输出如下: a b 97 98 字符型数据和整型数据是通用的,但应该注意字符数据只占一个字节,它只能存放0~255范围内的整数。 例2.4 大小写字母的转换。 main ( ) { char a1,a2; a1=´a´;a2=´b´; a1=a1-32;a2=a2-32; printf (″%c %c\n″,a1,a2); } 运行结果为: A B 程序的作用是将两个小写字母a和b转换成大写字母A和B。´a´的ASCII码为97,而´A´为65,´b´为98, ´B´为66。从ASCII码表中可以看到每一个小写字母比它相应的大写字母的ASCII码大32。 2.4.4字符型数据的输入和输出 1.getchar函数和putchar函数 例2.5 #include ″stdio.h″ main ( ) { char c; c=getchar ( ); putchar (c); } 在运行时,如果从键盘输入字符´a´ a↙ (输入´a´后,按回车键) a (输出变量c的值´a´) 注意:getchar ( )只能接收一个字符。putchar ( )也只能向终端输出一个字符。在使用getchar函数和putchar函数时,程序的首部需使用预编译命令″#include ″stdio.h″。 2.scanf函数和printf函数 例2.6 main ( ) { char c1,c2; scanf (″%c%c″,&c1,&c2); printf (″%c%c″,c1,c2); } 若输入为 ab↙ 则输出为 ab 在使用scanf函数和printf函数输入输出字符型数据时,使用″%c″格式控制,用来输入输出单个字符。 注意,在用″%c″格式输入字符时,空格将以有效字符输入: scanf (″%c%c%c″,&c1,&c2,&c3); 若输入 aVbVc↙ 则将字符´a´送给c1,字符空格´V´送给c2,因为空格也是一个有效字符,字符´b´送给c3。%c只需要读入一个字符,用了空格做间隔,所以会出现这样的问题。 2.5字符串常量 字符串常量是用双引号括住的字符序列。如: ″How do you do″,″CHINA″,″a″等都是字符串常量. 可以输出一个字符串,如 printf (″How do you do.″); 注意: 不要将字符常量与字符串常量混淆。´a´是字符常量,″a″是字符串常量,二者不同。 C规定:在每个字符串的结尾加一个“字符串结束标志”以便系统据此判断字符串是否结束。以´\0´作为字符串结束标志。´\0´是ASCII码为0的字符,从ASCII码表中可以看到ASCII码为0的字符是“空操作字符”不引起任何操作。 2.5 变量的初始化 变量的初始化,就是在定义变量的同时给变量赋予初值。可以采用说明变量的类型,然后再赋值的方法,也可以对变量类型说明的同时,给变量赋初值。 1.先定义后赋值 int a,b,c; a=2; b=5; c=10; 2.定义和赋值同时进行 int a=5; short b=10; char c=´a´; float d=7.8; 3.对几个变量同时赋一个初值 int a1=10,a2=10,a3=10; 不可以写成: int a1=a2=a3=10; 但是也可以写成: int a1,a2,a3; a1=a2=a3=10; 初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋以初值的。相当于一个赋值语句。例如: int a=10; 相当于: int a; a=10; 又如: int a,b,c=20; 相当于: int a,b,c; c=20; 2.6 运算符和表达式 2.6.1算术运算符和表达式 例2.7 已知正方形的长和宽,求正方形的周长。 [分析] 正方形的周长公式为:l=2*(a+b),已知正方形的长和宽可以计算周长。 main ( ) { int a,b,l; a=3; b=4; l=2*(a+b); printf (″l=%d\n″,l); } 1. 基本的算术运算符 + (加法运算符,或正值运算符) - (减法运算符,或负值运算符) * (乘法运算符) / (除法运算符) % (模运算符,或求余运算符) 注意:(1)两个整数相除结果为整数。但是如果相除的两个数中,至少有一个为实数,则结果为带小数的商。 (2)% 模运算符,要求操作数均为整型数据,如7%4的值为3。 2. 算术表达式 用算术运算符和括号将操作数连接起来的,符合C语法规则的式子,称C算术表达式。 在表达式求值时,按运算符的优先级别高低次序执行。 例如: 10+´a´+1.5-8765.12*´b´ 在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。 3. 强制类型转换 可以用强制类型转换运算符将一个表达式转换成所需类型。例如 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整型) (float)(5%3) (将5%3的值转换成float型) 一般形式为: (类型名)(表达式) 注意:(1)类型名应用括号括起来。如(int)(x+y) (2)已知float x; 对于(int)x,x仍然是float类型,而整个表达式(int)x为整型。 2.6.2赋值运算符和赋值表达式 1. 赋值符号 赋值符号″=″就是赋值运算符,将一个数据赋给一个变量。如″a=3″。 2. 类型转换 如果赋值运算符两侧的类型不一致,要进行类型转换。 (1)将实型数据赋给整型变量时,舍弃实数的小数部分。如i为整型变量,执行″i=3.56″的结果是使i的值为3。 (2)将整型数据赋给实型变量时,数值不变,但以浮点数形式存储到变量中。 3. 复合的赋值运算符 常用的赋值运算符有以下几种: +=,-=,*=,/=,%= 例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3 4. 赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为″赋值表达式″。 例如: a=b=c=5 (赋值表达式值为5,a、b、c值均为5) a=5+(c=6) (表达式值为11,a值为11,c的值为6) a=(b=4)+(c=6) (表达式值为10,a值为10,b等于4,c等于6) 三、逗号运算符和逗号表达式 逗号运算符将两个表达式连接起来。如 3+5,6+8 称为逗号表达式。逗号表达式的格式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值。例如 逗号表达式 a=3*5,a*4 先求解a=3*5,得a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。 课堂练习综合实例例1 输入三角形的三条边长,求三角形面积。 (为了简单起见,设输入的三边长a,b,c能构成三角形) #include ″math.h″ main ( ) { float a,b,c,s,area; scanf (″%f,%f,%f″,&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf (″a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n″,a,b,c,s); printf (″area=%7.2f\n″,area); } 运行情况如下: 3,4,6 a= 3.00, b= 4.00, c= 6.00, s= 6.50 area= 5.33 例2 从键盘输入一个大写字母,要求改用小写字母输出。 #include ″stdio.h″ main ( ) { char c1,c2; c1=getchar ( ); printf (″%c,%d\n″,c1,c1); c2=c1+32; printf (″%c,%d\n″,c2,c2); } 运行情况如下: A↙ A, 65 a,97 本章小结 本章在讲解顺序结构程序设计方法的同时,介绍了三种数据类型。 1. 整型数据。主要了解整型数据的定义方法,根据使用整数的范围选用定义整数变量的类型。掌握整型数据的输入输出方法,主要使用d格式控制符。 2. 实型数据。主要掌握实型变量的不同定义方法,单精度数和双精度数的表示范围,实型数据的输入输出方法,主要使用f格式控制符。 3. 字符型数据。是由一对单引号括起来的单个字符,要注意,字符与字符串的区别。 还讲解了各种运算符和表达式,主要掌握算术运算符,在混合运算中,要按照运算符的优先级,结合方向运算。 作业:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服