C语言分支与循环结构举例.ppt_第1页
C语言分支与循环结构举例.ppt_第2页
C语言分支与循环结构举例.ppt_第3页
C语言分支与循环结构举例.ppt_第4页
C语言分支与循环结构举例.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上级安排,电子、光信息05级工程技术班 第5-14周 周四 3-4节 第13、14周 周四中午 地点:学院基础实验室2层 注意:以班为单位,按学号就坐,以便点名。,上级安排,通工 第5-6周 周五 1-2节 第7-14周 周二 3-4节 第13、14周 周二中午 地点:学院基础实验室1层 注意:以班为单位,按学号就坐,以便点名。,分支与循环结构举例,分支结构,1 表示“x在1,8区间内”的表达式是,x=1 则表达式 a | a-b c= a=b; printf(“c=%dn”,c);,1,6 根据下面的步骤编写程序: 定义整型变量a 输入一个整数存放在a中 判断该数是否能同时被3、4、5整除,

2、若能输出Yes,否则输出No。,#include main() int a; printf(“input a:”); scanf(“%d”, ,9 输入三角形的三条边长值,判断它们能否构成三角形,若能构成,则再判断是等边三角形还是等腰三角形还是一般三角形。,7 执行以下程序段后,a的值是 int a,x=65; if(x%3) a=1; else a=0; 若有int a,b,t; scanf(“%d%d”, , 则在输入两个整数后,实现a中总是存放a,b中较小者的语句是,t=a; a=b;b=t;,1,#include main() int a,b,c; printf(input a,b,c

