华中科技大学光电子学院C语言第三章课件_第1页
华中科技大学光电子学院C语言第三章课件_第2页
华中科技大学光电子学院C语言第三章课件_第3页
华中科技大学光电子学院C语言第三章课件_第4页
华中科技大学光电子学院C语言第三章课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

第三章简单程序设计§1.程序结构

程序的一般结构:程序结构=数据结构+控制结构数据结构:控制结构操作的对象现实世界的数据在程序中的表达形式——变量或常量数据用类型定义,以区别不同的处理对象。

数据结构(C语言)简单变量:描述数学上一些算术运算和逻辑运算数组:特殊的数学问题:如矩阵,矢量等。结构:指针:非数学上的处理问题,管理问题等控制结构:以数据结构为操作对象,完成实际问题的算法的求解过程。。

程序控制基本结构由三类组成顺序结构:表达式语句,复合语句,空语句选择结构:if,switch语句循环结构:for,while,do-while语句一般程序结构安排:数据结构说明在前,控制结构语句在后,即“先说明,后操作”的原则。程序结构处理部分由三部分组成输入部分(用输入语句或赋值语句给变量赋初值)处理部分输出部分(用输出设备输出中间结果或最终结果)

§2.顺序结构的语句一.表达式语句形式:exp;其中:exp是C中合法的表达式“;”是语句的结束符,不是分隔符。即:任何合法表达式后写上“;”号都是语句注:若exp缺省,且只有“;”则称为空语句例:x/=y;i++;x=y;;/*空语句*/inta,b=1;/*说明语句*/

三.函数调用语句如:p(x);/*自定义函数调用语句*/printf(“xyz\n”);/*标准函数调用语句*/§3.数据的I/O函数数据的I/O处理是通过调用由C编译提供的标准函数而实现的。一.单个字符I/O函数1.

单个字符输入函数getchar形式:getchar()/*无参数*/功能:从键盘上接受一个键入的字符。返回值的类型为int,值为键入的字符ASCII码(序号值)如:#include<stdio.h>main(){charc;c=getchar();/*键入a,c的值为97*/putchar(c);/*输出a*/}

2.单个字符输出函数putchar

形式:putchar(c)其中:c为实参,类型可以是char,short或int类型的表达式功能:将字符c输出到显示器上如:putchar(((c=getchar())>’a’&&c<=’z’)?c-‘a’+’A’:c);先输入一个字符存入变量c,如果c中是小写字母,则将转换成对应大写字母后输出,否则直接输出原键入的字符。c—未指定域宽:只允许接受的变量类型为char或int;指定域宽:则按域宽接受多个字符到数组中

s—接受一串字符到字符数组中,机器自动添加串结束标志’\0’(空字符),第一个字符不能是空格字符。中间插入字符:*——不将数据项读入变量中域宽

h——输入的数应为short型

l,L——输入的数若为整形,对应的变量应为long型,若读入float型,相应变量应为double型2)变量地址表:由1个或多个(用逗号隔开)组成变量地址表简单变量地址表示:&变量字符串变量地址:用字符数组名(或指向字符串变量的指针)表示例:inti;floatx;charname[10];scanf(“%d%f%s”,&I,&x,name);键入数据形式:2561.37e-1program↙或结果:他们分别被存入I,x,name[10]中注:1.数据之间用空格或回车隔开,不能使用其它字符2.不能将scanf(“%d”,&i)写成scanf(“%d”,i);3.也不能将scanf(“%s”,name)写成scanf(“%s”,&name);25↙61.37e-1↙program↙3)用法及注意的问题a.字符数据前面在输入时不留分隔符,若留则使用%1c的说明符。如:inti;charc;scanf(“%d%c”,&i,&c);若输入:345a↙则:345=>i‘a’=>c若输入:345a↙则:345=>i‘’=>c而不是’a’=>c

若是:scanf(“%d%s”,&i,&c);输入:345a↙则:345=>i‘a’=>c而不是‘’=>c

如:charc1,c2;scanf(“%c%c”,&c1,&c1);输入:12↙则:’1’=>c1‘2’=>c2c.如果在“格式控制符”之间使用除格式说明以外的其它字符,输入时应输入与这些字符型同的字符。如:scanf(“%d,%d”,&a,&b);输入:5,6↙scanf(“%d%d”,&a,&b);输入:56↙scanf(“a=%d,b=%d”,&a,&b);输入:a=5,b=6↙d.指定数域宽度:按指定的域宽接收数据,多余域宽则去掉如:scanf(“%3d%d”,&I,&j);输入:12345678↙则:123=>i5678=>je.%后为*,用来表示跳过它相应的数据如:scanf(“%2d%*3d%3d”,&a,&b);输入:12345678↙则:12=>a,345倍跳过,678=>b常用输入格式:int,short:%d;long:%ldfloat:%fdouble:%lfchar:%cstring:%s2.格式输出函数printf

形式:printf(格式字符串,输出参数表)其中:参数表逗号隔开的变量,常量或表达式格式字符串,基本同scanf中的格式字符串

如:inti=15;floatx=-9.3;printf(“%d%8.3f”,i,x);输出:15-9.300/*共8个字符宽度,小数点后3位不足补0,前不足补2个空格*/若:printf(“i=%d,x=%8.3f”,i,x);输出:i=15,x=-9.300

常用的输出格式:带符号整数:%d不带符号整数:%u或%d带符号长整数(或无符号长整数):%ld或%lu实型数:%m.nf字符型:%c字符串:%sprintf(“%-4d,%g”,i,y,x);输出:-6,123.567/*x未被输出值*/§4.简单程序设计举例例1.从键盘上输入三个浮点数,显示其中最大值#include<stdio.h>/*文件包含有putchar,getchar,scanf,printf函数*/main(){floatx,y,z,m;/*说明语句*/printf(“inputthreenumber:”);/*显示提示*/scanf(“%f%f%f”,&x,&y,&z);/*接受输入的3个浮点数分别送x,y,z*/m=(x>y)?x:y;/*求x,y中最大者送m*/m=(m>z)?m:z;/*求3个中最大的送m*/printf(“max=%.2f\n”,m);/*输出*/}例2.输入一个字符,显示该字符的字符码,及前导字符和字符码,后继字符和字符码#include<stdio.h>main(){intc,c1,c2;printf(“inputachar:”);c=getchar(

温馨提示

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

最新文档

评论

0/150

提交评论