




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 C语言程序设计 C语句概述 数据的输入与输出 if语句 多路分支语句 循环控制语句本章提要:1 C语句概述表达式语句:最典型的是由赋值表达式构成的赋值语句,如 a=3 ;函数调用语句:如 printf(“hello!”); 控制语句:如ifelse、for、dowhile复合语句:用一对 括起来的语句。如: if(ab) a=a-b;printf(“a=%d”,a); else a=a+b;printf(“a=%d”,a);空语句:只有一个分号的语句。2 数据的输入与输出函数1、字符输出函数:putchar()功能:向屏幕输出一个字符。调用格式 :putchar(ch); / 注:ch
2、可以是字符型变量或常量。如:#includemain() char c=A; putchar(c); putchar(101); 2 数据的输入与输出函数2、字符输入函数:getchar()功能:从键盘上输入一个字符。调用格式 :ch=getchar(); /其中ch为字符型变量 注:getchar()函数没有参数!#includemain() char c; c=getchar(); putchar(c); 2 数据的输入与输出函数3、格式化输出函数:printf()功能:向屏幕输出各种信息。一般形式:printf(“格式控制”,输出表列);格式控制包含三种信息:1.提示的字符串,原样输出。
3、例如: printf(“Hello”);2.转义字符。3.格式转换控制符。由“%”和格式字符组成,如“%d”、“%f”。 注:在C中,数据的输出形式是由格式符决定的。格式符则应与数据类型相匹配,同一数据用不同的格式符得到的将是不同的结果。例如:若有定义 char ch=a; 则 printf(“a=%c,a=%d”,ch,ch); 得到两个不同结果。字符宽度修饰符2 数据的输入与输出函数cchar 以字符形式输出 sstring 以字符串形式输出 ddigit 以十进制形式输出 ffloatuunsignedo八进制x十六进制e按指数形式输出g按e或f中较短的一种输出常用的格式控制符如下表所示
4、:字母l用于long型数据m数据最小宽度.n输出n位小数-输出的数据左对齐注:m、n不是字符,而是数字 例如:(1)、%s(2)、%ms(3)、-%ms(4)、%m.ns(5)、 -%m.ns2 数据的输入与输出函数4、格式化输入函数:scanf()功能:用于从键盘上接收各种类型的数据。一般形式:scanf(“格式控制”,输入项地址表列);说明:格式控制的含义同prinf函数。除u外,其它在prinf中能用的,在scanf中都能用。 可以指定输入数据所占的列数,系统将按它进行截取。函数中“格式控制”后面应当是变量的地址,而绝对不能写成变量名。在格式控制字符串中,最好只使用格式字符。不要把其它字
5、符加进来。在使用“c”格式符输入字符时,空格不再作为分隔符而同样是有效的输入。输入long、double型数据时,应用“%ld”、“%lf”格式符。2 数据的输入与输出函数5、使用scanf和printf函数时常见错误:在使用scanf输入数据时忘记取地址运算符,如: scanf(“%d,%d”,a,b); 在输入数据时,数据间的分隔符与scanf中的不匹配,如: scanf(“%d,%d”,&a,&b); 而在输入数据时,输入的是 3 5 在scanf中加入了其它的提示信息,如: scanf(“please input a,b:%a,%b”,&a,&b);在scanf中加入了“n”,如:sc
6、anf(“%dn”,&a);其实这不是错误,但在输入数据时,要多敲一个回车,增加了麻烦。对于long(double)型数据,在调用scanf和printf函数时应使用“ld”(“%lf”)格式符,否则,输入、输出结果将不正确,如:long a; scanf(“%d”,&a); printf(“%d”,a); 3 if语句if语句是非顺序执行语句,它根据判断给定条件的结果(真或假)来选择执行相应的操作。有三种形式:最简形式:if(表达式)语句; 其执行过程是:先求解表达式的值,若为真(非0),则执行if后的语句。若为假(0),就跳过整个if语句。 例:求一个整数的绝对值。 #include ma
7、in() int a; scanf(“%d”,&a); if(a0) a=-a; printf(“a的绝对值是%dn”,a); 注:在C中,所有的非0值都是作为真处理的,因此,在if后的表达式就绝不限于只是逻辑表达式。在具体使用中,一定要注意“=”和“= =”的区别!3 if语句if-else结构: if(表达式) 语句1; else 语句2; 其执行过程是:先求解表达式的值,若为真(非0),则执行语句1,否则,执行语句2。 例:接收一个字符,若为大写,则将之转换为小写,否则,转换为大写。 #include main() char c; scanf(“%c”,&c); if (c=a&c0)
8、先看这个例子: y= 0 (x=0) -1(x0) y=1; else if(x=0) y=0; else y=-1; else-if语句的一般形式是: if(表达式1) 语句1; else if(表达式2) 语句2; else (表达式3) 语句3; : 3 if语句在使用if语句的嵌套时,应注意的是:else总是与它上面最近的、同一复合语句内的if相匹配!例如: if( ) if( ) 语句1; else if( ) 语句2; else 语句3;if( ) if( ) 语句1; else if( ) 语句2; else 语句3;因此,在使用if的嵌套时,一定要注意所写语句有无二义性的问题。
9、考虑前面的那个函数的例子,能否写成以下形式: y=0; if(x=0) if(x0) y=1; else y=-1; 3 if语句条件运算符:是C中唯一的一个三目运算符。它的一般形式为: 表达式1 ? 表达式2:表达式3 它的执行过程是:先求解表达式1的值,若为非0,则求解表达式2的值并将之作为整个表达式的值;若为0,则求解表达式3的值并将之作为整个表达式的值。看下面这个表达式: max=( (a b) ? a:b )则它的作用相当于以下两条语句的作用: if(ab) max=a; else max=b; 注意:条件运算符的优先级大于赋值语句而小于算术运算符,而其结合方向为“右结合”。因此,语
10、句 (ab)?a-b:a+b (ab)?(a-b):(a+b)4 多路分支语句使用if-else语句,在某些具体问题的处理上显得过于繁锁。例如,对学生成绩进行等级评定,可以写出以下程序: if(成绩=90) 等级=优; if(成绩=80) 等级=良; if(成绩=70) 等级=中; if(成绩=60) 等级=合格; if(成绩=90) 等级=优;else if(成绩=80) 等级=良; /成绩=70) 等级=中; /成绩=60) 等级=合格; /成绩70 else if(成绩60) 等级=不合格; /成绩604 多路分支语句但这样修改后又使程序的可读性降低。为此,C中提供了多路分支语句,它的一
11、般形式是: switch(表达式) case 常量表达式1: 语句1; case 常量表达式2: 语句2; : case 常量表达式n:语句n; default: 语句n+1; 说明: 1.执行顺序:先计算表达式的值;当该值与某一个case后的常量表达式的值相等时,就执行此case后的语句。若所有的case值与表达式的值均不匹配,则执行default后的语句。 2.执行完一个case语句后,并不会跳过其它的case语句,而是顺序执行它下面的 case语句。若想终止switch结构的执行,可以用一个 break语句来中断switch结构的执行。 3.各case和default的出现次序不会影响结
12、果。4 多路分支语句例:从键盘上接收一个成绩,输出对应的等级#include void main( ) int cj; char grade; printf(“请输入成绩:”); scanf(“%d”,&cj); _; switch(cj) case _; case 9: grade=“A”; case 8: grade=“B”; case 7: grade=“C”; case 6: grade=“D”; default: gread=“E”; printf(“该生等级为%c”,grade); #includevoid main() int x,y,z;char p; scanf(%d%c%d
13、,&x,&p,&y);switch(p)case +:z=x+y;break; case -:z=x-y;break; case *:z=x*y;break; case /:z=x/y;break; default :p=$;if (p=$) printf(此程序没有此功能);else printf(%d%c%d=%d,x,p,y,z);5 循环控制语句循环控制语句是任何高级语言都提供的,它也是发挥计算机性能的重要语句。几乎所有的计算机程序中都使用了循环。中常用的循环控制语句有三种:while循环其一般形式为:while(表达式)语句;当表达式的值为真(非0)时执行while后的语句,直到为假
14、时退出循环。(先判断后执行) 例:求 1+3+5+99=?#include main( ) int i=1,sum=0; while(i100) sum=sum+i;i=i+2; printf(“%d”,sum);5 循环控制语句do-while循环其一般形式为:do 语句 while(表达式);执行过程:先执行一次do后的语句,再判断表达式的值;若其值为真(非0),则返回重新执行该语句,如此反复,直到表达式的值为假()时循环结束。(先执行后判断) 例:求 1+3+5+99=?#include main( ) int i=1,sum=0; do sum=sum+i; i=i+2; while(
15、i100); printf(“%d”,sum);5 循环控制语句while循环与do-while循环的区别: 用while循环和do-while循环编同一程序时,程序结构非常相似;在大多数时候,其结果也相同。但因while循环是“先判断后执行”,而do-while循环则是“先执行后判断”,因此它们还是有区别的。请看下面的两个程序:#include main() int i=11,sum=0; while(i=10) sum=sum+i;i+; printf(“sum=%dn”,sum);#include main() int i=11,sum=0; do sum=sum+i;i+; while
16、(i=10); printf(“sum=%dn”,sum);5 循环控制语句for循环: for循环是C中使用得最多的循环语句,因为它充分体现了C的灵活多变、功能强大的特点。其一般形式为:for(表达式1;表达式2;表达式3) 语句; for循环的执行过程为:先求解表达式1的值。(只执行一次)求解表达式2的值,若其值为真,则执行for后的语句,执行完毕后转至 3)。若表达式2的值为假,则循环结束。求解表达式3的值转至 2)处继续循环。例如,从1到100求和的例子: for(sum=0,i=1;i=100;i+) sum=sum+i;通常,表达式1用于进行一些初始化工作;表达式2用于判断循环条件
17、是否成立;表达式3则用于循环变量的增量。5 循环控制语句对for循环的几点说明: for中的三个表达式可以省略其中的任意一个,甚至全部,但对应的分号却不能省。例如:for( ; ; )三个表达式可以是任意的,并不一定有何内在的关联。如:for(i=1;i100;j+)也一样能编译通过。这也是很多时候造成死循环的原因之一。例:求所有的水仙花数(所谓的水仙花数,是这样的一个三位数:这个数等于它的各个位的立方之和。如153=13+53+33 )#includevoid main() int i,gw,sw,bw;for(i=100;i1000;i+) gw=i%10; bw=i/100; sw=(i%100)/10; i f(i=gw*gw*gw+sw*sw*sw+bw*bw*bw) printf(“%5d”,i); 5 循环控制语句循环的嵌套:就是在一个循环体内又包含有循环。内嵌的循环还可以再嵌套其它的循环,这是所谓的“多层循环”。一般来说,内嵌了几层循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客运驾驶员安全责任协议
- 商场营业疫情防控措施
- 2025年建筑公司年度工作计划范文
- 医院安全管理体系及职责分配
- 综合体项目混凝土道路施工技术措施
- 医院感染控制工作计划
- 煤化工供应链管理职责
- 小学心理健康与安全教育计划
- 2025年学校教师安全教育培训方案
- 营养师在中学生贫血预防措施中的作用
- 企业模拟经营电子沙盘
- 专升本思政复习指导试题及答案
- 2025年涂料销售合同模板
- 2025-2030中国小武器和轻武器行业市场发展趋势与前景展望战略研究报告
- 手术安全核查制度
- 2023中华护理学会团体标准-注射相关感染预防与控制
- 2024年北京电子科技职业学院高职单招笔试历年职业技能测验典型例题与考点解析含答案
- IEC 61000-4-5 电磁兼容测试标准
- DB41∕T 1836-2019 矿山地质环境恢复治理工程施工质量验收规范
- 锡矿选厂生产承包合同
- 企业员工职务犯罪培训ppt课件
评论
0/150
提交评论