C语言实验报告_第1页
C语言实验报告_第2页
C语言实验报告_第3页
C语言实验报告_第4页
C语言实验报告_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业手工打造天然无添加O(_)O姓名:陈程洁学号:专业班级:医学信息工程16级2班实验一熟悉C语言编程环境调试示例:#includeintmain()printf(Welcometoyou!n);return0;基础编程题(1)输出短句:在屏幕上显示一个短句“ProgramminginCisfun!”。#includeintmain()printf(ProgramminginCisfun!n);return0;(2)输出三角形:在屏幕上显示下列三角形图案。#includei

2、ntmain()inti,j;for(i=0;ii;j-)printf(*);printf(n);return0;(3)输出菱形图案:在屏幕上显示下列菱形图案。#includeintmain()printf(An);printf(AAn);printf(An);return0;改错题:输出带框文字:在屏幕上输出以下3行信息。*Welcome*#includeintmain()printf(*n);printf(Welcomen);printf(*n);return0;拓展编程题:输出短句(Whatisacomputer?):在屏幕上显示一个短句“Whatisacomputer?”#includ

3、eintmain()printf(Whatisacomputern);return0;输出倒三角形图案:在屏幕上显示下列倒三角图案。#includeintmain()inti,j,k;for(j=4;j0;j-)for(i=0;i4-j;i+)printf();for(i=0;ij;i+)printf(*);printf(n);return0;实验二用C语言编写简单程序2.1基本数据处理调试示例#includeintmain()intcelsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsi

4、us);return0;基础编程题温度转换:求华氏温度150F对应的摄氏温度。#includeintmain()intcelsius,fahr;fahr=150;celsius=5*fahr/9-5*32/9;printf(fahr=%d,celsius=%dn,fahr,celsius);return0;计算物体自由下落的距离:一个物体从100m的高空自由落下,编写程序,求它在前面3s内下落的垂直距离。设重力加速度为10m/s2。#includeintmain()inth,g,t;g=10;t=3;h=g*t*t/2;printf(height=%dn,h);return0;计算平均分:已知

5、某为学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。#includeintmain()intMt,Eg,Cp;Mt=87;Eg=72;Cp=93;printf(math=%d,end=%d,comp=%d,average=%d,Mt,Eg,Cp,(Mt+Eg+Cp)/3);return0;改错题:计算某个数的平方赋值给y;分别以“y=x*x”和“x*x=y”的形式输出x和y的值。请不要删除源程序中的任何注释。示例:9=3*33*3=9#includeintmain(void)intx,y;scanf(%d,&x);y=x*x;printf(%d=%d*%

6、dn,y,x,x);/*?3?*/printf(%d*%d=%dn,x,x,y);return0;拓展编程题计算华氏温度:求摄氏温度26C对应的华氏温度。计算公式如下:f=(9/5)xc+32其中,c表示摄氏温度,f表示华氏温度。#includeintmain(void)intc,f;c=26;f=9*c/5+32;printf(celsius=%d,fahr=%d,c,f);return0;求一个三位数的各位数字:当n为152时,分别求出n的个位数字(digit1)、十位数(digit2)和百位数字(digit3)的值。#includeintmain(void)intn,digit1,dig

7、it2,digit3;n=152;digit1=n%10;digit2=(n/10)%10;digit3=n/100;printf(整数%d的个位数字是%d,十位数字是%d,百位数字%dn,n,digit1,digit2,digit3);return0;2.2计算分段函数调试示例#includeintmain(void)doublex,y;printf(Enterx:);scanf(%lf,&x);if(x!=0)y=1/x;elsey=0;printf(f(%.2f)=%.1fn,x,y);return0;基础编程题计算摄氏温度:输入华氏温度,输出对应的摄氏温度。#includeintmai

