版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章,顺序结构程序设计,主要内容,4.1 C语句概述 4.2 字符数据的输入输出函数 4.3 格式输入与输出函数 4.4 顺序结构程序设计举例,4.1 C语句概述,一个C程序可以若干函数(系统、用户)组成 一个函数有函数首部和函数体组成 函数体由数据声明和执行语句组成 C语句分为,4.1 C语句概述,(一)控制语句 完成一定的控制功能 1. 选择结构 if else switch 2. 循环结构 for while do while 3. 转向语句 continue break return goto,4.1 C语句概述,4.1 C语句概述,4.1 C语句概述,4.1 C语句概述,补充:赋值
2、语句,赋值语句是由赋值表达式加上一个分号构成 例:a=100 赋值表达式 a=100; 赋值语句 条件中不能含有赋值符号,但是赋值表达式可以 包含于条件表达式中 例:if(a=b) t=a; 错误 if(a=b)0) t=a; 正确,补充:数据输入输出的概念及在C语言中的实现,(一)所谓输入输出是以计算机主机为主体而言 输出:从计算机向外部输出设备(显示器,打印机) 输出数据。 输入:从输入设备(键盘,鼠标,扫描仪)向计算机 输入数据。,(二)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的 例如: 字符输入函数: getchar( ) 字符输出函数: putchar(
3、 ) 格式输入函数: scanf( ) 格式输出函数: printf( ),补充:数据输入输出的概念及在C语言中的实现,(三).在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中. 例如:在调用标准输入输出库函数时,文件开头应该有: #include “stdio.h” 或: #include ,头文件,补充:数据输入输出的概念及在C语言中的实现,4.2 字符数据的输入输出,(一)字符输出函数 一般形式:putchar(ch) 函数作用:向终端输出一个字符。 可输出字符常量和字符变量的值;也可通过转义字符输出控制字符和其他转义字符。,字符型变量整型变量,
4、(一)字符输出函数 putchar函数,四种应用: (1) 用于输出字符常量 例如: putchar(B); putchar(4); putchar(,); (2) 用于输出字符变量 (3) 用于输出控制字符,例如: putchar (n); (4) 用于输出其他转义字符,例如: putchar(102); putchar();,4.2 字符数据的输入输出,例4.1 输出单个字符。 #include void main() char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c);putchar(n); ,运行结果:BOY,putcha
5、r(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,运行结果:B O Y,4.2 字符数据的输入输出,(二)字符输入函数 一般形式:getchar() 函数作用:从终端(或系统隐含指定的输入设备) 输入一个字符。 函数值: 从输入设备得到的字符。,(二)字符输入函数 getchar(),基本形式: (1) 作为独立的函数调用语句使用,例如: getchar (); (2) 作为表达式在赋值语句中使用,例如: c= getchar (); (3) 作为表达式出现在其他语句中,例如: printf(%cn,getchar();,
6、(二)字符输入函数 getchar(),注意: getchar函数是一个无参函数,后面的括号内虽然没有内容,但是不能将其省略。 getchar函数只能接收单个字符,输入的数字也按字符处理。如果输入多于一个字符时,只接收第一个字符。 在连续使用getchar函数时,要注意字符的输入形式。例如,有程序段: char chl,ch2; ch1=getchar( ); ch2=getchar( );,4.2 字符数据的输入输出,例4.2 输入单个字符。#includevoid main() char c; c=getchar(); putchar(c); putchar(n);,4.3 格式输入与输出
7、函数,(一)格式输出函数 函数作用:向终端设备按指定格式,输出任意类型的数据。 一般格式:printf(格式控制,输出表列),%d:以带符号的十进制形式输出整数 %o:以八进制无符号形式输出整数 %x:以十六进制无符号形式输出整数 %u:以无符号十进制形式输出整数 To be continued,4.3 格式输入与输出函数,%c:以字符形式输出,只输出一个字符 %s:输出字符串 %f:以小数形式输出单,双精度数,隐含输出六位小数 %e:以指数形式输出实数 %g:选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0,格式输出函数一般格式:,printf(格式控制字符串,输出项列表);,
8、必须用英文的双引号括起来。,作用是控制输出项的格式和输出一些提示信息。,要输出的表达式。,常量、变量、运算 符表达式、函数返回值等,每个输出项之间用逗号(,)分隔。,格式控制字符串:,组成:普通字符、转义字符、格式说明。,普通字符:按原样输出,主要用于输出提示信息。,转义字符:指明特定的操作。,格式说明:由“ % ” 和“格式字符串”组成:%格式字符串,它表示按规定的格式输出数据。,例:,#include stdio.h void main() int a=97,b=98; printf(1:%d %dn,a,b); /*普通字符,原样输出*/ printf(2:%d,%dn,a,b); /*
9、a,b以十进制整数形式输出*/ printf(3:%c,%cn,a,b); /*a,b以字符形式输出*/ printf(4:a=%d,b=%d,a,b); ,程序运行结果为:1:97 98 2:97,98 3:a,b 4:a=97,b=98,(1) 格式符。用来输出十进制整数。 几种用法: :按十进制整型数据的实际长度输出。 :为指定的输出字段的宽度。 如果数据的位数小于,则左端补以空格, 若大于,则按实际位数输出。 例: printf(%4d,%4d ,a,b); 若=123,12345,则输出结果为 123,12345 :输出长整型数据。 例: long =135790; /* 定义a为长
10、整型变量*/ printf (%ld,);,输出的数值不带符号,符号位也一起作为八进制数的 一部分输出。 例:int a=-1; printf(%d,%o,a,a); 在内存单元中的存放形式(以补码形式存放)如下: 1111111111111111 输出为: , 不会输出带负号的八进制整数。 对长整数(型)可以用“”格式输出。 还可以指定字段宽度。 例:(,); 输出为: 177777。 (数字前有2个空格),(2) 格式符。以八进制整数形式输出。,(3)格式符。以十六进制数形式输出整数。同样不会 出现负的十六进制数。 例: int ; printf(,); 输出结果为: ffff, 可以用“
11、”输出长整型数 也可以指定输出字段的宽度 例: “”,(4)格式符,以无符号十进制形式输出整数。 一个有符号整数(int型)也可以用格式输出; 一个unsigned型数据也可以用格式输出。 unsigned型数据也可用或格式输出。 (5)格式符,用来输出一个字符。 如: chard; printf(,d); 输出结果: 一个整数,只要它的值在255范围内,可以用 “c”使之按字符形式输出,在输出前,系统会将该 整数作为ASCII码转换成相应的字符; 一个字符数据也可以用整数形式输出。,例 无符号数据的输出。#includevoid main() unsigned int a=65535;int
12、 b=-2; printf(“a=%d,%o,%x,%un”,a,a,a,a); printf(“b=%d,%o,%x,%un”,b,b,b,b);,运行结果: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534,例: 字符数据的输出。#includevoid main() char c=a; int i=97; printf(“%c,%dn”,c,c); printf(“%c,%dn”,i,i);,运行结果:a,97a,97,例 无符号数据的输出。#includevoid main() int a=16,b=-16; unsigned int c=32
13、769; printf(“%d,%o,%x,%un”,a,a,a,a); printf(“%d,%o,%X,%un”,b,b,b,b);printf(“%d,%o,%x,%un”,c,c,c,c);,运行结果: 16,20,10,16 -16,177760,fff0,FFF0,65520 -32767,100001,8001, 32769,(6)s格式符 输出字符串. 。例如: printf(,) 输出字符串“”(不包括双引号)。 %ms,输出的字符串占m列,若串长大于m,则全部输出 若串长小于m,则左补空格。 %-ms,若串长小于m,字符串向左靠,右补空格。 %m. ns,输出占m列,只取字
14、符串中左端n个字符, 输出在m列的右侧,左补空格。 %-m.ns,n个字符输出在m列的左侧,右补空格, 若nm,m自动取n值。,例 字符串的输出。#includevoid main() printf(“%3s,%7.2s,%.4s,%-5.3sn”, “CHINA”, “CHINA”, “CHINA”, “CHINA”);,(7)格式符。用来以小数形式输出实数(包括单双精度) 有以下几种用法: 。不指定字段宽度,由系统自动指定字段宽度, 使整数部分全部输出,并输出位小数。 应当注意,在输出的数字中并非全部数字都是有效数字。 单精度实数的有效位数一般为位。 m.nf。指定输出的数据共占列,其中有
15、位小数。如果 数值长度小于,则左端补空格。 -m.nf与m.nf基本相同,只是使输出的数值向左端 靠,右端补空格。,例: 输出实数时的有效位数。#include void ain() ,; 111111111;222222222; printf(,); ,运行结果:.,例: 输出双精度数时的有效位数。#include void ain() double ,; x=1111111111111.111111111; y=2222222222222.222222222; printf(“%f”,x+y);,运行结果:3333333333333.333010,例: 输出实数时指定小数位数。#inclu
16、de void ain() float f=123.456; printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,运行结果:123.456001 123.456001 123.46 123.46 123.46,(8)格式符,以指数形式输出实数。 可用以下形式: e。不指定输出数据所占的宽度和数字部分的小数位数. 例: (,); 输出: 8列(小数部分占6位) 5列 (小数点前有且仅有一位非0数字) 所输出的实数共占列宽度。 (注:不同系统的规定略有不同), m.ne和-m.ne。、n和“”字符的含义与前相同。 此处指拟输出的数据的小数部分(又称尾数)的小
17、数位数。 若,则: printf(%e%10e%10.2e%.2e%-10.2e,f,f,f,f,f); 输出如下: 1.234560e+002 1.234560e+002 1.23e+002 1.23e+002 13列 13列 10列 9列 1.23e+002 10列,说明: 未指定,自动使. 超过给定的列,乃突破列的限制,按实际长度输出。 第3个数据共占列,小数部分占列。 只指定,未指定,自动使等于数据应占的长度。 第5个数据应占列,数值只有列,由于是“10.2”, 数值向左靠,右补一个空格。 (注:有的C系统的输出格式与此略有不同),(9)格式符,用来输出实数. 它根据数值的大小,自动选
18、格式或格式(选择 输出时占宽度较小的一种),且不输出无意义的零。 例:若,则 printf( ,); 输出如下: 123.468000 1.234680e+002 123.468 10列 13列 10列,说明: 用格式输出占列,用格式输出占列,用 格式时,自动从上面两种格式中选择短者(今以f格式 为短)故占列,并按格式用小数形式输出,最后3个 小数位为无意义的,不输出,因此输出123.468,然后右补 3个空格。格式用得较少。,说明: 除了X,E,G外,其他各式字符必须用小写。 可以在printf函数中的“格式控制”字符串中包含转义字符。 一个格式说明必须以“%”开头,以9个格式字符之一为结束
19、,中间可以插入附加格式字符。 想输出%,则应该在格式控制字符串中用连续两个%表示,格式说明可归纳如下:,% - 0 m . n h|L ,方括号表示该项可有可无,输出精度指示符。 对整数,表示至少要输出的数字个数,不足补数字,多出则原样输出。 对实数,表示小数点后至多输出的数字个数,不足补数字,多出则舍入处理。 对字符串,表示最多输出的字符个数,不足补空格,多出则丢弃。,格式字符,用来进行格式转换。 (重点掌握P53),输出长度修饰符: H或h:输出短整型数据的值。 L或l:输出长整型或双精度值。,十进制整数,指定输出宽度。 指定宽度实际宽度,补空格。 指定宽度实际宽度,按实际输出。 不指定宽
20、度,按实际输出。 如:10d,可选的标志字符 -:指定左对齐输出,缺省为右对齐输出 如:d,-d。,指定空项填0,例,#includestdio.h void main() int i=8; printf(%dt%dt%dn,+i,-i,i-); ,输出结果为: 7 6 8,注意:输出表列中的求值顺序,使用函数printf时要注意一个问题,那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右,也可从右到左。Turbo C是按从右到左进行的。,例,#include stdio.h void main() int a=3,b=4; printf(%dn,(a=b,b,a+3); /*
21、输出序列是一个逗号表达式*/ printf(%dn,a=b,b,a+3); /*输出第一个参数变量a的值*/ ,输出结果为: 7 4,注意:,格式字符与对应输出项类型要一致,否则正确的运算结果不能得到正确的显示结果。 #include void main() float a=1234.9999; printf(“a=%d”,a); ,二、格式输入函数scanf,函数功能: 从键盘输入若干任何类型的数据给所指的单元 一般格式: scanf(格式控制,输入地址列表),同printf函数,由若干个地址组成的列表。以逗号(,)间隔。 用变量名前面加取地址运算符“ scanf(“%d%d%d”,a在内存
22、中的地址 float b,c; scanf(a=%d,b=%f,c=%f, ,输入如下: a=1234,b=567.876,c=354程序运行结果如下: a=1234,b=567.876000,c=354.000000,使用scanf函数时应注意的问题 :,scanf()的格式控制字符串中没有转义字符。如scanf (“%dn”, float b,c; scanf(%2d%3f%4f, 输入如下: 123456787654321 程序运行结果如下: a=12,b=345.000000,c=6787.000000,#include void main() char *p, str20; scanf(%s, p); /*从健盘输入字符串*/ scanf(%s, str); printf(%sn, p); /*向屏幕输出字符串*/ printf(%sn, str); 输入如下: AboutChina 程序运行结果为: About China,4.4 顺序结构程序设计举例,例:输入三角形的三边 长,求三角形面积。 假设:三个边长a,b,c 能构成三角形。 已知面积公式: area= s=(a+b+c)*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海农林职业技术学院《小儿内科》2025-2026学年期末试卷
- 沈阳建筑大学《旅游消费者行为学》2025-2026学年期末试卷
- 苏州科技大学《推拿学》2025-2026学年期末试卷
- 上海兴伟学院《超声影像学》2025-2026学年期末试卷
- 山西大学《妇产科护理学实践与学习指导》2025-2026学年期末试卷
- 沈阳药科大学《博弈论与信息经济学》2025-2026学年期末试卷
- 上海城建职业学院《儿童发展》2025-2026学年期末试卷
- 上海工会管理职业学院《大学美育》2025-2026学年期末试卷
- 无锡太湖学院《互联网与社会》2025-2026学年期末试卷
- 山西应用科技学院《现代物流学》2025-2026学年期末试卷
- 妊娠合并肺栓塞
- 光伏电站应急救援培训课件
- 人体动静脉课件
- 2025年广东省初中学业水平考试语文试卷(含答案详解)
- 2025年江苏护理职业学院单招《数学》考前冲刺练习试题附参考答案详解(培优A卷)
- 泰山学院中国地理课件第9章 东北区
- 作风建设培训课件民航
- 学堂在线 雨课堂 学堂云 科研伦理与学术规范 期末考试答案
- 二手车经纪人题库及答案
- 专项维修资金存放服务方案投标文件技术方案
- T/CAQI 96-2019产品质量鉴定程序规范总则
评论
0/150
提交评论