第3章 简单C语言程序 (2)

合集下载

C语言程序设计 第3版 第3章 算法与流程图

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)有穷性:算法中所包含的步骤必须是有限的,不能无穷无止,应该在一个人所能接受 的合理时间段内产生结果;

c语言课后答案

c语言课后答案

《C程序设计》课外作业及参考答案说明:(1)章节顺序按照PowerPoint电子教案;(2)教材上的作业注明了章节和题号;(3)所用教材是《C程序设计(第二版)》谭浩强清华大学出版社;第一章C语言概述1.1 简答题:写出C语言的主要特点(教材习题1.1)。

1.2填空题:1.C语言与操作系统并称“栾生兄弟”。

2.C语言俗称为形式。

3.C源程序文件经过处理后产生目标文件,目标文件经处理后生成可执行文件。

1.3 单项选择题1. 以下说法中正确的是。

(A)C语言程序总是从第一个定义的函数开始执行(B)在C语言程序中,要调用的函数必须在main函数中定义(C)C语言程序总是main函数开始(D)C语言程序中的main函数必须放在程序的开始部分2. 以下正确的C标识符是。

(A)_125 (B)C# (C)C++ (D)A$1.4 多项选择题1. 以下关于C语言的说法中,错误的是。

(A)俗称为“低级语言的高级形式”,因此功能简单(B)不是结构化程序设计语言(C)可能直接访问内存(D)语法限制不严2. 以下标识符属于C语言关键字的有。

(A)integer (B)else (C)include (D)while第二章C语言基本数据类型、变量、常量与表达式2.1简答题1.求下面算术表达式的值。

(教材习题3.9)a)x+a%3*(int)(x+y)%2/4设x=2.5, a=7, y=4.7b)(float)(a+b)/2+(int)x%(int)y设a=2, b=3, x=3.5, y=2.52.写出下面程序的运行结果。

(教材习题3.10)main(){ int i, j, m, n;i=8; j=10; m=++i; n=j++;printf("%d,%d,%d,%d", i, j, m, n);}3.写出下面表达式运算后a的值,设原来a=12。

设a和n已定义为整型变量。

(教材习题3.12)a)a+=a b) a-=2 c) a*=2+3b)d) a/=a+a e) a%=(n%=2), n的值等于5 f) a+=a-=a*=a4.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?2.2 填空题1. 写出下面各逻辑表达式的值。

c语言程序设计第五版谭浩强习题答案第三章课后答案

c语言程序设计第五版谭浩强习题答案第三章课后答案

c语⾔程序设计第五版谭浩强习题答案第三章课后答案第三章最简单的C程序设计 ----顺序程序设计1、假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。

题⽬解析:此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。

代码⽰例:#include<stdio.h>#include <math.h>int main(){Cfloat p, r, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);return 0;}运⾏结果:2、存款利息的计算。

有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: $P=1000* (1+r)^n$;活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。

题⽬解析:理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:#include<stdio.h>#include <math.h>int main(){float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;p = 1000;r5 = 0.0585;r3 = 0.054;r2 = 0.0468;r1 = 0.0414;r0 = 0.0072;p1 = p*((1 + r5) * 5); // ⼀次存5年期p2 = p*(1 + 2 * r2)*(1 + 3 * r3); // 先存2年期,到期后将本息再存3年期p3 = p*(1 + 3 * r3)*(1 + 2 * r2); // 先存3年期,到期后将本息再存2年期p4 = p*pow(1 + r1, 5); // 存1年期,到期后将本息存再存1年期,连续存5次p5 = p*pow(1 + r0 / 4, 4 * 5); // 存活期存款。

c语言程序设计第三章运算符与表达式

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.1.2)--3.1节-3.5节

C语言程序设计 简单的算术运算和表达式(3.1.2)--3.1节-3.5节

