第3章简单程序设计说课讲解_第1页
第3章简单程序设计说课讲解_第2页
第3章简单程序设计说课讲解_第3页
第3章简单程序设计说课讲解_第4页
第3章简单程序设计说课讲解_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计主讲:何希平

Prof.&Ph.D.

Tel:6276911515923039051E-mail:jsjhxp@1/30/20251第3章顺序结构程序设计3.1C语言的基本语句3.2数据输入与输出3.3程序举例1/30/20252教学目的和基本要求:要求学生了解语句,尤其是复合语句的概念和使用场合教学重点:复合语句1/30/20253程序设计语言有顺序、选择、循环三种基本的控制结构。BA图3.1顺序结构执行流程

顺序结构是最基本的控制结构,其包含的语句是按照书写的顺序执行的,且每条语句都将被执行。程序流程如图3.1所示,语句按书写顺序执行。先执行A,再执行B。例:main(){inta,b,temp;scanf("%d%d",&a,&b);temp=a;

a=b;

b=temp;printf("%d,%d",a,b);}输入:148输出8,141/30/202543.1.1简单语句表达式语句:

由一个表达式加上一个分号构成。如:A++;x=1;p+=q*4+5;y=4>2?6:1;空语句:

由一个分号表示,一般形式为:;空语句在语法上是一条语句,但执行时不做任何操作。1/30/20256C语言有丰富的标准函数库,可提供各类函数供用户调用,完成预先设定好的操作.例如调用标准库函数求数学函数值:sin(x)、cos(x)、exp(x)(求ex)、fabs(x)(求x的绝对值)、log(x)等。3.函数调用语句:由函数调用表达式加分号构成.如:printf("%d",a);scanf("%f",&b);1/30/20257调用标准库函数要注意:在程序中要包含相应的头文件例如:#include<stdio.h>#include<math.h>

调用规则:函数名(参数表)例如:y=sin(1.7);x=pow(3,18);(指数函数,x的y次幂p358)函数调用的实质:在调用点转去执行一段预先设计好的程序,求出结果后返回调用点。图例函数的值又叫函数的返回值。1/30/20258调用函数A函数A执行函数A函数执行结束继续执行剩余的语句主函数main()end例:intmax(intx,inty){intz;z=x>y?x:y;return(z);}

main()

{inta,b;

scanf("%d%d",&a,&b);

printf("\n%d\n",max(a,b));

}函数调用语句在主函数中,可以如使用简单变量一样使用max,类型为int型,内有值。若输入34,则max中的值为4。1/30/20259如:数学表达式y=|3sinx+4cosx|+ex,可以用C语言表达式表示为:其中,fabs,sin,cos,exp都属于头文件math.h,用到这些函数,必须在程序的预处理语句中用#include<math.h>把数学函数库包含进来。y=fabs(3*sin(x)+4*cos(x))+exp(x);1/30/2025103.1.2复合语句{语句1;……语句n;}用一对花括号,把若干条语句括起来,就形成了一条复合语句。形式如下:

花括号中的语句,可以是简单语句、空语句、复合语句、流程控制语句,所有这些语句括在一起,在语法上看成是一条语句,执行时顺序执行花括号中的每条语句。复合语句多用于流程控制语句中。1/30/2025113.2数据输入与输出格式:putchar(c)参数:c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;出错,为EOF(-1)C语言无I/O语句,I/O操作由函数实现#include<stdio.h>3.2.1数据输出字符输出函数1/30/202512#include<stdio.h>voidmain(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);getch();}运行结果:AB例1/30/202513格式:printf("格式控制串",输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)格式输出函数输出表:要输出的数据(可以没有,多个时以","分隔)格式控制串:包含两种信息格式说明:%[修饰符]格式字符

,用于指定输出格式普通字符或转义序列:原样输出格式字符1/30/202514d,ix,Xoucse,Efg%%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数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.677890e+02567.789000567.789%说明 格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出1/30/202515例

