C语言程序设计实验(5-7)_第1页
C语言程序设计实验(5-7)_第2页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、实验41. 以下几段源程序有错,请调试修改正确。 /*源程序实现的功能:输入两个实数,按从小到大的顺序输出*/main()floata,b,t;scanf(“%f,%f”,&a,&b);if(a>b)t=a;a=b;b=tprintf(“%5.2f,%5.2f”,a,b);#include<stdio.h>intmain()floata,b,t;scanf("%f,%f",&a,&b);if(a>b)t=a;a=b;b=t;printf("%5.2f,%5.2f",a,b); 该源程序实现的功能是:

2、有如下函数关系:x(x>0)y=<2(x=0)3x(x<0)根据输入的x值,求出y的值。main()intx,y;printf(“Enterx:”);scanf(“%d”,&x);ifx>0y=x;elseif(x=0)y=2;elsey=3*x;printf(“x=%dy=%dn”,x,y);#include<stdio.h>intmain()intx,y;printf("Enterx:");scanf("%d",&x);if(x>0)y=x;elseif(x=0)y=2;elsey=3*x;p

3、rintf("x=%dy=%dn",x,y);#include<stdio.h>intmain()intx,y;scanf("%d",&x);if(x<1)y=x;elseif(x<10)y=2*x-1;elsey=3*x-11;printf("y=%d",y);某物品原有价值为P,由于使用使其价值降低,价值的折扣率根据时间t(月数)确定如下:tv3,无折扣3v=tv6,2%折扣6v=tvl2,5%折扣12=vtv218%折扣t>=21,10%折扣编程实现:根据输入的时间和原有价值计算物品的现有价

4、值。#include<stdio.h>intmain()intP,t;floaty;printf("输入原有价值和使用时间:");scanf("%d,%d",&P,&t);if(t<3)y=p;elseif(t<6)y=0.98*p;elseif(t<12)y=0.95*p;elseif(t<21)y=0.92*p;elsey=0.9*p;printf(”现有价值为:.2f",y);4.给一个不多于5位的正整数,要求:求出它是几位数;分别打出每一位数字; 按逆序打出各位数字,例如原数为321,

5、应输出123#include<stdio.h>intmain()intnum,a,ge,shi,bai,qian,wan;printf("enteranumber(0-99999):");scanf("%d",&num);if(num>9999)a=5;elseif(num>999)a=4;elseif(num>99)a=3;elseif(num>9)a=2;elsea=1;wan=num/10000;qian=num/1000%10;bai=num/100%10;shi=num/10%10;ge=num%10