8、n()intc,f;scanf(%d,&f);c=5*(f-32)/9;printf(fahr=%dn,c);return0;(2)计算存款利息:输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。#include#includeintmain()intm,y;doubler,i;scanf(%d%d%lf,&m,&y,&r)printf(money=%d,year=%d,rate=%fn,m,y,r);i=m*pow(1+r,y)-m;printf(interest=%.2f,i);return0;计算分段函数:

9、输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用sqrt函数求平方根,调用pow函数求幂。#include#includeintmain(void)doublex,y;scanf(%lf,&x);if(x0)y=pow(x+1,2)+2*x+1/x;elsey=sqrt(x);printf(f(%.2f)=%.2f,x,y);return0;改错题:计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出是保留1位小数。#includeintmain(void)doublex,y;printf(Enterx:);scanf(%lf,&x);if(x=10)y=1

10、/x;elsey=x;printf(f(%.1f)=%.1f,x,y);return0;拓展编程题整数四则运算:输入两个整数num1和num2,计算并输出他们的和、差、积、商与余数。#includeintmain(void)intnum1,num2;scanf(%d%d,&num1,&num2);printf(%d+%d=%dn,num1,num2,num1+num2);printf(%d-%d=%dn,num1,num2,num1-num2);printf(%d*%d=%dn,num1,num2,num1*num2);printf(%d/%d=%dn,num1,num2,num1/num2)

11、;printf(%d%d=%d,num1,num2,num1%num2);return0;阶梯电价。#includeintmain(void)intx;doubley;scanf(%d,&x);if(x=50)y=0.53*x;elsey=0.53*50+(x-50)*0.58;printf(cost=%.2f,y);return0;计算火车运行时间:#include#includeintmain()inta,b,m,n;scanf(%d%d,&a,&b);if(b%100-a%100)=0)m=(b-a)/100)%10;n=b%100-a%100;printf(Thetrainjourne

12、ytimeis%dhrs%dmins.,m,n);return0;2.3指定次数循环调试示例#includeintmain()inti,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);return0;基础编程题求给定序列(1+1/2+1/3+)前n项和:输入一个正整数n,计算序列1+1/2+1/3+的前n项和。#includeintmain()intn;doublesum,i;scanf(%d,&n);sum=0;for(i=1;i=n;i+)sum=sum+1/i;printf(sum=%.6f,sum);return0;求给

13、定序列(1+1/3+1/5+)的前n项和:入一个正整数n,计算序列1+1/3+1/5+的前n项和。#includeintmain()intn;doublesum,i;scanf(%d,&n);sum=0;for(i=1;i=n;i+)sum=sum+1/(i*2-1);printf(sum=%.6f,sum);return0;求给定数列(1-1/4+1/7-1/10+)前n项和:入一个正整数n,计算序列1-1/4+1/7-1/10+的前n项和。#includeintmain()intn,item=1;doublesum,i;scanf(%d,&n);sum=0;for(i=1;i=n;i+)s

14、um=sum+(1/(3*i-2)*item;item=-item;printf(sum=%.3f,sum);return0;改错题:输出华氏-摄氏温度转换表:#includeintmain()intfahr,lower,upper;doublecelsius;printf(Enterlower:);scanf(%d,&lower);printf(Enterupper:);scanf(%d,&upper);printf(fahrcelsiusn);for(fahr=lower;fahr=upper;fahr=fahr+2)celsius=(5.0/9.0)*(fahr-32.0);printf

15、(%d%.1fn,fahr,celsius);return0;拓展编程题求交错序列前n项和:输入一个正整数n,计算交错序列1-2/3+3/5-4/7+5/9-6/11的前n项之和,输出时保留3位小数。#includeintmain()intn,item=1;doublesum=0,i;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+(i/(2*i-1)*item;item=-item;printf(sum=%.3fn,sum);return0;序列求和(mxm+1/m+(m+1)x(m+1)+):输入两个正整数m和n(0m=n),计算序列mxm+1/m+(m+1)x(m

16、+1)+1/(m+1)+(m+2)x(m+2)+1/(m+2)+nxn+1/n,结果保留6位小数。#includeintmain()intm,n;doublesum=0,i;scanf(%d%d,&m,&n);for(i=m;i=n;i+)sum=sum+i*i+1/i;printf(sum=%.6fn,sum);return0;2.4使用函数调试示例#includeintis(intnumber);intmain()intcount,i,sum;count=0;sum=0;for(i=100;i=999;i+)if(is(i)=1)count+;sum=sum+i;printf(count=

