《C语言简单C程序.pptx》由会员分享,可在线阅读,更多相关《C语言简单C程序.pptx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1复合语句在什么情况下使用复合语句?当分支需要进行多项操作时 t=x;x=y;y=t;被当作一条语句来处理第1页/共36页2空语句空语句有什么作用?什么也不做,只表示语句的存在自顶向下程序设计时用在那些未完成的模块中延时用的空循环DataInitialze();第2页/共36页3顺序结构程序的基本操作 如何在程序中给变量赋值?赋值表达式;例Total=m*n;如何进行数据的输入输出?C语言中通过调用标准库函数来实现#include stdio.h输入:从标准输入设备上输入数据到计算机输出:将计算机中的数据送到标准输出设备第3页/共36页4字符输入输出函数字符输出函数格式 putchar(ch)
2、说明输出一个字符ch字符输入函数格式 getchar()说明无参数,值为从输入设备接收的字符,例 a=getchar()n 注必须使用#include“stdio.h”第4页/共36页5#include main()charchar ch;printfprintf(Press a key and then press Enter:);ch=getchargetchar();printfprintf(You pressed);putcharputchar(ch);putcharputchar(n);演示例3.2:3.2:运行程序Press a key and then press Enter:A
3、You pressed A第5页/共36页6格式输出函数_ 格式:printf(格式控制字符串,输出项表列);_ 作用:输出若干个任意类型的数据_ 格式控制:控制格式的字符串_ 输出项表列:即需要输出的数据,可 为常量、变量、表达式第6页/共36页7printf(“a=%d b=%f”,a,b);函数名格式说明输出表列普通字符v格式说明:由%和格式字符构成 v普通字符:需原样输出的字符,可 为转义字符第7页/共36页8d 以带符号十进制整数输出o 以八进制无符号整数输出(无前导0)x 以十六进制无符号整数输出(无前导0 x)u 以十进制无符号整数输出c 以字符形式输出单个字符s 输出一个字符串
4、f 以小数形式输出浮点数(6位小数)l 长整型整数,加在d、o、x、u前L long double型数,加在f、e、g前e 以标准指数形式输出(6位小数)g 选用%f,%e中输出宽度较小的一种格式printfprintf格式字符格式字符第8页/共36页9PrintfPrintf宽度控制说明符宽度控制说明符m 表示数据占用的最小宽度(如%3d)数据宽度=m,按实际宽度输出 数据宽度=m,按实际宽度输出 数据宽度m,补零m n 以宽m输出小数实型,小数位为n位 如%2.1f第9页/共36页10#include#include main()main()float f1=100.15799,f2=12
5、.55,f3=1.7;float f1=100.15799,f2=12.55,f3=1.7;int n1=123,n2=45,n3=6;int n1=123,n2=45,n3=6;printf(printf WITHOUT width or precision printf(printf WITHOUT width or precision specifications:n);specifications:n);printf(%fn%fn%fn,f1,f2,f3);printf(%fn%fn%fn,f1,f2,f3);printf(%dn%dn%dn,n1,n2,n3);printf(%dn%
6、dn%dn,n1,n2,n3);printf(printf WITH width and precision printf(printf WITH width and precision specifications:n);specifications:n);printf(%5.2fn%6.1fn%3.0fn,f1,f2,f3);printf(%5.2fn%6.1fn%3.0fn,f1,f2,f3);printf(%5dn%6dn%3dnn,n1,n2,n3);printf(%5dn%6dn%3dnn,n1,n2,n3);第10页/共36页11格式输入函数格式输入函数scanf(格式控制字符串
7、,地址表列);scanf(%d,%f”,&a,&b);非格式字符格式说明格式说明地址表列地址表列第11页/共36页12格式输入函数常见错误scanf(%d,%fn”,&a,&b);scanf(%d,%f”,a,b);scanf(%7.2f,&a);第12页/共36页13d 以带符号十进制形式输入整型数据o 以八进制无符号形式输入(无前导0)x 以十六进制无符号形式输入(无前导0 x)c 以字符形式输入单个字符s 输入字符串,以非空字符开始,遇第一个 空白字符结束f 以小数形式输入浮点数e 以标准指数形式输入scanfscanf格式字符格式字符第13页/共36页14l 加在d、o、x、u前:输入
8、长整型 加在f、e 前:输入双精度型L 加在f、e 前:输入long double型h 加在d、o、x 前:输入短整型m 表示数据占用的宽度,没有%mnf格式*本输入项在读入后不赋给相应的变量scanfscanf附加格式说明符附加格式说明符第14页/共36页15#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 遇空格、TAB 键时结束第15页/共36页
9、16#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 第16页/共36页17#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
10、,b=34,a+b=461234 遇宽度时结束第17页/共36页18#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=3,a+b=15123a 遇非法输入时结束第18页/共36页19#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,
11、b,a+b);Please input a and b:a=12,b=34,a+b=4612,34 这里逗号需要原样输入第19页/共36页20#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 input a and b:a=12,b=56,a+b=68123456 跳过一个输入项第20页/共36页21#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%
12、dn,a,b);问题1:当要求程序输出结果为 a=12,b=34 时,用户应该如何输入数据?12 34 输入数据的格式控制输入数据的格式控制1 1第21页/共36页22#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);输入数据的格式控制输入数据的格式控制2 2第22页/共36页23#include main()int a,b;scanf(%d%d,&a,&b);printf
13、(a=%d,b=%dn,a,b);问题3:语句scanf(“%d%d”,&a,&b);修改为scanf(“a=%d,b=%d”,&a,&b);时,用户应该如何输入数据?a=12,b=34a=12,b=34 输入数据的格式控制输入数据的格式控制3 3第23页/共36页24#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);输入数据的格式控制输入数据的格式控制4 4第24页/共36页25#incl
14、ude main()int 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);输入数据的格式控制输入数据的格式控制5 5第25页/共36页26#include main()int a,b;scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b);问题6:设计程序使得用户可以以任意字符(回车、空格、制表符、逗号、其它)作为分隔符进行数据的输入scanf(%d%*c%d
15、,&a,&b);输入数据的格式控制输入数据的格式控制6 6第26页/共36页27#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=%dn,data1,op,data2,data1+data2);Please enter the expression data1+data2 第第1 1次测试次测试12+312 64=76 C C格式符存在的问题及其解决格式符存在的问题及其解
16、决1 1第27页/共36页28#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=%dn,data1,op,data2,data1+data2);Please enter the expression data1+data2 第第2 2次测试次测试12 312 3=15 C C格式符存在的问题及其解决格式符存在的问题及其解决2 2第28页/共36页29#include ma
17、in()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 第第3 3次测试次测试12+312+3=15 C C格式符存在的问题及其解决格式符存在的问题及其解决3 3第29页/共36页30#includeinclude main()main()intint da
18、ta1,data2,sum;data1,data2,sum;charchar op;op;printf(Please enter the expression printf(Please enter the expression data1+data2n);data1+data2n);scanf(%d%scanf(%d%1s1s%d,&data1,&op,&data2);%d,&data1,&op,&data2);printf(%d%c%d=%dn,printf(%d%c%d=%dn,data1,op,data2,data1+data2);data1,op,data2,data1+data2)
19、;12+312+3 12+312+3 1212 +3 3 再回头来看例再回头来看例3.113.11,以任意分隔符,以任意分隔符输入加法算式,可能吗?输入加法算式,可能吗?第30页/共36页31#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:%cn,b);printf(Please input a float n
20、umber:);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 C格式符存在的问题及其解决格式符存在的问题及其解决第31页/共36页32#include main()int a;char b;float c;printf(Please input an integer:);scanf
21、(%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);Please input an integer:结果好像很奇怪嘛!结果好像很奇怪嘛!12 Please input an character:a Please input a float number:3.5 integer:12float number:3
22、.500000C C格式符存在的问题及其解决格式符存在的问题及其解决第32页/共36页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:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:%fn,c);C C格式符存在的问
23、题及其解决格式符存在的问题及其解决第33页/共36页34#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:);getchar();/*吸收掉前面输入整型数据后面键入的回车字符*/scanf(%c,&b);printf(character:%cn,b);printf(Please input a float number:);scanf(%f,&c);printf(float:
24、%fn,c);Please input an integer:程序修改后得到的运行结果程序修改后得到的运行结果12 Please input an character:a Please input a float number:3.5 integer:12character:afloat number:3.500000第34页/共36页35#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 C格式符存在的问题及其解决格式符存在的问题及其解决第35页/共36页36感谢您的欣赏!第36页/共36页