第3章 顺序结构程序设计2

合集下载

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。

C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。

这些函数的说明都包括在stdio.h文件中。

②main是主函数的名称。

第3章 顺序结构程序设计

第3章 顺序结构程序设计
(5) 有一个或多个输出。算法的目的是为解决一个 具体问题,而结果的输出正是验证这一目的的 最好方式,没有输出的算法是没有意义的。
3.1.3 算法的表示
➢对于同一算法,允许在算法的描述和实 现方法上有所不同。常用的算法描述方 法可以归纳为以下几种:
自然语言 传统流程图 结构化流程图(N-S流程图) 伪代码 计算机语言
i+1i
N
i>5
Y
结束
输出t 26
开始
例2:将欧几里德 算法用流程图的 形式表示。
Y
输出n
输入m,n
m%nr
r=0
N nm
结束
rn
➢通过上面的例子可以看出流程图是表示算 法的较好的工具
➢一个流程图包括以下几部分:
(1) 表示相应操作的框 (2) 带箭头的流程线 (3) 框内外必要的文字说明
➢流程线不要忘记画箭头,否则难以判定各 框的执行次序
if(m<n)
{t=m; m=n; n=t;}
/* 若m中的数小于n中的数,交换m和n中的数 */
r = m % n;
while (r)
{ m = n;
n = r;
r = m % n;
}
printf("%d"\n,n);
}
3.2 基本语句
3.2.1 程序的结构 3.2.2 C语言的基本语句 3.2.3 赋值语句
9
什么是算法:
♦计算机算法可分为两大类别:
● 数值运算算法(求数值解) ● 非数值运算算法(排序、查找搜索等)
♦数值运算的目的是求数值解 ♦非数值运算包括的面十分广泛,最常见
的是用于事务管理领域
10
简单的算法举例:

第3章 顺序结构程序设计

第3章 顺序结构程序设计

第三章顺序结构程序设计一、输出函数printf的使用使用的格式:printf(“输出格式串”,表达式表); /*printf要小写*/重点掌握输出格式符① 格式符:%d 以普通整型输出(不可以写成%D)%md 以普通整型输出,数据占m位,右对齐%+md 以普通整型输出,数据占m位,右对齐(正数的前面有+号)%-md 以普通整型输出,数据占m位,左对齐%hd 以短整型输出%ld(或%Ld) 以长整型输出%u 以无符号整型输出%o 以八进制形势输出%x(或%X) 以十六进制形势输出%f 以单精度小数形势输出,点后6位小数%lf(或%Lf或%f) 以双精度小数形势输出,%±m.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%.nf 以单精度小数形势输出,点后n位小数,且进行四舍五入%c 以字符形式输出%s 以字符串形式输出说明:以上的常用格式符必须和后面的变量一一对应,并且后面的变量是什么类型前面就必须用相应的格式符例:int a=-2;unsigned int b=30;float c=3.1456;printf(“%d%u%5.2f”,a,b,c); 问:输出结果是什么?(-230 3.15)②普通字符普通字符原样输出,它不控制变量的输出。

