资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 顺序结构的程序设计,3.1 C语言语句,3.2 字符和字符串的输入/输出,3.3 格式化输入/输出,3.4 顺序结构程序设计,第三章 顺序结构的程序设计3.1 C语言语句,1,3.1 C语言语句,一、控制语句,3.1 C语言语句一、控制语句,2,二、空语句,1.定义,空语句是一种概念,C语言的空语句仅由分,号构成,在编译时不产生任何指令,在执行时,不产生任何操作。,2.作用,(1)构成标号语句,标识程序中相关位置;,(2)循环语句中空循环体;,(3)模块化程序中未实现的模块及暂不联入的,模块。,二、空语句,3,三、表达式语句,表达式是运算符和运算对象构成的式子,,本身并不具有执行的功能,但如果在它的后,面加上一个分号,则就变成了语句,就可以,执行了。最常见的表达式语句多为赋值语句,和函数调用语句。,i=3;,x=PI*r*r;,+i;,printf(Hello!);,三、表达式语句,4,四、复合语句,把多条语句用花括号括起来即构成所谓的复合语句。,sum=sum+i+j;,i+;,j-;,四、复合语句,5,复合语句对内部来说有多条语句,对,外部来说它又是一个整体,算是一个语,句。通常用作循环语句的循环体或条件,语句的分支。,复合语句对内部来说有多条语句,对,6,3.2 字符和字符串的输入/输出,一、字符的输入/输出,1.字符输入函数getchar(),从键盘上输入一个字符。,格式:=getchar();,2.字符输出函数putchar(),向终端输出一个字符。,格式:putchar(表达式),3.2 字符和字符串的输入/输出一、字符的输入/输出,7,注意:,在使用这两个函数时,必须包含头文件,stdio.h。,#include“stdio.h”,void main(),char c;,c=getchar();,putchar(c);,注意:,8,include,void main(),char ch1,ch2,ch3;,ch1=getchar();ch2=getchar();ch3=getchar();,putchar(ch1);putchar();putchar(ch2);,putchar();putchar(ch3);,putchar(n);,utchar(101);putchar(66);putchar();,putchar(n);,include,9,二、字符串的输入输出,1字符串输入gets()函数,从键盘输入一个字符串到字符数组。,格式:gets(str);,2字符串输出puts()函数。,向终端输出一个字符串。,格式:puts(str);,二、字符串的输入输出,10,#include“stdio.h”,void main(),char name80;,gets(name);,puts(name);,#include“stdio.h”,11,3.3 格式化输入/输出,一、printf()函数,1格式:printf(格式控制,输出列表),(1)格式控制:用“”括起来的字符串,也称“转换控制字符串”,包括两种信息。,格式说明:由%和格式字符组成,其作用是将输出的数据转换为指定的格式输出;,普通字符:需要原样输出的字符。,3.3 格式化输入/输出一、printf()函数,12,13,2格式字符,(1)d格式符:用来输出十进制整数,%d:按整数的实际长度输出;,%md:m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出;,%ld:输出长整数,对于长整型数据必须用此形式,也可指定宽度。,注意:,int型即可用%d,也可用%ld输出,2格式字符,14,(2)o格式符:用来输出八进制数,输出的数值,不带符号位。,有%o,%lo,%mo等形式。,(3)x格式符:用来输出十六进制数,输出的数,值不带符号位。,有%x,%lx,%mx等形式。,(4)u格式符:用来输出无符号数,(2)o格式符:用来输出八进制数,输出的数值,15,include,void main(),int i=-2;,unsigned int u=65535;,printf(u=%d,%o,%x,%un,u,u,u,u);,printf(i=%d,%o,%x,%un,i,i,i,i);,include,16,(5)c格式符:用来输出一个字符,%c,%mc。,一个整数可用字符输出(其值在0255之,间),一个字符也可用整数输出。,(6)s格式符:用来输出一个字符串。,%s:原样输出;,%ms:输出的字符串占m列,若字符串长,度大于m,则突破m的限制,将字,符串全部输出,若串长小于m,则,左补空格;(右对齐),(5)c格式符:用来输出一个字符,%c,%mc。,17,%-ms:若串长小于m,则在m列范围内,,字符串向左靠,右补空格;,(左对齐),%m.ns:输出占m列,但只取字符串中左端,n个字符;(右对齐),%-m.ns:左对齐。,(7)f格式符:用来输出实数,以小数形式输,出。,%f:整数部分原样输出,小数部分输出6,位;,%-ms:若串长小于m,则在m列范围内,,18,%m.nf:输出数据占m列,其中有n位小,数,若数值长度小于m,则左边补,空格,;,%-m.nf:同上,左对齐。,(8)e格式符:以指数形式输出实数。,%e:输出位数13位(正数)或14位(负,数),,其中整数部分1-2位,小数点,1位,尾数部分6位,e1位,阶码1,位,阶数3位;,%m.nf:输出数据占m列,其中有n位小,19,%m.ne:输出占m列,n为输出数据的小,数部分的位数,,若n为0,则只输,出数据的整数部分;,%-m.ne:同上,左对齐;,(9)g格式符:用来输出实数,根据数值的大,小,自动选f格式或e格式。,3.说明,(1)使用printf时,格式说明必须与数据类型相,匹配;,%m.ne:输出占m列,n为输出数据的小,20,(2)除了X,G,E外,其它格式符必须用小,写;,(3)可以在格式控制字符串内包含“转义字,符”;,(4)若要输出%,则在格式控制字符串中用两,个连续的%。,二、scanf()函数,1格式,scanf(格式控制,地址表列),(2)除了X,G,E外,其它格式符必须用小,21,格式控制同printf,地址表列是由若干个地,址组成的,可以是变量的地址或字符串的首,地址。,如:scanf(“%d%d%d”,输入数据时,数值数据之间用空格、TAB,或回车间隔。,2格式说明,格式控制同printf,地址表列是由若干个地,22,23,(1)对unsigned变量,可用u,d,o,x格式输入;,(2)%md:指定输入数据所占列数,系统自动,按它截取所需数据;,scanf(“%3d”,输入:123456,则a取值为123,(3)%*m:表示跳过它指定的列数;,scanf(“%2d%*3d%2d”,输入:12 345 67,则a:12 b:67,(1)对unsigned变量,可用u,d,o,x格式输入;,24,(4)输入数据时不能规定精度.,scanf(“%7.2f”,非法。,3使用说明,(1)格式控制符后面是变量地址,而不是变量,名;,(2)如果在格式控制字符串中除了格式说明以,外还有其他字符,则在输入数据时在对应位置处应输入与这些字符相同的字符;,(4)输入数据时不能规定精度.,25,(3)在用%c格式输入字符时,空格和转义字符,都作为有效字符输入;,(4)在输入数据时,遇以下情况时该数据认为,结束:,遇空格,或按TAB或回车键;,按指定的宽度结束;,遇非法输入。,(3)在用%c格式输入字符时,空格和转义字符,26,3.4 顺序结构程序设计,从键盘输入一个大写字母,要求改用小写字母输出。,3.4 顺序结构程序设计 从键盘输入一个大写字母,要求,27,#include,void main(),char c1,c2;,c1=getchar();,printf(“%c,%dn”,c1,c1);,c2=c1+32;,printf(“%c,%dn”,c2,c2);,#include,28,练习:,1.写出程序运行结果:,void main(),int x=10,y=3;,printf(“%dn”,y=x/y);,2.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是:,A.a=a+b,b=a-b,a=a-b;B.t=a,a=b,b=t;,C.a=t;t=b;b=a;D.t=b;b=a;a=t;,练习:,29,3.写出输出结果:,x=5.16894;,printf(“%fn”,(int)(x*1000+0.5)/(float)1000);,4.求c3的值.,int c1=1,c2=2,c3;,c3=c1/c2;,5.写出输出结果.,int a=0,b=0,c=0;,c=(a-=a-5),(a=b,b+3);,printf(“%d,%d,%dn”,a,b,c);,3.写出输出结果:,30,6.以下程序多处错误,请改正.,void main(),double a,b,c,s,v;,printf(input a,b,c:n);,scanf(“%d%d%d”,a,b,c);,printf(“s=%fn”,s,”v=%dn”,v);,6.以下程序多处错误,请改正.,31,编程题:,1.把560分钟换算成用小时和分钟表示,然后进行输出.,2.编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,并输出最后三个变量的值.,3.选做:,将第一题改成从键盘输入任何一个分钟数,换算成用小时和分钟表示,然后进行输出.,编程题:,32,
展开阅读全文