17、%d,sum=%dn,count,sum);return0;intis(intnumber)inta,b,c,result,sum;a=number/100;b=(number/10)%10;c=number%10;sum=a+b+c;if(sum=5)result=1;elseresult=0;returnresult;基础编程题生成3的乘方表:输入一个正整数n,生成一张3的乘方表,输出30到3n的值,可以调用幂函数计算3的成方表。#include#includeintmain()intn;scanf(%d,&n);inti;for(i=0;i=n;i+)printf(pow(3,%d)=%

18、.0fn,i,pow(3,i);return0;平方根求和:输入一个正整数n,计算1+2+3+n的值(保留2位小数)。包含头文件math.h,并调用sqrt函数求平方根。#include#includeintmain()intn,i;doublesum=0;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+sqrt(i);printf(sum=%.2f,sum);return0;求给定序列(1!+2!+)的前n项和:输入一个正整数n,求e=1!+2!+3!+n!的值。要求定义和调用函数fact(n)计算n!,函数类型是double。#includedoublefact(d

19、oublen);intmain()intn,sum=0;doublei;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+fact(i);printf(e=%d,sum);return0;doublefact(doublen)inti;doublesum=1.0;for(i=1;i=n;i+)sum=sum*i;returnsum;改错题:计算xn:#includedoublemypow(doublex,intn);intmain()intn;doubleresult,x;printf(Enterx,n:);scanf(%lf%d,&x,&n);result=mypow(

20、x,n);printf(result=%.6fn,result);return0;doublemypow(doublex,intn)inti;doubleresult;result=1;for(i=1;i=n;i+)result=result*x;returnresult;拓展编程题求幂之和:输入一个正整数n,求下列式子的和,可以调用pow函数求幂。#include#includedoublefact(doublen);intmain()intn,i;doublesum=0;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+pow(2,i);printf(sum=%.0f

21、n,sum);return0;求组合数:#includedoublefact(doublen);intmain()intn,m;doublesum;scanf(%d%d,&m,&n);sum=fact(n)/(fact(m)*fact(n-m);printf(result=%.0fn,sum);return0;doublefact(doublen)inti;doublesum=1.0;for(i=1;i=n;i+)sum=sum*i;returnsum;实验三分支结构程序设计调试示例:求一元二次方程的根:#include#includeintmain()doublea,b,c,d;printf