13
printf("area = %f\n", area);
14 }
【例题解析】本题用宏常量代替了程序中多次出现的常数,提高了程序的可读性和可维
护性。
【例 3.5】使用 const 常量定义,编程从键盘输入圆的半径 r,计算并输出圆的周长和面
积。
1 #include <stdio.h>
2 main()
a)(s
b)(s
c)
,s=
1பைடு நூலகம்2
(a
b
c)
试编程从键盘输入 a,b,c 的值(假设 a,b,c 的值可以保证其构成一个三角形),计算
并输出三角形的面积。
程序如下:
1 #include <stdio.h>
2 #include <math.h>
3 main()
4{
5
float a, b, c, s, area;
3{
4
const double pi = 3.14159; /* 定义实型的const常量pi */
5
double r;
6
double circum;
7
double area;
8
printf("Input r:");
9
scanf("%lf", &r);
10
circum = 2 * pi * r;
11
6
printf("(float)(m/2) = %f\n", (float)(m/2));
7
printf("(float)m/2 = %f\n", (float)m/2);

c语言第03章

c语言第03章

活期存款一年后本息和为: p1=p0(1+r1) 一年期定期存款,一年后本息和为: p2=p0(1+r2) 两次半年定期存款,一年后本息和为:
r3 r3 p3 = p0(1 + )(1 + ) 2 2
6
3.1顺序程序设计举例

算法:
输入p0,r1,r2,r3的值 计算p1=p0(1+r1) 计算p2=p43; r 3 )
2 2
输出p1,p2,p3
7
3.1 顺序程序设计举例
#include <stdio.h> 定义变量同时赋予初值 int main ( ) {float p0=1000, r1=0.0036,r2=0.0225, r3=0.0198, p1, p2, p3; p1 = p0 * (1 + r1); p2 = p0 * (1 + r2); p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3); return 0; }
\„ \ddd \“ 单引号 例 void main() { printf(“Y\b=\n”);\xhh 3位8进制数代表的字符 aaa }
转义字符:反斜线后面跟一个字符或一个代码值表示
<
双引号 运行结果: 2位16进制数代表的字符 屏幕显示:= 15 打印机输出:¥
C语言程序设计
第3章 最简单的C程序设计
19
C语言程序设计
第3章 最简单的C程序设计

3.2.3不同类型数据间的转换
1.隐式转换
什么情况下发生
运算转换------不同类型数据混合运算时 赋值转换------把一个值赋给与其类型不同的变量时 输出转换------输出时转换成指定的输出格式

C语言第3章

C语言第3章

/*将变量c的值通过返回语句带回调用
C语言程序设计
第二章 数据类型和运算
3.2
程序结构
• 3.2.2 顺序结构 – 程序运行时按语句书写的次序依次执行 – 最简单、最基本的结构 【例3-3】分析下面程序结构。 #include <stdio.h> void main() { int a,b,c; scanf("%d,%d",&a,&b); c=a+b; printf("c=%d\n",c); }
C语言程序设计
第二章 数据类型和运算
说明:
C语言程序设计
第二章 数据类型和运算
格式输入函数
格式: scanf(“格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束 返值:正常,返回输入数据个数
地址表:变量的地址,常用取地址运算符& 格式字符:d,i,o,x,u,c,s,f,e
例 scanf(“%d”,&a); 输入:10 则 a=10 例 scanf(“%x”,&a); 输入:11 则 a=17
C语言程序设计
第二章 数据类型和运算
3.3
赋值语句
• 3.3.2 复合赋值语句 • a+=3; /*相当于a=a+3 */ • b-=6; /*相当于b=b-6 */ • c/=2; /*相当于c=c/2 */ – 在构造以上赋值语句之前,变量必须已经初始化或赋值。 下面的程序是错误的: • int a; • a+=10; • 因为a+=10相当于a=a+10,而右边表达式中的a是刚 刚定义的,还没有具体的值。
C语言程序设计

C语言程序设计ppt课件-第3章-选择结构

C语言程序设计ppt课件-第3章-选择结构
1.表达式 2. if语句 3. switch语句 4. 选择结构的嵌套 5. 选择结构的应用
本章主要内容
1
选择结构
在解决大量的实际问题时,常常需要根据不同的 情况或条件,制定出不同的解决方案或对策。
选择结构是通过对条件 的判断来选择执行不同 的程序语句。
选择结构
一个程序若具有了判断和选择功 能,就具备了最基本的智能。
的完整的解题步骤。
void main() { int x,y,z,max;
printf("“\n Please input x,y,z: ");
➢将同影一响问到题算可法用乃不至同程算序法的解效决率,sifc(a。xm而n>afy(一一x)"=%x个个;d%算算d法法%d的的",&评质x价,量&y主优,&要z劣); 从时间复杂度和空间复杂度来els考e 虑。
max=y;
例从键盘输入三个不同的、无序if(mm的aaxx整<=zz)数; ,并分别存放 到变量x、y、z中,然后通过pr判int断f("输\n 出ma三x=%个d数\n"中,m的ax)最;
大数。要求将最大数存放在} 变量max中。
25
语法练习(单选题)
1.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中
switch语句的应用
关例键从语键句盘:上输入一个学生的总平均成 绩能用(i大f- e于ls0e且if来小替于换10吗0)? swi,tc按h(分(i数nt段)(评sc定or出e/成10绩.的0)相) 应等级,90以上为A级,80~
{89为caBs级e ,97:0~g7r9a为dCe=级'A,'6;0~br6e9a为k;D级,59以下为E级。 问题分ca析se:s8w:itchg语ra句de中='的B表';达b式re只ak能; 是整型或字符型,所 以可c用as成e 绩7的:高位gr数ad字e=来'C确';定b其re对a应k;的分数段,而每一个 分数c段as又e对6应:swigtrcha中de的='一D'路; 选br择ea。k;可用表达式“((int)(成 绩/1c0)a)s”e 计5算:出成绩的高位数字 ,其中,“(int)”的功能 是将c表as达e式的4:值强制转换成整数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如果上题改为
int a=-1,b=4,k; k=(a++<=0)||(!(b--<=0)) 结果k,a,b分别等于?
++和--运算符放在后面是先取值运算后 +/-1,所以a++<+0值为1(真);b-<=0值为0(假),!(非)运算后值为1 ,1&&1(与运算)后值为1,运算后 a+1;b-1因此最终结果:k=1,a=0,b=4
求求反反
6.C运算符
(6) 条件运算符 (?:) <表达式1>?<表达式2>:<表达式3>
6.C运算符
(7) 逗号运算符
(,)
(8) 指针运算符
(*和&)
(9) 求字节数运算符
(sizeof)
(10) 强制类型转换运算符 ( (类型) )
(11) 成员运算符
(.->)
(12) 下标运算符
([ ])
复习:运算符和表达式
3. 算术表达式和运算符的优先级与结合性: 1)用算术运算符和括号将运算对象(也称操 作数)连接起来的、符合C语法规则的式子, 称为C算术表达式 2)运算对象包括常量、变量、函数等 3)C语言规定了运算符的优先级和结合性
复习: 运算符和表达式
4.不同类型数据间的混合运算:
(1) +、-、*、/ 运算的两个数中有一个数为float或 double型,结果是double型。系统将float型数 据都先转换为double型,然后进行运算(float型数
printf标志字符
字符
意义
输出结果左对齐,右边填空格;
- 缺省则输出结果右对齐,左边填
空格或零
+ 输出值为正时冠以“+”号,为
负时冠以“-”号
# 八进制输出时加前缀o;十六进
制输出时加前缀0x
例如,以下语句输出六位十 进制整数:
printf(“%6d\n”,111); printf(“%-6d\n”,111); 输出结果为: ┗┛┗┛┗┛111 (输出右对 齐,左边填空格) 111┗┛┗┛┗┛ (输出左对 齐,右边填空格)
C语言程序设计 第3章 简单C语言程序(二)
·校内自编教材 ·
学习目标
掌握数据输入输出方式 掌握输入输出函数的运用 进一步掌握数据类型 进一步掌握各种运算
复习:运算符和表达式
1.基本的算术运算符:
+ :正号运算符(单目运算符) - :负号运算符(单目运算符) * :乘法运算符 / :除法运算符 % :求余运算符 + :加法运算符 - :减法运算符
15赋予变量y。 ⑶ 宽度指示符:用十进制整数指定输入数据的宽度。
例如: scanf(“5d”,&x);
输入数据“661020”,把前五位数66102赋予变量x,其余 部分被截去。
使用scanf函数注意事项
复习运算符和表达式
说明
两个整数相除的结果为整数 – 如5/3的结果值为1,舍去小数部分 – 如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结果 为-1,在有的系统中则得到结果为-2 – VC++采取“向零取整”的方法 如5/3=1,-5/3=-1,取整后向零靠拢
语句与表达式的区别
表达式语句是由表达式和分号构成。 例如: a=3 是表达式 a=3;是语句。 只有分号的语句是空语句。
3.1 输入/输出函数
在C程序中用来实现输出和输入的,主要是 printf函数和scanf函数
这两个函数是格式输入输出函数 用这两个函数时,必须指定格式
用printf函数输出数据
printf(“%g\n”,888.88); 888.88(%f格式比采用%e格式输出宽度小)
printf(“%8g\n”,888.88); ┗┛┗┛888.88(输出右对齐,左边填空格)
精度指示符
以“.”开头,用十进制整数指精度。对于 float或double类型的浮点数可以用 “m.n”的形式在指定宽度的同时来指定其 精度。其中,“m”用以指定输出数据所占 总的宽度,“n”称为精度。
scanf函数
1. scanf scanf(格式控制,地址表列)
含义同printf函数
scanf函数
1. scanf scanf(格式控制,地址表列)
可以是变量的地址,或字 符串的首地址
【例2-14】 用scanf函数输入数据。 main( ) { int x,y; scanf(“%d%d”,&x,&y); printf(“%d,%d \n”,x,y); }
输出八进制或十六进制时, 可以使用以下形式: printf(“%#o,%#x\n”,10,1 6); 输出结果为: 012,0x10
宽度指示符
宽度指标符:用来设置输出数据项的最小 宽度,通常用十进制整数来表示输出的位 数。如果输出数据项所需实际位数多于指 定宽度,则按实际位数输出,如果实际位 数少于指定的宽度则用空格填补。
横向跳格(即跳到下一个输出区, 9 一个输出区占8列)
退格,将当前位置移到前一列
8
Enter,将当前位置移到本行开头 13
换页,将当前位置多到下页开头
12
反斜杠字符“\”
92
单引号字符
39
双引号字符
34
1到3位8进制数所代表的字符
1到2位16进制数所代表的字符
printf函数的调用
【例2-12】 示例程序 main( ) { char c1='x',c2='y'; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); }
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f
以小数形式输出单、双精度数,隐含输出6位小数。
e,E 以指数“e”或“E”形式输出实数。(如1.2e+02或 1.2E+02)
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无 意义的0。用G时,若以指数形式输出,则指数以大写表示
输入实数,可以用以小数形式或指数形式输入 与f作用相同,e与f,g可以互相替换
scanf函数的格式说明
(2)抑制字符“*”:表示该输入项读入后不赋予相应 的变量,即跳过该输入值。 例如: scanf(“%d%*d%d”,&x,&y); 输入10┗┛12┗┛15后,把10赋予变量x,12被跳过,
示例程序
输出语句
输出结果
printf(“%d\n”,888);
888(按实际需要宽度输出)
printf(“%6d\n”,888);
┗┛┗┛┗┛888(输出右对齐,左边填空格)
printf(“%f\n”,888.88); 888.880000(按实际需要宽度输出)

printf(“%12f\n”,888.88); ┗┛┗┛888.880000(输出右对齐,左边填空格)
程序运行结果为: c1=x,c2=y c1=120,c2=121
printf格式字符
格式字符
说明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用 x则输出十六进制数的a~f时以小写形式输出;用X时,则 以大写字母输出
据在运算时一律先转换成双精度型,以提高运算精度(即使 是两个float型数据相加,也先都化成double型,然后再
相加)
(2) 如果int型与float或double型数据进行运算,先 把int型和float型数据转换为double型,然后进 行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
(13) 其他
(如函数调用运算符())
练习
int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)) 结果k,a,b分别等于?
++和--运算符放在后面是先取值运算后 +/-1,所以a++<+0值为1(真);b-<=0值为0(假),!(非)运算后值为1 ,1&&1(与运算)后值为1,运算后 a+1;b-1因此最终结果:k=1,a=0,b=3
示例程序
输出语句 printf(“%.5d\n”,888); printf(“%.0d\n”,888); printf(“%8.3f\n”,888.88); printf(“%8.1f\n”,888.88); printf(“%8.0f\n”,888.88); printf(“%.5s\n”,”abcdefg”); printf(“%5s\n”,”abcdefg”);
用printf函数输出数据
1.printf函数的一般格式 printf(格式控制,输出表列)
例如: printf(”i=%d,c=%c\n”,i,c);
可以是常量、变量或表达式
转义字符
字符形式 \n \t
\b \r \f \\ \’ \” \ddd \xhh
含义
ASCII代码
换行,将当前位置移到下一行开头 10
输出结果如下: 123,┗┛┗┛┗┛123,123┗┛┗┛┗┛,123 1234567,┗┛1234567,1234567 123.456700,123.456700,┗┛┗┛┗┛┗┛123.46,123.46┗┛┗┛┗┛┗┛
student,┗┛┗┛┗┛┗┛┗┛stude,stude┗┛┗┛┗┛┗┛┗┛
相关文档
最新文档