版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章顺序结构程序设计3.1C语句概述3.2程序的三种基本结构3.3数据的输入输出3.4顺序结构程序设计举例教学目的和基本要求:了解顺序结构程序的设计思想和方法掌握常用的几种顺序结构语句教学重点:复合语句printf()函数、scanf()函数简单的顺序结构程序的编写3.1C语句概述C语句:以“;”作分隔符,编译后产生机器指令.C语句分类
表达式语句:表达式加分号构成。空语句:
;程序控制语句(9种):函数调用语句:由函数名、参数表加上分号“;”组成。if()~else~switchfor()~while()~do~while()continuebreakgotoreturn分支循环辅助控制如
total=total+limit;;a=3;func();printf(“Hello,world!\n”);复合语句:用{…}括起来的一组语句
★
一般形式:
{[数据说明部分;]
执行语句部分;
}
★说明:“}”后不加分号语法上和单一语句相同复合语句可嵌套{intt;t=a;a=b;b=t;}3.2程序的三种基本结构结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序
叫结构化程序优点:结构清晰,易读,提高程序设计质量和效率三种基本结构顺序结构AB流程图顺序结构分支结构二分支选择结构多分支选择结构PAB真假二分支结构A1A2AiAnk=k2k=k1k=knk=ki......循环结构当型循环结构直到型循环结构PA真假当型循环PA真假直到型循环3.3数据的输入输出C语言无I/O语句,I/O操作由函数实现#include<stdio.h>格式化输出
—printf()函数格式化输入
—scanf()函数单个字符输出
—putchar()函数单个字符输入
—getchar()函数格式输出函数printf()格式:printf(“格式控制串”,输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)输出表:要输出的数据(可以没有,多个时以“,”分隔)格式控制串:包含两种信息格式说明:%[修饰符]格式字符
,用于指定输出格式普通字符或转义序列:原样输出格式字符d,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%例
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=4111111111111111165535说明 格式字符要用小写格式字符与输出项个数应相同,按先后顺序一一对应输出转换:格式字符与输出项类型不一致,自动按指定格式输出.n对实数,指定小数点后位数(四舍五入)对字符串,指定实际输出位数修饰符功能m输出数据域宽,数据长度<m,左补空格;否则按实际输出输出数据在域内左对齐(缺省右对齐)-指定在有符号数的正数前显示正号(+)+输出数值时指定左面不使用的空位置自动填00在八进制和十六进制数前显示前导0,0x#在d,o,x,u前,指定输出精度为long型在e,f,g前,指定输出精度为double型l附加格式说明符(修饰符)例
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
例
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例-例0、+例
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);//00001234//0000123.46//000+1234//000+123.56例
#例
inta=123;printf(“%o,%#o,%X,%#X\n”,a,a,a,a);
//173,0173,7B,0X7B例
l例
longa=65536;printf(“%d,%8ld\n”,a,a);
//0,65536
printf()函数使用说明printf()可以输出常量、变量和表达式的值。格式字符x、e、g可以用小写字母,也可以用大写字母,其它格式字符必须用小写字母。格式字符串中紧跟在“%”后面就作为格式字符,否则将作为普通字符使用(原样输出)。格式化输入函数scanf()格式:scanf(“格式控制串”,地址表)功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中,并按回车键结束返值:正常,返回输入数据个数地址表:变量的地址,常用取地址运算符&格式字符:d,i,o,x,u,c,s,f,e例
scanf(“%d”,&a);
输入:10
则
a=10例
scanf(“%x”,&a);
输入:11
则
a=17附加格式说明符(修饰符)l修饰符功能hm*用于d,o,x前,指定输入为short型整数用于d,o,x前,指定输入为long型整数用于e,f前,指定输入为double型实数指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);
输入19991015
则1999yy,10mm,15dd例
scanf(“%3c%2c”,&c1,&c2);
输入
abcde
则‘a’c1,‘d’c2例
scanf(“%3d%*4d%f”,&k,&f);
输入
12345678765.43
则123k,8765.43f例
scanf(“%2d%*3d%2d”,&a,&b);
输入
1234567
则12a,67b输入分隔符的指定一般以空格、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=36说明:用“%c”格式符时,空格和转义字符作为有效字符输入输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽度结束遇非法输入输入函数留下的“垃圾”:解决方法:(1)用getchar()清除(2)用函数fflush(stdin)清除全部剩余内容(3)用格式串中空格或“%*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例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%d\n”,x,ch);执行:123输出:x=123,ch=10例intx;charch;scanf(“%d”,&x);
scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);
单个字符输出—putchar()函数格式:
putchar(c)参数:
c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;出错,为EOF(-1)#include<stdio.h>main(){intc;chara;c=65;a='B';putchar(c);putchar('\n');putchar(a);}运行结果:AB单个字符输入—getchar()函数格式:
getchar()功能:从键盘读一字符返值:正常,返回读取的代码值;出错,返回EOF(-1)#include<stdio.h>main(){intc;printf("Enteracharacter:");c=getchar();printf("%c--->hex%x\n",c,c);}运行结果:Enteracharacter:AA--->hex41例如:#include<stdio.h> /*文件包含*/voidmain(){charch;printf("Pleaseinputtwocharacter:");ch=getchar(); /*输入1个字符并赋给ch*/putchar(ch);putchar('\n');putchar(getchar()); /*输入一个字符并输出*/putchar('\n');} 3.4顺序结构程序设计举例例3.1输入两个整数a和b,交换它们的值,并输出交换前后的数。分析问题(略)#include<stdio.h>voidmain(){inta,b,t;printf("Pleaseinputtwointegernumbers:");scanf("%d,%d",&a,&b);printf("beforechanged:a=%db=%d\n",a,b);t=a;a=b;b=t;printf("afterchanged:a=%db=%d\n",a,b);}文件包含预处理命令变量定义输入数据输出数据程序运行情况如下:Pleaseintputtwointegernumbers:7,9↙beforechanged:a=7b=9afterchanged:a=9b=7例3.2从键盘上输入任意3个整数,求出它们的和及平均值。#include<stdio.h>voidmain(){intiNum1,iNum2,iNum3,iSum;floatrAverage;printf("Pleaseinputthreeintegernumbers:");scanf("%d%d%d",&iNum1,&iNum2,&iNum3);iSum=iNum1+iNum2+iNum3;rAverage=iSum/3.0;printf("iSum=%8d\n",iSum);printf("rAverage=%7.2f\n",rAverage);}
程序运行情况如下:Pleaseinputthreeintegernumbers:13□14□15↙iSum=□□□□□□42rAverage=□□14.00例3.3从键盘输入2个小写字母,用大写形式输出这两个字母及对应的ASCII码值。#include<stdio.h>voidmain(){charc1,c2;
}
printf(“Pleaseinputtwolowercaseletters:”);scanf(“%c,%c”,&c1,&c2);c1=c1-32;c2=c2-32;printf("%c%5d\n",c1,c1);printf("%c%5d\n",c2,c2);
printf(“Pleaseinputaletter:”);ch=getchar();
ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渠道培训合同范本
- 苗木维护合同范本
- 莫衡签约协议书
- 认股比例协议书
- 设备代理协议书
- 设备抵款协议书
- 设计无责协议书
- 评审费合同范本
- 请教帮扶协议书
- 快手网红协议书
- 贵州兴义电力发展有限公司2026年校园招聘备考题库及一套参考答案详解
- 2025年天津大学管理岗位集中招聘15人备考题库完整答案详解
- 2025内蒙古鄂尔多斯市鄂托克旗招聘专职社区人员30人考试笔试备考试题及答案解析
- 三方协议模板合同
- 2026年元旦校长寄语:向光而行马到新程
- 玉米质押合同范本
- 钢结构报废回收合同2025年版本
- 节能基本情况表(打印)
- 电动车转让合同协议书电子版
- 大学生创业计划书word文档(三篇)
- 材料科学基础辅导与习题-上交课件 材料科学基础教程及习题 上海交通大学
评论
0/150
提交评论