22、(Entera,b,c:);scanf(%lf%lf%lf,&a,&b,&c);d=b*b-4*a*c;if(a=0)if(b=0)if(c=0)printf(参数都为零,方程无意义!n);elseprintf(a和b为0,c不为0,方程不成立n);elseprintf(x=%.2fn,-c/b);elseif(d0)printf(x1=%.2fn,(-b+sqrt(d)/(2*a);printf(x2=%.2fn,(-b-sqrt(d)/(2*a);elseprintf(x1=%.2f+%.2fin,-b/(2*a),sqrt(-d)/(2*a);printf(x2=%.2f-%.2fin,

23、-b/(2*a),sqrt(-d)/(2*a);return0;基础编程题计算符号函数的值:输入x,计算并输出下列分段函数sigh(x)的值。试编写相应程序。#includeintmain()intx,y;scanf(%d,&x);if(x0)printf(sign(%d)=-1,x);elseif(x=0)printf(sign(%d)=0,x);elseprintf(sign(%d)=1,x);return0;比较大小:输入3个整数,按从小到大的顺序输出。试编写相应程序。#includeintmain()inta10;inti;for(i=0;i0;j-)for(i=1;i=j;i+)if

24、(aiai-1)intk=ai;ai=ai-1;ai-1=k;for(i=0;i,ai);printf(%dn,a2);return0;分类统计字符:输入15个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。试编写相应程序。/无法统计回车#includeintmain()chara15;inti,letter=0,blank=0,digit=0,other=0;gets(a);for(i=0;i47&ai64&ai96&ai123)letter+;elseif(ai=32|ai=n)blank+;elseother+;printf(letter=%dnblank=%dndigit

25、=%dnother=%dn,letter,blank,digit,other);return0;查询水果价格#includeintmain()doublea5=0,3.0,2.5,4.1,10.2;intx;intk=5;while(k-)scanf(%d,&x);if(x=0)break;elseprintf(price=%.1fn,ax);return0;计算个人所得税#includeintmain()intgz;doubleshui;scanf(%d,&gz);if(gz1600&gz2500&gz3500&gz=4500)shui=0.15*(gz-1600);elseshui=0.2

26、*(gz-1600);printf(%.2fn,shui);return0;统计学生成绩#includeintmain()inta=0,b=0,c=0,d=0,e=0;intn,x;scanf(%d,&n);while(n-)scanf(%d,&x);if(x=90&x=100)a+;elseif(x=80)b+;elseif(x=70)c+;elseif(x=60)d+;elsee+;printf(%d%d%d%d%dn,a,b,c,d,e);return0;改错题:输出三角形面积和周长#include#includeintmain()doublea,b,c;doublearea,perim

27、eter,s;printf(Enter3sidersofthetriangle:);scanf(%lf%lf%lf,&a,&b,&c);if(a+bc&b+ca&a+cb)s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);perimeter=a+b+c;printf(area=%.2f;perimeter=%.2fn,area,perimeter);elseprintf(Thesesidesdonotcorrespondtoavalidtrianglen);return0;拓展编程题三天打鱼两天晒网:#include#includeintmain()intda

28、y,yu;scanf(%d,&day);yu=day%5;if(yu-30|yu=0)printf(Dryinginday%dn,day);elseprintf(Fishinginday%dn,day);return0;高速公路超速处罚:#includeintmain()doublev,xian;scanf(%lf%lf,&v,&xian);doubleexceed;exceed=(v/xian)-1)*100;if(exceed=10)printf(Exceed%.0f%.Ticket200n,exceed);elseif(exceed=50)printf(Exceed%.0f%.Ticke

29、tRevokedn,exceed);elseprintf(OKn);return0;计算油费#includeintmain()inta,bi;doublesum=0,b1000;charc;b90=6.95;b93=7.44;b97=7.93;scanf(%d%d%c,&a,&bi,&c);if(c=m)sum=a*bbi*0.95;elsesum=a*bbi*0.97;printf(%.2fn,sum);return0;实验四循环结构程序设计4.1基本循环语句的使用调试示例:最大公约数和最小公倍数。#includedoublefact(doublen);intmain()intm,n,j,k

30、;doprintf(Inputm:);scanf(%d,&m);printf(Inputn:);scanf(%d,&n);while(m0|n0);j=m;while(j%n!=0)j=j+m;k=(m*n)/j;printf(最大公约数是%dn最小公倍数是%dn,k,j);return0;基础编程题求奇数和:#includeintmain()intn,sum=0;while(scanf(%d,&n)if(n=0)break;if(n%2!=0)sum=sum+n;printf(%dn,sum);return0;求最小值:输入一个正整数n,再输入n个整数,输出最小值。试编写相应程序。#incl

31、udeintmain()intn,x1000,i,j;scanf(%d,&n);for(i=0;i0;j-)for(i=1;ij;i+)if(xixi-1)intk=xi;xi=xi-1;xi-1=k;printf(%d,x0);return0;求整数的位数以及各位数字之和:#includeintmain()intx,i,n;scanf(%d,&x);intk=1,sum=0;for(i=1;x/101|x/10-1;i+)k+;sum=sum+x%10;x=x/10;sum=sum+x;printf(%d%d,k,sum);return0;韩信点兵:求序列前n项和:输入一个正整数n,输出2/

32、1+3/2+5/3+8/5+的前n项之和(该序列从第二项起,每一项的分子是前一项的分子与分母的和,分母是前一项的分子),保留2位小数。试编写相应程序。#includeintmain()intn;doublei;doublesum=0;scanf(%d,&n);doublea=2.0,b=1.0;for(i=1;i=n;i+)sum=sum+a/b;intk=a;a=a+b;b=k;printf(%.2fn,sum);return0;求a+aa+aaa+aaaa+aaaa(n个a):输入两个正整数a和n,求a+aa+aaa+aaaa+aaaa(n个a)之和。试编写相应程序。#include#in

33、cludeintmain()inta,j,i,n;doublesum,p;scanf(%d%d,&a,&n);sum=0;for(i=n;i0;i-)sum=sum+i*a*pow(10,n-i);printf(%.0fn,sum);return0;改错题:序列求和:输入一个正整数eps,计算并输出下式的值,精确到最后一项的绝对值小于eps(保留6位小数)。请使用do-while语句实现循环。#include#includeintmain()intflag,n;doubleeps,item,s;printf(Inputeps:);scanf(%lf,&eps);flag=1;s=0;n=1;d

34、oitem=1.0/n;s=s+item*flag;flag=-flag;n=n+3;while(fabs(item*flag)=eps);printf(s=%.6fn,s);return0;拓展编程题:猜数字游戏:#includeintmain()intx,n;inta,i;scanf(%d%d,&x,&n);for(i=1;ix)printf(Toobign);elseif(ax)printf(Toosmalln);elseif(a=x&i1)printf(LuckyYou!n);break;elseif(a=x&i=1)printf(Bingon);break;elseprintf(Go

35、odGuess!n);break;if(in)printf(GameOvern);return0;兔子繁衍问题:高空坠球:皮球从hight米的高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,如此反复。皮球在第n次反弹落地时,在空中经过的路程是多少米?第n次反弹的高度是多少?试编写相应程序,输出保留1位小数。#includeintmain()doublehight,sum=0;inti,n;scanf(%lf,&hight);scanf(%d,&n);sum=hight;for(i=1;i=n;i+)hight=hight/2.0;sum=sum+2*hight;printf(%.1f%

36、.1f,sum,hight);return0;黑洞数:黑洞数也称为陷阱数,又称“Kaprekar问题”,是一类具有奇特转换特性的数。任何一个数字不全相同的三位数,经有限次“重拍求差”操作,(即组成该数的数字重拍后的最大数减去重拍后的最小数),总会得到495。最后所得495即为三位黑洞数。(6174为四位黑洞数)。#include#includeusingnamespacestd;intmain()intx,i;inta3;scanf(%d,&x);while(x!=495)a0=x%10;a1=(x/10)%10;a2=x/100;sort(a,a+3);intmax,min;max=a2*1

37、00+a1*10+a0;min=a0*100+a1*10+a2;x=max-min;printf(%d-%d=%dn,max,min,x);return0;4.2嵌套循环调试示例:求e:输入一个正整数n,计算下式的和(保留4位小数),要求使用嵌套循环。#includeintmain()doublee,item;inti,j,n;printf(Inputn:);scanf(%d,&n);e=1;for(i=1;i=n;i+)item=1;for(j=1;j=i;j+)item=item*j;e=e+1.0/item;printf(e=%.4fn,e);return0;基础编程题用两种方法求e:输

38、入一个正整数n,用两种方法分别计算下式的和(保留4位小数)使用一重循环,不使用自定义函数。#includeintmain()doublee,item;inti,j,n;printf(Inputn:);scanf(%d,&n);e=1;item=1;for(i=1;i=n;i+)item=item*i;if(i=n)i=0;n=n-1;e=e+1.0/item;item=1;printf(e=%.4fn,e);return0;定义和调用函数fact(n)计算n的阶乘。#includedoublefact(inti);intmain()doublee,item;inti,j,n;printf(In

39、putn:);scanf(%d,&n);e=1;for(i=1;i=n;i+)doublek=fact(i);e=e+1.0/k;printf(e=%.4fn,e);return0;doublefact(inti)intj;doublesum=1.0;for(j=1;j=i;j+)sum=sum*j;returnsum;验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,18=5+13.要求将输入的一个偶数表示成两个素数之和。是编写相应程序。/这个程序可以输出所有符合题意的结果,如果只要一个结果可以break#includeintmain()intn,

