第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程序设计[详版课资]
![第3章 最简单的C程序设计[详版课资]](https://img.taocdn.com/s3/m/44edddb04afe04a1b071defb.png)
说明
➢ 两个整数相除的结果为整数
如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,个代码值表示
- 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); •