《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/122013/3/12《C语言程序设计》第3章结构化程序设计厦门大学非计算机专业本科生公共课(2012-2013第2学期)林子雨厦门大学计算机科学系E-mail:ziyulin@xmu.
edu.
cn个人主页:http://www.
cs.
xmu.
edu.
cn/linziyu《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12课程提要第一章绪论第二章C语言基础第三章结构化程序设计第四章选择结构第五章循环结构程序设计第六章函数第七章编译预处理第八章数组第九章结构体、共用体和枚举类型第十章指针《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12第3章结构化程序设计3.
1结构化程序设计方法3.
2语句的概念3.
3程序的三种基本结构3.
4赋值语句3.
5输入输出函数3.
6顺序结构程序设计举例《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
1结构化程序设计方法结构化程序设计方法是一整套指导软件开发的方法,涵盖了系统分析、系统设计和程序设计这三个方面的内容.
采用自顶向下、逐步细化、模块化的方法进行程序设计强调程序设计风格和程序结构的规范化,提倡清晰的程序结构基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内.
具体实现步骤:–(1)按自顶向下逐步细化的方法对问题进行分析和设计;–(2)系统的模块设计;–(3)结构化编码.
《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
2语句的概念3.
2.
1表达式语句3.
2.
2控制语句3.
2.
3复合语句3.
2.
4空语句《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
2.
1表达式语句在C语言中,只要在任何表达式的结尾加上分号";",就构成了表达式语句,如:i=1,j=2,k=3;j+k;(合法但无效)i++;fun(j,j+k,6);《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
2.
2控制语句控制语句是程序中用来控制执行次序的语句,它能够影响其他语句的执行次序.
C语言提供了9种控制语句,分为3类:–(1)选择语句:if…else…,switch–(2)循环语句:while,do…while,for–(3)转向语句:break,continue,goto,return《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
2.
3复合语句复合语句是由大括号{}把一些语句括起来组成.
例如:{temp=x;x=y;y=temp;}复合语句在语法上相当于一个语句复合语句可以嵌套复合语句在编程中主要用于两种情形:–(1)语法要求用一条语句,但又难以用一条简单语句表达清楚的情形,如作为for、while语句等的内嵌语句–(2)形成局部化的封装体.
如块语句中定义的变量只在本块范围内可用.
注意:复合语句内的各条语句都必须以分号";"结尾,但在复合语句结束标志右大括号}后面则不能加分号.
《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
2.
4空语句没有表达式的语句称为空语句,即它是只有一个分号";"的语句;空语句也可看成是一个特殊的表达式语句,但不做任何事情作用是:用于语法上需要一条语句的地方,而该地方不需要做任何事情例如:for(i=1;imain(){intx=6,y=8,temp;printf("x=%d,y=%d\n",x,y);temp=x;//将x的初值赋予变量tempx=y;//仅改变变量x的值,y的值不变y=temp;//变量y被赋予新的值,原值被覆盖printf("x=%d,y=%d\n",x,y);}《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
4赋值语句例3.
4.
2输入一个4位整数,然后打印出它的4位数字的和#includevoidmain(){intn,a,b,c,d,sum;printf("Inputn:");scanf("%d",&n);a=n%10;//求个位数b=n/10%10;//求十位数c=n/100%10;//求百位数d=n/1000;//求千位数sum=a+b+c+d;printf("n=%d,sum=%d\n",n,sum);}《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5输入输出函数3.
5.
1格式输出函数printf3.
5.
2格式输入函数scanf3.
5.
3字符输出函数putchar()3.
5.
4字符输入函数getchar()《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1格式输出函数printf3.
5.
1.
0printf概述3.
5.
1.
1整型格式控制符3.
5.
1.
2浮点型格式控制符3.
5.
1.
3字符型格式控制符3.
5.
1.
4字符串格式控制符《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1.
0printf概述printf函数的调用形式为:printf("格式控制字符串",表达式1,表达式2,…,表达式n);当n=0时,调用形式:printf("格式控制字符串");格式控制符:总是由"%"字符开始,并以一个类型描述符结束,中间是一些可选的附加说明项.
完整格式如下:%[-0m.
nl/h]格式字符《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1.
1整型格式控制符用于控制整型数据的输出格式(1)十进制形式:以十进制形式输出整型数据:–%d或%md用于基本整型–%ld或%mld用于长整型–%u或%mu用于无符号基本整型–%lu或%mlu用于无符号长整型(2)八进制形式:以八进制形式输出整型数据(无前缀0):–%o或%mo用于基本整型–%lo或%mlo用于长整型(3)十六进制形式:以十六进制形式输出整型数据(无前缀0x):–%x或%mx用于基本整型–%lx或%mlx用于长整型注意:m表示输出的整型数据所占总宽度(即列数).
如果数据的位数小于m,则左端补空格,若大于m,则按实际位数输出.
如果在格式控制符中没有用m来说明数据所占的宽度,则以输出数据的实际位数为准.
如:printf("%3d,%4d",a,b);若inta=12,b=12345,则输出结果为:12,12345《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1.
2浮点型格式控制符以小数形式输出浮点型数据,格式控制符为:%m.
nf或%f其中,m表示输出数据所占的总宽度,包括小数点所占的一列,n表示小数点后面所占的位数.
注意:在C语言中,用于输出单精度浮点型数据和双精度浮点型数据的格式控制符是一样的.
double型数据输出使用%lf和%f无区别.
例3.
5.
3输出实数时指定小数位数#includemain(){floatf=234.
567;printf("%f\n",f);printf("%10.
2f\n",f);printf("%-10.
2f\n",f);printf("%.
2f\n",f);printf("%10f\n",f);}运行结果:234.
567001(系统默认输出全部整数和6位小数)234.
57234.
57234.
57234.
567001(占10位,浮点数在内存中存储误差)《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1.
3字符型格式控制符用于说明字符型数据的输出格式.
其格式控制符为:%mc或%c其中,m表示输出的宽度,在输出字符的左边将要补m-1个空格例如:charc=A;printf("%5c",c);输出结果为"A"注意:一个整数,只要它的值在0-127范围内,也可以用字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出.
例3.
5.
4字符数据的输出main(){charc='B';inti=66;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}运行结果:B,66B,66《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
1.
4字符串格式控制符用来输出一个字符串.
(1)%s,按紧凑格式输出字符串例如:printf("%s%s","China","Beijing");输出字符串:ChinaBeijing(定界符双引号不输出)(2)%ms(3)%-ms(4)%m.
ns(5)%-m.
ns《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
2格式输入函数scanf当程序调用scanf函数时,用户可以直接从键盘向内存中的变量输入不同类型的数据.
其调用形式为:scanf(格式控制字符串,输入项地址列表)格式化字符参见教材78页表3.
5.
1.
注意:在使用scanf时,务必保证格式控制字符串中以%开头格式控制符的个数,与输入项地址表列的项数相同,且类型匹配,否则将产生不可预测的效果.
《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12(1)附加格式说明符m可以指定数据宽度scanf("%3d%3d",&a,&b);输入:123456(回车)系统自动把123截取给a,456截取给b(2)输入longint型数据必须用%ld,输入double型数据必须用%lf(3)附加格式符*使对应的输入数据不赋给相应变量doublea;intb;floatc;scanf("%f,%2d,%*d,%5f",&a,&b,&c);输入4.
6,25,123,2.
34567(回车)赋值后,a=0(double型使用%f是错误的),b=25,c=2.
345(4)注意逗号和空格的使用,不要使用'\n.
3.
5.
2格式输入函数scanf《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
2格式输入函数scanf例3.
5.
5用scanf函数输入数据main(){inta;floatb;doublec;scanf("%d%f%lf",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}运行时按以下方式输入a,b,c的值:63.
148.
967(回车)运行结果:a=6,b=3.
140000,c=8.
967000《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
3字符输出函数putchar()调用形式为:putchar(c);其中,c可以是字符型常量、字符型变量或整型变量功能:在屏幕当前光标位置处,显示c所表示的一个字符.
例3.
5.
6用putchar函数输出单个字符.
#include//*包含I/O标准库函数的头文件*/main(){chara,b,c;//定义字符型变量a,b,ca='O';b='K';c='!
';//对变量a,b,c进行赋值putchar(a);putchar(b);putchar(c);//输出OK!
putchar('\n');//输出换行putchar('\x41');putchar('\102');}运行结果:OK!
AB《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
5.
4字符输入函数getchar()字符输入函数getchar()没有参数,一般形式为:getchar();功能:接收从键盘输入的一个字符.
例3.
5.
7输入单个字符#includemain(){charc;inti;c=getchar();printf("c=%-4c",c);i=getchar();printf("i=%-3d",i);printf("c1=%-4c",getchar());}在运行时,如果从键盘输入3个字符;abc(回车).
运行结果:c=ai=98c1=c注意:上面getchar()函数被调用三次,分别得到字符'a','b','c',回车符还继续留在缓冲区里,如果再调用getchar()函数,得到的就是回车符.
97989910回车符'a''b''c'《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
6顺序结构程序设计举例例3.
6.
1输入长方体的长、宽、高,求长方体的体积和表面积.
#includemain(){floatx,y,z,v,s;printf("Inputx,y,z:\n");scanf("%f,%f,%f",&x,&y,&z);v=x*y*z;s=2*(x*y+x*z+y*z);printf("x=%8.
3f,y=%8.
3f,z=%8.
3f,v=%8.
3f\n",x,y,z,v);printf("s=%8.
2f\n",s);}运行程序:Inputx,y,z键盘输入2.
2,3.
3,4.
4(回车)屏幕显示为:x=2.
200,y=3.
300,z=4.
400,v=31.
944s=62.
92《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
6顺序结构程序设计举例例3.
6.
2编写并运行一个程序,打印出两个通过交互方式输入的整数的和、差、积、商及余数.
#includemain(){intm,n,a,b,c,d,e;printf("Inputm,n:\n");scanf("%d%d",&m,&n);a=m+n;b=m-n;c=m*n;d=m/n;e=m%n;printf("m+n=%d\tm-n=%d\tm*n=%d\tm/n=%d\tm%%n=%d\n",a,b,c,d,e);}运行程序:Inputm,n:键盘输入:53(回车)屏幕显示:m+n=8m-n=2m*n=15m/n=1m%n=2《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/123.
6顺序结构程序设计举例例3.
6.
3求ax2+bx+c=0方程的根.
#include#includemain(){floata,b,c,disc,x1,x2,p,q;printf("Inputa,b,c:\n");scanf("%f%f%f",&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%5.
2f\nx2=%5.
2f\n",x1,x2);}运行程序:Inputa,b,c:键盘输入:11-2(回车)屏幕显示;x1=1.
00x2=-2.
00《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著版次:2011年10月第2版ISBN:978-7-302-26972-4定价:35元课程教材(2012-2013第2学期)《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12课程和班级网站(2012-2013第2学期)课程介绍网站:http://dblab.
xmu.
edu.
cn/node/124班级网站:http://dblab.
xmu.
edu.
cn/node/347《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12课程教师和助教(2012-2013第2学期)单位:厦门大学信息科学与技术学院计算机科学系办公地点:福建省厦门市思明区厦门大学海韵园E-mail:ziyulin@xmu.
edu.
cn个人主页:http://www.
cs.
xmu.
edu.
cn/linziyu主讲教师:林子雨单位:厦门大学计算机科学系2012级硕士研究生E-mail:376339705@qq.
com手机:18020761782助教:刘颖杰《C语言程序设计》厦门大学计算机科学系林子雨ziyulin@xmu.
edu.
cn2013/3/12DepartmentofComputerScience,XiamenUniversity,March12,2013
蓝速数据金秋上云季2G58/年怎么样?蓝速数据物理机拼团0元购劲爆?蓝速数据服务器秒杀爆产品好不好?蓝速数据是广州五联科技信息有限公司旗下品牌云计算平台、采用国内首选Zkeys公有云建设多种开通方式、具有IDC、ISP从业资格证IDC运营商新老用户值得信赖的商家。我司主要从事内地的枣庄、宿迁、深圳、绍兴、成都(市、县)。待开放地区:北京、广州、十堰、西安、镇江(市、县)。等地区数据中心业务,均KV...
百星数据(baixidc),2012年开始运作至今,主要提供境外自营云服务器和独立服务器出租业务,根据网络线路的不同划分为:美国cera 9929、美国cn2 gia、香港cn2 gia、韩国cn2 gia、日本cn2 gia等云服务器及物理服务器业务。目前,百星数据 推出的日本、韩国、香港cn2 gia云服务器,2核2G/40G/5M带宽低至60元/月,600元/年。百星数据优惠码:优惠码:30...
昔日数据,国内商家,成立于2020年,主要销售湖北十堰和香港HKBN的云服务器,采用KVM虚拟化技术构架,不限制流量。当前夏季促销活动,全部首月5折促销,活动截止于8月11日。官方网站:https://www.xrapi.cn/5折优惠码:XR2021湖北十堰云服务器托管于湖北十堰市IDC数据中心,母鸡采用e5 2651v2,SSD MLC企业硬盘、 rdid5阵列为数据护航,100G高防,超出防...
如何制作个人网页为你推荐
支持ipadphpweb破解怎样破解握手包cisco2960思科2960如何划分vlan?平阴县教育和体育局下属锦东小学教学设备采购项目竞争性磋商文件阅读http电子商务世界电子商务最先起源于那个国家,什么时间厦门三五互联科技股份有限公司厦门三五互联怎么样?可信网站可信网站 是自己去注册的还是由做网站 的人帮弄的?什么是通配符DOS命令具体讲的是什么?开源网店开源网店iWebMall中会员管理包括哪些只要内容呢?
中国十大域名注册商 网站虚拟主机空间 香港服务器租用99idc 中文域名查询 域名备案只选云聚达 三级域名网站 怎样申请域名 美国翻墙 国内加速器 腾讯云分析 建立邮箱 什么是刀片服务器 免费测手机号 爱奇艺会员免费试用 跟踪路由命令 登陆空间 lick 东莞主机托管 godaddy空间 卡巴斯基官网下载 更多