40、a10000;intj,i,k=0;scanf(%d,&n);/求素数存入a;for(i=2;i=n;i+)intcount=1;for(j=2;ji;j+)if(i%j=0)count+;if(count=1)ak=i;k+;for(i=0;ik;i+)for(j=0;j=i;j+)if(ai+aj=n)printf(%d=%d+%dn,n,aj,ai);return0;换硬币:将一笔零钱(大于8分,小于1元,精确到分)换算成1分,2分,和5分的硬币组合。输入金额,输出共有多少种换法。要求硬币面值按5分、2分、1分顺序,各类硬币数量一次从大到小的顺序,输出各种换法。#includeintma

41、in()intmoney;scanf(%d,&money);intfen5,fen2=0,fen1=3;fen5=1;inti,fen;fen=money-fen5*5;fen2=fen/2;intcount=0;dofen1=fen-fen2*2;if(fen10)printf(fen5:%d,fen2:%d,fen1:%d,total:%dn,fen5,fen2,fen1,fen1+fen2+fen5);count+;fen2-;while(fen2=1);printf(count=%dn,count);return0;水仙花数:输入两个正整数m和n(m=1,n=1000),输出m到n之间

42、的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。#includeintshuixian(intp);intmain()intm,n;scanf(%d%d,&m,&n);inti;for(i=m;i=10;i+)sum=sum+(p%10)*(p%10)*(p%10);p=p/10;sum=sum+p*p*p;returnsum;输出三角形字符阵列图形:输入一个正整数n(n7),输出n行由大写字母A开始构成的三角形字符阵列图形。#includeintmain()intn;inti,j;chara=A;scanf(%d,&n);for(i=4;i0;i-)for(j=1;j=i;j+)

