您好,欢迎访问三七文档
2020/5/31第三章顺序结构程序设计2020/5/323.1基本语句(1)空语句:即只有一个分号的语句。;(2)表达式语句:表达式后加一个分号。如:m=0;x+y-10%2+2*x,10/2;无具体意义(3)函数调用语句:函数调用加一个分号。如:printf(“thisisaexample.\n”);(4)控制语句:是C语言中完成一定控制功能的语句,如表3.1所示。2020/5/33表3.1控制语句条件控制语句循环控制语句辅助控制语句if语句switch语句while语句do-while语句for语句break中断语句continue继续语句goto转向语句return返回语句(5)复合语句:将一组语句用花括号{}括起来就形成了复合语句,又称其为分程序。如:{m=10;printf(“m=%d\n”,m);}2020/5/343.2赋值语句赋值表达式后加上一个分号。如:pi=3.14159;m=n=5;n+=m+7;x=m/n+sin(30*pi/180);例:利用赋值语句交换两变量的值。设有定义:inta=12,b=5,t;则可以用如下两种方式交换变量a和b的值:⑴t=a;a=b;b=t;⑵a=a+b;b=a-b;a=a-b;2020/5/353.3数据的输入输出C语言无I/O语句,I/O操作由函数调用实现#includestdio.h格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器等终端输出数据返回值:正常,返回输出字符数;出错,返回负值(-1)一、格式输出函数printf()输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%[修饰符]格式字符,用于指定输出格式普通字符或转义序列:原样输出2020/5/36说明:除了X、E、G外,格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应;输出转换:格式字符与输出项类型不一致,自动按指定格式输出d,ix,Xoucse,Efg,G%%格式字符:无符号十六进制整数无符号十进制整数有符号十进制整数指数形式浮点小数单一字符字符串无符号八进制整数小数形式浮点小数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%%”);567ff101567AABC5.67789e+02567.789000567.789%2020/5/37输出结果:3-10a=3,b=-10111111111111111165535例inta=3,b=-10;printf(“%d%d\n”,a,b);printf(“a=%d,b=%d\n”,a,b);例main(){unsignedintu=65535;printf(”u=%d\n,u);}输出结果:u=-1printf(“a=%d,b=%d\n”,a,b);普通字符格式说明转义字符2020/5/38附加格式说明符(修饰符).n对实数,指定小数点后位数(不足补0,超出四舍五入)对字符串,指定实际输出前面字符的位数修饰符功能m输出数据域宽,数据长度m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l其中的m、n都代表一个正整数。2020/5/39例inta=1234;floatf=123.456;charch=‘a’;staticcharc[]=“Hello,world!”;printf(“a=%-8d,%2d,%8d\n”,a,a,a);printf(“%f,%8f,%.2f,%10.1f\n”,f,f,f,f);printf(“%-10.2f,%e,%.2e,%10.2e\n”,f,f,f,f);printf(“%3c,%d\n”,ch,ch);printf(“%s,%10.5s,%-10.3s,%15s\n”,c,c,c,c);printf(“%2.5s\n%.2s\n”,c,c);运行结果:a=1234,1234,1234123.456000,123.456000,123.46,123.5123.46,1.23456e+02,1.2e+02,1.2e+02a,97Hello,world!,Hello,Hel,Hello,world!HelloHe附加格式说明符m、n、-的例子2020/5/310例inta=1234;floatf=123.456;printf(“%08d\n”,a);printf(“%+08d\n”,a);printf(“%010.2f\n”,f);printf(“%+010.2f\n”,f);附加格式说明符0、+的例子例inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);附加格式说明符#的例子例longa=65537;printf(“%d,%8ld\n”,a,a);附加格式说明符l的例子00000000000000010000000000000001000012340000123.46+0001234+000123.461,65537173,0173,7B,0X7B216+12020/5/311二、格式输入函数scanf()格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返回值:正常,返回输入数据个数;出错返回零地址表:变量的地址,常用取地址运算符&格式控制串:%[修饰符]格式字符,用于指定输入数据格式例scanf(“%d”,&a);输入:10则a=10例scanf(“%x”,&a);输入:11则a=172020/5/312d,ixoucsf,e格式字符:输入无符号十六进制整数输入无符号十进制整数输入有符号十进制整数输入单一字符输入字符串至字符数组输入无符号八进制整数输入实型数,小数形式、指数形式均可(f、e等价)字符说明修饰符:l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x,u前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量其中的m代表一个正整数。2020/5/313输入数据时,要求格式符、待输入值的变量以及键入的数据之间类型应匹配,否则会导致输入出错。匹配关系如表:变量类型使用的格式说明输入数据形式int%d%u,%o,%x(仅用于非负数)十进制整数十,八,十六进制无符整数short%hd十进制整数unsigned%u,%o,%x十,八,十六进制无符整数long%ld%lu,%lo,%lx(仅用于非负数)十进制长整数十,八,十六进制无符长整数char%c%d字符(一次击键)整数(ASCII码)float%f,%e实数或整数double%lf,%le实数或整数2020/5/314例scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入19991015则1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);输入12345678765.43则123k,8765.43f例scanf(“%2d%*3d%2d”,&a,&b);输入1234567则12a,67b例scanf(“%3c%2c”,&c1,&c2);输入abcde则‘a’c1,‘d’c22020/5/315例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);输入123123123输出a=123,b=83,c=291输入分隔符的指定–一般以空格、TAB或回车键作为分隔符–其它字符做分隔符:格式串中两个格式符间字符例scanf(“%d:%d:%d”,&h,&m,&s);输入12:30:45则12h,30m,45s例scanf(“%d,%d”,&a,&b)输入3,4则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入a=12,b=24,c=36则12a,24b,36c2020/5/316⑵输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束,如“%3d”,只取3列遇非法输入⑶输入函数留下的“垃圾”,解决方法:(1)用格式串中的空格或“%*c”来“吃掉”(2)用getchar()清除(3)用函数fflush(stdin)清除全部剩余内容说明:⑴用“%c”格式符时,空格和转义字符等作为有效字符输入如scanf(“%c%c%c”,&c1,&c2,&c3);若输入abc则ac1,c2,bc3如scanf(“%d%c%f”,&a,&b,&c);若输入1234a123o.26则1234a,‘a’b,123c例intx;charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%d\n”,x,ch);执行:123输出:x=123,ch=10(换行符LF)例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%d\n”,x,ch);执行:123输出:x=123,ch=10(换行符LF)例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);Double.ctri.c2020/5/317格式:getchar()功能:从终端(键盘)读一字符(键盘捕捉函数)返回值:正常,返回读取的代码值;出错,返回-1三、字符输入函数getchar()#includestdio.hmain(){intc;printf(Enteracharacter:);c=getchar();printf(%c---hex%x\n,c,c);}运行输入A运行结果:Enteracharacter:AA---hex41注:使用getchar()和putchar()须编译预处理#includestdio.h2020/5/318格式:putchar(c)参数:c为字符常量、变量或表达式、或0~255整数功能:把字符c输出到终端(显示器)上返值:正常,为显示的代码值;出错,为EOF(-1)#includestdio.hmain(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}运行结果:AB四、字符输出函数2020/5/3193.4程序举例#includemath.h#includestdio.h#includeconio.hmain(){floata,b,c,s,area;clrscr();printf(“Inputa,b,c:“);scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n,a,b,c,s);printf(area=%7.2f\n,area);getch();}(exmp3tri.c)例输入三角形边长,求面积编译预处理命令
本文标题:计算机C语言(3)
链接地址:https://www.777doc.com/doc-5181955 .html