6、;switch(a)case5:printf("5位数");printf("-%d,%d,%d,%d,%d-",wan,qian,bai,shi,ge);printf("倒序为:d%d%d%d%d",ge,shi,bai,qian,wan);break;case4:printf("4位数”);printf("-%d,%d,%d,%d-",qian,bai,shi,ge);printf("倒序为:d%d%d%d",ge,shi,bai,qian);break;case3:printf(&

7、quot;3位数");printf("-%d,%d,%d-",bai,shi,ge);printf("倒序为:d%d%d",ge,shi,bai);break;case2:printf("2位数”);printf("-%d,%d-",shi,ge);printf(唯ij序为:d%d",ge,shi);break;case1:printf("1位数");printf("-%d-",ge);printf("倒序为:d%d%d%d%d",ge);bre

8、ak;实验51. 以下程序的功能是实现从键盘输入一组字符,统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。程序中有错,请调试修改正确。main()intm,n;charc;while(c=getchar()!='n');if(c>='A'&&c<='Z')m+;if(c>='a'&&c<='z')n+;printf("%dn",m<n?m:n);#include<stdio.h>intmain()intm

9、=0,n=0;charc;while(c=getchar()!='n')if(c>='A'&&c<='Z')m+;if(c>='a'&&c<='z')n+;printf("%dn",m>n?m:n);2. 以下程序可以实现从键盘输入一串数字,然后以相反的顺序将它们输出,如输入:1234,输出4321,请填空。main()intnumber,right;printf("enteryounumber:n");scanf

10、("%d",&number); fnumber%10 fnumber/10doright=;printf("%d",right);number=;while(number!=0);printf("n");3. 求Sn=a+aa+aaa+.+aa.a之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。#include<stdio.h>intmain()intSn=0,n,sum=0;inta=2;printf("entern:");scanf(&quo

11、t;%d",&n);for(inti=0;i<n;i+)sum=a+sum*10;Sn=Sn+sum;printf("Sn=%d",Sn);4. 有一数列:2/1,3/2,5/3,8/5,求出这个数列的前20项之和。#include<stdio.h>intmain()floatsum=0,c,a=2,b=1;for(inti=0;i<20;i+)sum=sum+a/b;c=a;a=b+c;b=c;printf("sum=%.2f",sum);四、思考题1.猜数游戏。玩游戏者输入一个数,提示此数是太大、太小或猜中,

12、重新输入数据直到猜中为止。(提示:在程序中设置一个整数,此数即是玩游戏者要猜的数)2. 百钱买百鸡问题。公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种解法。提示:设x,y,z为三种鸡的只数,按题目写出代数方程为:x+y+z=1005x+3y+z/3=100用穷举法列举出x、y、z的值能懂就懂,不懂就不看了。#include<stdio.h>intmain()intx,y,z;for(x=1;x<=20;x+)for(y=1;y<=33;y+)for(z=1;z<=100;z+)if(x+y+z=100&x*5+3*y+z/3=100)p

13、rintf("%d,%d,%dn",x,y,z);3, 20,774, 18,787, 13,SO8, 11,8111, 6n8312, 4,S4这是结果输出,后面最后一个是小鸡的,但是很明显,小鸡的个数要能整除3,所以,再怎么改,请自己操作。TIP:就只需要在一个地方加一个条件。实验61. 以下程序段将输出computer请填空。#include“stdio.h”main()inti,j=0;charc=”it'sacomputer”;for(i=0;i+)fiv8:fj=i+7printf(“%c”,cj);2. 以下程序的功能是求数组num中小于零的数据之和,

14、程序中存在错误,请上机调试并改正。#include“stdio.h”main()intnum20;intsum,i;for(i=0;i<=19;i+)scanf(“d",&numi);for(i=0;iv=19;i+);这个引号去掉程序就对了。WHY?自己去想。if(numi<0)sum+=numi;printf(“sum=%6d”,sum);3. 调试程序。下面程序完成用气泡法对10个整型数排序(从小到大),其中带*行有错,请调试修正。#include<stdio.h>main()inta10;inti,j,t;printf(“intput10num

15、bers:n”);for(i=0;i<10;i+)*scanf(“%d”,i,ai);printf(“n”);*for(j=1;j<10;j+)*for(i=j+1;i<10;i+)if(ai<ai+1)t=ai;ai=ai+1;ai+1=t;printf(“thesortednumbers:n”);*for(i=1;i<11;i+)*printf(“%d”,&ai);第一个*scanf(”d",&ai);第二个*:for(j=1;j<=10;j+)第三个*:for(i=0;i<10-j;i+)第四个*:for(i=0;i&l

16、t;10;i+)第五个*:printf("%d",ai);别问我原因。4. 已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中#inelude<stdio.h>intmain()inta10=2,3,5,9,11,13,17,20,23;intn,i=0;printf("enteranumber:");seanf("%d",&n);先比较找到位置while(ai<n)i+;将位置向后面移动for(intk=0;k<10-i;k+)a9-k=a8-k;ai=n;for(intj=0;

17、j<10;j+)printf("%3d",aj);5. 编一程序,将两个字符串连接起来,不要用strcat函数#inelude<stdio.h>intmain()chara100;charb50;gets(a);gets(b);inti=0;while(ai!=、O')i+;for(intj=0;bj!=、O'j+)ai=bj;i+;puts(a);6. 求一个3x3矩阵对角线元素之和。#include<stdio.h>/*求一个3X3矩阵对角线元素之和。*/intmain()inta33;inti,j;printf("

18、;enterninenumbers:");for(i=0;i<3;i+)for(j=0;j<3;j+)scanf("%d",&aij);intsum=0;sum=a00+all+a22;只有一条对角线。for(i=0;i<3;i+)for(j=0;j<3;j+)printf("%3d",aij);printf("n");printf("nsum=%3d",sum);实验71.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。main()intx,y;printf("%dn",sum(x+y);intsum(a,b);inta,b;

温馨提示

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

最新文档

评论

0/150

提交评论