3、:); scanf(%d%d%d, ,某公司招聘条件如下: 熟练掌握C和VB。 具有3年以上工作经验或重点大学毕业。 年龄在35岁以下。 根据用户输入条件,判断应聘者是否符合条件。 11 根据用户输入的生日计算其实足年龄。,#include main() char cvb,collage; int work,age; printf(Is familiar with C and VB(y/n):); cvb=getche(); printf( work age:); scanf(%d, ,main() int year,month,day,age; int byear,bmonth,bday;

4、printf(input today date(y,m,d):); scanf(%d%d%d, ,执行以下程序段后,n的值是 int n=0, a=63; switch(a%10) case 3: n+; case 6: n+; break; default: n+; ,2,执行以下程序段后,n的值是 int x=3, a, n=1; switch(x) case 1: a=1; break; case 2: a=2; break; case 3: if(n=0) a=3; else a=4; break; default: a=5; ,4,P61 求 方程的解,#include stdio.

5、h #include math.h main() float a,b,c,disc,x1,x2,realpart,imagpart; printf(ninput a,b,c:n); scanf(%f,%f,%f, else, disc=b*b-4*a*c; if (fabs(disc)0.0) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(This equation has two unequal real root:n x1=%8.4f,x2=%8.4fn,x1,x2); else, realpart=-b/(2*a); i

6、magpart=sqrt(-disc)/(2*a); printf(This equation has two complex root:n); printf(x1=%8.4f+%8.4fin,realpart,imagpart); printf(x2=%8.4f-%8.4fin,realpart,imagpart); ,以下程序段的运行结果是 int x, a=1; if (x=5 ,0,16 以下程序段的运行结果是 int i=5; printf(I%3? “%d*” :“%d#”,i);,5*,17 执行以下程序段后,a的值是 int x=5, y=5,z=10,a; switch(x=

7、y) case 1: if (yz) a=1; else a=2; case 2: switch(z) case 10: a+=10; break; case 11: a+=20; case 0: a*=10; ,110,以下程序段的运行结果是 int a=5, b, i=57; b=(i10 ,b=(i10 for(a=0;a=100;a+) printf(“*”);,无限次,2 以下程序段的执行次数是 int a=-3; while(1) a+; if(!a) break; ,3次,以下程序段的执行次数是 ,推出循环后k的值是 。 int k=5; do printf(“*n”); -k;

8、 while(k-);,3,-1,以下程序段的执行结果是 。 int i=5; for( ; ; ) i+; if(i%3 !=0) printf(“i=%dn”,i); else break; ,i=2,二、最大值、最小值问题 1 从键盘输入若干学生体重(单位为公斤,用负数结束输入)统计并输出最重和最轻的体重数。,main() int t, max, min; printf(input a students avoirdupois:); scanf(%d,max=t; min=t; while(t=0) if(tmax) max=t; if(tmin) min=t; printf(input

9、 next students avoirdupois:); scanf(%d, ,三、累加和问题:公式 1 求,main( ) int i,n; float s=0.0; printf(“input n=”); scanf(“%d”, ,2 求,main() int a,n,i,sn,tn; printf(input a,n:); scanf(%d%d, ,3 从键盘输入一个二进制正整数,输出对应的十进制数。,#include main() long x,r,t=1,ten=0,y; printf(input binary number:); scanf(%ld,while(x!=0) r=x

10、%10; ten=ten+r*t; t=t*2; x=x/10; printf(binary%ld to dec is:%dn,y,ten); ,4 求数列前20项之和 2/1,3/2,5/3,8/5,13/8,21/18,main() int i,t,n=20; float a=2,b=1,s=0; for(i=1;i=n;i+) s=s+a/b; t=a; a=a+b; b=t; printf(“sum=%fn”,s); ,二、阶乘型问题 1 求135791113前n项之积。,main() int i,n=10; double factorial=1.0; for(i=1;i=n;i+)

11、factorial = factorial* (2*i-1); printf(“sum=%fn”, factorial); ,for(i=1;i=2*n-1; i=i+2) factorial = factorial* i;,求1!+3!+5!+9!,main() int i,j; long fac,sum=0; for(i=1;i6;i+) fac=1; for(j=1;j=2*i-1;j+) fac=fac*j; sum=sum+fac; printf(sum=%ldn,sum); ,main() int i; long fac=1,sum=0; for(i=1;i10;i+) fac=f

12、ac*i; if(i%2!=0) sum=sum+fac; printf(sum=%ldn,sum); ,三、一般迭代类型: 1 某生产豪华游轮的造船厂,第一年生产3艘,从第二年起,每年的产量是前一年产量减去半艘再翻一番。问第10年的产量是多少叟?10年内总产量是多少叟?,迭代公式:a:前一年产量 b:当年产量 b = ( a - 0.5 ) * 2 迭代公式的初值: a=3 求第十年产量即迭代9次,main() int i,a=3,b,sum; sum=a; for(i=2;i=10;i+) b=(a-1/2.0)*2; sum=sum+b; a=b; printf(The tenth ou

13、tput is%d.nThe total is%d.n,b,sum); ,2 将若干苹果分给A,B,C三个小孩,把苹果总数的一半和半个苹果给A,再把剩余苹果的一半和半个苹果给C,这时正好分完所有苹果。求三个小孩所分的苹果数和苹果总数。,迭代公式:n1:当前数量 n2:从n1中分给一个孩子后所剩下的数量 n2 = n1 - ( n1/2 + 0.5 ) 迭代公式的初值: n2=0 求三个小孩所分的苹果数即迭代3次,main() int i,n1,n2=0,a,b,c; for(i=1;i=3;i+) n1=(n2+1/2.0)*2; n2=n1; a=n1/2.0+1/2.0; b=(n1-a)

14、/2.0+1/2.0; c=(n1-a-b)/2.0+1/2.0; printf(A is %d, B is %d, C is %d, The apple total is %d.n,a,b,c,n1); ,四、穷举类型 1 编写程序统计能被4整除,而且个数为6的4位数个数。,4位数是10009999,main() int n=0,i; for(i=1000; i=9999; i+) if(i%10=6 ,main() int n=0,i; for(i=1006; i=9999; i=i+10) if(i%4=0) n+; printf(n=%dn,n); ,2 有一个人不小心打碎了一位妇女的

15、一篮子鸡蛋,为了赔偿便询问篮子中有多少鸡蛋,那妇女说,数量不清楚,只记得若每次拿两个则最后剩一个,每次拿3个则最后剩2个,每次拿4个则最后剩3个,每次拿5个则最后剩4个。若一个鸡蛋0.4元,应至少赔偿多少钱?,main() int eggs=1; float money; while(1) if(eggs%2=1 ,五 其他 1 输入两个数m,n求其最大公约数和最小公倍数。,分析: 两个数m,n最大公约数算法 最小公倍数=(m*n)/最大公约数。 两个数m,n,大数为被除数,2 输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。,分析: 1 一个字符,分别统计出其中的英文字母、空格、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论