43、if(j=1)printf(%c,a);elseprintf(%c,a);a+;printf(n);return0;改错题:找完数#includeintmain()inti,j,s;for(i=1;i=200;i+)s=1;for(j=2;j=i/2;j+)if(i%j=0)s=s+j;if(s=i)printf(%d=1,i);for(j=2;j=i/2;j+)if(i%j=0)printf(+%d,j);printf(n);return0;拓展编程题从高位开始逐位输出一个整数的各位数字:输入一个整数,从高位开始逐位分割并输出它的各位数字。#includeintmain()inti,x,a1

44、0000,count=0;scanf(%d,&x);for(i=0;x=10;i+)ai=x%10;x=x/10;ai=x;while(i=0)if(count=0)printf(%d,ai-);count=1;elseprintf(%d,ai-);return0;梅森数:#include#includeintmain()intn,N;scanf(%d,&n);N=pow(2,n)-1;inti,j;for(i=2;i=n;i+)intk=pow(2,i)-1;intcount=1;for(j=2;jk;j+)if(k%j=0)count+;if(count=1)printf(%dn,k);r

45、eturn0;实验五函数程序设计调试示例:#includedoubleresult_real,result_imag;/全局变量voidcomplex_prod(doublereal1,doubleimag1,doublereal2,doubleimag2);intmain()doubleimag1,imag2,real1,real2;/两个复数的实、虚部变量printf(Enter1stcomplexnumber(realandimaginary):);scanf(%lf%lf,&real1,&imag1);/输入第一个复数printf(Enter2ndcomplexnumber(reala