main(){unsignedintu=65535;printf("u=%d\n",u);}

输出结果:u=-1例inta=3,b=4;printf("%d%d\n",a,b);printf("a=%d,b=%d\n",a,b);例inta=3,b=4;printf("%d%d\n",a,b);printf("a=%d,b=%d\n",a,b);输出结果:34a=3,b=41111111111111111655351/30/202516附加格式说明符(修饰符).n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l1/30/202517例inta=1234;floatf=123.456;charch='a';printf("%8d,%2d\n",a,a);printf("%f,%8f,%8.1f,%.2f,%.2e\n",f,f,f,f,f);printf("%3c\n",ch);运行1234,1234结果:123.456000,123.456000,123.5,123.46,1.23e+02

a例staticchara[]="Hello,world!"printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);运行结果:Hello,world!

Hello,world!

HelloHelloHel

例m.n1/30/202518例inta=1234;floatf=123.456;staticcharc[]="Hello,world!";printf("%8d,%-8d\n",a,a);printf("%10.2f,%-10.1f\n",f,f);printf("%10.5s,%-10.3s\n",c,c);运行结果:1234,1234

123.46,123.5

Hello,Hel例-1/30/202519例inta=1234;floatf=123.456;printf("%08d\n",a);printf("%010.2f\n",f);printf("%0+8d\n",a);printf("0+10.2f\n",f);例0、+例inta=123;printf("%o,%#o,%X,%#X\n",a,a,a,a);

例#例longa=65536;printf("%d,%8ld\n",a,a);例l00000000000000010000000000000000//00001234//0000123.46//000+1234//000+123.56//173,0173,7B,0X7B//0,655361/30/202520格式:getchar()功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1)3.2.2数据输入字符输入函数例#include<stdio.h>main(){intc;printf("Enteracharacter:");c=getchar();printf("%c--->hex%x\n",c,c);}运行结果:Enteracharacter:A

A--->hex411/30/202521格式输入函数格式:scanf("格式控制串",地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例scanf("%d",&a);

输入:10

则a=10例scanf("%x",&a);

输入:11

则a=171/30/202522附加格式说明符(修饰符)l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例scanf("%4d%2d%2d",&yy,&mm,&dd);

输入19991015

则1999yy,10mm,15dd1/30/202523例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'c21/30/202524输入分隔符的指定一般以空格、TAB或回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符例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例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=361/30/202525说明:用"%c"格式符时,空格和转义字符作为有效字符输入如scanf("%c%c%c",&c1,&c2,&c3);

若输入abc

则ac1,

c2,bc3输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束遇非法输入如scanf("%d%c%f",&a,&b,&c);若输入1234a123o.26

则1234a,'a'b,123c输入函数留下的"垃圾":1/30/202526如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例intx;charch;scanf("%d",&x);scanf("%c",&ch);printf("x=%d,ch=%d\n",x,ch);执行:123

输出:x=123,ch=10解决方法:(1)用getchar()清除(2)用函数fflush(stdin)清除全部剩余内容(3)用格式串中空格或"%*c"来"吃掉"例intx;charch;scanf("%d",&x);scanf("%c",&ch);或scanf("%*c%c",&ch);1/30/202527例3.1输入圆的半径,输出圆的周长和面积。分析:

1.定义实型变量r、l、s用于存放半径、周长、面积;2.调用输入函数,输入r:3.分别利用周长公式和面积公式求出l、s;4.调用输出函数输出l、s。3.3程序举例1/30/202528程序:#include<stdio.h>main(){floatr,l,s;scanf("%f",&r);l=2*3.14159*r;s=3.14159*r*r;printf("\nl=%.4f",l);printf("\ns=%.4f",s);}1/30/202529/*ch3_12.c*/#include<math.h>#include<stdio.h>main(){floata,b,c,s,area;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(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论