printf(“a=%d,b=%u,c=%5.2f”,a,b,c); 问:输出结果是什么?③转义字符\n 回车且换行\r 回车但不换行\b 退一个字符\t 走一个制表位(8个字符)\\ 转译成\\’转译成’\”转译成”%% 转译成%\ddd 转译成1~3位八进制所对应的ascii码值所代表的字符\xdd 转译成1~2位十六进制所对应的ascii码值所代表的字符二、输入函数scanf的使用格式:scanf(“格式串”,变量地址列表);重点掌握输入格式(有格式符和普通字符,没有转义字符)① 格式符:%d 以普通整型输入%ld(%Ld) 以长整型输入%hd 以短整形输入%md 取整型的m位%u 以无符号型输入%o 以八进制输入%x(%X) 以十六进制输入%f 以单精度小数输入%lf(%Lf) 以双精度小数输入%mf 以单精度小数输入(但是不能规定它的精度。

第3章 顺序结构程序设计

第3章 顺序结构程序设计

3.2 实现顺序结构程序设计的基本语 句
• 赋值语句 语句
赋值语句由赋值表达式加上一个分号构成,一般形式为: 变量=表达式; 变量=表达式; 例如: radius=14.5; i++; x+=2; 赋值语句是将右边表达式的值赋给左边的变量中去。赋值 语句要先对表达式加以计算求得其值,而后再将求得的值赋给 左边的变量中去,因此可以说赋值语句兼有计算功能。
例3.1
例3.2
例3.3
• 输出项表 输出项表中可以有多个输出项,各项之间用逗号分隔。 • 注意事项: ①格式控制中的格式说明符必须按从左到右的顺序,与输出 项表中的每个数据一一对应。 ②除x,e,g外,其他类型转换字符必须用小写字母。 ③类型转换字符紧跟在“%”后面时作为类型转换字符,否则 上一页 将 作为普通字符处理。
• 标准输入输出
C语言本身并不提供输入输出语句,其输入输出操作是由标 准库函数来实现的,在使用标准库函数时,要用预编译命令: 首页 上一页 #include将“stdio.h”文件包括到用户源文件中。
– 格式输出函数—printf()
形式: printf(“格式控制”[,输出项表]); printf( 格式控制” 输出项表] • 格式控制 ①普通字符:即需要原样输出的的字符信息。 ②格式说明符:即用%开头后面跟有一个字母,它规定了输 出项的输出形式。常用格式说明符见表3.1和表3.2。 ③转义字符:以“\”开头的字符序列。常用转义字符见表3.3。
上一页
–单个字符的输入—getchar()函数
形式: c=getchar(); c=getchar(); 执行上面的调用时,变量c将得到用户从键盘输入的一 个字符值,这里的c可以是字符型或整型变量。

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构

06c语言程序设计教案程序的控制结构—顺序结构int a=-1;printf(“%d,%o”,a,a);输出结果为:-1,177777这是因为-1在内存中以补码形式存放(见图3-2)。

八进制数为从低位开始,以三位一组划分为一个八进制数。

3)x格式符。

以十六进制数无符号形式输出整数。

例如:int a=-1;printf(“%x,%o,%d”,a,a,a);输出结果为:ffff,177777,-1十六进制数为从低位开始,见图3-2,以四位一组划分为一个数。

4)u格式符。

以十进制数无符号形式输出整数。

一个有符号的(int)型数据能够用%d格式输出,也能够用%u格式输出。

要注意两类数据的取值范畴大小。

例如:无符号数据的输出。

main(){unsigned int x=65535;int y=-1;printf(“x=%d,%o,%x,%u\n”,x,x,x,x);printf(“y=%d,%o,%x,%u\n”,y,y,y,y);}运行结果为:x=-1,177777,ffff,65535y=-1,177777,ffff,65535即-1的二进制形式以无符号形式输出时为整数65535。

5)c格式符。

用来输出一个字符。

例如:char x=’A’;printf(“%c,%d\n”,x,x);运行结果为:A,65能够看出,一个范畴在0~255的整数,既能够用%d格式输出,也能够用%c格式输出。

输出该整数或者整数对应ASCII的字符。

6)s格式符。

用来输出一个字符串,该格式有以下用法:①%s例如:printf(“%s”,”HELLO”);运行结果为:HELLO②%±ms,假如%ms字符串的实际宽度小于m,右对齐,左端补空格,%-ms,字符串左对齐,右端补空格;否则,不受m限制,输出实际宽度。

③%±m.ns,若%m.ns取字符串左端n个字符,输出在m列的右端,左端补空格;%-m.ns,取字符串左端n个字符,输出在m列的左侧,右侧补空格;若m<n,则m自动取n 值输出n个字符。

第3章顺序结构程序设计

