第3章 简单的C程序设计
C语言程序设计 第3版 第3章 算法与流程图
输入/输出框
处理框
流程图表示法一般包括三部分:
(1)表示相应操作的框; (2)带箭头的流程线; (3)框内外符
C语言程序设计
2. 流程图
符号表示 简单实例
用流程图表示下面的分段函数。
2x 1 y 0
3x 1
x0 x0 x0
C语言程序设计
3. 程序设计结构
顺序结构 选择结构 循环结构
(4)有零或多个输入:根据算法的不同,有的在实现过程中需要输入一些原始数据,而有 些算法可能不需要输入原始数据;
(5)有一个或多个输出:设计算法的最终目的是为了解决问题,为此,每个算法至少应有 一个输出结果,来反应问题的最终结果。
C语言程序设计
2. 流程图
符号表示 简单实例
流程图常用的符号:
起止框
顺序结构 选择结构 循环结构
循环结构流程图:
某学生在操场上跑步,一共要跑四圈,每一圈 都要跨过障碍,请画出该算法的流程图。
不成立 条件? 成立
A
圈数≤4? 成立
跨障碍
不成立
执行过程:
先判断条件,如果条件成立,执行A,再循环判断条件, 否则,跳出循环。
C语言程序设计
谢谢
C语言程序设计
第3章 算法与流程图
提纲
1.算法定义及特征 2. 流程图表示法 3. 程序设计结构
1. 算法
算法定义 算法特征
定义:
现实生活中解决问题时,一般都要制订一个针对具体问题的步骤和方法,以此为据去实现目标。 将为了解决问题所制订的步骤、方法称为算法(Algorithm)。
计算下面的分段函数。
特征:
(1)有穷性:算法中所包含的步骤必须是有限的,不能无穷无止,应该在一个人所能接受 的合理时间段内产生结果;
程序设计基础(人民邮电出版社)答案第3章最简单的C程序设计
一、选择题1. C 语言中,执行下列语句时,要使 x,y 的值均为1.25,正确的输入是 _C scanf(“x=%f,y=%”f,&x,&y);A. 1.25,1.25 C. x=1.25,y=1.252. 已知i,j,k 为int 型变量,若从键盘输入1, 2, 3/,使i 的值为1,j 的值为2, k 的值为 3,则以下选项中正确的输入语句是 A.scanf(“%2d%2d%2d ”,&i,&j,&k) ; C. scanf(“%d,%d,%d ”,&i,&j,&k) ;D. scanf(“i=%d,j=%d,k=%d ”,&i,&j,&k) ;3.以下程序段的执行结果是 int a=1234 ;printf(“%2d\n ”,a); A. 12 C. 12344. 如果x 为float 类型变量,则以下语句输出为 x=213.82631;printf(“%4.2f\n ”,x); A. 213.82 C. 213.826315. 执行下列程序时输入: 123 456 789/,输出结果是 ___D #include<stdio.h> void main(){char s[10]; int c,i;scanf(“%c ”,&c); scanf(“%d ”,&i); scanf(“%s ”,s);printf( “%c,%d,%s\n ”,c,i,s);}A. 123,456,789 C. 1,23,456,789二、填空题1.在 printf() 函数中以小数形式输出单精度、 双精度实数,应采用格式符 __%f___。
2•在seanf()函数中要输入一个字符串,应采用格式符 __%s3. 有以下程序,输入123456789/,其输出结果是 _12,56,789.00000Q_。
c语言程序设计第三章运算符与表达式
第三章运算符和表达式3.1 运算符和表达式概述使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。
用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。
另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。
根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类:(1) 单目(一元)运算符:只连接一个操作数的运算符。
(2) 双目(二元)运算符:带有两个操作数的运算符。
(3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。
C语言中的表达式可以分为三类:(1) 单个常量或者单个变量是最简单的表达式。
(2) 带有运算符的表达式。
(3) 函数调用。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。
所以运算对象、运算符和运算结果是运算的三大要素。
3.2 算术运算符和算术表达式一、基本算术运算符和简单算术表达式1. 基本算术运算符C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。
2. 简单算术表达式当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。
简单算术表达式的基本形式:data1 op data2。
data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。
假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。
3. 基本算术运算符使用说明(1) +、-、*,/既可以连接整型数据,也可以连接实型数据。
当参与这4个运算符的运算对象都是整型数据时,得到整型数据运算结果;否则表示浮点运算。
例如,int a=15,b=2;则a*b等于30,而a/b等于7;a*2.0等于30.0,而a/2.0等于7.5。
C语言程序设计第3章选择结构程序设计
√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
C语言程序设计--第3章基本数据类型和表达式
2.实型变量
实型变量分为单精度(float型)和双精度(double型)。 如: float x,y; double z; / *定义x , y为单精度实数* / / *定义z为双精度实数* /
一个float型数据在内存中占4个字节(32位),提供7位有效数字 一个double型数据占8个字节(64位),双精度提供15 ~ 16位有 效数字 值得注意的是,实型常量是double型,当把一个实型常量赋给一 个float型变量时,系统会截取相应的有效位数。
§3.1 基本语法单位
任何一种语言都会根据自身的特点规定 它自己特定的一套基本符号。例如,英语的 基本符号是26个英文字母和一些标点符号。 C语言作为一种程序设计语言,也有它的基 本符号,程序就是由这些基本符号组成的。
§3.1.1 基本符号
程序中要对各种变量和各种函数起名,这些变量名、 函数名都是由语言的基本符号组成的。C的基本符号包 括: (1)数字10个(0~9); (2)英文字母大小写各26个(A~Z, a~z); (3)特殊符号,主要用来表示运算符,它通常是 由1~2个特殊符号组成。包括:
digits是一位或多位十进制数字(从0~9)。 1.575e9表示1.575×109
注意:
◆所有的实型常量均视为双精度类型。实型常量
的整数部分为0时可以省略,如下形式是允许的: .57,.0075e2,-.125,-.175E-2; 须为整数: 如e3,2.1e3.5,. e3,e等都是不合法的指数 形式。
不同的,而且取值范围与机器硬件有关,在 使用时请参阅有关手册。
◆需要指出的是:C语言没有提供布尔(逻辑)
类型,在逻辑运算中,它是以非零表示真 (TRUE),以数值0表示假(FALSE)。
C++语言程序设计第3章
优先级和结合性:
先乘除,后加减,同级自左至右。
Page 20
3.3.1 算术运算符和表达式
例: float f = 3.5; int n = 6; long k = 21; double ss = f*n + k/2;
Page 21
3.3.2 自加自减运算符和表达式
运算符 ++ ++ ---
名字 增量(前缀) 增量(后缀) 减量(前缀) 减量(后缀)
▪ 字符数据在内存中的存储形式 - 以ASCII码存储,占1字节,用7个二进制位
Page 14
3.2.2 变量和常量—字符型数据
▪ 字符串常量
例:"CHINA" "a" 'a'
C H I N A \0 a \0 a
所以:char c;
c="a";
Page 15
3.2.2 变量和常量—布尔型数据
▪ 布尔型变量的说明: 例:bool flag;
Union
Unsigned
Class
Const_cast Delete
Friend Public Try Asm Except
Inline
Mutable
Reinterpret_c ast
Typeid
Typename
Namespac e
Static_cast
New Template
Using
Virtual
▪ 布尔型数据的取值: 只有 false 和 true 两个值
▪ 整型数与布尔变量的转换: - 非0整数隐式转换成true,整数0隐式转
换成false; - true转换成1, false转换成0;
第3章 最简单的C程序设计[详版课资]
说明
➢ 两个整数相除的结果为整数
如5/3的结果值为1,舍去小数部分
如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结 果为-1,在有的系统中则得到结果为-2
VC++采取“向零取整”的方法
如5/3=1,-5/3=-1,取整后向零靠拢
➢ % 运算符要求参加运算的运算对象(即操作数) 为整数,结果也是整数。如8%3,结果为2
p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3);
return 0;
}
课堂优质
8
3.2 数据的表现形式及其运算
3.2.1 常量和变量
3.2.2 数据类型
3.2.3 整型数据
3.2.4 字符型数据
3.2.5 浮点型数据
课堂优质
11
3.2.1 常量和变量
3.常变量:const int a=3; 4.标识符:一个对象的名字大小写字母是不同的字符 ➢ C语言规定标识符只能由字母、数字和下划线3
种字符组成,且第一个字符必须为字母或下划线 ➢ 合法的标识符:如sum,average, _total,
Class, day, BASIC, li_ling ➢ 不合法的标识符:M.D.John,¥123,#33
(2) 如果int型与float或double型数据进行运算, 先把int型和float型数据转换为double型,然 后进行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
课堂优质
30
3.2.7 运算符和表达式
计算机二级C语言课件第3章最简单的C程序设计1-改
例3.2
解题思路:确定计算本息和的公式。
从数学知识可知:若存款额为p0,则: 活期存款一年后本息和为:
p1=p0(1+r1) 一年期定期存款,一年后本息和为:
p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
p3 = p0(1+ r3)(1+ r3 ) 22
例3.2
#include <stdio.h> int main ( )
一个字符变量在内存中占一个字节。
字符数据在内存中的存储形式及其使用方法
将一个字符常量放到一个字符变量中,, 而是将该字符的相应的ASCII代码放到存 储单元中。例如字符‘a’的ASCII代码为 97,‘b’为98,在内存中变量c1、c2的值如图
(a)所示。实际上是以二进制形式存放的,如 图(b)所示。P48
[signed ] int unsigned int
注意: 取值范围 举例P47
例:
#include<stdio.h>
void main( )
运行结果:
{int a,b,c,d;
a十u=22,b+u=-14
unsigned u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d ,b+u=%d”,c,d);
字符常量
• 定义:用单引号括起来的单个普通字符或转义字符.
• 字符常量如的值‘:a’该字‘A符’ 的‘?’ASC‘I\nI’码值‘\101’
• 转转义义字字如符符:反及‘‘斜其A0’’线含——后义——面:6458跟P,4,一0表‘‘个\n3a字’.’——1符——或190一7,个代码值表示
C语言-第3章 最简单的C程序设计 练习题
第3章最简单的C程序设计—顺序程序设计一、单项选择题1. 不是C语言提供的合法关键字是。
A)switch B)cher C)case D)default2. C语言提供的合法关键字是。
A)next B)string C)do case D)struct3. 下列不属于C语言中关键字的是。
A) long B) print C)default D)typedef4. 下列不正确的标识符是。
A) -a1 B) a[i] C)a2_i D)x5. 下列C语言用户标识符中合法的是。
A)*y B)sum C)int D)%5f6. 下面四个选项中,合法的标识符是。
A)auto B)define C)6a D)c7.下列C语言用户标识符中合法的是。
A)3ax B)x C)case D)-e28. 以下选项中合法的用户标识符是。
A) long B) _2Test C) 3Dmax D) A.dat9.下列四组选项中,正确的C语言标识符是。
A)%x B)a+b C)a123 D)12310. 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123-abc DOWORD sum Case sizeof11. 下列四组字符串中都可以用作C语言程序中的标识符的是。
A)print _3d oodb aBc B)I\am one_half start$it 3paiC)str_1 Cpp pow while D)Pxq My->book line# His.age12. 下列C语言标识符中合法的变量名是。
A)2e3 B)you C)*y D)float1-12题解析:参照讲义中知识点--标识符与关键字,13. C语言中的简单数据类型包括。
A)整型、实型、逻辑型B)整型、实型、逻辑型、字符型C)整型、字符型、逻辑型D)整型、实型、字符型13题解析:C语言中没有逻辑型变量14.下列可以正确表示字符型常量的是。
C语言-第3课 最简单的C程序设计 练习题
第3章最简单的C程序设计—顺序程序设计一、单项选择题1. 不是C语言提供的合法关键字是。
A)switch B)cher C)case D)default2. C语言提供的合法关键字是。
A)next B)string C)do case D)struct3. 下列不属于C语言中关键字的是。
A) long B) print C)default D)typedef4. 下列不正确的标识符是。
A) -a1 B) a[i] C)a2_i D)x5. 下列C语言用户标识符中合法的是。
A)*y B)sum C)int D)%5f6. 下面四个选项中,合法的标识符是。
A)auto B)define C)6a D)c7.下列C语言用户标识符中合法的是。
A)3ax B)x C)case D)-e28. 以下选项中合法的用户标识符是。
A) long B) _2Test C) 3Dmax D) A.dat9.下列四组选项中,正确的C语言标识符是。
A)%x B)a+b C)a123 D)12310. 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123-abc DOWORD sum Case sizeof11. 下列四组字符串中都可以用作C语言程序中的标识符的是。
A)print _3d oodb aBc B)I\am one_half start$it 3paiC)str_1 Cpp pow while D)Pxq My->book line# His.age12. 下列C语言标识符中合法的变量名是。
A)2e3 B)you C)*y D)float1-12题解析:参照讲义中知识点--标识符与关键字,13. C语言中的简单数据类型包括。
A)整型、实型、逻辑型B)整型、实型、逻辑型、字符型C)整型、字符型、逻辑型D)整型、实型、字符型13题解析:C语言中没有逻辑型变量14.下列可以正确表示字符型常量的是。
C语言程序设计基础讲解PPT第3章(第二讲)
14
与 哪 个 if 配 对 ? ⑶ if (c<=100) if (c>=50) printf("50<=c<=100\n"); else printf("c<50\n")
2019/1/8
再例如:
if(a>b) if(a>c) if(a>d) m=1; else m=2; else m=3; 问题:哪一个 else 和哪一个 if 相匹配?
24
2019/1/8
注意:
25
switch语句的书写格式:语句体本身必须用花括 号括起;case和default后面如果有多条语句, 则可以不必使用花括号;case和常量表达式之 间必须有空格;default可以写在语句体的任何 位置,也可以省略不写 break语句可以改变case的语句标号作用,终止 后续case语句序列的执行。 switch语句和break 语句结合,可以实现程序的选择控制(break语 句还可以在循环语句中使用) 允许switch嵌套使用,但同一个switch语句中, 任意两个case的常量表达式值不能相同。
2019/1/8
程序:
#include "stdio.h" main( ) { char ch; ch=getchar( ); if (ch>='A' && ch<='Z') ch=ch+32; printf("%c\n",ch ); } 可使用条件表达式代替
程序运行情况如下: putchar(ch>='A' && ch<='Z' ? ch+32:ch); G putchar (' \n') g
c语言程序设计第三章答案
c语言程序设计第三章答案第三章:运算符与表达式一、算术运算符在C语言中,算术运算符用于在表达式中执行各种数学运算。
常见的算术运算符有加法运算符(+)、减法运算符(-)、乘法运算符(*)和除法运算符(/)等。
1. 加法运算符(+)加法运算符用于将两个操作数相加,并返回它们的和。
例如,表达式a + b将返回a和b的和。
2. 减法运算符(-)减法运算符用于从第一个操作数中减去第二个操作数,并返回它们的差。
例如,表达式a - b将返回a和b的差。
3. 乘法运算符(*)乘法运算符用于将两个操作数相乘,并返回它们的积。
例如,表达式a * b将返回a和b的积。
4. 除法运算符(/)除法运算符用于将第一个操作数除以第二个操作数,并返回它们的商。
例如,表达式a / b将返回a除以b的商。
二、关系运算符关系运算符用于比较两个操作数并返回一个布尔值(真或假)。
常见的关系运算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)等。
1. 大于运算符(>)大于运算符用于检查第一个操作数是否大于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a > b将返回真或假。
2. 小于运算符(<)小于运算符用于检查第一个操作数是否小于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a < b将返回真或假。
3. 大于等于运算符(>=)大于等于运算符用于检查第一个操作数是否大于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a >= b 将返回真或假。
4. 小于等于运算符(<=)小于等于运算符用于检查第一个操作数是否小于或等于第二个操作数。
如果是,则返回真(1),否则返回假(0)。
例如,表达式a <= b 将返回真或假。
5. 等于运算符(==)等于运算符用于检查两个操作数是否相等。
解析C程序设计-第3章自定义函数设计精品文档
2019/10/18
《解析C程序设计》第3章 自定义函数设计
3
• 事实上,C程序可以
– 只包含一个主函数 – 也可以包含一个主函数和若干个其它函数(库
函数和自定义函数)
• C语言是一个函数式语言。
2019/10/18
《解析C程序设计》第3章 自定义函数设计
求最大值和最小值可以使用条件运算符完成,当然还有其 他办法(你知道吗?)。
另外还涉及到函数的定义、函数的调用、函数值的返回、 参数的传递、函数的声明等基本知识。下面逐步介绍。
2019/10/18
《解析C程序设计》第3章 自定义函数设计
8
条件表达式运算符
一般形式: expr1 ? expr2 : expr3
max=(x>y) ? x : y; return(max); } int minmum(int x,int y) { int min; min=(x<y) ? x : y; return min; } void main() { int a,b; scanf("%4d,%4d",&a,&b); printf("max=%d\n", maxmum(a,b)); printf("min=%d\n", minmum(a,b)); }
22
例3-2:求两个整数的最大值和最小值
【分析】 首先定义两个函数:求最大值和最小值,然后在主函数中调用。
#include <stdio.h>
/* 定义求最大值的函数 */
void maxmum(int x,int y)
C语言程序设计第三章 (2)
举例 int a=10; short b=100 int short b=100; unsigned int short b=100; long d=212365; int long d=212365; unsigned int long d=212365;
练习题
练习
• char c; 等价 • c=65; 是否等价于c= 'A' • printf(“%d %c”,c,c);输入的结果是多少呢?
65 A
注意:
• • • • • int a; char b; a=65; b=‘A’; 不等价,所占内存空间不同。 问变量a 的值和变量b的值是否等价。
练习题
price ?abc int name float name age 8ab year a%d 以上哪些是正确的标识符,哪些不是?
price name age year a b 都是 正确的标识符 ?abc int float 8ab a%d 不能是 标识符
练习题
下列选项中,不能用作标识符的是( )
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数
A)(a+b)*h/2
ab 式_______________ h 2
计算结果不相符的是( ) B)(1/2)*(a+b)*h
B
C)(a+b)*h*1/2 D)h/2*(a+b)
2014-3-16
自加、自减运算符P53 自加运算(i++, ++i) 相同点:++i 和 i++的作用都等同于i=i+1 不同点:++i是先给i=i+1,然后再引用i的值。 i++是先引用i的值,然后i=i+1 自减运算(i- -, - -i) 相同点:- -i 和 i- -的作用都等同于i=i-1 不同点:- -i是先给i=i-1,然后再引用i的值。 i--是先引用i的值,然后i=i-1
C语言 第3章 最简单的C程序设计
3.2.3 整型数据
1. 整型数据的分类 2. 整型变量的符号属性
整型变量的值的范围包括负数到正数 可以将变量定义为“无符号”类型 扩充的整形类型:
3.2.3 整型数据
扩充的整型类型:
➢ 有符号基本整型 [signed] int; ➢ 无符号基本整型 unsigned int; ➢ 有符号短整型 [signed] short [int]; ➢ 无符号短整型 unsigned short [int]; ➢ 有符号长整型 [signed] long [int]; ➢ 无符号长整型 unsigned long [int] ➢ 有符号双长整型 [signed] long long [int]; ➢ 无符号双长整型 unsigned long long [int]
3.2.2 数据类型
C语言允许使用的数据类型:
➢基本类型 ➢枚举类型
算术类型
➢空类型 ➢派生类型
纯量类型
指针类型
数组类型
结构体类型
共用体类型
函数类型
3.2.3 整型数据
1. 整型数据的分类 ➢最基本的整型类型
基本整型(int型):占2个或4个字节 短整型(short int):VC++6.0中占2个字节 长整型(long int):VC++6.0中占4个字节 双长整型(long long int):C99新增的
area s(s a)(s b)(s c)
其中s=(a+b+c)/2
编译系统为float型变量分配4个字节 数值以规范化的二进制数指数形式存放
参见主教材图3.11
3.2.5 浮点型数据
浮点型数据是用来表示具有小数点的实数 ➢float型(单精度浮点型) ➢double型(双精度浮点型)
实验3 最简单的C程序设计——顺序程序设计
实验3 最简单的C程序设计——顺序程序设计1.实验目的⑴掌握C语言中使用最多的一种语句——赋值语句的使用方法。
⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
⑶进一步掌握编写程序和调试程序的方法。
2.实验内容和步骤⑴通过下面的程序掌握各种格式转化符的正确使用方法。
①输入以下程序:#include <stdio.h>int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%1.56f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); }②运行此程序并分析结果。
解:运行时输出:③在此基础上,将程序第10—14行改为:c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析结果。
解:运行时输出:④用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。
解:sizeof(int) = 4sizeof(float) = 4;sizeof(double) = 8;sizeof(char) = 1;char *p;sizeof(p) = 4;sizeof(long) = 4;sizeof(unsigned int) = 4;⑵设圆半径r=1.5,圆柱高h=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()函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.1 字符输入输出函数
例3.1 猜字母:输入某字母在字母表中的序号 (从1开始),输出该字母(大写)
#include<stdio.h> int main() { char ch; int index; scanf(“%d”, &index); ch=‘A’+index-1; //或ch=64+index; printf(“%c”,ch); putchar( ch ); } 输出字符’a’: putchar( ‘a’ ); 输出一个回车符 putchar( ‘\n’ ); 输出字符变量a的值: putchar( a ); 猜猜: putchar()函数的其功能是向终端输 出其括号内参数的内容,参数可以 putchar( 65 );输出什么? 是字符变量、字符常量 到VC中试试
3.2 标准文件输入输出函数
一个C语言的源程序要有输入输出功能。 一个 语言的源程序要有输入输出功能。 语言的源程序要有输入输出功能 C语言本身并没有提供专门的数据输入 输出语句, 语言本身并没有提供专门的数据输入/输出语句 语言本身并没有提供专门的数据输入 输出语句, 而是用C标准函数库中的函数来实现的 标准函数库中的函数来实现的, 而是用 标准函数库中的函数来实现的,如 scanf、printf等 scanf、printf等。 在使用标准的输入/输出库函数时 输出库函数时, 在使用标准的输入 输出库函数时,需要使用预编 译命令” 译命令”#include<stdio.h>” C语言中从标准输入和输出设备中进行读写的四 语言中从标准输入和输出设备中进行读写的四 个标准函数是:格式输出函数printf、格式输入 个标准函数是:格式输出函数 、 函数scanf、字符输入函数 函数 、字符输入函数getchar和字符输出函 和字符输出函 数putchar
5500
输出结果的左边显示了 6 个空格
转换字符串%f
float circumference = 78.53; 9.4786789; printf (" %f" , circumference);
9.478679 输出结果:78.530000
默认情况下精确到六位小数
转换字符串%m.nf
double mercury_level = 168.2251074; printf( ""%7.2f" , mercury_level); "
小练习
计算字母序号,输入一个字母(小写), 输出该字母在字母表中的序号
(1)读入字符ch; (2)计算序号index=ch-’a’+1; (3)输出整数index char ch; int index; ch=getchar(); index=ch-’a’+1; printf(“%d\n”,index);
3简单的C程序设计来自本章目标掌握标准输入输出函数的格式及使用。 会编写简单C程序 会使用常用数学函数
3.1语句
语句是程序最基本的执行单位,程序的功能就是 通过对一系列语句的执行来实现的
(1)控制语句,实现流程控制,如: 分支语句实现分支控制过程 : if (a > b) x = a; else x = b; (2)变量声明语句:如 float x,y,z; (3)表达式语句:表达式加分号“;” (4)复合语句:用一对“{ }”,将若干语句顺序组合在一起就 形成了一个程序段。 (5)空语句。只有一个分号构成的语句,表示什么也不做。
例3.3 求华氏温度100F对应的摄氏温度 #include <stdio.h> int main( ) { int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%d\n", fahr, celsius); return 0; } 引号内的fahr和引号外
约定:以后凡说要定义实型变量,都使用double 12.234
例3.4计算圆柱体积
内存 #include <stdio.h> int main() radius high { 5 10 double radius,high,vol; vol printf("请输入圆柱体底面积的半径和圆柱体的高: "); 785 scanf("%lf%lf",&radius, &high); vol=3.14*radius*radius*high; printf("radius=%f, high=%f, vol=%f\n", radius, high, vol); } 请输入圆柱体底面积的半径和圆柱体的高: 5 10 高
输出结果: fahr=100, celsius=37
转换字符串
printf( "%d" , count);
转换字符串 说明 将参数按整数形式转换输出,对应参数应是int 类型 将参数按长整数形式转换输出,对应参数是long型 输出一个字符,对应参数应该是一个字符 输出一个字符串,对应参数应该是一个字符串 将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数
3.2.2格式化输出函数printf
格式:printf(“格式控制串 格式控制串”,输出参数表) 输出参数 格式控制串 输出参数表 printf "%d" , count printf( count);
将一些信息按照指定的格式送到标准输出(显示器) 格式字符串:指定数据的输出格式 输出参数表:待输出的数据,可以是常量、变量或表 达式
输出结果: 168.23
宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。 精度(精确到小数点后多少位)
3.2.3 scanf 函数
scanf 函数从标准输入(键盘)读取信息,按照格式描述 把读入的信息转换为指定数据类型的数据,并把这些数 据赋给指定的程序变量。
scanf("%d",&num);
1、不同级别的操作数运算时,精度低的 自动想精度高的转换 如: double a=1/2; a的值是0.0 double a=1.0/2; a的值是0.5 2、赋值时类型转换 如: double a=1;//会把1.0赋给a int i=1.5;//会把1.5转换为整型得1,赋给i
类型转换
先将a转换为实数, 3、 强制类型转换 再除以b!强制转换 (类型名)操作数 优先级最高 如:double a=2.5; int n; n=(int)a; //将a的值转换为整型2,赋给n 又如:求两整数的商,商为实数 int a=2,b=3; double c; c=(double)a/b; //强制类型转换 或 c=1.0*a/b; //不同类型运算时向精度高的转换
执行程序的输出结果为: 执行程序的输出结果为:
fahr=100, celsius=37
的fahr有区别吗?
输出格式
printf(“fahr=%d , celsius=%d\n", fahr, celsius);
输出参数列表 普通字符,原样输出 %开头的是转换说明,对应与后面一个 输出参数,对应参数将被转换成指定格 式后在该位置输出 ‘\n’是转意字符,用来输出一个回车
例3.6 求整数的位数
输入一个整数,输出该整数的位数。 提示: (1)求n的对数函数为:log10(n); (2)考虑一个整数的对数和位数的关系: 对数取整加1即该数的位数 (3)可用强制类型转换扔掉小数部分 有以上3点可知,整数n的位数是: (int )log10(n)+1;
类型转换(P32)
小练习
(1)编程,从键盘读入一个数圆的半径 radius(实数),输出圆的面积,保留两位 小数
scanf函数使用注意
scanf(格式字符串,地址列表) 在格式字符串中若有普通字符,则输入时在对应 位置也必须输入该普通字符,否则会因读入格 式错误而终止程序。 如果有scanf(“%d,%d”, &a, &b) 输入的两个数直接必须有一个逗号 3,5 正确 scanf的格式字符串中最好不加任何普通字符,只写 3 5 错误 %开头的格式转换符。如scanf(“%d%d”, &a, &b) 如果有scanf(“a=%d,b=%d”, &a, &b) 输入应该是:a=3,b=5,否则就会失败
%d %ld %c %s %f
转换字符串%d
int visitor_count = 150; printf (" %d" , visitor_count);
输出结果:150
转换字符串%md
int salary = 5500; printf (" %10d"" , salary); " %10d
输出结果:
不要给自己制造太多格式限制!
数学函数的使用
要包含头文件<math.h>: #include<math.h> 1、求绝对值 求整数的绝对值,用abs: int i=-3,j; j=abs(i); 求实数的绝对值,用fabs: double a=-12.3,b; b=fabs(a);
数学函数的使用
2、求开方,用sqrt double a=2.3,b; b=sqrt(a); 3、求幂xy,用pow double x=2,y=3,z; z=pow(x,y) 4、求ex,用exp double x=2.3,b; y=exp(x);
• 存储空间使用名称“tax_rate”标识 提示用户输入一个值 • 输入的值存储在变量中(因为 scanf 提供此变量的 地址)
12.234
scanf
内存
tax_rate
double tax_rate; scanf在内存中分配一块 64 位存储空间 ("%lf" , &tax_rate); •