1、C程序设计2C语言中的语句 变量声明语句 int x,y;表达式语句 i+;i10;空语句;注释语句-/*/控制语句-条件、循环复合语句 t=x;x=y;y=t;3复合语句 在什么情况下使用复合语句?当分支需要进行多项操作时 t=x;x=y;y=t;被当作一条被当作一条语句来处理语句来处理4空语句 空语句有什么作用?什么也不做,只表示语句的存在 自顶向下程序设计时用在那些未完成的模块中 延时用的空循环DataInitialze();5顺序结构程序的基本操作 如何在程序中给变量赋值?赋值表达式;例Total=m*n;如何进行数据的输入输出?C语言中通过调用标准库函数来实现#include std
2、io.h 输入:从标准输入设备上输入数据到计算机 输出:将计算机中的数据送到标准输出设备6字符输入输出函数 字符输出函数 格式 putchar(ch)说明输出一个字符ch 字符输入函数 格式 getchar()说明无参数,值为从输入设备接收的字符,例 a=getchar()注必须使用#include“stdio.h”7#include main()ch;(Press a key and then press Enter:);ch=();(You pressed);(ch);(n);演示例演示例3.2:3.2:运行程序运行程序Press a key and then press Enter:AY
3、ou pressed A8格式输出函数_ 格式:_ 作用:输出若干个任意类型的数据_ 格式控制:控制格式的字符串_ 输出项表列:即需要输出的数据,可 为常量、变量、表达式9printf(“a=%d b=%f”,a,b);函数名格式说明输出表列普通字符v格式说明:由%和格式字符构成 v普通字符:需原样输出的字符,可 为转义字符10d 以带符号十进制整数输出o 以八进制无符号整数输出(无前导0)x 以十六进制无符号整数输出(无前导0 x)u 以十进制无符号整数输出c 以字符形式输出单个字符s 输出一个字符串f 以小数形式输出浮点数(6位小数)l 长整型整数,加在d、o、x、u前L long dou
4、ble型数,加在f、e、g前e 以标准指数形式输出(6位小数)g 选用%f,%e中输出宽度较小的一种格式printf格式字符11Printf宽度控制说明符m 表示数据占用的最小宽度(如%3d)数据宽度=m,按实际宽度输出 数据宽度=m,按实际宽度输出 数据宽度m,补零m n 以宽m输出小数实型,小数位为n位 如%2.1f1213格式输入函数 格式输入函数 scanf(格式控制字符串,地址表列);scanf(%d,%f”,&a,&b);非格式字符非格式字符格式说明格式说明地址表列地址表列14格式输入函数 常见错误scanf(%d,%fn”,&a,&b);scanf(%d,%f”,a,b);sca
5、nf(%7.2f,&a);15scanf格式字符1617#include main()int a,b;printf(Please input a and b:);scanf(%d%d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please input a and b:a=12,b=34,a+b=4612 34 18#include main()int a,b;printf(Please input a and b:);scanf(%d%d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please input a an
6、d b:a=12,b=34,a+b=4612 34 19#include main()int a,b;printf(Please input a and b:);scanf(%2d%2d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please input a and b:a=12,b=34,a+b=461234 20#include main()int a,b;printf(Please input a and b:);scanf(%2d%2d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please input a
7、 and b:a=12,b=3,a+b=15123a 21#include main()int a,b;printf(Please input a and b:);scanf(%d,%d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please input a and b:a=12,b=34,a+b=4612,34 22#include main()int a,b;printf(Please input a and b:);scanf(%2d%*2d%2d,&a,&b);printf(a=%d,b=%d,a+b=%dn,a,b,a+b);Please in
8、put a and b:a=12,b=56,a+b=68123456 23#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题1:当要求程序输出结果为 a=12,b=34 时,用户应该如何输入数据?输入数据的格式控制124#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题2:当限定用户输入数据以逗号为分隔符,即输入数据格式为:12,34时,应修改程序中的哪条语句?怎样修改?scanf(%d,%d,&a,&b);输入数据的格式控制225
9、#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题3:语句scanf(“%d%d”,&a,&b);修改为scanf(“a=%d,b=%d”,&a,&b);时,用户应该如何输入数据?输入数据的格式控制326#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题4:限定用户输入数据为以下格式为 1234 同时要求程序输出结果为a=12,b=34scanf(%2d%2d,&a,&b);输入数据的格式控制427#include main()in
10、t a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题5:限定用户输入数据为以下格式为1234 同时要求程序输出结果为a=12,b=34scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);输入数据的格式控制528#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入scanf(%d%*c%d,&a,&b);输入数据的格式控制629#include mai
11、n()int data1,data2,sum;char op;printf(Please enter the expression data1+data2n);scanf(%d%c%d,&data1,&op,&data2);printf(%d%c%d=%dn,data1,op,data2,data1+data2);Please enter the expression data1+data2 12+312 64=76C格式符存在的问题及其解决130#include main()int data1,data2,sum;char op;printf(Please enter the express
12、ion data1+data2n);scanf(%d%c%d,&data1,&op,&data2);printf(%d%c%d=%dn,data1,op,data2,data1+data2);Please enter the expression data1+data2 12 312 3=15C格式符存在的问题及其解决231#include main()int data1,data2,sum;char op;printf(Please enter the expression data1+data2n);scanf(%d%c%d,&data1,&op,&data2);printf(%d%c%d
13、=%dn,data1,op,data2,data1+data2);Please enter the expression data1+data2 12+312+3=15 C格式符存在的问题及其解决332再回头来看例3.11,以任意分隔符输入加法算式,可能吗?33#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d,&a);printf(integer:%dn,a);printf(Please input a character:);scanf(%c,&b);printf(character:%
14、cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);Please input an integer:12 Please input an character:a Please input a float number:3.5 integer:12character:afloat number:3.500000C格式符存在的问题及其解决34#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d,&a
15、);printf(integer:%dn,a);printf(Please input a character:);scanf(%c,&b);printf(character:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);Please input an integer:12 Please input an character:a Please input a float number:3.5 integer:12float number:3.500000C格式符存在的问题及其解决35#i
16、nclude main()int a;char b;float c;printf(Please input an integer:);scanf(%d,&a);printf(integer:%dn,a);printf(Please input a character:);scanf(%c,&b);printf(character:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);C格式符存在的问题及其解决36#include main()int a;char b;float c;printf
17、(Please input an integer:);scanf(%d,&a);printf(integer:%dn,a);printf(Please input a character:);getchar();/*吸收掉前面输入整型数据后面键入的回车字符*/scanf(%c,&b);printf(character:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);Please input an integer:程序修改后得到的运行结果程序修改后得到的运行结果12 Please input
18、 an character:a Please input a float number:3.5 integer:12character:afloat number:3.50000037#include main()int a;char b;float c;printf(Please input an integer:);scanf(%d,&a);printf(integer:%dn,a);printf(Please input a character:);scanf(%1s,&b);/*第2种解决方案*/printf(character:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);C格式符存在的问题及其解决