《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
青云互联怎么样?青云互联美国洛杉矶cn2GIA云服务器低至19元/月起;香港安畅cn2云服务器低至19元/月起;日本cn2云主机低至35元/月起!青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务。青云互联本站之前已经更新过很多相关文章介绍了,青云互联的机房有香港和洛杉矶,都有CN2 GIA线路、洛杉矶带高防,商家承诺试用7天,打死全额退款点击进入:青云互联...
近期联通CUVIP的线路(AS4837线路)非常火热,妮妮云也推出了这类线路的套餐以及优惠,目前到国内优质线路排行大致如下:电信CN2 GIA>联通AS9929>联通AS4837>电信CN2 GT>普通线路,AS4837线路比起前两的优势就是带宽比较大,相对便宜一些,所以大家才能看到这个线路的带宽都非常高。妮妮云互联目前云服务器开放抽奖活动,每天开通前10台享3折优惠,另外...
易探云怎么样?易探云是目前国内少数优质的香港云服务器服务商家,目前推出多个香港机房的香港云服务器,有新界、九龙、沙田、葵湾等机房,还提供CN2、BGP及CN2三网直连香港云服务器。近年来,许多企业外贸出海会选择香港云服务器来部署自己的外贸网站,使得越来越多的用户会选择易探云作为网站服务提供平台。今天,云服务器网(yuntue.com)小编来谈谈易探云和易探云服务器怎么样?具体香港云服务器多少钱1个...
如何制作个人网页为你推荐
目录盐城市第八届人大常委会第五次会议纪要重庆400年老树穿楼生长重庆吊脚楼申请支付宝账户申请支付宝账号注册sns网站有哪些有趣的SNS网站有哪些刚刚网刚刚在网上认识了一个女孩子,不是很了解她,就跟她表白了。中国保健养猪网中央7台致富经养猪3g手机有哪些3G手机???工具条有什么工具条比较好建站之星建站之星和凡科建站哪个系统好用呢?管理员密码进入192.168.1.1要管理员密码是什么密码
解析域名 最便宜的vps 个人域名备案 老左 warez 独享100m site5 免费主机 sugarsync 163网 debian6 ibrs 双线主机 中国电信宽带测速网 鲁诺 七夕快乐英语 服务器论坛 lamp的音标 阿里云手机官网 徐州电信 更多