《《C语言程序设计》第3章简单的C程序设计.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计》第3章简单的C程序设计.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章 简单的简单的C程序设计程序设计本章要求:本章要求:进一步理解进一步理解C C程序的组成,了解程序的组成,了解C C语句的分类语句的分类掌掌握握C C语语言言中中数数据据的的输输入入/输输出出方方法法,常常用用输输入入/输输出函数的使用出函数的使用掌握顺序结构程序设计方法,能编写简单的掌握顺序结构程序设计方法,能编写简单的C C程序程序本章难点:本章难点:数据输出格式控制符的使用数据输出格式控制符的使用 本章重点:本章重点:格式输入格式输入/输出函数(输出函数(scanf()/printf())的使)的使用用3.1 C语句概述语句概述一个大型一个大型C程序的结构程序的结构C语句分为以
2、下五类:语句分为以下五类:1控制语句控制语句控制语句用于控制程序的流程,以实现程控制语句用于控制程序的流程,以实现程序的各种结构方式。序的各种结构方式。分三类:分三类:条件判断语句:条件判断语句:if语句、语句、switch语句语句。循环执行语句:循环执行语句:for语句、语句、do while语句、语句、while语句语句。转向语句:转向语句:break语句、语句、goto语句、语句、continue语句、语句、return语句语句。2函数调用语句函数调用语句 函数调用语句由函数名和实际参数加上函数调用语句由函数名和实际参数加上分号分号“;”组成。其一般形式为:组成。其一般形式为:函数名函数
3、名(实际参数表实际参数表);例如:例如:printf(C Program);/*调用库函数,输出字符串调用库函数,输出字符串*/3.表达式语句表达式语句 形式:形式:表达式表达式;执行表达式语句的含义:计算表达式执行表达式语句的含义:计算表达式例如:例如:x=a+b;y+z;i+;4空语句空语句 只有一个分号的语句,它什么也不做。只有一个分号的语句,它什么也不做。;5复合语句复合语句把多个语句用花括号把多个语句用花括号“”括起来组括起来组成的语句称复合语句。成的语句称复合语句。在程序中应把复合语句看成是单条语句,在程序中应把复合语句看成是单条语句,而不是多条语句。而不是多条语句。例如,下面就是
4、一条复合语句。例如,下面就是一条复合语句。x=y+z;a=b+c;printf(%d%d,x,a);3.2 赋值语句赋值语句 赋值语句一般形式为:赋值语句一般形式为:变量变量=表达式表达式;功能:将赋值运算符右侧功能:将赋值运算符右侧“表达式表达式”的值赋给的值赋给左侧的变量。例如,以下均为赋值表达式:左侧的变量。例如,以下均为赋值表达式:x=3(x的值为的值为3)y=z=-1(等价于等价于y=(z=-1),y和和z的值都为的值都为-1)a=(b=10)/(a=2)(b的值为的值为10,a的值为的值为5)y=(7+6)%5/3 (y的值为的值为1)若在赋值表达式后面加上若在赋值表达式后面加上“
5、;”,则构成赋值,则构成赋值语句语句.说明:说明:1.赋值符赋值符“=”右边的表达式可以又是一个赋右边的表达式可以又是一个赋值表达式值表达式例如:例如:a=b=c=5;相当于相当于 c=5;b=c;a=b;2.注意变量说明中给变量赋初值和赋值语句的注意变量说明中给变量赋初值和赋值语句的区别。区别。int a=3,b=4,c=5;相当于相当于 int a,b,c;a=3;b=4;c=5;3.在变量说明中,不允许连续给多个变量赋初在变量说明中,不允许连续给多个变量赋初值。值。如下述说明是错误的:如下述说明是错误的:int a=b=c=5;4.注意赋值表达式和赋值语句的区别。注意赋值表达式和赋值语句
6、的区别。赋值表赋值表达式是一种表达式,可以出现在任何允许表达式是一种表达式,可以出现在任何允许表达式出现的地方,而赋值语句则不能。达式出现的地方,而赋值语句则不能。合法的:合法的:a=(x=y+5)+6;非法的:非法的:a=(x=y+5;)+6;5.语句中的语句中的“=”称为赋值号,它不同于数学称为赋值号,它不同于数学中的等号中的等号 例如:例如:A=A+1在数学中是不成在数学中是不成立的,在立的,在C语言中:语言中:5x5+166、赋值符号、赋值符号“=”l 左边一定只能是变量名左边一定只能是变量名,不能是常量、,不能是常量、符号常量、表达式。符号常量、表达式。l 右边的表达式可以是变量、常
7、量、函数右边的表达式可以是变量、常量、函数调用等表达式。调用等表达式。例如:例如:z=x+y;/*将变量将变量x和变量和变量y的值的和赋值给变量的值的和赋值给变量z*/下面的赋值语句都是错的:下面的赋值语句都是错的:5=x;/*左边是常量左边是常量*/sin(x)=20;/*左边是函数调用,即是表达式左边是函数调用,即是表达式*/7.数据类型问题数据类型问题l 赋值符号赋值符号“=”两边的数据类型一般要求两边的数据类型一般要求应一致。应一致。l 如果两边的类型不同,则如果两边的类型不同,则以左边变量以左边变量或或对对象属性象属性的数据类型为基准的数据类型为基准例如,有定义例如,有定义 int
8、x;float y;x=3.5415926;/*取其整数赋值给取其整数赋值给x,x的值为的值为3*/y=123;/*将整数将整数123转换实数转换实数123.0,赋值给赋值给y,执行后,执行后,y的值是的值是123.0*/3.3 数据格式输入数据格式输入/输出输出 3.3.1 数据输入数据输入/输出的概念输出的概念 数据输入数据输入/输出是相对计算机内存输出是相对计算机内存在语言中所有的在语言中所有的数据输入输出数据输入输出都是由都是由库库函数函数完成的。完成的。因此都是函数语句。因此都是函数语句。使用库函数时,要使用预编译命令使用库函数时,要使用预编译命令:#include “stdio.h
9、”或或#include 注:注:printf()和和 scanf()函数不需要头包含文函数不需要头包含文件。件。3.3.2 数据格式输出数据格式输出printf()函数函数 printf()功能:按控制字符串规定的格式,向功能:按控制字符串规定的格式,向输出设备输出各输出项输出设备输出各输出项基本格式为:基本格式为:printf(“控制字符串控制字符串”,输出项列表),输出项列表)printf(“s=%dn”,s);控制字符串控制字符串由格由格式说明和普通字式说明和普通字符两部分组成。符两部分组成。输出项输出项可以是常量、变量、可以是常量、变量、表达式,其类型与个数必表达式,其类型与个数必须与
10、控制字符串中格式字须与控制字符串中格式字符的类型、个数一致、各符的类型、个数一致、各项之间用逗号分隔。项之间用逗号分隔。1.格式字符串格式字符串格式说明格式说明一般格式为:一般格式为:%格式字符格式字符%d%c%s%f 最小宽度与精度修饰符最小宽度与精度修饰符当指定宽度小于数据的实际宽度时:当指定宽度小于数据的实际宽度时:对整数,按该数的实际宽度输出。对整数,按该数的实际宽度输出。对浮点数,相应小数位的数四舍五入。对浮点数,相应小数位的数四舍五入。长度修饰符(长度修饰符(l/h)标志字符:标志字符:-+#(空格)(空格)2普通字符普通字符普通字符包括普通字符包括可打印字符可打印字符和和转义字符
11、转义字符。可打印字符是一些说明字符,这些字符按可打印字符是一些说明字符,这些字符按原样显示在屏幕上原样显示在屏幕上转义字符是不可打印的字符,它们其实是转义字符是不可打印的字符,它们其实是一些控制字符,控制产生特殊的输出效果。一些控制字符,控制产生特殊的输出效果。常用的有常用的有“t”,“n”,其中,其中t为水平为水平制表符,作用是跳到下一个水平制表位,制表符,作用是跳到下一个水平制表位,“n”为回车换行符,遇到为回车换行符,遇到“n”,显示,显示自动换到新的一行。自动换到新的一行。3.3.3 数据格式输入数据格式输入scanf()函数函数 scanf()的功能:从键盘上输入数据,该输入数的功能
12、:从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项。据按指定的输入格式被赋给相应的输入项。一般格式为:一般格式为:scanf(控制字符串控制字符串,输入项地址列表,输入项地址列表);scanf(“%d%d”,&a,&b);控制字符串控制字符串规定数据规定数据的输入格式,由格式的输入格式,由格式说明和普通字符两部说明和普通字符两部分组成。分组成。输入项地址列表输入项地址列表由变由变量地址组成,各变量量地址组成,各变量地址之间用逗号地址之间用逗号“,”分隔。各变量要加地分隔。各变量要加地址操作符,表示如下:址操作符,表示如下:&变量名变量名1.格式字符串格式字符串格式说明格式说明一般
13、格式为:一般格式为:%格式字符格式字符%d%c%s%f 宽度(宽度(m)scanf(“%3d”,&a);/*输入输入123456,按,按宽度输入一个整数宽度输入一个整数123赋给变量赋给变量a*/长度修饰符(长度修饰符(l/h)可与可与d、o、x一起使用一起使用(*)scanf(“%d%*d%d”,&x,&y,&z);/*若输若输入为入为“”结果为结果为x=1,y=3,z未未赋值,被跳过。赋值,被跳过。*/2.普通字符普通字符普通字符包括空格、转义字符和可打印字符。普通字符包括空格、转义字符和可打印字符。空格空格 scanf(“%d%c”,&a,&ch);输入输入32 q期望期望a=32,ch
14、=q,但实际上,分隔符空格被,但实际上,分隔符空格被读入并赋给读入并赋给ch。可打印字符可打印字符 scanf(%d,%d,%c“,&a,&b,&ch);当输入为:当输入为:1,2,q 即:即:a=1,b=2,ch=q使用使用scanf函数还必须注意以下几点:函数还必须注意以下几点:scanf函数中没有精度控制函数中没有精度控制。如:如:scanf(“%5.2f”,&a);是非法的。是非法的。若格式控制串中没有非格式字符作输入数若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格或回车作间隔。据之间的间隔则可用空格或回车作间隔。scanf(%d%d,&a,&b);则输入应为则输入应为 5
15、 6,中间可以用空格,中间可以用空格如果格式控制串中有非格式字符则输入时如果格式控制串中有非格式字符则输入时也要输入该非格式字符。也要输入该非格式字符。scanf(a=%d,b=%d,c=%d,&a,&b,&c);则输入应为则输入应为 a=5,b=6,c=73.4 字符数据非格式输入字符数据非格式输入/输出函数输出函数 需要需要#include 1字符输入函数字符输入函数getchar()格式:格式:getchar();作用:从键盘输入一个字符。作用:从键盘输入一个字符。从功能角度来看,从功能角度来看,scanf()函数可以完全代函数可以完全代替替getchar()函数。函数。若若 char
16、c1;则则 c1=getchar();可使用等价语句:可使用等价语句:scanf(%c,&c1);说说 明:明:getchar()函数一次只能返回一个字符,即函数一次只能返回一个字符,即调用一次调用一次只能输入一个字符只能输入一个字符。程序第一次执行程序第一次执行getchar()函数时,系统暂函数时,系统暂停等待用户输入,停等待用户输入,直到按回车键确认直到按回车键确认。如果用户输入了多个字符,则该函数只取如果用户输入了多个字符,则该函数只取第一个字符,第一个字符,多余的字符(包括换行符多余的字符(包括换行符n)存放在键盘缓冲区中)存放在键盘缓冲区中,等待下一,等待下一个个getchar()
17、函数。函数。2.getch()和和getche()函数函数 作用:从键盘上读入作用:从键盘上读入1个字符个字符 与与getchar()函数的区别函数的区别:是输入不需要回车是输入不需要回车键结束,即键结束,即输入一个字符就自动结束输入输入一个字符就自动结束输入。调用格式为调用格式为:getch();getche();两者的区别是两者的区别是:getch()函数不将读入的字符回显在显示屏函数不将读入的字符回显在显示屏幕上幕上getche()函数将读入的字符回显到显示屏函数将读入的字符回显到显示屏幕上幕上#include void main()float x;printf(Enter The Nu
18、mber x:);scanf(%f,&x);printf(You Enter Number x=%fn ,x);printf(Press any key to continue.);getch();/*等待输入任一键等待输入任一键*/printf(“Bye bye.);getch();3字符输出函数字符输出函数putchar()格式:格式:putchar(ch);功能:是向显示器终端输出一个字符。其功能:是向显示器终端输出一个字符。其中,中,ch可以是一个字符变量或常量,也可可以是一个字符变量或常量,也可以是一个转义字符。以是一个转义字符。说明:说明:putchar()函数只能用于单个字符的输
19、函数只能用于单个字符的输出,且一次只能输出一个字符。出,且一次只能输出一个字符。从功能角度从功能角度printf()函数可以完全代替函数可以完全代替putchar()函数,其等价形式:函数,其等价形式:printf(%c,ch)。3.5 应用程序举例应用程序举例 从键盘输入一个大写字母,要求改用小写字从键盘输入一个大写字母,要求改用小写字母输出母输出#include stdio.hvoid main()char c1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);3.5 应用程序举例应用程序举例 输入时间(小时,分和秒)然后使用输出其输入时间(小时,分和秒)然后使用输出其计多少秒。计多少秒。void main()int hh,mm,ss;long tss;printf(Enter hh:mm:ss=);scanf(%d:%d:%d,&hh,&mm,&ss);tss=hh*3600.0+mm*60+ss;printf(The Total second=%ld,tss);
限制150内