第3章顺序结构程序设计
Advanced Programming
一、C的数据类型
2、 变量 • 变量代表内存中具有特定属性的一个存储单元,它
用来存放数据,这就是变量的值,在程序运行期间, 这些值是可以改变的。
int a=25;
2001H
25
2002H
2003H
Advanced Programming
一、C的数据类型
2、 变量
Advanced Programming
二、常量与变量
1、 常量和符号常量
(1)整型常量
• 在一个整常量后面加一个字母u或U,认为是unsigned int 型。
• 在一个整常量后面加一个字母l或L,则认为是long int型常 量。 如123l.432L.0L等。
Advanced Programming
❖每个二进位的值是0或1
54
01
0 1 2 3 4 5 6 7 8 9 10
32
10
10
01
……...
Advanced Programming
一、C的数据类型
1、整型数据
常见的整型类型:
类型
类型说明符 长度 数的范围
基本整型 int
2字节 -32768~32767
短整型
short
2字节 -215~215-1
一、C的数据类型
1、 常量和符号常量 (4)字符串常量
• C规定:在每一个字符串常量的结尾加一个 “字符串结束标志”,以便系统据 此判断字符串是否结束。
C规定以字符’\0’作为字符串结束标志。
如:如果有一个字符串常量”CHINA” ,实际上在内存中是:
C H I N A \0
它占内存单元不是5个字符,而是6个字符,最后一个字符为’ \0’。 但在输出时不输出‘\0’。

第3章顺序结构程序设计

第3章顺序结构程序设计
返回
3.3.1 putchar函数(字符输出函数)
putchar函数的作用是向终端输出一个字符: 例如:
putchar(c); 是输出字符变量c的值。 c可以是字符型变量或整型变量。
返回
例3-3
【例3-3】输出字符串。 #include “stdio.h” main() {char a,b,c,d,e; a=’C’;b=’H’;c=’I’;d=’N’;e=’A’; putchar(a);putchar(b);putchar(c);putchar(d);putchar(e);} 运行结果:CHINA 也可以输出控制字符,如putchar(‘\n’)输出一个换行符。 也可以输出其它转义字符,如:putchar(‘\101’) (输出字
函数的作用:从终端(或系统隐含指定的输入设备)输入一个字符。 getchar函数没有参数,其一般形式为:getchar()
函数的值就是从输入设备得到的字符。
例如:
#include “stdio.h”
main()
{ char c;
c=getchar();
putchar(c);
}
在运行时,如果从键盘输入字符’m’;
m↙ (输入’m’后,按“回车键”,字符才送到内存)
m
(输出变量c的值’a’)
返回
3.4.1 getchar函数(字符输入函数)
在调用getchar()函数进行输入时需要注意: ◆ getchar()只能接收一个字符。getchar函
数得到的字符可以赋给一个字符变量或整 型变量,也可以不赋给任何变量,作为表 达式的一部分。 ◆ 在一个函数中要用getchar函数,应该在 函数的前面(或本文件开头)用#include tdio.h”。

高级程序语言设计第3章

高级程序语言设计第3章
#include <stdio.h>

#include "stdio.h" 1.格式输入输出(printf函数,scanf函数) (1)scanf函数 scanf函数用于输入指定类型的多个数据,函数的一般形式为:
scanf(“格式控制字符串”,地址列表);
一定要注意,地址列表中直接给变量名将会出错,因为这是非
返回本章目录
第3章 高级语言程序设计概述
l 指定数据所占字符数(宽度)
scanf("%3d%2d",&a,&b); 输入:12345678↙ 系统将把123赋值给a,把45赋值给b,而678则被丢掉。 l scanf函数中没有精度控制 scanf("%3.2f",&a); 将是非法的,即使输入12345↙,也不会将变量a赋值 为123.45; l 跳过某输入数据 scanf("%d %*d %d",&a,&b); 输入:11 22 33↙
{
char c1='H',c2='E',c3='L',c4='O'; /*定义字符变量并赋值*/
putchar(c1);
/*输出字符变量的值*/
putchar(c2);putchar(c3);putchar(c3);putchar(c4);
putchar('\t');
/*输出Tab制表键*/
putchar(87);
/*输出字符W,87是其ASCII编码值
*/ putchar('!'); putchar('\n');
/*输出字符*/ /*输出回车换行符*/

八年级信息技术教案第三章?顺藤摸瓜----顺序结构程序设计

八年级信息技术教案第三章?顺藤摸瓜----顺序结构程序设计

八年级信息技术教案第三章顺藤摸瓜----顺序结构程序设计第三章顺藤摸瓜----顺序结构程序设计第一节有备而来---程序设计准备一、学习目标1.掌握进入basic环境的方法和输入、编辑、运行程序的方法。

2.初步掌握basic中的基本概念:常量、变量、函数、表达式。

3.初步掌握输出、赋值、输入语句的格式和功能。

4.初步掌握简单顺序结构程序的设计方法。

5.理解程序的顺序结构的概念。

二、教学重点掌握输出、赋值、输入语句的格式和功能。

三、教学难点掌握简单顺序结构程序的设计方法。

四、教学方法1.演示法。

2.实践法。

五、教学手段与教学媒体六、课时安排1课时。

七、教学过程二、学习指导1.basic中的科学记数法类似数学中的科学记数法例如:-3.14156e+3 —— -3.14156×1032.56e-2 一2.56×10-2其中e表示幂底数10,e后跟的整数为幂指数。

2.常见标准函数abs(x) 求x的绝对值,即|x|sqr(x) 求x的算术平方根,即。

sin(x) 求x的正弦值c角x的单位必须是弧度,l°≈3.14159/180)。