46、ndimaginary):);scanf(%lf%lf,&real2,&imag2);/输入第二个复数complex_prod(real1,imag1,real2,imag2);printf(productofcomplexis%f+%fin,result_real,result_imag);return0;voidcomplex_prod(doublex1,doubley1,doublex2,doubley2)/定义复数之积函数result_real=x1*x2-y1*y2;result_imag=x1*y2+x2*y1;基础编程题使用函数计算分段函数的值:输入x,计算并输出下列分段函数si

47、gh(x)的值。要求定义和调用函数sign(x)实现该分段函数。#includeintsign(intx);intmain()intx,y;scanf(%d,&x);y=sign(x);printf(sign(%d)=%dn,x,y);return0;intsign(intx)inty;if(x0)y=1;elseif(x=0)y=0;elsey=-1;returny;使用函数求奇数和:输入一批正整数(以零或负数为结束标志),求其中所有奇数的和。要求定义和调用函数even(n)判断整数的奇偶性,当n为偶数时返回1,否则返回0。#includeinteven(intx);intmain()int

48、x,sum=0,y;while(scanf(%d,&x)!=EOF,x)y=even(x);if(y=0)sum=sum+x;printf(Thesumoftheoddnumbersis%dn,sum);return0;inteven(intx)if(x%2=0)return1;elsereturn0;使用函数计算两点间的距离:给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点间的距离(保留2位小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点间距离。#include#includedoubledist(int,int,int,int);intmain()intx1

49、,x2,y1,y2;scanf(%d%d,&x1,&y1);scanf(%d%d,&x2,&y2);doubledi=dist(x1,y1,x2,y2);printf(Distance=%.2fn,di);return0;doubledist(intx1,inty1,intx2,inty2)doubledis;dis=fabs(x1-x2)*fabs(x1-x2)+fabs(y1-y2)*fabs(y1-y2);returnsqrt(dis);使用函数计算素数个数并求和:调用prime(m)函数。#includeintprime(int);intmain()intm,n;scanf(%d%d,

50、&m,&n);inti,j,count=0,sum=0;for(i=m;i=n;i+)intk=prime(i);if(k=1&i!=1)count+;sum=sum+i;printf(count=%d,sum=%dn,count,sum);return0;intprime(inti)intj,count=1;for(j=2;ji;j+)if(i%j=0)count+;if(count=1)return1;elsereturn0;使用函数判断完全平方数:输入一个正整数n,判断其是否为完全平方数,如果是则输出“YES”,如果不是则输出“NO”。要求定义韩式IsSquare(n),判断n是否为完全

51、平方数。#include#includevoidIsSquare(int);intmain()intn;scanf(%d,&n);IsSquare(n);return0;voidIsSquare(intn)doublem;m=sqrt(n);if(m*m=n)printf(YESn);elseprintf(NOn);改错题:使用函数求1!+2!+10!:要求定义并调用函数fact(n)计算n!,函数类型是double。#includedoublefact(intn);intmain()inti;doublesum;for(i=1;i=10;i+)sum=sum+fact(i);printf(1

52、!+2!+.+10!=%fn,sum);return0;doublefact(intn)inti;doubleresult=1.0;for(i=1;i=n;i+)result=result*i;returnresult;/返回值,返回到fact(intn)即fact(i)中拓展编程题使用函数统计指定数字的个数:输入一个整数,统计并输出该数中2的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如countdigit(10010,0)的返回值是3。#includeintcountdigit(int,int);intm

