




已阅读5页,还剩109页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国商业出版社,模块 二 输入/输出顺序程序设计,学习目标,数据类型及常量、变量 赋值、算术、关系表达式 printf和scanf输入输出函数,据格式化输出和输入 程序与算法 顺序程序设计的一般方法,模块内容,2.1 项目三 数值计算计算三角形周长和面积,2.2 程序与算法描述,2.3 项目四 字符运算密码加工译码器,2.4 项目五 输入输出同学个人信息,2.5 项目六 超市购物结账程序,2.6 语法小节,2.7 工程软件编程规范,2.1 项目三 数值计算计算三角形周长和面积,【项目任务】,从键盘输入三角形三个边a,b,c的值,计算打印它们的周长和面积程序。,【项目目标】,了解程序设计分析方法。 掌握变量、运算符、表达式的应用。 掌握赋值语句的应用。 了解输入、输出的使用。,2.1 项目三 数值计算计算三角形周长和面积,2.1 项目三 数值计算计算三角形周长和面积,【技术要点】,1程序设计思路。先把从键盘输入三个边a,b,c的值存起来,分别按公式计算出周长l和面积s,然后打印输出。要解决这个计算问题,计算机是分步完成任务的,要思考几个问题: (1) 数据如何存放?(如何定义存储数据的变量?) (2) 数据如何输入? (3) 如何按数学公式计算? (4) 如何输出结果?,2.1 项目三 数值计算计算三角形周长和面积,【技术要点】,2.变量的定义。定义变量的目的是要计算机在内存中为程序的数据开辟存储空间。定义变量必须明确以下三点: (1) 变量名。 变量名标明数据在内存中地址,是存储单元的标识符,是变量存取的依据。程序需要多少个变量来存储数据,方便计算机程序处理。 (2) 变量的类型。变量是用来存储数据的,不同类型的数据在计算机内所占的存储单元数是不同的,范围大小不同。 (3) 变量的值。定义变量后初始值是不确定的,一般可通过赋值语句或输入语句为其赋值。,2.1 项目三 数值计算计算三角形周长和面积,【技术要点】,3数据计算。本项目实际是一个数学计算问题,给出了数学计算公式,数学公式在程序中有的计算机无法识别,编译无法通过,不能生成执行文件;故数学公式在程序中要求按C语言表达式格式书写,以便计算机正确编译。本项目中周长计算由l=a+b+c赋值语句完成,求面积利用s =sqrt(p*(p-a)*(p-b)*(p-c) 赋值语句完成。,2.1 项目三 数值计算计算三角形周长和面积,【技术要点】,4程序在框架内由语句序列分步骤完成。 (1) 定义变量 (2) 输入a,b,c的值 (3) 计算周长l (4) 计算p和面积s (5) 输出计算结果,项目流程图,2.1 项目三 数值计算计算三角形周长和面积,程序代码,2.1 项目三 数值计算计算三角形周长和面积,#include #include main() float a,b,c,p ,l; double s; printf(“please input the a,b,c:n“); scanf(“%f %f%f“, /*打印周长和面积*/ ,2.1 项目三 数值计算计算三角形周长和面积,【程序说明】,程序的功能是计算三角形周长和面积。 第二行#include是C预处理程序的一条包含命令,math.h包含了数学求平方根sqrt()函数,计算平方根时用到,故放在源程序的前面。 变量声明float用来定义单精度实型的变量a、b、c、p、l,用double定义变量s为双精度实型,用来存储计算的面积。 本项目中周长计算l=a+b+c赋值语句执行过程,先取a、b、c变量值,计算(a+b)+c的和,再赋值给变量l,存入变量l的存储单元之中,面积s的计算过程,先取a、b、c变量值,计算p=(a+b+c)/2,“/”表示除号;计算p*(p-a)*(p-b)*(p-c)表达式的值,由平方根函数计算sqrt(p*(p-a)*(p-b)*(p-c),最后再赋值给变量s,完成计算任务。,程序思考,有同学将“p=(a+b+c)/2;” 改为“p=1/2* (a+b+c);” 请问程序计算结果正确吗? 试一试,分析原因,如何改之。,应用拓展,程序拓展变量赋值。程序功能输入两个数据给变量,交换后输出。 程序设计思想,变量实质是存储单元,要交换存储单元的数据内容,就好比有两个分别装满了雪碧和可口可乐饮料的饮料瓶,现想把瓶中的饮料互换一下,互换时不能使饮料混合,我们必须借助相同的容积的空饮料瓶,首先将饮料1倒入过度的空瓶中(t=a),将饮料2倒入饮料1的瓶中(a=b),最后将过度瓶中的饮料倒入饮料2中(b=a),由三步完成交换操作。,应用拓展,变 量 交 换 流 程 图,应用拓展,#include “stdio.h” main( ) int a,b,t=0; /*定义三个变量为整型*/ printf(“input two numbers:”) scanf(“%d%d”, /*输出交换之后变量的值*/ 运行结果: input two numbers:35 46 a=35,b=46 a=46,b=35,应用拓展,语句行 “t=a;a=b;b=t;”中有三条语句,可分三行书写,但次序不能巅倒,如下图2-3所示,每一步执行后变量的结果。,变量赋值过程,拓展思考,讨论比较一下,两变量交换与雪碧饮料瓶和可口可乐饮料瓶中的饮料在交换过程中都借助的存储空间,交换结束后,借助的两存储空间的结果有什么区别?,知识总结,1数据类型 所谓一个数据的“数据类型”,是该数据自身的一种属性,数据要在内存中占用多少个字节。程序中涉及的各种数据(常量、变量),都必须存放在内存里。在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。,知识总结,2. 常量 在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。 在C语言中,常量又分为普通常量和符号常量,在程序中,常量的类型由常量本身隐含决定的。如求球体积“v = 4.0/3.0*PI*r*r*r; ”语句中4.0、3.0是普通常量,PI是符号常量。 普通常量:有整型常量、实型常量、字符型常量、字符串常量。 (1)整型常量:整型常量就是整常数。在语言中,使用的整常数有十进制、八进制和十六进制三种。 (2)实型常量 实型常量也称为实数或者浮点数。在语言中,实数只采用十进制。它有二种形式: 十进制数形式指数形式。 十进制数形式:由数码0 9和小数点组成。例如:0.0,.25,5.789,-267.8230 指数形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式 如: 2.1E5 (等于2.1*105), 3.7E-2 (等于3.7*10-2),知识总结,3.符号常量 符号常量是用标识符代表一个常量。在语言中,可以用一个标识符来表示一个常量,称之为符号常量。如用PI代(3.14)是符号常量。 符号常量在使用之前必须先定义,其一般形式为: #define 标识符 常量 其中#define也是一条预处理命令(预处理命令都以“#“开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。 符号常量与变量不同,符号常量采用大写字母表示,它的值在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是:含义清楚;能做到“一改全改”。 习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。,知识总结,4.变量 在程序执行过程中,其值可以改变的量称为变量。变量使用是要关注三个要素:类型,名字,当前值。 (1)变量的类型 按基本数据类型来分,变量可为整型变量、实型变量、字符型变量。 整型变量可分为以下几类: 基本型:类型说明符为int,在内存中占2个字节,其取值为基本整常数。 短整量:类型说明符为short int。所占字节和取值范围均与基本型相同。 长整型:类型说明符为long int或long ,在内存中占4个字节,其取值为长整常数。 无符号型:类型说明符为unsigned。 无符号型又可与上述三种类型匹配而构成: 无符号基本型 类型说明符为unsigned int或unsigned。 无符号短整型 类型说明符为unsigned short。 无符号长整型 类型说明符为unsigned long。 实型变量分为两类: 单精度型:其类型说明符为float。在内存中占4个字节,其取值为基本实数。 双精度型:其类型说明符为double。在内存中占8个字节,其取值为基本实数。 字符型 字符型:其类型说明符为char。在内存中占1个字节,其取值为字符常量。,知识总结,(2)变量的定义与赋初值 变量定义必须放在变量使用之前。一般放在函数体的开头部分。变量定义的一般形式为: 类型说明符 变量名1=初始数据,变量名2=初始数据,.; 例如:int a,b,t; (a,b,t 为整型变量) float a,b,c=1.0; (a,b,c 为实型变量,并给c赋初值1.0。) char ch=A ; (ch 为字符型变量,并赋初值A。字符变量用来存储单个字符) 变量一经定义后就有一个名字,有类型(在内存中占据一定的存储单元,就会有地址),可以用来装什么类型的数据,当前的值是什么。如图2-6所示。35a变量名变量的值变量的存储单元65480变量的存储单元地址(由计算机编译分配) 变量定义时,应注意以下几点: 允许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。 最后一个变量名之后必须以“;”号结尾。 变量定义必须放在变量使用之前。一般放在函数体的开头部分。,知识总结,5.C 语言算术表达式与数学公式 表达式是由运算符和括号连接起来的式子。表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。 算术表达式是用算术运算符和括号将运算对象(也称操作数)连接起来的、符合 C 语法规则的式子。以下是算术表达式的例子: a+b (a*2)c (x+r)*8-(a+b)7 数学公式在程序中正确的转换成C语言算术表达式要注意几点: 正确使用算术运算符,加(+)、减( - )、乘 ( * ) 、 除 ( / ),特别是“*”不能省,平方、立方采用“*”连乘求积,平方根采用函数 sqrt( )。 如果是分数形式的数学表达式,则一定要将分子、分母分别用一对圆括号括起来,用括号决定运算顺序。如(a+b+c)/2; 除法“/”运算还与数据类型有关,当左右两侧为整型,运算结果是整型。当左右两侧为有一个为实型时,运算结果是实型。如13/2结果是6,而不是6.5,而13.0/2、13.0/2.0或13/2.0的运算结果都是6.5。,知识总结,6.赋值运算 简单赋值运算符记为“=”。由“=”连接的式子称为赋值表达式。其一般形式为: 变量=表达式 例如:x=a+b,p=(a+b+c)/2 赋值表达式的功能是计算表达式的值再赋予左边的变量。“=” 赋值号左边一定为变量。,技能训练,模仿项目示例,定义对应的单精度实型变量,按数学公式写出C语言计算的赋值语句,由输入语句给变量送数据,计算结果由输出语句输出。 1从键盘上输入三角形的两边长a、b值其及夹角x,由公式S=absin(x)/2计算三角形面积。 2编程输入你穿多少码的鞋子,输出你的脚长多少厘米。公式:y=2x-10 (y为鞋码号,x为脚长单位cm) 3求ax2+bx+c=0 方程的根,a,b,c由键盘输入,设b2-4ac0。 求根公式为:,2.2程序与算法描述,1程序 程序是指让计算机完成特定的任务而设计的指令序列,一个程序应包括以下两方面内容: 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。 对数据的处理描述。即操作步骤,也就是算法。算法是为解决一个问题而采取的方法和步骤。 著名的计算机科学家Nikiklaus Wirth 提出的公式: 程序=数据结构+算法 程序设计就是要在合理地组织数据的基础上,设计好算法。本课程的目的是使同学知道怎样编写一个C 程序,进行编写程序的初步训练,因此,只介绍算法的初步知识。,2.2程序与算法描述,2算法 做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。 计算机算法:计算机能够执行的算法。 计算机算法可分为两大类: 数值运算算法:求解数值; 非数值运算算法:事务管理领域。,2.2程序与算法描述,3算法描述 为把解决问题的方法和步骤(即算法)描述出来,按算法的描述编写程序时,思路会更加清晰。可借助于下列工具: (1)自然语言:借助人们日常使用的语言(称为“自然语言”)分步描述; (2)伪代码:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。 (3)流程图:借助于传统的流程图表示算法,直观形象,易于理解。画流程框图时常用的一些符号。用箭头表示操作流程。 (4)计算机语言:用计算机语言表示算法必须严格遵循所用语言的语法规则。,流程图符号,举例说明,例如:从键盘输入一个数,输出其绝对值。 (1)流程图描述算法 (2)伪代码描述 INPUT x IF X0 THEN XY ELSE XY PRINT Y,(3)计算机C语言描述: #include main() int x,y; printf(“please input the x:n“); scanf(“%d“, ,2.2程序与算法描述,【技能训练】 1用流程图来描述项目三技能训练各题。 2用流程图来描述从键盘上输入两个数,将较大的数输出。(要求至少二种方法),2.3 项目四 字符运算密码加工译码器,【项目任务】 密码加工程序。从键盘输入小写字母,后移加密,当超出字母范围从头循环,如当后移2位时,输入kyz加工后为mab。,2.3 项目四 字符运算密码加工译码器,【项目目标】 了解字符型及存储特点。 熟悉getchar()函数。 熟悉putchar()函数。 掌握算术运算、关系运算表达式。 了解三目运算及使用。,2.3 项目四 字符运算密码加工译码器,【技术要点】 1、程序设计思路。 先把从键盘输入小写字母存入字符变量中,字符型数据存储占一个字节,实际上按ASCII码存储; 后移加密,实际上是把字符变量进行加法运算,得到后面的字符; 计算处理是根据条件修定字符范围。如果计算出的字符超出a-z范围就要处理了,将字符变量减去a-z的长度26,否则不必处理,保证字符变量的值在a-z之间。 结果输出,将加密处理后的字符变量输出。,2.3 项目四 字符运算密码加工译码器,2.3 项目四 字符运算密码加工译码器,【技术要点】 2.定义字符变量,本项目设三个字符变量,用char 定义三个ch1、ch2、ch3字符型变量;定义一个加密的偏移值d。 3.加密计算采用赋值语句,ch1=ch1+d; 4.根据ASCII的范围条件,修定字符范围,采用模除运算处理。,2.3 项目四 字符运算密码加工译码器,【程序代码】 # include main() int d=3; /*密码后移量*/ char ch1,ch2,ch3; printf(“n请输入三个小写字母: “); /* scanf(“%c%c%c“, ,2.3 项目四 字符运算密码加工译码器,【程序说明】 1、语句int d=3;定义整型并赋初值为3,d为密码后移量。 2、字符变量赋值。scanf(“%c%c%c“, 是字符输出函数,将字符变量ch1的值输出到屏幕上。也可用 printf(“n密码为%c %c %cn“, ch1,ch2,ch3)实现输出。,2.3 项目四 字符运算密码加工译码器,【程序思考】 有同学将“ch1= ch1+d; ch1=a+(ch1-a)%26; ”两语句合并为一条语句“ch1=a+( ch1+d -a)%26;” 分析一下,试一试 ,程序计算结果正确吗?,2.3 项目四 字符运算密码加工译码器,【应用拓展】 根据ASCII的范围条件,修定字符范围,采用三目运算处理。,# include main() int d=3; /*密码后移量*/ char ch1,ch2,ch3; printf(“n请输入三个小写字母: “); /* scanf(“%c%c%c“, 三目运算,先把变量ch1的字符的值与z值进行比较,如果大于z条件成立,则执行“?”后的表达式ch1-26,否则执行“:”后的表达式ch1,最后把表达式的值赋给ch1。,【拓展思考】 你能将“ch1= ch1+d; ch1= ch1z?ch1-26:ch1;”两值赋语句合并为一条值赋语句吗?合并后,当d=3、ch1=c 、ch1=y分析表达式计算顺序。,2.3 项目四 字符运算密码加工译码器,【知识总结】 1字符变量的存储形式与运算 (1)字符变量的存储 字符变量用来存储字符常量,即单个字符。每个字符变量被分配一个字节的内存空间,因此只能存放一个字符。字符值是以 ASCII码的形式存放在变量的内存单元之中的,如a的ASCII码值97,ch1=a;就是把97存入ch1变量中。,2.3 项目四 字符运算密码加工译码器,b的ASCII码值是98,依此类推,z ASCII码是122,大写字母A ASCII码65,大小写字母的 ASCII码相差 32,数码0 ASCII码48,其他的可查ASCII码表。 (2)字符变量参与数值运算。 语言允许字符变量参与数值运算,如: ch1= ch1+d,ch1=a+(ch1-a)%26。可以把它们看成是整型量。 语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出, printf(“nASCII码为%d n“, ch1), 也允许把整型量按字符量输出。 整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理。,2.3 项目四 字符运算密码加工译码器,2、字符数据的输入输出 (1)putchar 函数(字符输出函数) putchar 函数是字符输出函数, 其功能是在显示器上输出单个字符。 其一般形式为:putchar(ch) ,ch为一个字符数据(普通字符、转义字符或整数)例如: putchar(A); (输出大写字母 A) putchar(ch1); putchar(n); (换行) (2)getchar 函数(键盘输入函数) getchar 函数的功能是从键盘上输入一个字符。通常把输入的字符赋予一个字符变量,构成赋值语句,如:ch1=getchar(); 注意:getchar 函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。使用本函数前必须包含文件“stdio.h”。,2.3 项目四 字符运算密码加工译码器,3、基本算术运算符、关系运算符 (1)基本的算术运算符 基本的算术运算符有加法运算符“+”、减法运算符“-”、 乘法运算符“*”、 除法运算符“/”和模除运算“%”。 相同点:都有两个量参与运算,又称双目运算。如 a+b,4+8,a-b,(a+b)*(a-b),(a-b)/2.0。 不同点: 除法运算符“/”,当参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 模除运算“%”两侧必须是整型数据。求除数运算的结果等于两数相除后的余数。常用来判断是否为奇偶数,如:3%2、1%2值均为1,4%2值为0,设x为整数,则x%2的值为0,被2整除为偶数。数的折分,如153%10,个位数值为3; 153/10%10或者153%100/10十位为5; 153/100百位数为1。,2、关系、逻辑运算符与逻辑表达式 关系运算符包括大于()、小于(=)、小于等于(A, a=b ,a!=A,5+26结果为真(1)。 aa,8+2!=10,2A&a=b ,a!=A|5+26, aa,8+2!=10|2=a&ch1=z, 结果为真(1)表示ch1在a-z字母范围内。,4、运算符的优先级和结合性 (1)运算符的优先级 表达式求值按运算符的优先级和结合性规定的顺序进行。 语言中,运算符的运算优先级共分为 15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。 (2)运算符的结合性 语言中各运算符的结合性分为两种:左结合性(自左至右),如算术运算符的结合性是自左至右,即先左后右。如有表达式 x-y+z则 y 应先与“-”号结合,执行 x-y 运算,然后再执行+z 的运算。这种自左至右的结合方向就称为“左结合性”。 右结合性(自右至左),自右至左的结合方向称为“右结合性”。 最典型的右结合性运算符是赋值运算符。如 x=y=z,由于“=”的右结合性,应先执行 y=z 再执行 x=(y=z)运算。 一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。,5、条件运算符和条件表达式 条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。 由条件运算符组成条件表达式的一般形式为: 表达式 1? 表达式 2: 表达式 3 其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为条件表达式的值,否则以表达式 2 的值作为整个条件表达式的值。,条件表达式的表达式 1为关系运算或逻辑运算表达式,运算结果为真(1)或假(0),决定运算取值。条件表达式通常用于赋值语句之中。如 “ch1= ch1z?ch1-26:ch1; ” 执行该语句的语义是:如 ch1z 比较值成立为真,则把表达式ch1-26值赋给ch1,否则把ch1的值不变赋给 ch1,即如果字符变量超出z的范围就减26的操作,否则不变。例如输出两个数中的大数。 main() int a,b,max; printf(“n input two numbers: “); scanf(“%d%d“, ,使用条件表达式时,还应注意以下几点: (1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。 (2)条件运算符的结合方向是自右至左。 例如:ab?a:cd?c:d应理解为 ab?a:(cd?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式 3 又是一个条件表达式。,【技能训练】 1模仿项目示例,完成数码加密程序。从键盘输入数字字符(0-9),后移加密,当超出字符范围从头循环,如当后移2位时,输入109加工后为321。 2编一程序,以键盘输入三个大写字母,要求改用小写字母输出。(提示:大写字母对应的ASCII码序号比相应的小写字母的ASCII码序号小32) 3编一程序,从键盘输入三个英文字母或数字字符,要求打印输出字母的ASCII码。 (提示:printf(“nASCII码为%d n“, ch1),ch1为字符变量),24 项目五 输入/输出同学个人信息,【项目任务】 从键盘上输入学生基本信息,打印输出。 = 学号: 09288726 姓名: 张小勤 性别: 男 年 龄: 19 身高: 1.70 m 体重: 50 kg 班级: ACCP2 电话:1352626889 QQ号: 78788068 电子邮箱: =,24 项目五 输入/输出同学个人信息,【项目目标】 了解C语言的数据类型 了解整型、实型和字符型数据的形式 了解字符型、字符串数据的存储特点 掌握各类型变量的定义以及赋值的方法 掌握printf()、 scanf()函数输出格式 了解转义字符,24 项目五 输入/输出同学个人信息,【技术要点】 1、项目程序的设计步骤 顺序结构程序的函数体中,由完成具体功能的语句构成。 (1)变量定义语句。分析信息的基本数据类型,声明各信息存储的变量。 (2)数据输入语句。使用赋值运算、用Scanf()输入函数为变量赋值。 (3)计算语句。 运用各种计算方法对数据进行处理。 (4)结果输出语句。 使用输出函数,设计输出格式,将处理的结果数据输出至计算机显示。 本项目程序是顺序程序,根据项目程序设计的要求,其主要操作是输入输出,只有数据的输入存储和输出,没有数据计算。,24 项目五 输入/输出同学个人信息,2、学生信息的基本数据类型 先分析基本数据的格式特点,确定输入输出的信息存储要求,根据基本数据特点,确定变量名,定义变量的类型,便于输入、输出的信息。,24 项目五 输入/输出同学个人信息,变量名取对应的英文,便于输入操作。类型要考虑存储字符格式。 学号(stu_id)、QQ号是整数字,不含其他字母,数位较长,采用长整型; 姓名(name)、班级(class_num)可以是英文字母、数字、汉字等只好采用字符串; 性别(sex)只有一个字母M或W,采用字符型; 身高(height)、体重(weight)有小数,用实型; 年龄(age)整数,用整型; 电话(tel_num)可用长整型,考虑有时输入区号、括号,故采用字符串。,24 项目五 输入/输出同学个人信息,3、输入输出语句 在C语言中,所有的数据输入、输出都是由库函数完成的。 scanf()函数称为格式输入函数,它的功能是按用户指定的格式把数据输入到指定的变量之中。printf()函数是一个格式输出函数,数据输出时由格式控制字符串指定输出格式,不同类型的数据输入、输出时格式要求是不相同的。格式控制字符串内定容是不同的,利用转义字符可定位格式。,24 项目五 输入/输出同学个人信息,【程序代码】 #include void main() long stu_id; /*长整型变量,存放学号*/ char name20; /*字符串,存放姓名*/ char sex; /*字符型变量sex,存放性别*/ int age; /* 整型变量age,存放龄*/ float height; /*实型变量height,存放身高*/ float weight; /*实型变量weight,存放体重*/ char tel_num12; /*字符串,存放电话号码*/ char class_num10; /*字符串,存放班级*/ long qq_num ; /*长整型变量,存放QQ号码*/ char e_mail50; /*字符串,存放电子邮件*/,24 项目五 输入/输出同学个人信息,printf(“please input stu_id:n“); scanf(“%ld“, ,24 项目五 输入/输出同学个人信息,printf(“n -%s data- n“, name); printf(“=n“); printf(“stu_id:tt%ldn“,stu_id); printf(“name:tt%sn“,name); printf(“Sex:tt%cn“,sex); printf(“Age:tt%dn“,age); printf(“height:tt%0.2f mn“,height); printf(“weight:tt%0.2f kgn“,weight); printf(“Class:tt%sn“, class_num); printf(“Tel_num:t%-sn“,tel_num); printf(“qq_num:tt%ldn“, qq_num); printf(“e_mail:tt%sn“,e_mail); printf(“=n“); ,24 项目五 输入/输出同学个人信息,【程序说明】 1字符串的存取 在语言中没有相应的字符串变量。但是可以用一个字符数组来存放一个字符串常量。 字符数组的定义:字符类型 字符数组名长度 char name20; char e_mail50; 定义的字节长度至少大于字符串中字符个数加1。 字符数组存储值的赋值,采用scanf(“%s“, name)输入。scanf(“%s“, name)在输入字符串数据时,使用字符串的首地址,不要一个取地址运算符“&”。 字符数组存储值的输出,采用printf(“name:tt%sn”,name)打印f函数输出。 2. 程序输入的提示信息 由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示信息,方便用户输入值。程序的输入scanf语句的上一条语句是printf打印语句,用来提示用户输入数据。,24 项目五 输入/输出同学个人信息,3输入scanf函数数据类型与变量的类型一致 scanf函数输入数据的类型与变量的类型要一致,由格式控制字符串来确定,格式字符串是以%开头的字符串,在%后面跟有各种格式字符来说明,如:“%ld“(长整型)、“%d“(整型)、“%f“(实型)、“%s“(字符串)和“%c“(字符型)。 4清除缓冲fflush函数 语句中fflush(stdin)是清除缓冲fflush函数,上一条输入语句scanf(“%s“, name)是“回车键”结束,下一条输入语句scanf(“%c“, ” 语句替换吸收“回车键”字符。 5printf 函数格式控制 printf 函数格式控制字符串中的转义字符:“n”为回车换行符号。“t”跳到下一个输出区,每个为8字符位置。用于对齐打印输出。“%7.2f”表示指定输出宽度为7、精度为2的实数。,24 项目五 输入/输出同学个人信息,【程序思考】 printf(“please input stu_id:n“); scanf(“%ld“, 请你将上述两printf函数语句合并为一条提示输入语句,用scanf函数语句一次输入(stu_id、name)两个变量的值?,24 项目五 输入/输出同学个人信息,【应用拓展】 重新编写输出语句,使程序运行结果将个人信息一行显示两项。 printf(“n %s data n“, name); printf(“=n“); printf(“stu_id:t%ld tname:t%snn“,stu_id,name); printf(“Sex:t%c tAge: t%dnn“,sex,age); printf(“height:t%7.2fm tweight:t%7.2fkgnn“,height,weight); printf(“Class:t%s tTel_num:t%snn“, class_num,tel_num); printf(“qq_num:t%ld te_mail:t%snn“, qq_num,e_mail); printf(“=n“);,24 项目五 输入/输出同学个人信息,【拓展思考】 请你重新编写输出语句,使程序运行结果将个人信息一行两项并用中文显示。,24 项目五 输入/输出同学个人信息,【知识总结】 1、顺序结构程序的特点 顺序结构程序在函数体中,由完成具体功能的语句构成。 变量定义语句。 数据输入语句。使用赋值运算、输入函数,将数据提供给计算机。 计算语句。运用各种计算方法对数据进行处理。 结果输出语句。使用输出函数,将处理的结果数据输出至计算机显示。 顺序结构程序的特点,各条语句是按照物理位置的先后次序顺序执行的,并且每条语句都会被执行到。,24 项目五 输入/输出同学个人信息,2、字符串常量 字符串常量是由一对双引号括起的字符序列。例如: “CHINA“ , “C program” , “$12.5“ 等都是合法的字符串常量。 字符串常量和字符常量是不同的量。它们之间主要有以下区别: (1)字符常量由单引号括起来,字符串常量由双引号括起来。 (2)字符常量只能是单个字符,字符串常量则可以含一个或多个字符。 (3)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在语言中没有相应的字符串变量。但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。 (4)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符“0“ (ASCII码为0)。这是字符串结束的标志。,24 项目五 输入/输出同学个人信息,3、数据的格式输入与输出 scanf 函数和printf 函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。 printf 函数(格式输出函数) printf 函数称为格式输出函数,其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。printf 函数调用的一般形式为: printf(“格式控制字符串”,输出表列) 其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。 格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:“%d”(十进制整型),“%ld”(十进制长整型)。 非格式字符串在输出时原样照印,在显示中起提示作用。 输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。,24 项目五 输入/输出同学个人信息,C中格式字符串的一般形式为: 标志输出最小宽度.精度长度类型 其中方括号 中的项为可选项。 (1)类型:类型字符用以表示输出数据的类型,24 项目五 输入/输出同学个人信息,(2)标志:标志字符为-、+、#、空格四种,其意义下表所示:,24 项目五 输入/输出同学个人信息,(3)输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。 (4)精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。 (5)长度:长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。,24 项目五 输入/输出同学个人信息,scanf 函数的一般形式为: scanf(“格式控制字符串”,地址表列); (1)“地址表列”是由若干个地址组成的列表,可以是变量的地址或字符串的首地址。在输入字符串数据时,使用字符串的首地址,不要一个取地址运算符“&”。 (2)格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。在scanf语句的格式串中由于没有非格式字符在“%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。,24 项目五 输入/输出同学个人信息,转义字符 转义字符以反斜线“开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。 常用的转义字符及其含义 转义字符 转义字符的意义 n 回车换行 t 横向跳到下一制表位置 v 竖向跳格 b 退格 r 回车,24 项目五 输入/输出同学个人信息,【技能训练】 模仿项目示例,分析图书管理系统中图书的基本数据,根据其特点定义对应的变量类型,从键盘上输入数据,打印输出。,25 项目六 超市购物结账程序,【项目任务】 超市购物结账程序,购买饮料,打印购买商品清单。 项目程序设计的功能要求: 1提示用户购买的商品,分别输入四种购买商品的数量; 2打印输出各商品的数量、单价、支付价序列; 3计算总计价,打印输出; 4提示输入用户是否是会员,是会员扣价95%,打印输出折扣计价。 5提示输入收用户支付的整币,打印输出应找零币。 程序运行结果:,25 项目六 超市购物结账程序,【项目目标】 熟悉顺序程序设计方法和步骤 熟悉整型、实型和字符型数据的形式 掌握各类型变量的定义以及赋值的方法 掌握输入、输出函数格式和赋值语句的用法,25 项目六 超市购物结账程序,【技术要点】 1、项目算法设计 确定会员身份 录入购买商品的数量、汇总 收取用户整币 找零币 打印购买商品清单,开始,25 项目六 超市购物结账程序,【技术要点】 2、程序数据结构 购买商品信息表,商品的数量(int)整型、购买商品的单价、总价、折扣、输入收整币等金额采用(float)实型。会员的标志用字符型变量ch1存储。,25 项目六 超市购物结账程序,【程序代码】 #include void main() char ch1; /*字符型变量ch1,存放是否是会员Y/N*/ int coke_num; /*存放可乐数量*/ float coke_pr; /*存放可乐单价coke_price */ int redb_num; /*存放红牛数量redbull_num */ float redb_pr; /*存放红牛单价redbull_price */ int Budw_num; /*存放百威数量Budweiser_num */ float Budw_pr /*存放百威单价Budweiser_price */ int Mcon_num; /*存放八宝粥数量Mixedcongee_num */ float Mcon_pr; /*存放八宝粥单价Mixedcongee_price */ float Disc; /*存放商品折扣Discount */ float total ; /*存放商品总价*/ float total_dis ; /*存放商品折扣总价*/ float RMB_in ; /*存放收取RMB RMB_input */ float RMB_out ; /*存放回找RMB RMB_output */,25 项目六 超市购物结账程序,coke_pr=3.5; redb_pr=4.0; Budw_pr=3.5; Mcon_pr=4.5; Disc=0.95; printf(“请输入是否是会员Y/N:n“); ch1=getchar(); printf(“please input 可乐num:n“); scanf(“%d“, ,25 项目六 超市购物结账程序,printf(“n -data- n“); printf(“=n“); printf(“饮品: t数量 t 计价nn“); printf(“可乐: t%d*%.2f t %0.2fnn“,coke_num,coke_price,coke_num*coke_price); printf(“红牛: t%d*%.2f t %0.2fnn“,redb_num,redb_pr,redb_num*redb_pr); printf(“百威: t%d*%.2f t %0.2fnn“,Budw_num,Budw_pr,Budw_num*Budw_pr); printf(“八宝粥:t%d*%.2f t %0.2fnn“,Mcon_num,Mcon_pr,Mcon_num*Mcon_pr); total =coke_num*coke_pr+redbl_num*redbl_pr+Budw_num*Budw_pr+Mcon_num*Mcon_pr; total_zk =(ch1=y|ch1=Y)?total* Disc:total; printf(“t总计价=: %0.2fnn“,total); printf(“t折扣计价=: %0.2fnn“,total_dis); printf(“请输入收入整币:“); scanf(“%f“, ,25 项目六 超市购物结账程序,【知识总结】 1、顺序结构程序语句 顺序结构程序在函数体中,由完成具体功能的语句构成。 (1)变量定义语句。 (2)数据输入语句。 (3)计算语句。 (4)结果输出语句。 2、条件运算符和条件表达式 条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。 由条件运算符组成条件表达式的一般形式为: 表达式 1? 表达式 2: 表达式 3 其求值规则为:如果表达式 1 的值为真,则以表达式 2 的值作为条件表达式的值,否则以表达式 2 的值作为整个条件表达式的值。,25 项目六 超市购物结账程序,【技能训练】 模仿项目示例,为体育用品商店设计结账打印清单程序,会员优惠90%。,2.6 知识小结,2.6.1 C 语言的常量和变量 2.6.2 语言的基本数据类型及范围 2.6.3 C语言运算符 2.6.4 运算符和表达式 2.6.5 赋值运算符和赋值表达式 2.6.6 类型转换 2.6.7 逗号运算符和逗号表达式 2.6.8 C语言中的输入输出的实现 2.6.9 程序与算法,2.6.1 C 语言的常量和变量,1、常量和变量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。 2、符号常量 在语言中,可以用一个标识符来表示一个常量,称之为符号常量。 3、字符型量 字符型量包括字符常量和字符变量。 (1)字符常量 字符常量是用单引号括起来的一个字符。例如a,b,=,+,?都是合法字符常量。 (2)转义字符,2.6.1 C 语言的常量和变量,常用的转义字符及其含义,2.6.1 C 语言的常量和变量,(3)字符变量 字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。 4、字符串 字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论