cos(x) 求x的余弦值(规定同上)。

int(x) 求不大于x的最大整数。

注意:x为负数时,其值不是去掉小数,例int(一5.99)≠一5。

int(x)用处很多:(1)对正数x四舍五入保留n位小数的表达式:int(x*10^n+0.5)/1o^n例如:对正数x四舍五入保留两位小数的表达式:int(x*100+0.5)/100(2)判断整数a能被整数b整除的条件关系式:int(a/b)=a/b(3)求整数a除以b的余数的表达式:a—int(a/b)*b.rnd(x) 产生一个o到1之间的随机小数生成(a,b)内的随机整数的表达式:int(rnd(1)*(b—a)+a)例如:二位随机整数的表达式:int(rnd(1)*90+10)3.数学式和basic表达式的对应表示应根据运算顺序,正确使用圆括号,且将所有符号写在同一行上。

第3章 顺序结构程序设计

第3章 顺序结构程序设计
2016年12月12日星期一 6
第3章 顺序结构程序设计
【例题3.1】阅读下列程序,认识格式输出函数的用法,写结果 #include<stdio.h> int main() { int i,j,m,n; 格式控制字符串 输出列表项 i=5; j=15; m=i++; n=++j; printf("i=%d, j=%d, m=%d, n=%d\n",i,j,m,n); return 0; }
※ %s:输出一个字符串。
※ %f:按实型数据输出且有6位的小数点。 ※ %e: 按实型数据输出且按指数形式
※ %g:按实型数据输出由系统自动选择f格式或e格式。
2016年12月12日星期一 8
第3章 顺序结构程序设计
3.3.2 格式输入函数scanf
阅读下列程序,认识scanf()函数的用法
#include<stdio.h> int main() 格式控制字符串(注意表示形式) { 输入地址列表 int a,b,c; float aver; printf("请输入三个数a,b,c:"); scanf("%d%d%d",&a,&b,&c); aver=(a+b+c)/3; printf("aver=%f\n",aver); return 0; }
第3章 顺序结构程序设计
3.4 字符输入/输出函数
【例题3.4.1】 通过键盘输入一个小写字母,输出该 字母的大写。 分析:输入可采用格式输入函数scanf()实现,输出可 采用格式输出函数printf()实现,使用格式符%c。小 写字母与大写字母的ASCII码值相差32。 思考:不用格式输入/输出函数能不能完成?能,用C 语言提供的另一类函数即字符输入/输出函数。

精品课件-C语言程序设计实用教程-第3章 顺序结构的程序设计

精品课件-C语言程序设计实用教程-第3章 顺序结构的程序设计