53、ain()intnum,digit=2;scanf(%d,&num);intnumber=countdigit(num,digit);printf(Numberofdigit%d:%dn,digit,number);return0;intcountdigit(intnum,intdigit)inti,k,count=0;for(i=1;num=10;i+)k=num%10;num=num/10;if(k=digit)count+;if(num=digit)count+;returncount;使用函数输出水仙花数:输入两个正整数m和n(m=1,n=1000),输出m到n之间的所有水仙花数。水仙

54、花数是指各位数字的立方和等于其自身的数。要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。#includeintis(intp);intmain()intm,n,i;scanf(%d%d,&m,&n);for(i=m;i=10;i+)sum=sum+(p%10)*(p%10)*(p%10);p=p/10;sum=sum+p*p*p;returnsum;使用函数求余弦函数的近似值:输入精度e,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e,x)求余弦函数的近似值。#include#includedouble

55、funcos(doublee,doublex);intmain()doublee,x;scanf(%lf%lf,&e,&x);doublesum=funcos(e,x);printf(%lfn,sum);return0;doublefuncos(doublee,doublex)inti,j,flag=1;doublesum=0,item=100,jie;for(i=0;item=e;i=i+2)jie=1;for(j=1;j=i;j+)jie=jie*j;item=pow(x,i)/jie;sum=sum+item*flag;flag=-flag;returnsum;使用函数求最大公约数:输入

56、两个正整数x和y,要求定义并调用函数gcd(x,y)求这两个数的最大公约数。#includeintgcd(int,int);intmain()?intx,y;?while(scanf(%d%d,&x,&y)!=EOF,x!=0&y!=0)?printf(%dn,gcd(x,y);?return0;intgcd(intx,inty)?intc;?c=x%y;?while(c!=0)?x=y;?y=c;?c=x%y;?returny;实验六控制结构程序设计调试示例#includedoublefact(intn);doublemulti(intn);intmain()doublei;doublesu

57、m,item,eps;eps=1E-6;sum=1;item=1;for(i=1;item=eps;i+)item=fact(i)/multi(2.0*i+1.0);sum=sum+item;printf(PI=%.5fn,sum*2);return0;doublefact(intn)inti;doubleres;res=1;for(i=1;i=n;i+)res=res*i;returnres;doublemulti(intn)inti;doubleres;res=1;for(i=3;i=n;i=i+2)res=res*i;returnres;基础编程题:分类统计字符个数:编写程序,输入一行字

58、符,统计出其中的英文字母、空格、数字和其他字符个数。#include#includeintmain()chara10000;inti,letter=0,blank=0,digit=0,other=0;gets(a);intk=strlen(a);for(i=0;i47&ai64&ai96&ai123)letter+;elseif(ai=32|ai=n)blank+;elseother+;printf(letter=%dnblank=%dndigit=%dnother=%dn,letter,blank,digit,other);return0;使用函数累加由n个a构成的整数之和:输入两个正整数a

59、和n,求a+aa+aaa+aaaaa(n个a)之和。要求定义并调用函数fn(a,n),它的功能返回aaa(n个a)。例如fn(3,2)的返回值是33。#include#includedoublefn(int,int);intmain()inta,j,i,n;doublesum,p;scanf(%d%d,&a,&n);sum=0;for(i=1;i=n;i+)sum=sum+fn(a,i);printf(%.0fn,sum);return0;doublefn(inta,inti)intj;doublesm=0;for(j=0;ji;j+)sm=sm+a*pow(10,j);returnsm;使用

60、函数输出指定范围内的完数:输入两个正整数m和n(1=m,n=100),输出mn之间的所有完数。完数就是因子和它本身相等的数,如6=1+2+3,6就是一个完数。要求定义并调用函数factorsum(number),它的功能就是返回number的因子和。例如,factorsum(12)的返回值是16(1+2+3+4+6)。#includeintfactorsum(int);intmain()intm,n,i,sum,j,count=0;scanf(%d%d,&m,&n);for(j=m;j=n;j+)intk=factorsum(j);if(k!=0)if(count=0)printf(%d,k)

温馨提示

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

最新文档

评论

0/150

提交评论