第3章 简单C语言程序 (2)
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程序设计》课外作业及参考答案说明:(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程序设计 ----顺序程序设计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语言程序设计第三章运算符与表达式
第三章运算符和表达式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节
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章
活期存款一年后本息和为: 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的值通过返回语句带回调用
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章-选择结构
本章主要内容
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:值强制转换成整数。
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语言程序设计(第2-3章)习题答案(魏为民)
习题2参考答案一、基础题1.若二维数组a有m列,则在a[i][j]前的元素个数为:A)j*m+i B)i*m+jC)i*m+j-1 D)i*m+j+1B2.在C语言中(以16位PC机为例),五种基本数据类型存储空间长度的排列顺序是:A) char<int<long int<=float<doubleB) char=int<long int<=float<doubleC) char<int<long int=float=doubleD) char=int=long int<=float<doubleA3.在C语言的变量类型说明中,int,char,float等类型的长度是:A) 固定的B) 由用户自己定义的C) 任意的D) 与机器字长有关的D4. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是:A) int型B)float型C) double型D)不确定C5.C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符:A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种C6.设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的值是:A) 4 B) 3 C) 2 D) 1D7.以下程序的输出结果是:main(){ int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,13D8.若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:A) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3C9.已知x=43,ch='A',y=0,则表达式(x>=y&&ch<'B'&&!y)的值是:A) 0 B) 语法错C) 1 D) "假"C10.下面程序的输出结果是:main(){ int a=-1, b=4, k;k=(a++<=0)&&(!(b--<=0));printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,3B11.已知字母A的ASCII码为十进制的65,下面程序的输出是:main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值A12.下面程序的输出的是main(){ int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值C二、程序设计题1.从键盘上输入一个小写字母,编程输出其对应的大写字母以及它们的十进制ASCII码。
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章 选择结构流程和应用
2 单分支和双分支选择结构程序设计
简单if语句 if-else语句 条件运算符与条件表达式
简单if语句
学一学 简单if语句的形式为: if ( 条件表达式 ) 语句
其流程图如图3-1所示。语句的执 行过程是先计算“条件表达式”, 若值为“真”,则执行“语句”; 否则什么也不做。此处的“语句” 可以是简单语句,也可以是用一对 大括号“{ }”括起来的复合语句。
本章内容中我们将学习 1 选择结构判定条件的构成 2 单分支与双分支选择结构程序设计 3 多分支选择结构程序设计
1 选择结构判定条件的构成
关系运算符与关系表达式 逻辑运算符与逻辑表达式
关系运算符
关系运算是对两个操作数之间进行比较的运算符,其 运算结果为逻辑值(或称“布尔”值,boolean) “真”或“假”。 C语言中提供六种关系运算符,如 表3-1所示。
条件
Y
N
语句
试一试
问题3.4 从键盘输入一个数,输出其绝对值。 解题步骤 1.定义变量二个int变量iX,iY,其中iX用来接收 用户从键盘输入的数据,iY用来存放iX的绝对值。 2.从键盘输入一个整数放iX; 3.把iX放iY; 4.正数的绝对值是正数本身,负数的绝对值是其 相反数。所以,如果iX<0,则iY= -iX,否则不 需要做什么; 5.输出iX和iY。
练一练
问题:小明去参加一个同学的生日聚会, 同学的家长规定18岁以上的才可以饮酒, 所以需要编一程序根据输入的年龄打印一 张饮酒卷,使的能饮酒的同学可以获取饮 酒卷。
if-else语句
学一学 if-else语句是标准的if语句。 用来实现双分支选择结构, 其一般形式为: if ( 条件 ) 语句1; else 语句2;
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语言程序设计:现代方法(第2版)》第3章格式化输入输出
《C语⾔程序设计:现代⽅法(第2版)》第3章格式化输⼊输出⽬录第3章格式化输⼊/输出在探索难以实现的问题时,问题本⾝的简单性只会使情况更糟。
scanf函数和printf函数是C语⾔编程中使⽤最频繁的两个函数,它们⽤来格式化输⼊和输出。
正如本章要展⽰的那样,虽然这两个函数功能强⼤,但要⽤好它们却不容易。
3.1节描述printf函数,3.2节则介绍scanf函数。
但是这两节的介绍都不完整,完整的细节将留到第22章中介绍。
3.1 printf函数printf函数被设计⽤来显⽰**格式串(format string)的内容,并且在该串中的指定位置插⼊可能的值。
调⽤printf函数时必须提供格式串,格式串后⾯的参数是需要在显⽰时插⼊到该串中的值:printf(格式串, 表达式1, 表达式2, ...);显⽰的值可以是常量、变量或者更加复杂的表达式。
调⽤printf函数⼀次可以打印的值的个数没有限制。
格式串包含普通字符和**转换说明(conversion specification),其中转换说明以字符%开头。
转换说明是⽤来表⽰打印过程中待填充的值的占位符。
跟随在字符%后边的信息指定了把数值从内部形式(⼆进制)转换成打印形式(字符)的⽅法,这也就是“转换说明”这⼀术语的由来。
例如,转换说明%d指定printf函数把int型值从⼆进制形式转换成⼗进制数字组成的字符串,转换说明%f对float型值也进⾏类似的转换。
格式串中的普通字符完全如在字符串中出现的那样显⽰出来,⽽转换说明则要⽤待显⽰的值来替换。
思考下⾯的例⼦:#include <stdio.h>int main() {int i, j;float x, y;i = 10;j = 20;x = 43.2892f;y = 5527.0f;printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y);return 0;}这个printf函数调⽤会产⽣如下输出:i = 10, j = 20, x = 43.289200, y = 5527.000000格式串中的普通字符被简单复制给输出⾏,⽽变量i、j、x和y的值则依次替换了4个转换说明。
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章 运算符与表达式
提问:以下程序是输出变量的值还是表达式的值?
int main(void)
{
char a = 0,b = 0; a = 10;
总结:永远输出表达式的值!!!
b = 15;
printf("%d",a);
printБайду номын сангаас("%d\n",a+b);
sizeof(表达式) 结果为表达式的数据类型占据的字节数
课堂练习: 写出以下表达式的值。 int a = 10; sizeof(int) sizeof(unsigned int) sizeof(a) sizeof(165) sizeof(a + 10) sizeof(float) sizeof(double) sizeof(long double)
c = 7/2;
printf("%f\n", c);
c = a*2;
printf("%f\n", c);
return 0;
}
8
算术运算符与表达式: + - * / %
注意:%求余运算符的两个运算对象必须都是整数! 而且表达式结果的正负由被除数决定。
课堂练习: 2.写出以下表达式的结果。
int a = 10,b = 3,c = -7; a/b a%b b%a c%a a%c 20 % 6.5 20%-5 -20%5 -20%-5
《C语言程序设计》 第三章 运算符与表达式
1
课程回顾
❖变量的定义、初始化 ❖变量的使用 ❖三大基本数据类型
2
本次课议题
❖运算符与表达式 ❖优先级与结合性 ❖算术运算符与表达式 ❖关系运算符与表达式 ❖逻辑运算符与表达式 ❖赋值运算符与表达式
C语言第3章_
o,x
f
e g c
计算机基础教学部
17
二、printf格式符说明
■ 另外,还有其他格式符如:
■m
■l ■ 将在需要的时候用实例讲解。
计算机基础教学部
18
二、printf一般格式
■
%[标志][输出最小宽度][.精度][长度]格式字符
#include <stdio.h> #include <stdio.h> main() main() { { 输出结果:10,3.4 int a=10; 10 3.4 int a=10; 输出结果:103.4 float b=3.4; float b=3.4; printf(“%d%f\n”,a,b);/*a是int类型,用%d格 printf(“%d ,%f\n”,a,b); 式, b是float类型,用 %f格式*/ } printf(“%d%6.2f\n”,a,b) }
}
计算机基础教学部
23
四、格式输入函数scanf
输入数据赋给变量:
#include <stdio.h> #include <stdio.h> #include <stdio.h> #include <stdio.h> main() main() main() #include <stdio.h> main() { { { main() { int a,b; float h,w; int a;{ float b; scanf(“%d%d”,&a,&b); printf(“请输入身高(米):”); scanf(“%d”,&a); double c; scanf(“%f”,&b); scanf(“%f”,&h); } scanf(“%lf”,&c); } } printf(“请输入体重(千克):”); } scanf(“%f”,&w); printf(“肥胖指数为:%.2f\n”,w/h/h);
第3章 设计简单的C程序-C语言程序设计新编教程-高立丽-清华大学出版社
它们由特定的语句定义符组成。
2、循环执行语句:do while语句、while语句、for语句;
C语言有九种控制语句。可分成三类,见右侧的举例。
3、转向语句:break语句、goto语句、continue语句、
return语句。
把多个语句用括号{}括起来组成的一个语句称复合语句。
例如:
在程序中应把复合语句看成是单条语句,而不是多条语句。
;
本语句的功能是,只要从键盘输入的字符不是回车则
重新输入。
3.2 基本输入/输出函数
第3章 设计简单的C程序
6
3.2.1 输入/输出概述 C语言函数库中有若干个“标准输入输出函数”,主要有以下三类: (1)字符输入输出函数。 这些函数的功能是实现字符的输入输出。主要有putchar函数和getchar函数。 (2)格式输入输出函数。 这些函数的功能是根据指定的格式进行输入输出。有printf函数和scanf函数。 (3)字符串输入输出函数。 它们的功能是实现字符串的输入输出。有gets函数和puts函数。
应。 对于语句printf("格式1…格式2…格式n",参数1,参数2,……参数n); 可以理解为将参数1到参数n的数据按给定的格式输出。
3.2 基本输入/输出函数
第3章 设计简单的C程序
12
2.格式字符串 格式字符串是printf函数的关键参数,用于描述数据输出的格式,由一些格式字符和非格式
字符组成,其一般格式如下:
3.2 基本输入/输出函数
第3章 设计简单的C程序
7
3.2.2 字符数据的输入/输出 1.字符数据输出函数——putchar函数 如果要向显示设备输出一个字符,可以使用C语言提供的putchar函数,其格式如下: putchar(c); 格式说明: ①该函数的功能是向显示设备输出一个字符;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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┗┛┗┛┗┛┗┛┗┛