3.printf()函数应用举例 【例3.8】 用不同的格式输出同一变量。 #include "stdio.h" main( ) {
char ch='b'; int x=65; printf("ch=%c,%4c,%d\n", ch, ch, ch); printf("x=%d,%c\n", x, x); }
【例3.9】 输出不同的数据类型的应用。
#include "stdio.h"
main()
{ int a,b;
float c;
char ch ;
a=123;
b=-1;
c=1.23;
ch='a';
printf("a=%d, a=%4d\n", a, a ); /*输出整数a的值*/
printf("%d, %o, %x, %u\n", b, b, b, b); /* 输出b的 值*/
(1)格式控制 格式控制由双引号括起来的字符串,主要包括格式说明和需要原 样输出的字符。 ①格式说明 由“%”和格式字符组成,如%d,%f等,作用是将要输出的数据转 换为指定的格式后输出。 ②普通字符 需要原样输出的字符。如“printf("radius=%f", radius);” 语句中的“radius=”就是普通字符。 (2)输出表列:是需要输出的一些数据,可以是常量、变量和 表达式。
printf("%f, %6.1f\n",c,c); c的值 */
/* 输出实数
printf("%c\n", ch);
/*输出字符
3.4.2 scanf()函数

第3章 顺序结构程序设计

第3章 顺序结构程序设计

第3章顺序结构程序设计在上一章介绍了程序中用到的一些基本要素(常量、变量、运算符、表达式等),它们是构成程序的基本成分。

在第1章中已经介绍了几个简单的C程序。

本章将介绍为编写简单的程序所必需的一些内容。

我们通过任务案例,了解C语言的语句。

3.1 任务2——将英里转换为公里问题你的暑假作业是研究一些以公里标注距离的地图和一些以英里标注距离的地图。

你和你的伙伴们想使用公制计量单位来处理,因此需要编写一个程序来执行必要的转换工作。

分析解决这个问题的第1步是确定要干什么。

我们要做的是将一种计量单位转换成另外一种,但是,是要从公里转换成英里,还是从英里转换成公里?问题陈述中说明了想使用公制计量单位,那么就是要把英里表示的距离转换成用公里来表示。

因此,问题的输入就是以英里表示的距离,而问题的输出就是以公里表示的距离。

要想编写这个程序,需要知道公里与英里之间的关系。

查询公制单位表可知:1英里等于1.609公里。

下面列出了数据需求和相关的公式,miles是包含问题输入的变量(内存单元),kms是包含着程序结果或者说问题输出的变量(内存单元)。

数据需求问题输入miles /*存放用英里表示的距离*/问题输出kms /*存放用公里表示的距离*/相关公式1英里=1.609公里设计下面,我们用公式表达算法来解决问题。

首先列出算法的三个主要步骤或称子问题。

算法1. 读取英里数2. 将距离转换成公里3. 用公里显示距离现在我们要确定算法中是否有哪一步需要更进一步地细化或者是否已表达清晰。

第1步(获取数据)和第3步(显示结果值)都是基本步骤,不需要进行什么细化。

而第2步虽然很显而易见,但还是需要更详细一些更有帮助:第2步细化2.1 英里距离是公里距离的1.609倍 下面列出包含了细化步骤的完整算法,我们来研究一下是否合适。

这个算法很像学期总结的大纲。

第2步的细化用2.1来表示,并位于第2步之下。

细化后的算法1. 读取英里数2. 将距离转换成公里 2.1 英里距离是公里距离的1.609倍3. 用公里显示距离在继续之前,要对算法进行桌面检查。

第三章 顺序结构程序设计

第三章 顺序结构程序设计

步骤1:0 => s; 步骤2:1 => I; 步骤3:s+i => s; 步骤4:i+1 => I; 步骤5:如果i≤1000,转到步骤3,否则结束。 在上面的算法中,符号s、i表示变量,符号“=>” 表示给变量赋值。步骤1和步骤2表示给变量s和i 赋初始值为0和1;步骤3将变量i的当前值累加到 变量s中;步骤4使变量i在原值的基础上增加1; 步骤5判断i的值如果小于等于1000,重复做步骤 3和步骤4,构成一个循环,而当i的值不小于等于 1000时,循环结束,这时,变量s的值就是要求 的计算结果。
2.函数调用语句 函数调用语句由一次函数调用加一个分号(语句结 束标志)构成。例如: printf("This is a C Program."); 3.表达式语句 表达式语句由表达式后加一个分号构成。 表达式能构成语句是C语言的一大特色。最典型的 表达式语句是在赋值表达式后加一个分号构成的赋值 语 句 。 例 如 , “ num=5” 是 一 个 赋 值 表 达 式 , 而 “num=5;”却是一个赋值语句。
3.3 格式化输出函数printf()
程序运行中,有时候需要从外部设备(例如键盘)上得 到一些原始数据,程序计算结束后,通常要把计算结果发 送到外部设备(例如显示器)上,以便人们对结果进行分析。 我们把程序从外部设备上获得数据的操作称为“输入”, 而把程序发送数据到外部设备的操作称为“输出”。 不像其他的高级语言,C语言没有专门的输入/输出语 句,输入/输出的操作是通过调用C语言的库函数来实现的。 printf()函数是最常用的输出函数,它的作用是向计算机系 统默认的输出设备(一般指显示器)输出一个或多个任意指 定类型的数据。
3.1.2 算法的特征 通常,一个算法必须具备以下五个基本特征: (1) 有穷性。一个算法必须在它所涉及的每一种情 形下,都能在执行有限次的操作之后结束。 (2) 确定性。算法的每一步,其顺序和内容都必须 严格定义,而不能有任何的歧义。 (3) 有零个或多个输入。输入是算法实施前需要从 外界取得的信息,有些算法需要有多个输入,而有些 算法不需要输入,即零个输入。 (4) 有一个或多个输出。输出就是算法实施后得到 的结果,显然,没有输出的算法是没有意义的。 (5) 可行性。算法的每一步都必须是可行的,也就 是说,是能够由计算机执行的。

第3章 顺序结构程序设计

第3章  顺序结构程序设计

3.1 C程序的三种控制结构
❖循环结构:
▪ 程序运行过程中,当给定条件成立时会反复执行某一个程序段。给定的条件称之为“循环条件”,反复执
行的程序段称之为“循环体”。
▪ 循环结构主要有两类:当型循环和直到型循环。
▪ 当型循环的流程图和N-S图如下:
直到型循环的流程图和N-S图如下:
3.2 顺序结构程序设计
例如:char c;
c = getchar( );
/*声明一个字符型变量c*/
/*通过getchar函数从键盘上输入一个字符,并赋值给变量c*/
▪ 2. putchar(x):向显示器上输出一个字符,参数x即为待输出的内容,x可以是一个字符常量或变量,也
可以是一个表达式或整型数据。
例如:putchar('A');
部分只有2位的浮点数。
(6)不要在scanf的格式控制字符串中使用'\n',如scanf("%d\n", &x);
3.3 常用库函数
❖ C编译系统预先定义了丰富的数学函数,使用系统提供的数学运算函数,需要包含头文件
math.h。
❖【例3.6】任意输入一个x的值,计算y = (|x| - 2) / (x2 + 1)。
int main( )
{
float a, b, c, s, area;
printf("请输入三边长:\n");
scanf("%f %f %f", &a, &b, &c);
s = (a + b + c) / 2;
area = sqrt(s * (s - a) * (s - b) * (s - c));

第03章-顺序结构程序设计 C语言程序设计教程(第二版)

第03章-顺序结构程序设计 C语言程序设计教程(第二版)
例 如 , printf("str = %s, f = %d, i = %f\n", "Internet", 1.0 / 2, 3 + 5, "CHINA");是错误的。
2.类型转换字符的紧前字符不是“%”时,将作 普通字符处理(原样输出)。
例如,“printf(”c = %c, f = %f\n“, c, f);”中的第一 个c和f,都是普通字符。
2020/10/29
11
程序运行结果如下:
num1=123,num1=□□123,num1=123□□,num1=123
num2=123456,num2=□□123456,num2=123456
num1=16908411
类型匹配错误, 输出结果是随机的。
(1)格式指示符,必须与输出项的数据类型一致, 否则会引起输出错误。
在表3-2中,最常用宽度字符“n”:指定输出域 的宽度。若超长,则按实际宽度输出;若不足,则 补空格。
在表3-3中,最常用精度字符“ .n”:指定保留的 小数位数(实数,超长则4舍5入),或截取左起的前n 个字符(字符串)。
在表3-4中,最常用的长度字符“l”:长整型。
2020/10/29
6
在表3-5 中,最常用的数据类型转换字符如下表 所示:
2020/10/29
9
3.1.2 常用的类型转换字符 输出不同类型数据,要使用不同类型转换字符。
2020/10/29
10
1.类型转换字符d──以带符号的十进制整数形式输出。
[案例3.2] 类型转换字符d的使用。
#include “stdio.h” #include “conio.h” void main()
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.6 格式输入/输出函数
例如:若int a,b;char c1,c2; 分析数据输入的格式 scanf(”%d%d”, &a, &b); scanf(”%c%c”, &c1, &c2); scanf(”a=%d”, &a); scanf(”%d\n%d”, &a, &b); scanf(”%2d:%d”, &a, &b); scanf(”%d;%*d;&d”, &a, &b) 输入实例
3.6 格式输入/输出函数
scanf函数的常用格式字符见表3-5 附加符的说明见表3-6 2.地址表列 一般格式:&变量名1,&变量名2,…
3.6 格式输入/输出函数
3.使用scanf函数输入数据的格式说明
(1) 格式控制串中格式符之间没有间隔符时,数值 型以空格、tab和回车间隔 ,字符型无间隔,连 续输入; (2) 整型与字符型不再通用,严格按照变量的定义类 型设计格式控制串,没有精度限制; (3) 宽度决定输入数据的字符数,成功时自动进入下 一个变量的输入; (4) 普通字符照样子输入,尽量少用; (5)含有跳过附加符*的格式控制串接受的数据将自 动丢弃数据。
3.6 格式输入/输出函数
(2) 输出表列 一般格式:表达式1,表达式2, … 说明:缺省时输出格式控制字符串的内容。 例如 a=3;b=5;c=„a‟ printf(“@@@”) ; /*输出@@@*/ printf("%d%d", a, b+a,c+1);
3.6 格式输入/输出函数
【例3-3】有符号十进制数的输出形式 /* exp3-3 */ 程序运行结果: #include "stdio.h" int main( ) { int a = 97; printf("a=%d,%o,%x,%u,%c\n", a, a, a, a, a); return 0; }
转化成10进制数为83,123第三个123格式符为x,系统接受为 16进制,转化成10进制数为291。
3.7顺序结构程序设计举例
【例3-11】常用类型说明符的长度测定
/* exp3-11 */ 程序运行结果: #include "math.h" #include "stdio.h" int main( ) { int a;long b;float f; double d; char c; printf("\nint:%d\nlong:%d", sizeof(a), sizeof(b)); printf("\nfloat:%d\ndouble:%d", sizeof(f), sizeof(d)); printf("\nchar:%d\n", sizeof(c)); return 0; }
输出结果中,a=5,b=4为键盘输入, a=5,b=4,a/b=1为输出结果
3.7 顺序结构程序设计举例
程序设计的一般步骤为: (1) 变量说明:本程序已知哪些数据,需要定义哪些 变量。类型应该是什么。 (2) 采集源数据:获取变量值的方法是键盘录入还是 通过计算得到。 (3) 加工数据:确定对数据的加工过程,即先计算什 么,后计算什么,是否有固定的算法等。 (4) 输出结果:确定是输出计算结果还是显示信息, 然后输出。
3.7顺序结构程序设计举例
【例3-10】使用不同的格式符实现八进制、十六进制与 十进制与之间的转换。 /* exp3-10 */ 程序运行结果: #include "stdio.h" int main( ) { unsigned a, b, c; printf("\n Please input three inteagers:\n"); scanf("%d%o%x", &a, &b, &c); printf("a=%d,b=%d,c=%d\n", a, b, c); return 0;输出结果中,123 123 123为键盘输入, 第一个123格式符为d, 系统接受为10进制,第二个123格式符为o,系统接受为8进制, }
3.6 格式输入/输出函数
【例3-7】附加符的混合使用。
/* exp3-7 */ 程序运行结果: #include "stdio.h" int main( ) { int a = 15; float b = 123.1234567; double c = 12345678.1234567; char d = 'p'; printf("a=%d,%5d,%o,%x\n", a, a, a, a); printf("b=%f,%lf,%5.4lf,%e\n", b, b, b, b); printf("c=%lf,%f,%8.4lf\n", c, c, c); printf("d=%c,%8c\n", d, d); return 0; }
3.7 顺序结构程序设计举例
【例3-14】printf函数的求值顺序 /* 3-14-1 */ #include "stdio.h" int main( ) 程序运行结果: { int i = 8; printf("%d,", ++i); printf("%d,", --i); printf("%d,", i++); printf("%d,", i--); printf("%d,", -i++); printf("%d\n】编写程序,任意输入一个3位整数,拆分这
个数,输出个位、十位和百位数字。
/* exp3-12 */ #include "stdio.h" int main( ) { int num, a, b, c; /* 定义变量 */ printf("please input a integer number:");/* 提示输入数据 */ scanf("%d",&num) /* 输入数据 */ c = num % 10;b = num / 10 % 10;a = num / 100; /* 计算 */ /* 输出结果 */ printf("%dHundred, ten, an, ", num); printf("all digital respectively:%d,%d,%d\n", a, b, c); return 0; }
3.6 格式输入/输出函数
【例3-5】字符数据的输出 /* exp3-4 */ #include "stdio.h" 程序运行结果: int main( ) { char a, b; a = 120; b = 121; printf("%c,%c\n", a, b); 注意: printf("%d,%d\n", a, b); 输出时整型与字符型 return 0; 互通 }
第3章 顺序结构程序设计
主要内容:
3.6 格式输入/输出函数 3.7 顺序结构程序设计举例
3.6 格式输入/输出函数
3.6.1 格式输出函数printf
printf函数的一般形式 printf(格式控制 [,输出表列]) 功能:按照格式控制的格式输出表列中各表达式的值。 例如 printf(”%d,%f”,i, x) 说明: (1) 格式控制:用于指定输出格式,是用双撇号括起 来的字符串,也称“转换控制字符串” 。包括 ①格式说明:将输出的数据转换为格式字符指定的格 式输出,由“%”和格式字符组成,如%d、%f等。 ②普通字符:需要原样输出的字符,修饰输出结果。
3.6 格式输入/输出函数
【例3-6】设整型变量a、b的值分别是3、4,字符变量c 的值是‘A‟。编程序,按下面输出形式设计输出结果 /* exp3-6 */ #include "stdio.h" int main( ) { int a = 3, b = 4; char c = 'A'; printf("a=%2d b=%2d\n", a, b); printf("Letter %c and ASCII:%d\n", c, c); return 0; }
3.6 格式输入/输出函数
例如: int a=5; double b=125.364 printf(”a=%4d,b=%-10.2lf”, a, b)
输出结果分析:
① 整型变量a以最小宽度4整型格式输出,输出的数 据5占4个宽度,宽度多于实际位数,其前填充3 个空格。 ② 双精度变量b的输出限定最小宽度为10、两位小 数、左对齐格式输出。实际数据的小数部分超 出部分按4舍5入,输出结果为 125.36 注意:格式字符与输出表列中的表达式在数量和类 型上应一致。
5 8 或5tab8 或5 8 *# a=5 5 8 必须
123 a的值为12,表的值为3
5;8;9 必须:
3.6 格式输入/输出函数
【例3-9】从键盘上输入两个数正整数a和b,求出这两个数 相除的商。 输入a=5,b=4,程序的运行结果: /* exp3-9 */ #include "stdio.h" int main( ) { int a, b; printf("\nPlease input two inteagers:\n") scanf("a=%d,b=%d", &a, &b); printf("a=%d,b=%d,a/b=%d\n", a, b, a / b); }
相关文档
最新文档