c语言5

合集下载

C语言第5讲--选择程序设计

C语言第5讲--选择程序设计
X 错误!
语句1
else子句条件默认为:所有不满足if子句 条件的情况下,都执行else子句的步骤, 因此不需要再写执行后面步骤所需的条件 (即不再有圆括号和圆括号里的条 件),else后面也不要加分号
5
2双边选择结构
格式: if (表达式) 语句1 else 语句2
执行过程:
表达式取值非0,即条件成立,执行语句1后继续向下执行
•为了使逻辑关系清晰,注意培养良好的程序设计习惯。
14
if(表达式)中的表达式对执行方向的影响
if语句执行的实质是判断表达式的值是否为 0来决定执行语句1还是语句2。 即if语句先去计算表达式的值,当表达式最 终值不为0时执行if子句,否则执行else子 句。
15
四、条件运算符
条件运算符(三目): ? :
16
条件运算符使用举例
有如下程序: main( ) { int a=3,b=4,c; c=a>b?a:b; if(a>b) c=a; else c=b; printf("max=%d\n",c); }
语句:c=a>b?a:b;执行以后,变量c中存放的是 变量a,b中的最大值
17
五、switch 语句(多分支选择语句) 根据此表达式
判断条件
表达式取值为0,即条件不成立,跳过语句1执行语句2后向 下执行 (入口)
Y
语句1
P
N
语句2
(出口)
6
3.多层选择结构
格式:
当我们遇到 的情况不只 一种,且针 对每种情况 我们要采取 不同的步骤 措施时,使 用多层选择 结构
if (表达式1) 语句1 else if (表达式2) 语句2 第2种情况 else if (表达式3) 语句3 及相应的措 : : 施,注意前 面是写 : : else if else if (表达式n) 语句n else 语句n+1 最后一种情况及相应的措施,

C语言程序设计第五章

