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