版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 顺序程序设计4.1 C语句概述 和其他高级语言一样,C语言的语句用来向计算机系统发出操作指令。一个实际的程序应当包含若干语句。对于C语言的语句可以分为以下几类: C语言的基本语句C语言数据操作语句简单语句空语句(;)复合语句(一条或多条语句)表达式语句(表达式;)函数调用语句(函数名(参数表);)流程控制语句结构化语句条件语句(if语句,switch语句)循环语句 while语句do-while语句 for语句非结构化语句 break语句continue语句 return语句 非限定转向语句 4.1.1 简单语句1. 表达式语句由表达式组成的语句称为表达式语句。一般形式为: 表达式;注
2、意:分号是C语言语句的结束标志。表达式语句可分为运算符表达式语句和赋值语句。(1)运算符表达式语句 运算符表达式语句由运算符表达式后跟一个分号组成。例如: i+;语句的功能是,变量i的值增l。 -j;语句的功能是,变量j的值减l。(2)赋值语句 赋值浯句由赋值表达式后跟一个分号组成。例如: xl;*给x赋值为l* x=x*3*cos(x);*计算表达式的值,并赋给x*2函数调用语句函数调用语句由函数调用表达式后跟一个分号组成,其作用主要是完成特定的任务。例如: scanf(f,&x);*输入函数调用语句,输入变量x的值* printf(f,x);*输出函数调用语句,输出变量x的值*函数调用语句
3、的一般形式是: 函数名(参数列表);3. 空语句空语句用一个分号表示,其一般形式为: ; 它在语法上占有一个简单语句的位置,而执行该语句不做任何操作。空语句常用于循环语句中,构成空循环。4. 复合语句复合语句是由花括号将多条语句组合在一起而构成的,在语法上相当于一条语句。如下面就是一个复合语句: z=x+y; t=z/100; printf(“%f”,t); 使用复合语句应注意: 复合语句中最后一个语句中的最后分号不能忽略不写,同时在复合语句结束的“”之后,不需要再加分号。4.2 赋值语句 赋值语句是由赋值表达式加上一个分号构成。由于赋值语句应用十分普遍。 C语言的赋值语句具有其他高级语言的赋
4、值语句的一切特点和功能。但也应当注意到它们的不同: (1) C语言中的赋值号“=”是一个运算符,在其他大多数语言中赋值号不是运算符。 (2) 关于赋值表达式与赋值语句的概念,其他多数高级语言没有“赋值表达式”这一概念。作为赋值表达式可以包括在其他表达式中,如: if( (a=b)0) t=a; 而:if( (a=b;)0) t=a;是错的。4.3 数据输入输出的概念及在C语言中的实现(1) 所谓输入输出是以计算机为主体而言的。从计算机向外部输出设备输出数据称为“输出”,从输入设备输入称为“输入”。(2) C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输
5、入输出函数,例如:printf函数和scanf函数。(3) 在使用C语言库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。在头文件中包含了与用到的函数有关的信息。例如使用标准输入输出库函数时,要用到“stdio.h”文件。4.4 字符数据的输入与输出 一般:C语言提供了一些标准的输入/出函数系统函数。4.4.1 putchar函数(字符输出函数) putchar函数的作用是向终端输出一个字符。 形式: putchar (c );功能: 向终端(一般为显示器)输出一个字符,其中c为 字符型或整型变量注意: 用该函数时,须用预编译命令: #include “stdi
6、o.h ” 或 #include main( ) int i=97; char ch=a; putchar( i ); *输出字符a * putchar(n);*换行,可以输出控制字符起控制作用* putchar(ch); *输出字符变量ch的值a*程序运行结果为:aa再举例: #include stdio.h main( ) char a, b, c; a=B ; b=O ; c=Y; putchar(a); putchar(b); putchar ( c); 结果: BOY putchar(a); putchar( n ); putchar(b); putchar( n ); putcha
7、r(c); putchar( n );*利用putchar还可输出其它转义字符结果: B O Y *若将最后一行改为:putchar( 101 ); 输出Aputchar( ); 输出putchar( 015 ); 输出4.4.2 getchar函数(字符输入函数) 此函数的作用是从输入设备(一般为键盘)上输入一个字符。getchar函数没有参数,其一般形式为 getchar() 该函数的值就是从输入设备得到的字符。 例如:#include main( ) int ch; chgetchar();*从键盘输入一个字符赋给ch* putchar(ch);*输出ch对应的字符*运行该程序时,输入如
8、下:a则变量ch的值为a。程序执行后输出的结果为:a注意:(1) 执行getchar()输入字符时,键入字符后需要敲回车键,回车后,程序才会响应输入,继续执行后续语句。(2) getchar()函数只接收一个字符。getchar()函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。例:putchar(getchar() );(3) 如果在一个函数中要调用getchar()函数,应该在该函数的前面(或本文件开头)加上“包含命令”#include或 “stdio.h”4.5 格式输入与输出 4.5.1 printf函数(格式输出函数) 在前面各章节中已用到pr
9、intf函数,它的作用是向终端输出若干个任意类型的数据(putchar只能输出字符,而且只能是一个字符,而printf可以输出多个数据,且为任意类型)。 1. printf函数的一般格式为 printf( 格式控制,输出项列表); 如:printf(“%d, %cn”, i, c); 括弧内包括两部分: (1) “格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: 普通字符:即需要原样输出的字符。例如上面printf函数中双撇号内的逗号、空格和换行符。 格式说明: 由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”
10、字符开始的。(2) “输出表列”是需要输出的一些数据,可以是表达式。例: printf(“%d %d”, a, b); 格式说明 输出表列printf函数的一般形式可以表示为: printf(参数1,参数2,参数3参数n) 其功能是将参数2参数n按参数1给定的格式输出。 对不同类型的数据用不同的格式字符。常用的有以下几种格式字符:(1) d 格式符。用来输出十进制整数。有以下几种用法: 如直接用%d,则将出错。(1) %d: 按数据的实际长度输出。(2) %md: m表示输出字段宽度。若实际位数m,则m自动取n值,即保证n个字符正常输出。(2)%ms, 如果串长小于m,则在m列范围内,字符串向
11、左靠,右补空格。(7) f: 按小数形式输出十进制实数,有以下几种形式。 %m.nf, 指定输出的数据共占m列,其中有n位小数。如果值长度小于m,则左端补空格。 %mn.f, 与%m.nf基本相同,只是使输出的数值向左端靠,右端补空格。 %f, 不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。%f %m.nf %m.nf(8) %e : 以指数形式按标准宽度输出十进制实数。标准输出宽度共占13位,分别为:尾数的整数部分为非零数字占l位,小数点l位,小数占6位,e占1位,指数正(负)号占l位,指数占3位。结果: 1.23456共13列6例5例可有%m.ne和%m.ne的形
12、式e+002例: printf ( %e , 123.456)(9) %g, g格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。 在使用printf函数时,还有几点要说明: (1) 除了E、X、G外,其他格式字符必须用小写字母。 (2) 可以在printf函数中的“格式控制”字符串内包含“转义字符”。 (3) 在上面介绍了d,o,x,u,c,s,f,e,g等字符,如用在“%”后面就作为格式符号。一个格式说明以“%”开头。 (4) 如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如: printf(“%f%”,1
13、.0/3); 输出:0.333333% 4.5.2 scanf函数(格式输入函数) 1. 格式输入函数的一般形式 scanf(格式控制,地址表列); “格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。例: main( ) int a, b, c; scanf( %d%d%d , &a, &b, &c); prinft( %d,%d,%dn, a, b, c); 运行,机器等待你输入: 3 4 5 输出结果 3, 4, 5上面的&a、&b、&c中的“&”是“地址运算符”,&a指a在内存中的地址。上面scanf函数的作用是:按照a、b、
14、c在内存的地址将a、b、c的值存进去。 2. 格式说明 和printf函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。对于scanf函数所用到的格式字符,在课本P80表4.4列出。下列对使用scanf函数的一些说明: (1) 对unsigned型变量所需的数据,可以用%u,%d或%o,%x格式输入。 (2) 可以指定输入数据所占列数,系统自动按它截取所需数据。如:scanf(“%3d%3d”, &a,&b); 输入为:123456 则:a=123b=456 此方法也可用于字符型: scanf(“%3c”,&c); 如果输入为:abc, 则c只能为a。 (3) 如果在
15、%后有一个“*”附加说明符,表示跳过它指定的列数。如:scanf(“%2d %*3d %2d”,&a,&b); 如果输入信息:12 345 67则将12赋给a,67赋给b。 (4) 输入数据时不能规定精度。如:scanf(“%7.2f”,&a);是不合法的。3. 使用scanf函数时应注意的问题scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些相同的字符。如: scanf(“%d,%d”,&a,&b);则应该输入:3,4在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入
16、。在输入数据时,遇以下情况时该数据认为结束。 1. 遇空格,或按“回车”或“跳格”(Tab)键。 2. 按指定的宽度结束,如“%3d”,只取3列。 3. 遇非法输入。 从结构化程序设计角度出发,程序有三种结构:顺序结构选择结构循环结构4.6 顺序结构程序涉及举例这一章介绍顺序结构程序 在顺序结构程序中,一般包括以下几个部分:1. 编译预处理命令2. 函数:在函数体中,包含着顺序执行的各部分语句。主要有以下几个部分: (1)变量类型的说明部分; (2)提供数据部分; (3)运算部分; (4)输出部分。表示ABAB先执行A, 再执行B.例3.1 输入圆的半径,输出圆的周长和面积。分析:(1) 定义
17、实型变量r、l、s用于存放半径、周长、面积;(2)调用输入函数,输入r;(3)分别利用周长公式和面积公式求出l、s;(4)调用输出函数输出l、s。程序:#include void main() float r,l,s; scanf(%f,&r);/*输入一个浮点数据,存放地址&r */ l=2 * 3.14159 * r;/*计算周长,赋值给1 */ s=3.14159 * r * r;/*计算面积,赋值给s */ printf(n l=%8.4f,1);/*输出周长,数据共占8个字符宽,4位小数*/ printf(n s=%8.4f,s);/*输出面积,数据共占8个字符宽,4位小数*/ 例3
18、.2 输入三角形的三边长,求三角形的面积。解:设三边为a,b,c,从数学公式可以知道三角形的面积的计算公式如下: 其中:程序如下: #include main() float a,b,c,s, area; scanf(“%f,%f,%f”,&a, &b, &c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2fn”, a,b,c,s); printf(“area=%7.2fn”, area); 例3.3 用格式输入函数输入三个字符,并用输出函数反向输出三个字符和
19、它们的ASCII码。分析:处理流程同例3.2。程序: #include void main() char ch1,ch2,ch3; scanf(%c%c%c,&ch1,&ch2,&ch3);/*输入三个字符*/ printf(%c,%dn,ch3,ch3);/*输出字符和它的ASCII码*/ printf(%c,%dn,ch2,ch2); printf(%c,%dn,ch1,ch1); 例3.4 输入任意三个整数,求它们的和与平均值。分析: (1)输入三个整数存入变量num1,num2,num3; (2)求三个整数的平均值,赋给变量average; (3)输出average。程序: void main() int num1,num2,num3,sum; float average; printf(Please input three numbers: ); scanf(%d,%d,%d,&num1,&num2,&num3);/*输入三个用逗号分隔的整数*/ sum= num1+num2+num3; /*求和*/ average=(num1+num2+num
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西壮族自治区崇左市江州区驮卢中学2026-2027学年九年级上学期9月阶段检测语文试题(含答案)
- 食醋醋酸发酵工岗位技能考试试卷及答案
- 桑园养蚕工岗位技能考试试卷及答案
- 橡胶栽培工安全宣教评优考核试卷含答案
- 耐蚀衬胶工岗前工作效率考核试卷含答案
- 井下出矿工岗前实操知识水平考核试卷含答案
- 熔融纺纺丝操作工岗前品牌建设考核试卷含答案
- 印染烧毛工安全教育考核试卷含答案
- 铁合金原料加工工岗前基础晋升考核试卷含答案
- 2026年生物质能生物燃料生产技术创新应用试题及答案
- 2026年陕西英语单招模拟试题及答案详解
- 2026年商法自考试题及答案
- 钢栈桥安全技术交底记录培训课件
- 2026重庆科瑞南海制药有限责任公司招聘15人笔试备考题库及答案详解
- 福建南安市文体旅运营管理有限公司招聘笔试题库2026
- 专科儿科护理学试题及答案(完整版供参考)
- 2026年6月大学英语四级考试真题(第1套)
- 结构加固(增大截面、粘钢、碳纤维)专项施工方案
- 2026杭州市市级机关事业单位招聘编外人员综合基础知识和综合应用试题附答案
- 大学英语四级词汇表 (完美打印版)
- 2026年青少年心理健康教育手册及测试卷及答案
评论
0/150
提交评论