C语言程序设计第五章
通过编写程序,实现对数组的访问、修改 、排序等操作。例如,实现一个程序,将 一个数组中的所有元素进行排序,或者找 到数组中的最大值和最小值。
05 案例分析
案例一:条件语句在程序中的应用
总结词
条件语句是C语言中用于根据不同条件执行不同操作的语句,通过if、else if和else关键 字实现。
详细描述
编程练习二:循环语句应用
总结词
理解并掌握while和for循环的使用
详细描述
通过编写程序,实现重复执行某段代 码直到满足特定条件,或者根据需要 重复执行某段代码指定次数。例如, 计算1到100的累加和,或者打印出0 到99的所有偶数。
编程练习三:数组操作应用
总结词
理解并掌握数组的基本操作
VS
详细描述
详细描述
数组在程序中用于存储和处理同一种类型的 数据元素,例如存储一组学生的成绩、计算 一组数据的平均值等。数组操作包括数组的 声明、初始化、访问和修改等。通过循环语 句可以方便地遍历数组元素并进行处理。数 组操作在程序中具有广泛的应用,是C语言
中重要的数据结构和算法之一。
06 总结与展望
本章总结
详细描述
C语言中的数组是一种存储相同类型元素的线性数据结构。可以通过索引访问数 组元素,进行赋值、交换、排序等操作。同时,C语言还提供了字符串操作函数, 如strcpy、strcat、strlen等。
语法点三:数组操作
01
示例代码
02
```c
int array[10]; // 声明一个包含10个整数的数组
详细描述
循环语句在程序中用于重复执行一段代码, 例如打印1到10的数字、计算一定数量的累 加和等。循环语句可以嵌套使用,以实现更 复杂的循环结构和算法。循环语句通常与条 件语句结合使用,以控制循环的执行条件和 次数。

C语言基础 五、循环

C语言基础 五、循环

五、循环结构程序设计本章概述:以笔试和上机两种形式考核。

笔试中,多出现在选择题第20-23题。

填空题第8、9题。

分值约占12%。

上机中,三种题型中均有体现,抽中几率约为37%。

考生要熟练掌握。

大纲要求:1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

重点难点:1.for循环结构。

2.continue语句和break语句。

3.循环的嵌套。

考点分析:while 语句while 语句一般形式:while (条件表达式){循环体}while 语句执行过程:先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。

说明:(1)while语句的特点是先判断,再执行。

因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。

(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。

(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

试题解析1.要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是(A)A)while((ch=getchar())!=′N′)printf("%c",ch);B)while(ch=getchar()!=′N′)printf("%c",ch);C)while(ch=getchar()==′N′)printf("%c",ch);D)while((ch=getchar())==′N′)printf("%c",ch);解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。

直到表达式的值为假时,结束循环。

ch=getchar()应加一个括号,表示输入字符的函数。

C语言第五章

C语言第五章
T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。

C语言实验五最简单的C语言程序设计

C语言实验五最简单的C语言程序设计

C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。

(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。

(3)进⼀步掌握编写程序和调试程序的⽅法。

⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。

(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint 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=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。

(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。

/* Note:Your choice is C IDE */#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;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。

c语言程序设计5(函数)

c语言程序设计5(函数)

参数的传递
1. 函数调用时,被调函数中的形参被分配 临时的存储单元,实参的值赋给形参变量 2. 实参可以是常量、变量或表达式 3. 实参的个数、类型和顺序必须与形参一致 4. 形参与实参各占一个独立的存储空间,调 用结束后,形参单元被释放
形参值的改变不会影响实参-----值传递
例:P134 main( ) { int v1=10, v2=20; printf(“v1=%d v2=%d\n”,v1,v2); printf(“_ do swap _\n”); swap(v1,v2); printf(“v1=%d v2=%d\n”,v1,v2); } void swap(int x, int y) { int temp; v1=10 v2=20 temp=x; _ do swap _ x=y; y=temp; v1=10 v2=20 }
自定义函数的应用实例
P136 例3:输出“九 九表”。 它是一个
9行9列的二维表格,
加上一个行标题和一
个列标题,显示出来
应该是10行10列。
#include <stdio.h> void drawLine(int n,char ch); /* 连续显示n个ch字符 */ main() { int i,j; printf("\n 9.9 table\n"); /* 显示表名 */ drawLine(30, '='); /* 显示每列的标题 */ printf("\n 1 2 3 4 5 6 7 8 9"); drawLine(30, '='); for (i=1; i<=9; i++) { /* 显示每行的内容 */ printf("\n%3d", i); for (j=1; j<=9; j++) printf("%3d", i*j); if (i<9) drawLine(30, '-'); else drawLine(30, '='); } void drawLine(int n, char ch) /*连续显示n个ch字符*/ } { int i; putchar('\n'); /*换行*/ for (i=1; i<=n; i++) putchar(ch); /*连续显示n个字符ch*/ }

C语言第5章

C语言第5章
= 1− 1 1 1 1 + − + −L 3 5 7 9
π
6
定义实型变量s=0; 整型变量n=1,k=-1;
1./(2*n-1)>=1e-4?
k=k*(-1); s=s+k*(1./(2*n-1)); n++; 输出4*s的值
程序如下: main() {int n=1,k=-1; float s=0; while(1./(2*n-1)>=1e-4) {k=-k; s=s+k/(2.*n-1); n++; } printf(“PI=%f”,s*4); } 运行结果为: PI=3.141397
1
一、什么是循环 所谓循环,就是重复执行某一程序段。 所谓循环,就是重复执行某一程序段。循环是所 有程序设计中都有的一种最重要的程序控制结构。 有程序设计中都有的一种最重要的程序控制结构。 正是有了循环,使得程序变得非常简单。 正是有了循环,使得程序变得非常简单。可用最 少的程序代码就可完成许多复杂的事情。 少的程序代码就可完成许多复杂的事情。同时循 环也是所有程序设计中最难的一种程序结构, 环也是所有程序设计中最难的一种程序结构,许 多同学对于其它程序结构都好理解, 多同学对于其它程序结构都好理解,但一遇到循 环就变糊涂了,不可理解了。 环就变糊涂了,不可理解了。这一点希望引起同 学们的极大注意。本书一共给出了三种循环: 学们的极大注意。本书一共给出了三种循环: 语句构成的循环; ⑴用while语句构成的循环; 语句构成的循环 语句构成的循环; ⑵用do-while语句构成的循环; - 语句构成的循环 语句构成的循环; ⑶用for语句构成的循环; 语句构成的循环
定义变量sum=0,i=1 接收用户的输入n sum=sum+i; i++; i<=n printf(“sum=%d\n”,sum); #include “stdio.h” main() { int i,sum,n; i=1;sum=0; printf(“\ninput n:”); scanf(“%d”,&n); do { sum=sum+i; i++; }while(i<=n); 9 printf(“sum=%d\n”,sum);}

C语言课件 第5章

C语言课件 第5章
如果x<y, max=y, min=x ③ 输出最大值max、 最小值min
第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4
输入学生1的三门课成绩,并计算平均值后输出 scanf(“%f%f%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f\n”,aver); 输入学生2的三门课成绩,并计算平均值后输出 scanf(“%f%f%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f\n”,aver);
11
例:求1+2+3+…+100,即

n
n 1
100
解题思路:
累加问题,需要先后将100个数相加 要重复100次加法运算,可用循环实现 后一个数是前一个数加1而得 加完上一个数i后,使i加1可得到下一个数
#include <stdio.h> int main( ) { int i=1,sum=0; 不能少 while (i<=100) { sum=sum+i; 复合语句 i++; } printf("sum=%d\n",sum); }
15
do…while语句
一般形式: do 循环体语句 while(表达式); 执行流程为 do---while语句的特点:先无条件地执 行循环体,然后判断循环条件是否成立
16
编程计算:1+2+3+……+100 #include <stdio.h> main( ) { int i=1,sum=0; do { sum=sum+i; i++; } while(i<=100); printf(“sum=%d\n”,sum); }
i=1 i ≤100 N
{
printf("%d ", i ); }
Y 输出i i=i+1
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
设置初始条件,只执行一 次。可以为零个、一个或 多个变量设置初值执行
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
1—100的累加 for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++式3) 语句
一个或两个或三个 表达式均可以省略
例:求:1+2+3+…+100 #include <stdio.h> main( ) { int sum=0,i; for(i=1;i<=100;i++) sum=sum+i; printf(“sum=%d\n”,sum); }
循环条件表达式,用来判定是否继续 循环。在每次执行循环体前先执行此 表达式,决定是否继续执行循环
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
作为循环的调整器,例如 使循环变量增值,它是在 执行完循环体后才进行的
for语句的执行过程:
(1) 先求解表达式1 (2) 求解表达式2,若其值为真, 执行循环体,然后执行下面第(3)步。 若为假,则结束循环,转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句 下面的一个语句
本次课内容
循环结构



while语句 do…while语句 for语句
1
第5 章
循环控制
2
为什么需要循环控制

在程序所处理的问题中常常遇到需要重复 处理的问题
要输入全班40个学生的成绩 统计40个学生的平均成绩
求30个整数之和
……
3
为什么需要循环控制

例如:输入全班40个学生的3门课成绩,然 后统计各学生3门课的平均成绩。
④ i增1;
⑤ 如果i<=n,返回③ ;否则输出S。
9
程序如下: #include <stdio.h> main( ) 一对大括 { int s=1,i=1; 号要对齐 while(i<=9) 复合语句 { s*=i; i++; printf(“%d!=%d\n”,i-1,s); } printf(“%d!=%d\n”,i-1,s); }
38
本次课内容
break语句 continue语句 循环例题 第5章作业中的难点提示

39
例:猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一 半,觉得不过瘾,又多吃了一个,第二天照此办理,吃掉剩 下桃子的一半另加一个,天天如此,到第十天早上,猴子发 现只剩一个桃子了,问这堆桃子原来有多少个? 分析: (1) 假设第一天开始时有a1个桃子,第二天有a2个,. . .,第9天 有a9个,第10天是a10个; (2) 在a1, a2, . . .,a10中,a10=1; (3) a1, a2, . .,a10之间的关系: a9= 2 * ( a10+ 1 ) a8= 2 * ( a9+ 1 ) a1= 2 * ( a2+ 1 ) 也就是:a i= 2 * ( a i + 1 +1) i=9,8,7,6,...,1 此题的数学模型(递推公式)。
?
32
⑹表达式1及表达式3也可以是与循环变量无关 的其他表达式。
for (sum=0 ; i<=100; i++) sum=sum+i;
与循环变量无关 合法
33
for(sum=0,i=1 ; i<=100; i++) sum=sum+i;
for(i=0,j=100 ; i<=j; i++,j-- ) k=i+j;
ex=1; term=1;
36
fac=1;xn=1;
for(n=1;n<=m;n++) fac*=n; { term*=x/n; xn*=x; ex+=term; term=xn/fac; }
printf(“ex=%lf\n”,ex);
}
37
例:写出以下程序的执行结果 #include <stdio.h> main( ) { int a=10,b=5,c=5,d=5; int i=0,j=0,k=0; for(;a>b;++b) i++; while(a>++c) j++; do { k++;} while(a>d++); printf(“i=%d j=%d k=%d\n”,i,j,k); } i=5 j=4 k=6
35
x e 例:编程计算
x x x e 1 x 2! 3! m!
x
2
3
m
#include <stdio.h> main( ) { int m,n; double x,term,ex; printf(“Enter x(double) and m(int):”); scanf(“%lf%d”,&x,&m);

?
31
⑶省略表达式3 sum=0; for(i=1;i<=100;) { sum=sum+i;i++; } (循环变量i增1放在循环体中) ⑷省略表达式1和3 sum=0;i=1; for(;i<=100;) { sum=sum+i; i++;} 相当于:while(i<=100) { sum=sum+i;i++;} ⑸省略表达式1、2、3 sum=0;i=1; for( ; ;) sum=sum+i; (陷入死循环)
执行流程: while循环的特点是: 先判断条件表达式,后执行循环体语句
8
例:求9的阶乘。
分析: n!=1*2*„*(n-2)*(n-1)*n, ① S1 = 1 ② S2= S1*2,S3= S2*3 ③ Sn=Sn-1*n 算法:
① 统一令S等于阶乘值,S的初值=1;
② i为循环变量,初值=1 ③ S = S * i,
例:利用格里高利公式求π : π/4 = 1 - 1/3 + 1/5 - 1/7 + ...,直到最
后一项的绝对值小于等于10-6为止。
分析:
计算1—100的累加
int i=1,sum=0; while (i<=100) { sum=sum+i; i++; }
计算1+3+5+7+…+99 int i=1,sum=0; while (i<=99) { sum=sum+i; i+=2; }
?
求1到9的阶乘。即1!,2!„9!
10
算法

什么是算法 解决问题的具体方法和步骤,就是算法 程序设计的关键之一是解题的方法与步骤,即 算法。 学习高级语言的重点,就是掌握分析问题、解 决问题的方法,锻炼分析、分解,最终归纳整 理出算法的能力。 在高级语言的学习中,一方面应熟练掌握该语 言的语法,另一方面必须认识到算法的重要性, 加强思维训练,以写出高质量的程序。
#include <stdio.h> int main( ) { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; 不能丢,否则循环永不结束 } printf("sum=%d\n",sum); }
相关文档
最新文档