1、模块 二输入/输出顺序程序设计 学习目标学习目标1.数据类型及常量、变量数据类型及常量、变量2.赋值、算术、关系表达式赋值、算术、关系表达式3.printf和和scanf输入输出函数,据格式化输出和输入输入输出函数,据格式化输出和输入4.程序与算法程序与算法5.顺序程序设计的一般方法顺序程序设计的一般方法模块内容模块内容2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积2.2 程序与算法描述程序与算法描述 2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器2.4 项目五项目五 输入输出同学个人信息输入输出同学个人信息 2.5 项目六项目六 超市购物结
2、账程序超市购物结账程序 2.6 语法小节语法小节 2.7 工程软件编程规范工程软件编程规范2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积 【项目任务项目任务】从键盘输入三角形三个边从键盘输入三角形三个边a,b,ca,b,c的值,计算的值,计算打印它们的周长和面积程序。打印它们的周长和面积程序。【项目目标项目目标】1.1.了解程序设计分析方法。了解程序设计分析方法。2.2.掌握变量、运算符、表达式的应用。掌握变量、运算符、表达式的应用。3.3.掌握赋值语句的应用。掌握赋值语句的应用。4.4.了解输入、输出的使用。了解输入、输出的使用。2.1 项目三项目三 数值计算
3、数值计算计算三角形周长和面积计算三角形周长和面积2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积 【技术要点技术要点】1 1程序设计思路程序设计思路。先把从键盘输入三个边。先把从键盘输入三个边a,b,ca,b,c的值存起来,分的值存起来,分别按公式计算出周长别按公式计算出周长l l和面积和面积s s,然后打印输出。要解决这个计算,然后打印输出。要解决这个计算问题,计算机是分步完成任务的,要思考几个问题:问题,计算机是分步完成任务的,要思考几个问题:(1 1)数据如何存放?(如何定义存储数据的变量?)数据如何存放?(如何定义存储数据的变量?)(2 2)数据如何输入?
4、数据如何输入?(3 3)如何按数学公式计算?如何按数学公式计算?(4 4)如何输出结果?如何输出结果?2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积 【技术要点技术要点】2.2.变量的定义。变量的定义。定义变量的目的是要计算机在内存中为程序的数据开辟定义变量的目的是要计算机在内存中为程序的数据开辟存储空间。定义变量必须明确以下三点:存储空间。定义变量必须明确以下三点:(1 1)变量名。变量名。变量名标明数据在内存中地址,是存储单元的标识符,是变量存取变量名标明数据在内存中地址,是存储单元的标识符,是变量存取的依据。程序需要多少个变量来存储数据,方便计算机程序处理
5、。的依据。程序需要多少个变量来存储数据,方便计算机程序处理。(2 2)变量的类型。变量是用来存储数据的,不同类型的数据在计算机变量的类型。变量是用来存储数据的,不同类型的数据在计算机内所占的存储单元数是不同的,范围大小不同。内所占的存储单元数是不同的,范围大小不同。(3 3)变量的值。定义变量后初始值是不确定的,一般可通过赋值语句变量的值。定义变量后初始值是不确定的,一般可通过赋值语句或输入语句为其赋值。或输入语句为其赋值。2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积 【技术要点技术要点】3 3数据计算。数据计算。本项目实际是一个数学计算问题,给出了数本项目实
6、际是一个数学计算问题,给出了数学计算公式,数学公式在程序中有的计算机无法识别,编译学计算公式,数学公式在程序中有的计算机无法识别,编译无法通过,不能生成执行文件;故数学公式在程序中要求按无法通过,不能生成执行文件;故数学公式在程序中要求按C C语言表达式格式书写,以便计算机正确编译。本项目中周语言表达式格式书写,以便计算机正确编译。本项目中周长计算由长计算由l=a+b+cl=a+b+c赋值语句完成,求面积利用赋值语句完成,求面积利用s=sqrt(ps=sqrt(p*(p-(p-a)a)*(p-b)(p-b)*(p-c)(p-c)赋值语句完成。赋值语句完成。2.1 项目三项目三 数值计算数值计算
7、计算三角形周长和面积计算三角形周长和面积 【技术要点技术要点】4 4程序在框架内由语句序列分步骤完成。程序在框架内由语句序列分步骤完成。(1 1)定义变量定义变量(2 2)输入输入a,b,ca,b,c的值的值(3 3)计算周长计算周长l l(4 4)计算计算p p和面积和面积s s(5 5)输出计算结果输出计算结果 项目流程图2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积程序代码2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积#include#includemain()float a,b,c,p,l;double s;printf(
8、please input the a,b,c:n);scanf(%f%f%f,&a,&b,&c);l=a+b+c;/*计算周长*/p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);/*计算面积*/printf(l=%lf,s=%lfn,l,s);/*打印周长和面积*/2.1 项目三项目三 数值计算数值计算计算三角形周长和面积计算三角形周长和面积 【程序说明程序说明】程序的功能是计算三角形周长和面积。程序的功能是计算三角形周长和面积。第二行第二行#include#include是是C C预处理程序的一条包含命令,预处理程序的一条包含命令,math.hmath.h包含了
9、数包含了数学求平方根学求平方根sqrtsqrt()函数,计算平方根时用到,故放在源程序的前面。()函数,计算平方根时用到,故放在源程序的前面。变量声明变量声明floatfloat用来定义单精度实型的变量用来定义单精度实型的变量a a、b b、c c、p p、l l,用,用doubledouble定义变量定义变量s s为双精度实型,用来存储计算的面积。为双精度实型,用来存储计算的面积。本项目中周长计算本项目中周长计算l=a+b+cl=a+b+c赋值语句执行过程,先取赋值语句执行过程,先取a a、b b、c c变量值,变量值,计算(计算(a+ba+b)+c+c的和,再赋值给变量的和,再赋值给变量l
10、 l,存入变量,存入变量l l的存储单元之中,面的存储单元之中,面积积s s的计算过程,先取的计算过程,先取a a、b b、c c变量值,计算变量值,计算p=(a+b+c)/2p=(a+b+c)/2,“/”“/”表示除表示除号;计算号;计算p p*(p-a)(p-a)*(p-b)(p-b)*(p-c)(p-c)表达式的值,由平方根函数计算表达式的值,由平方根函数计算sqrt(psqrt(p*(p-a)(p-a)*(p-b)(p-b)*(p-c)(p-c),最后再赋值给变量,最后再赋值给变量s s,完成计算任务。,完成计算任务。程序思考程序思考有同学将有同学将“p=(a+b+c)/2;”p=(a
11、+b+c)/2;”改为改为“p=1/2p=1/2*(a+b+c);”(a+b+c);”请问程序计算结果正确吗?请问程序计算结果正确吗?试一试,分析原因,如何改之。试一试,分析原因,如何改之。应用拓展应用拓展 程序拓展变量赋值。程序功能输入两个数程序拓展变量赋值。程序功能输入两个数据给变量,交换后输出。据给变量,交换后输出。程序设计思想,变量实质是存储单元,要交换存储单元的数据内容,就好比有两个分别装满了雪碧和可口可乐饮料的饮料瓶,现想把瓶中的饮料互换一下,互换时不能使饮料混合,我们必须借助相同的容积的空饮料瓶,首先将饮料1倒入过度的空瓶中(t=a),将饮料2倒入饮料1的瓶中(a=b),最后将过
12、度瓶中的饮料倒入饮料2中(b=a),由三步完成交换操作。应用拓展应用拓展变量交换流程图应用拓展应用拓展#include“stdio.h”main()int a,b,t=0;/*定义三个变量为整型*/printf(“input two numbers:”)scanf(“%d%d”,&a,&b);/*给变量输入数据值*/printf(“a=%d,b=%d”,a,b);/*输出交换之前变量的值*/t=a;a=b;b=t;/*变量赋值实现交换处理*/printf(“a=%d,b=%d”,a,b);/*输出交换之后变量的值*/运行结果:input two numbers:35 46 a=35,b=46
13、a=46,b=35 应用拓展应用拓展 语句行“t=a;a=b;b=t;”中有三条语句,可分三行书写,但次序不能巅倒,如下图2-3所示,每一步执行后变量的结果。变量赋值过程 拓展思考拓展思考 讨论比较一下,两变量交换与雪碧饮料瓶和可口可乐饮料瓶中的饮料在交换过程中都借助的存储空间,交换结束后,借助的两存储空间的结果有什么区别?知识总结知识总结1数据类型 所谓一个数据的“数据类型”,是该数据自身的一种属性,数据要在内存中占用多少个字节。程序中涉及的各种数据(常量、变量),都必须存放在内存里。在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。知识总结知识总结2.常量常量在
14、程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。在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指数
15、形式:由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式如:2.1E5(等于2.1*105),3.7E-2(等于3.7*10-2)知识总结知识总结3.符号常量符号常量 符号常量是用标识符代表一个常量。在语言中,可以用一个标识符来表示一个常量,称之为符号常量。如用PI代(3.14)是符号常量。符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量其中#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之
16、以该常量值。符号常量与变量不同,符号常量采用大写字母表示,它的值在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是:含义清楚;能做到“一改全改”。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。知识总结知识总结4.变量变量在程序执行过程中,其值可以改变的量称为变量。变量使用是要关注三个要素:类型,名字,当前值。(1)变量的类型按基本数据类型来分,变量可为整型变量、实型变量、字符型变量。整型变量可分为以下几类:基本型:类型说明符为int,在内存中占2个字节,其取值为基本整常数。短整量:类型说明符为short int。所占字节和取值范围均与基本型相同。长整型:类型说明符为
17、long int或long,在内存中占4个字节,其取值为长整常数。无符号型:类型说明符为unsigned。无符号型又可与上述三种类型匹配而构成:无符号基本型 类型说明符为unsigned int或unsigned。无符号短整型 类型说明符为unsigned short。无符号长整型 类型说明符为unsigned long。实型变量分为两类:单精度型:其类型说明符为float。在内存中占4个字节,其取值为基本实数。双精度型:其类型说明符为double。在内存中占8个字节,其取值为基本实数。字符型字符型:其类型说明符为char。在内存中占1个字节,其取值为字符常量。知识总结知识总结(2)变量的定义
18、与赋初值变量定义必须放在变量使用之前。一般放在函数体的开头部分。变量定义的一般形式为:类型说明符变量名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变量的存储单元地址(由计算机编译分配)变量定义时,应注意以下几点:允
19、许在一个类型说明符后,定义多个相同类型的变量。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔。最后一个变量名之后必须以“;”号结尾。变量定义必须放在变量使用之前。一般放在函数体的开头部分。知识总结知识总结5.C 语言算术表达式与数学公式语言算术表达式与数学公式表达式是由运算符和括号连接起来的式子。表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。算术表达式是用算术运算符和括号将运算对象(也称操作数)连接起来的、符合 C 语法规则的式子。以下是算术表达式的例子:a+b(a*2)c(x+r)*8-(a+b)7数学公
20、式在程序中正确的转换成C语言算术表达式要注意几点:正确使用算术运算符,加(+)、减(-)、乘(*)、除(/),特别是“*”不能省,平方、立方采用“*”连乘求积,平方根采用函数 sqrt()。如果是分数形式的数学表达式,则一定要将分子、分母分别用一对圆括号括起来,用括号决定运算顺序。如(a+b+c)/2;除法“/”运算还与数据类型有关,当左右两侧为整型,运算结果是整型。当左右两侧为有一个为实型时,运算结果是实型。如13/2结果是6,而不是6.5,而13.0/2、13.0/2.0或13/2.0的运算结果都是6.5。知识总结知识总结6.赋值运算赋值运算简单赋值运算符记为“=”。由“=”连接的式子称为
21、赋值表达式。其一般形式为:变量=表达式例如: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程序与算法程序
22、与算法描述1程序程序程序是指让计算机完成特定的任务而设计的指令序列,一个程序应包括以下两方面内容:对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。对数据的处理描述。即操作步骤,也就是算法。算法是为解决一个问题而采取的方法和步骤。著名的计算机科学家Nikiklaus Wirth 提出的公式:程序=数据结构+算法 程序设计就是要在合理地组织数据的基础上,设计好算法。本课程的目的是使同学知道怎样编写一个C 程序,进行编写程序的初步训练,因此,只介绍算法的初步知识。2.2程序与算法程序与算法描述2算法算法做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。计算机
23、算法:计算机能够执行的算法。计算机算法可分为两大类:数值运算算法:求解数值;非数值运算算法:事务管理领域。2.2程序与算法程序与算法描述3算法描述算法描述为把解决问题的方法和步骤(即算法)描述出来,按算法的描述编写程序时,思路会更加清晰。可借助于下列工具:(1)自然语言:借助人们日常使用的语言(称为“自然语言”)分步描述;(2)伪代码:伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法。(3)流程图:借助于传统的流程图表示算法,直观形象,易于理解。画流程框图时常用的一些符号。用箭头表示操作流程。(4)计算机语言:用计算机语言表示算法必须严格遵循所用语言的语法规则。流程图符号流程图符号
24、 举例说明举例说明例如:从键盘输入一个数,输出其绝对值。(1)流程图描述算法(2)伪代码描述INPUT xIF X0 THEN XY ELSE XYPRINT Y (3)计算机C语言描述:#includemain()int x,y;printf(please input the x:n);scanf(%d,&x);if(x0)y=x;else y=-x;printf(x=%d,|x|=%dn,x,y);2.2程序与算法描述程序与算法描述【技能训练技能训练】1用流程图来描述项目三技能训练各题。2用流程图来描述从键盘上输入两个数,将较大的数输出。(要求至少二种方法)2.3 项目四项目四 字符运算字
25、符运算密码加工译码器密码加工译码器【项目任务项目任务】密码加工程序。从键盘输入小写字母,后移加密,当超出字母范围从头循环,如当后移2位时,输入kyz加工后为mab。2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【项目目标】1.了解字符型及存储特点。2.熟悉getchar()函数。3.熟悉putchar()函数。4.掌握算术运算、关系运算表达式。5.了解三目运算及使用。2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【技术要点技术要点】1、程序设计思路。先把从键盘输入小写字母存入字符变量中,字符型数据存储占一个字节,实际上按ASCII码存储;后移加密,实际上
26、是把字符变量进行加法运算,得到后面的字符;计算处理是根据条件修定字符范围。如果计算出的字符超出a-z范围就要处理了,将字符变量减去a-z的长度26,否则不必处理,保证字符变量的值在a-z之间。结果输出,将加密处理后的字符变量输出。2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【技术要点技术要点】2.定义字符变量,本项目设三个字符变量,用char 定义三个ch1、ch2、ch3字符型变量;定义一个加密的偏移值d。3.加密计算采用赋值语句,ch1=ch1+d;4.根据ASCII的范围条件,修定字符范围,采用模除运
27、算处理。2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【程序代码程序代码】#include main()int d=3;/*密码后移量*/char ch1,ch2,ch3;printf(n请输入三个小写字母:);/*scanf(%c%c%c,&ch1,&ch2,&ch3);*/ch1=getchar();ch2=getchar();ch3=getchar();ch1=ch1+d;ch2=ch2+d;ch3=ch3+d;ch1=a+(ch1-a)%26;ch2=a+(ch2-a)%26;ch3=a+(ch3-a)%26;putchar(ch1);putchar(n);putc
28、har(ch2);putchar(n);putchar(ch3);putchar(n);/*printf(n密码为%c%c%cn,ch1,ch2,ch3);*/getch();2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【程序说明】1、语句int d=3;定义整型并赋初值为3,d为密码后移量。2、字符变量赋值。scanf(%c%c%c,&ch1,&ch2,&ch3);语句为字符变量赋初值。“%c”为字符变量输入的控制格式。ch1=getchar();为变量赋方法之一。3、字符变量计算。ch1=ch1+d;赋值语句先取字符变量ch1的值与整型变量d做加法,计算结果整型,再存
29、入字符变量ch1之中。4、语句ch1=a+(ch1-a)%26;先计算=右边a+(ch1-a)%26表达式的值,按优先级计算,先算括号(ch1-a)的内容为整型量,后模除“%”26取余数运算,再与a做加法,最后把整个表达式的值赋给ch1。5、语句putchar(ch1);是字符输出函数,将字符变量ch1的值输出到屏幕上。也可用 printf(n密码为%c%c%cn,ch1,ch2,ch3)实现输出。2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【程序思考程序思考】有同学将“ch1=ch1+d;ch1=a+(ch1-a)%26;”两语句合并为一条语句“ch1=a+(ch1+d
30、-a)%26;”分析一下,试一试,程序计算结果正确吗?2.3 项目四项目四 字符运算字符运算密码加工译码器密码加工译码器【应用拓展】根据ASCII的范围条件,修定字符范围,采用三目运算处理。#include main()int d=3;/*密码后移量*char ch1,ch2,ch3;printf(n请输入三个小写字母:);/*scanf(%c%c%c,&ch1,&ch2,&ch3);*/ch1=getchar();ch2=getchar();ch3=getchar();ch1=ch1+d;ch2=ch2+d;ch3=ch3+d;ch1=ch1z?ch1-26:ch1;ch2=ch2z?ch2
31、-26:ch2;ch2=ch2z?ch2-26:ch2;putchar(ch1);putchar(ch2);putchar(ch3);/*printf(n密码为%c%c%cn,ch1,ch2,ch3);*/语句ch1=ch1z?ch1-26:ch1;三目运算,先把变量ch1的字符的值与z值进行比较,如果大于z条件成立,则执行“?”后的表达式ch1-26,否则执行“:”后的表达式ch1,最后把表达式的值赋给ch1。【拓展思考】你能将“ch1=ch1+d;ch1=ch1z?ch1-26:ch1;”两值赋语句合并为一条值赋语句吗?合并后,当d=3、ch1=c、ch1=y分析表达式计算顺序。2.3 项
32、目四项目四 字符运算字符运算密码加工译码密码加工译码器器【知识总结知识总结】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,其他的可查
33、ASCII码表。(2)字符变量参与数值运算。语言允许字符变量参与数值运算,如:ch1=ch1+d,ch1=a+(ch1-a)%26。可以把它们看成是整型量。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,printf(nASCII码为%d n,ch1),也允许把整型量按字符量输出。整型量为二字节量,字符量为单字节量,当整型量按字符型量处理时,只有低八位字节参与处理。2.3 项目四项目四 字符运算字符运算密码加工译码密码加工译码器器2、字符数据的输入输出、字符数据的输入输出(1)putchar 函数(字符输出函数)putchar 函数是字符输出函数
34、,其功能是在显示器上输出单个字符。其一般形式为:putchar(ch),ch为一个字符数据(普通字符、转义字符或整数)例如:putchar(A);(输出大写字母 A)putchar(ch1);putchar(n);(换行)(2)getchar 函数(键盘输入函数)getchar 函数的功能是从键盘上输入一个字符。通常把输入的字符赋予一个字符变量,构成赋值语句,如:ch1=getchar();注意:getchar 函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。使用本函数前必须包含文件“stdio.h”。2.3 项目四项目四 字符运算字符运算密码加工译码密码加工
35、译码器器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
36、整除为偶数。数的折分,如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|9a,结果为真(1)。aa,8+2!=10|2=a&ch1z?ch1-26:ch1;”执行该语句的语义是:如 ch1z 比较值成立为真,则把表达式ch1-26值赋给ch1,否则把ch1的值不变赋给 ch1,即如果字符变量超出z的范围就减26的操作,否则不变。例如输出两个数中的大数。m
37、ain()int a,b,max;printf(n input two numbers:);scanf(%d%d,&a,&b);printf(max=%d,ab?a:b);使用条件表达式时,还应注意以下几点:(1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。(2)条件运算符的结合方向是自右至左。例如:ab?a:cd?c:d应理解为ab?a:(cd?c:d)这也就是条件表达式嵌套的情形,即其中的表达式 3 又是一个条件表达式。【技能训练技能训练】1模仿项目示例,完成数码加密程序。从键盘输入数字字符(0-9),后移加密,当超出字符范围从头循环,如当后移2位时,输入109加工后为
38、321。2编一程序,以键盘输入三个大写字母,要求改用小写字母输出。(提示:大写字母对应的ASCII码序号比相应的小写字母的ASCII码序号小32)3编一程序,从键盘输入三个英文字母或数字字符,要求打印输出字母的ASCII码。(提示:printf(nASCII码为%d n,ch1),ch1为字符变量)24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息【项目任务项目任务】从键盘上输入学生基本信息,打印输出。=学号:09288726 姓名:张小勤性别:男 年 龄:19身高:1.70 m 体重:50 kg班级:ACCP2 电话:1352626889QQ号:78788068 电子邮箱:=24
39、 项目五项目五 输入输入/输出同学个人信息输出同学个人信息【项目目标项目目标】1.了解C语言的数据类型2.了解整型、实型和字符型数据的形式3.了解字符型、字符串数据的存储特点4.掌握各类型变量的定义以及赋值的方法5.掌握printf()、scanf()函数输出格式6.了解转义字符24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息【技术要点技术要点】1、项目程序的设计步骤、项目程序的设计步骤顺序结构程序的函数体中,由完成具体功能的语句构成。(1)变量定义语句。分析信息的基本数据类型,声明各信息存储的变量。(2)数据输入语句。使用赋值运算、用Scanf()输入函数为变量赋值。(3)计算
40、语句。运用各种计算方法对数据进行处理。(4)结果输出语句。使用输出函数,设计输出格式,将处理的结果数据输出至计算机显示。本项目程序是顺序程序,根据项目程序设计的要求,其主要操作是输入输出,只有数据的输入存储和输出,没有数据计算。24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息 2、学生信息的基本数据类型、学生信息的基本数据类型 先分析基本数据的格式特点,确定输入输出的信息存储要求,根据基本数据特点,确定变量名,定义变量的类型,便于输入、输出的信息。基本信息对应的英文存储的值类型学号student_id9288726长整型姓名name张小勤字符串身高height170实型体重wei
41、ght 50.5实型性别sexM(男)W(女)字符型年龄age16整型班级class_numACCP2字符串电话telephone_num1352626889字符串QQ号QQ_num80808818长整型电子邮箱e- 字符串24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息 变量名取对应的英文,便于输入操作。类型要考虑存储字符格式。学号(stu_id)、QQ号是整数字,不含其他字母,数位较长,采用长整型;姓名(name)、班级(class_num)可以是英文字母、数字、汉字等只好采用字符串;性别(sex)只有一个字母M或W,采用字符型;身高(height)、体重(weight)有小
42、数,用实型;年龄(age)整数,用整型;电话(tel_num)可用长整型,考虑有时输入区号、括号,故采用字符串。24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息 3、输入输出语句、输入输出语句 在C语言中,所有的数据输入、输出都是由库函数完成的。scanf()函数称为格式输入函数,它的功能是按用户指定的格式把数据输入到指定的变量之中。printf()函数是一个格式输出函数,数据输出时由格式控制字符串指定输出格式,不同类型的数据输入、输出时格式要求是不相同的。格式控制字符串内定容是不同的,利用转义字符可定位格式。24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息【程序代
43、码程序代码】#includevoid main()long stu_id;/*长整型变量,存放学号长整型变量,存放学号*/char name20;/*字符串,存放姓名字符串,存放姓名*/char sex;/*字符型变量字符型变量sex,存放性别,存放性别*/int age;/*整型变量整型变量age,存放龄,存放龄*/float height;/*实型变量实型变量height,存放身高,存放身高*/float weight;/*实型变量实型变量weight,存放体重,存放体重*/char tel_num12;/*字符串,存放电话号码字符串,存放电话号码*/char class_num10;/*
44、字符串,存放班级字符串,存放班级*/long qq_num;/*长整型变量,存放长整型变量,存放QQ号码号码*/char e_mail50;/*字符串,存放电子邮件字符串,存放电子邮件*/24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息 printf(please input stu_id:n);scanf(%ld,&stu_id);printf(please input name:n);scanf(%s,name);fflush(stdin);/*fflush函数清除缓冲函数清除缓冲;getchar();*/printf(please input sex(M/W):n);sca
45、nf(%c,&sex);printf(please input age:n);scanf(%d,&age);printf(please input height:n);scanf(%f,&height);printf(please input weight:n);scanf(%f,&weight);printf(please input tel_num:n);scanf(%s,tel_num);printf(please input class_num:n);scanf(%s,class_num);printf(please input QQ number:n);scanf(%ld,&qq_n
46、um);printf(please input e_mail:n);scanf(%s,e_mail);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%
47、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)输入
48、。scanf(%s,name)在输入字符串数据时,使用字符串的首地址,不要一个取地址运算符“&”。字符数组存储值的输出,采用printf(“name:tt%sn”,name)打印f函数输出。2.程序输入的提示信息程序输入的提示信息由于scanf函数本身不能显示提示串,故先用printf语句在屏幕上输出提示信息,方便用户输入值。程序的输入scanf语句的上一条语句是printf打印语句,用来提示用户输入数据。24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息 3输入输入scanf函数数据类型与变量的类型一致函数数据类型与变量的类型一致scanf函数输入数据的类型与变量的类型要一致,由
49、格式控制字符串来确定,格式字符串是以%开头的字符串,在%后面跟有各种格式字符来说明,如:%ld(长整型)、%d(整型)、%f(实型)、%s(字符串)和%c(字符型)。4清除缓冲清除缓冲fflush函数函数语句中fflush(stdin)是清除缓冲fflush函数,上一条输入语句scanf(%s,name)是“回车键”结束,下一条输入语句scanf(%c,&sex)输入一个字符数据时,会将缓冲区中的“回车键”的ASCII送给变量sex,结果不正确。故在scanf(%c,&sex)输入字符数据之前,用清除上一条语句的“回车键”字符,以便scanf(%c,&sex)输入一个字符数据。也可用“getc
50、har();”语句替换吸收“回车键”字符。5printf 函数格式控制函数格式控制printf 函数格式控制字符串中的转义字符:“n”为回车换行符号。“t”跳到下一个输出区,每个为8字符位置。用于对齐打印输出。“%7.2f”表示指定输出宽度为7、精度为2的实数。24 项目五项目五 输入输入/输出同学个人信息输出同学个人信息【程序思考程序思考】printf(please input stu_id:n);scanf(%ld,&stu_id);printf(please input name:n);scanf(%s,name);请你将上述两printf函数语句合并为一条提示输入语句,用scanf函数