版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 顺序程序设计,4.1 C语言语句 4.2 字符输入/输出函数 4.3 格式输入/输出函数 4.4 顺序结构程序设计举例 4.5 作业与实验,4.1 C语言语句,4.1.1 控制语句 条件语句: ifelse语句 多分支选择语句: switch语句 当型循环语句: while语句 直到型循环语句: dowhile语句 计数型循环语句: for语句 中止本次循环语句: continue语句 中止整个循环语句: break语句 函数返回语句: return语句 无条件转移语句: goto语句,4.1.2 表达式语句 在C语言中, 任何表达式都可以加上分号而成为相应的表达式语句,存在于程序中。
2、 例如: i+; a=b=c=1; x=y=1, x*x+y*y; sin(0.75); ,相应的赋值语句有基本赋值语句与复合赋值语句。例如: S=1+2+3+4+5; x+=1; y*=a; x=y=z=a=b=c=1; 函数调用语句由函数调用表达式加分号构成。 例如: exp(x); /*求eX*/ fabs(x); /*求|x|*/ sqrt(x); /*求 */,4.1.3 特殊语句,1. 复合语句 当if语句中的选择体、while语句中的循环体需多条语句描述时,就必须采用复合语句。 复合语句是放在一对花括号中的一组语句。 复合语句在语法上是一个整体,相当于一个语句。凡是能使用简单语句
3、的地方,都可以使用复合语句。 复合语句又称为分程序,它可以有属于自己的数据说明部分,即可在复合语句中定义变量。 复合语句的后花括号之后不能加分号,最后一个语句的分号不能漏掉。,2. 空语句 空语句是一种概念, C语言的空语句仅由分号构成,在编译时不产生任何指令, 在执行时不产生任何操作。只作为形式上的语句,被填充在控制结构之中。 空语句常用于: (1) 构成标号语句, 标识程序中相关位置。 (2) 循环语句中空循环体。 (3) 模块化程序中未实现的模块及暂不联入的模块。,4.2 字符输入/输出函数,C语言提供了两个标准的字符输入/输出函数,它们分 别是getchar和putchar。 4.2.
4、1 putchar函数(字符输出函数) 该函数形式为: putchar() putchar是函数名,其参数可以是一个字符常量或字符变量。该函数的功能是向终端输出一个字符。因整型和字符型是通用的,所以putchar函数也能够把代表某个字符编码的整数作为一个字符输出。,4.2.2 getchar函数(字符输入函数) 该函数形式为: getchar( ) getchar是函数名,后面圆括号内是空的,说明该函数没有参数。该函数的一般使用形式是: =getchar( ); 功能是从键盘上敲入一个字符,然后把它赋给字符变量,单独调用getchar( )函数没有实际意义。,#include /*文件包含命令
5、*/ main( ) char c; c=getchar( ); putchar(98); putchar(c) ; putchar(y); putchar(n); 经编译后运行如下: o boy,4.3 格式输入/输出函数,4.3.1 printf函数 一般格式: printf(格式控制字符串,输出项列表) printf函数将输出项的值按指定的格式输出,不同类型的数据使用不同的格式说明符。,表41 输出的数据类型与其控制格式的对应关系,1. %d格式 (1)%d格式用来输出十进制整数,按数据的实际长度输出。 (2)可以对输出数据所占的列数加以限制,方法是在%和d之间加一整数,整数可正可负。例
6、如: printf(a=%5d,13); 输出为:a=13 printf(a=%-5d,13); 输出为:a=13 printf(a=%3d,12345); 输出为:a=12345,整数m为正时,左补空格;m为负时,右补空格。若m小于实际位数,则按实长输出。 (3)当输出的数据大于32767时,不能再用%d格式,这时应该用长格式%ld来输出: printf(a=%ld,1234567); 输出为:a=1234567 也可以对长格式的位数加以限制,方法同(2)。,2. %o格式 %o以八进制形式输出整数,其机理是把整数在内存中的ASCII编码由低位向高位三位一组进行分节,每一节用一个八进制数码表
7、示。这样如果原来的数据为负,则符号位的1也被作为八进制数的一部分加以处理了。 3. %x格式(或%X) 这是以十六进制形式输出整数,其机理和八进制输出一样,只是它是对二进制编码按四位一组进行分节,每节用一个十六进制数码表示,同样也不考虑符号。,例如: int a = -1; printf(%d,%o,%xn, a, a, a); 输出结果为: -1,177777,ffff。 a = -1的内存形式为,4. %u格式 %u以十进制形式输出无符号整数。 一般,在输出整数时,均用相应的格式输出,但也 可用其它格式输出。此时,按不同类型的整型数据间的 赋值规则来处理。,main( ) unsigned
8、 a=65535; int b= -1; long c=32768; printf(“a=%d,%un”, a, a); printf(“b=%d,%un”, b, b); printf(“c=%d,%ldn”, c, c); 编译后运行结果为: a= -1,65535 b= -1,65535 c= -32768,32768,5. %c格式 这种格式输出一个字符,和字符ASCII编码对应的整数也以字符形式输出,并可以为其指定宽度。如: char ch=a; printf(%c,%cn,ch,97); printf(%5cn,ch); 则结果为: a,a a,6. %s格式 这个格式用来输出字符
9、串。 (1)%s格式将字符串中的字符逐个输出,直到遇到第一个0字符为止,即并不一定把双引号中的内容全部输出。例如: printf(s=%sn, ”China”); 输出为:s=China printf(s=%sn, ”China0Japan”); 输出为:s=China 字符0后的内容被舍掉,0本身也不输出。如果字符串中有控制字符,则控制字符也会发挥作用。,(2) 可指定输出字符串的长度,规则如前。如: printf(s=%6s,book); 输出:s=book(正数,左补空格) printf(s=%-6s,book); 输出:s=book(负数,右补空格) printf(s=%2s,book
10、); 输出:s=book(突破限制),(3)输出字符串前端的部分字符格式%.s。这种格式指明:在m列宽度中输出字符串的前n个字符,当mn时,有m=n。如: printf(s=%5.3s,China); 输出为:s=Chi printf(s=%-5.3s,China); 输出为:s=Chi printf(s=%2.3s,China); 输出为:s=Chi,7. %f格式 这个格式以小数形式输出单精度、双精度类型的浮点数。 (1)以%f格式输出浮点数时,整数部分全部输出,小数部分输出6位,但输出的不一定全是有效数字。对单精度数只有左边7位有效,而对双精度只有前16位有效。 (2)也可以指定输出的宽
11、度和小数位数,如: printf(f=%10.2fn,123.456); 输出:f=123.46 输出宽度中包含小数点和正负号位数,小数部分进行四舍五入。,8. %e格式(或%E) 这种格式是以指数形式输出浮点数,包括单精度和双精度数。输出时,尾数的整数部分只有1位,系统自动指定尾数的小数部分宽度和指数部分的宽度。对此不同的系统有不同的规定。对Turbo C来说,小数部分5位,指数部分4位(包括字母e或E,1位阶符,2位阶码)。例如: printf(“%en”,123.4567); 输出为:1.23457e+02 printf(“%en”,123.4); 输出为:1.23400e+02,9.
12、%g格式(或%G) 这种格式用于输出尾数中不带无效0的浮点数,以尽可能地少占输出宽度。例如: printf(g=%g,123.4); 输出:g=123.4 这种输出更符合人们的阅读习惯。 10. printf函数的控制字符的进一步说明 (1)以上我们介绍了9种控制字符的一般用法,为了满足特殊的要求,还可以对控制字符加一些特殊的修饰。修饰符或标志共有6种,如表42所示。,表42 格式控制串中的标志(修饰符),main( ) printf(%+d,%+dn,786, -786); /*输出:+786,-786*/ printf(a=%d,a=%dn,5, -5); /* 输出:a=5,a=-5*/
13、 printf(%on,1427); /*输出:02623*/ printf(%xn,1427); /*输出:0 x593*/ printf(%gn,1427.00); /*输出:1427*/ printf(%gn,1427.00); /*输出:1427.00*/ printf(%+09d,125); /*输出:+00000125*/ printf(%*.*f,7, 2, 87.4573); /*输出:87.46*/ ,(2)精度说明。 (3)程序中易出现的错误: 把除%X,%G,%E外的控制字符写成大写,如%D等。 试图用%c格式输出字符串的第一个字符。如: printf(%c,China)
14、; 这样输出不了C。 试图用%s格式输出字符。如: printf(%sn,a); 结果也是错误的。,1. 以下程序的输出是( )。 main( ) int a=011, b=101; printf(“%x,%o”, +a, b+); A.12,145 B.9,144 C.a,145 D.a,5 2.以下语句的输出是( )。 int x= -1; printf(“%d,%u,%o”, x, x, x); A.-1,-1,-1 B.-1,32767,-177777 C.-1,32768,177777 D.-1,65535,177777,C,D,3. 以下程序的输出是( )。 main( ) int
15、 x=02, y=3; printf(“x=%d,y=%d”, x, y); A.x=2,y=3 B.x=%2,y=%3 C.x=%d,y=%d D.x=%d,y=%d,D,4.3.2 scanf函数,scanf函数能对各种类型的数据进行格式化输入,变量将在程序执行过程中得到从键盘输入的值。 scanf函数的一般格式为: scanf(格式控制字符串,输入项地址列表) 前面我们已知,scanf的输入项列表中是以逗号分开的变量的地址,即每个变量名前面须加一个取地址运算符 要通过以下的语句,使k1、k3 的值为10,k2、k4的值为20,则正确的输入形式是( )。 scanf(“%d%d”, 其中表
16、示回车,表示空格。 A.1020 B.1020 1020 1020 C.10,20 D.1020 10,20 10,20,D,2.若有:int x; float y; 那么,以下输入语句中( )是正确的。 A.scanf(“%f%f ”, A.23.4c B. 23.4c C.2,3.4,c D. 23.4c,D,C,4.4 顺序结构程序设计举例,关于程序设计的过程可分三步走:分析问题(Question)、设计算法(Algorithm)及实现程序(Program),简称QAP方法。,例 4.1 输入三角形的三条边长,求三角形的面积。我们 假设输入的三边能构成三角形。 数据分析:找出和问题有关的
17、量,每个量用一个变量表示(注意考虑数据类型)。 输入量:三边a、b、c 中间量:s 输出量:面积area 算法分析: S1:输入有效的三边 S2:计算三角形面积 S3:输出三角形面积,细化S2可得三角形面积的计算公式: 因此,还要定义一个中间变量s,并且要把代数公式转换 成合法的C语言表达式。在C语言中要求某个量的平方根, 就必须调用库函数sqrt,同时还要在程序的开头加一条文 件包含命令:#include。 s=(a+b+c)/2 area=sqrt(s*(s-a)*(s-b)*(s-c),s=(a+b+c)/2, 算法实现: include /*包含数学函数头文件*/ main( ) fl
18、oat a, b, c, s, area; scanf(%f, %f, %f, /*规定结果的精度*/,例4.2 从键盘输入一个大写字母,要求改用小写字母输出。 数据分析: 输入量:大写字母c1 输出量:小写字母c2 算法分析: S1:输入大写字母c1 S2:得到与c1相应的小写字母c2 S3:输出小写字母c2 S2可由表达式c2=c1+32来实现。, 算法实现: #include /*包含标准输入/输出函数头文件*/ main( ) char c1, c2; c1=getchar( ); /* scanf(“%c”, ,例4.3 求一元二次方程ax2 +bx+c=0的两个实根。a, b, c 由 键盘输入,设b2 - 4ac0。 数据分析: 输入量:三个系数a, b, c 中间量:d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件项目经理开发效率与成本控制绩效衡量表
- 抵制不良诱惑坚定价值立场七年级主题班会课件
- 技术部新设备采购型号及数量确认函(5篇范文)
- 催办2026年员工培训计划启动批复函8篇
- 纯三氧化钨、仲钨酸铵、兰钨制取工标准化测试考核试卷含答案
- 临床检验类设备组装调试工诚信道德强化考核试卷含答案
- 2026四川长虹民生物流股份有限公司招聘总帐会计岗位1人考试备考题库及答案详解
- 航空乘务长国际航班服务绩效衡量表
- 工业自动化改造升级服务手册
- 2026年昆明市五华区人民法院招聘司法辅助人员和警务辅助人员(1人)笔试备考试题及答案详解
- 建设项目安全设施施工情况报告
- 2025航空工业信息技术中心(金航数码)校招参考题库必考题
- 安全环保消防规范制度
- 鼻咽癌的病理课件
- 平行线-2024苏科版七年级数学上册同步练习(含答案解析)
- 中医学员考试针灸题及答案
- 控告申诉业务竞赛综合业务知识考试试卷(二)
- T/CCS 025-2023煤矿防爆锂电池车辆动力电源充电安全技术要求
- 《农业法规普及讲座》课件
- DB33T 1368-2024医院“一站式”综合服务中心建设与服务规范
- 特种设备安全检查表
评论
0/150
提交评论