天津城建大学C语言程序改错.docx

上传人:b****6 文档编号:4016228 上传时间:2022-11-27 格式:DOCX 页数:22 大小:25.01KB
下载 相关 举报
天津城建大学C语言程序改错.docx_第1页
第1页 / 共22页
天津城建大学C语言程序改错.docx_第2页
第2页 / 共22页
天津城建大学C语言程序改错.docx_第3页
第3页 / 共22页
天津城建大学C语言程序改错.docx_第4页
第4页 / 共22页
天津城建大学C语言程序改错.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

天津城建大学C语言程序改错.docx

《天津城建大学C语言程序改错.docx》由会员分享,可在线阅读,更多相关《天津城建大学C语言程序改错.docx(22页珍藏版)》请在冰豆网上搜索。

天津城建大学C语言程序改错.docx

天津城建大学C语言程序改错

程序改错

功能:

编制统计营业员一天的营业额的程序,设程序采用一个循环

实现,每次循环输入一笔交易金额并累计营业额。

由于营

业员一天完成的交易次数是不确定的,为此以最后附加输

入一笔0或负数交易额作为交易金额已全部输入结束的标志。

有以下统计营业员一天营业额的算法:

统计营业员一天营业额

{

营业额清0;

输入第一笔交易额;

while(交易额>0.0)

{

累计营业额;

输入下一笔交易额;

}

输出营业额;

}

记一笔交易额为变量sale,营业额为sigma。

/**********FOUND**********/

floatsale,sigma;

sigma=0.0;

printf("Entersaledata.\n");

/**********FOUND**********/

scanf("%f",&sale);

while(sale>0.0)

{

/**********FOUND**********/

sigma+=sale;

功能:

输入两个双精度数,函数返回它们的平方和的平方根值。

例如:

输入:

22.936和14.121,输出为:

y=26.934415。

/**********FOUND**********/

doublefun(double*a,double*b)

{

doublec;

/**********FOUND**********/

c=sqrt(*a**a+*b**b);

/**********FOUND**********/

returnc;

【程序改错】

--------------------------------------------------------

功能:

分别统计字符串中大写字母和小写字母的个数。

例如:

给字符串s输入:

AAaaBBb123CCccccd,

则应输出结果:

upper=6,lower=8。

voidfun(char*s,int*a,int*b)

{

while(*s)

{

/**********FOUND**********/

if(*s>='A'&&*s<='Z')

/**********FOUND**********/

(*a)++;

if(*s>='a'&&*s<='z')

/**********FOUND**********/

(*b)++;

s++;

}

}

功能:

输入一个字符串,过滤此串,滤掉字母字符,并统计新生

成串中包含的字符个数。

例如:

输入的字符串为ab234$df4,则输出为:

Thenewstringis234$4

Thereare5charinthenewstring.。

inti,j;

/**********FOUND**********/

for(i=0,j=0;*(ptr+i)!

=0;i++)

/**********FOUND**********/

if(*(ptr+i)>'z'||*(ptr+i)<'a'&&*(ptr+i)>'Z'||*(ptr+i)<'A')

{

/**********FOUND**********/

*(ptr+j)=*(ptr+i);

j++;

}

*(ptr+j)='\0';

return(j);

}

阿【程序改错】

功能:

求1到20的阶乘的和。

答案:

1).t=1;或t=1.0;

2).t=★t★*★j★;或t*=j;或t=j*t;

3).s=★s★+★t★;或s+=t;或s=t+s;

4).printf("jiecheng=%f\n",s);

【程序改错】

功能:

计算正整数num的各位上的数字之积。

例如:

输入252,则输出应该是20。

答案:

1).longk=1;

2).num/=10;或num=num/10;

3).scanf("%ld",&n);

4).printf("\n%ld\n",fun(n));

【程序改错】

功能:

求出两个非零正整数的最大公约数,并作为函数值返回。

例如:

若给num1和num2分别输入49和21,则输出的最大公约数为7。

答案:

1).a=b;

2).b=t;

3).r=a%b;

4).returnb;或return(b);或return(b);

【程序改错】

功能:

从键盘输入十个学生的成绩,统计最高分,最低分和平均分。

max代表最高分,min代表最低分,avg代表平均分。

答案:

1).floata[10],min,max,avg;

2).scanf("%f",&a[i]);或scanf("%f",a+i);

3).max=min=avg=a[0];

4).if(min>a[i])或if(a[i]

【程序改错】

功能:

输入10个数,要求输出这10个数的平均值

答案:

1).for(i=1;i<10;i++)或for(i=1;i<=9;i++)

2).floatscore[10],aver;或floataver,score[10];

3).scanf("%f",&score[i]);或scanf("%f",score+i);

4).aver=average(score);

【程序改错】

功能:

判断整数x是否是同构数。

若是同购数,函数返回1;否则返回0。

说明:

所谓“同构数”是指这个数出现在它的平方数的右边。

例如:

输入整数25,25的平方数是625,25是625中右侧的数,

所以25是同构数。

注意:

x的值由主函数从键盘读入,要求不大于1000。

答案:

1).intk;

2).k=x*x;

3).if((k%10==x)||(k%100==x)||(k%1000==x))

【程序改错】

功能:

根据整型形参m,计算如下公式的值:

y=1+1/3+1/5+1/7+...+1/(2m-1)

答案:

1).doubley=1;

2).for(i=1;i<=m;i++)

3).y+=1.0/(2*i-3);

【程序改错】

功能:

找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

答案:

1).inti,k;或inti;intk;或intk,i;或intk;inti;

2).if(i%k==0)或if(!

(i%k))

3).if(k==i)或if(i==k)

【程序改错】

功能:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

答案:

1).p=j;

2).if(a[i]a[i])

3).p=i;

【程序改错】

功能:

用插入排序法将n个字符进行排序(降序)。

提示:

插入法排序的思路是:

先对数组的头两个元素进行排序,

然后根据前两个元素的情况插入第三个元素,再插入第

四个元素…)。

答案:

1).inta,b,t;

2).while((b>=0)&&(t>aa[b]))

3).aa[b+1]=t;

【程序改错】

功能:

读入一个整数k(2≤k≤10000),打印它的所有质因子(即

所有为素数的因子)。

例如:

若输入整数:

2310,则应输出:

2、3、5、7、11。

请改正程序中的语法错误,使程序能得出正确的结果。

答案:

1).IsPrime(intn)

2).if(!

(n%i))

3).return(m);

【程序改错】

功能:

根据整型形参m,计算某一数据项的值。

y=1/(100*100)+1/(200*200)+1/(300*300)+……+1/(m*m)

例如:

若m=2000,则应输出:

0.000160。

答案:

1).doublefun(intm)

2).for(i=100;i<=m;i+=100)

3).y+=1.0/d;

【程序改错】

功能:

根据整型形参n,计算某一数据项的值。

A[1]=1,A[2]=1/(1+A[1]),A[3]=1/(1+A[2]),…,

A[n]=1/(1+A[n-1])

例如:

若n=10,则应输出:

a10=0.617977。

答案:

1).floatfun(intn)

2).for(i=2;i<=n;i++)

3).A=1.0/(1+A);

【程序改错】

功能:

求广义菲玻那契级数的第n项。

广义菲玻那契级数的前n

项为:

1,1,1,3,5,9,17,31,……

项值通过函数值返回main()函数。

例如:

若n=15,则应输出:

Thevalueis:

2209。

答案:

1).for(k=4;k<=n;k++)

2).a=b;

3).returnd;

【程序改错】

功能:

求二分之一的圆面积,函数通过形参得到圆的半径,函数

返回二分之一的圆面积。

例如:

输入圆的半径值:

19.527输出为:

s=598.950017。

答案:

1).floatfun(floatr)

2).s=1.0/2*3.14159*r*r;

3).returns;

【程序改错】

功能:

求出数组中最大数和次最大数,并把最大数和a[0]中的数

对调、次最大数和a[1]中的数对调。

答案:

1).m=i;

2).for(k=i;k

3).if(a[k]>a[m])m=k;

【程序改错】

功能:

根据整型形参m,计算如下公式的值:

y=1/2+1/8+1/18+...+1/2m*m

答案:

1).doubley=0;

2).for(i=1;i<=m;i++)

3).y+=1.0/(2*i*i);

【程序改错】

功能:

统计出若干个学生的平均成绩,最低分以及得最低分的人数。

例如:

输入10名学生的成绩分别为92,87,68,56,92,84,67,

75,92,66,则输出平均成绩为77.9,最低高分为56,得最

低分的人数为1人。

答案:

1).sum+=array[i];或sum=sum+array[i];

2).ave=sum/n;

3).if(array[i]==Min)J++;

【程序改错】

功能:

将整型数组中所有小于0的元素放到所有大于0的元素的前

面(要求只能扫描数组一次)。

答案:

1).int★i=0★,★j=n-1★,★temp★;

2).j--;

3).if(i

【程序改错】

功能:

输入两个实数,按代数值由小到大输出它们,并在fun()

函数中输出。

(输出的数据都保留2位小数)

答案:

1).floatt;

2).if(a>b)

3).printf("%5.2f,%5.2f\n",a,b);

【程序改错】

功能:

编写函数fun求20以内所有5的倍数之积。

答案:

1).int★s=1★,★i★;

2).if(i%m==0)

3).s=s*i或s=i*s或s*=i

【程序改错】

功能:

编写函数fun求20以内所有5的倍数之积。

答案:

1).ints=1,i;

2).if(i%m==0)

3).s*=i;

【程序改错】

功能:

编写函数fun计算下列分段函数的值:

x*x+xx<0且x≠-3

f(x)=x*x+5x0≤x<10且x≠2及x≠3

x*x+x-1其它

答案:

1).floaty;

2).if(x<0&&x!

=-3.0)

3).returny;

【程序改错】

功能:

有1、2、3、4个数字,能组成多少个互不相同且无重复数

字的三位数?

都是多少?

答案:

1).printf("\n");

2).for(i=1;i<5;i++)或for(i=1;i<=4;i++)

3).if(i!

=k&&i!

=j&&j!

=k)

【程序改错】

功能:

某个公司采用公用电话传递数据,数据是四位的整数,在

传递过程中是加密的,加密规则如下:

每位数字都加上5,

然后除以10的余数代替该位数字。

再将新生成数据的第一

位和第四位交换,第二位和第三位交换。

例如:

输入一个四位整数1234,则结果为:

9876。

答案:

1).scanf("%d",&a);

2).aa[1]=a%100/10;

3).for(i=0;i<=3;i++)或for(i=0;i<4;i++)

【程序改错】

功能:

一球从100米高度自由落下,每次落地后反跳回原高度的

一半;再落下,求它在第10次落地时,共经过多少米?

第10次反弹多高?

答案:

1).floatsn=100.0,hn=sn/2;

2).for(n=2;n<=10;n++)或for(n=2;n<11;n++)

3).hn=hn/2;

【程序改错】

功能:

读取7个数(1-50)的整数值,每读取一个值,程序打印

出该值个数的*。

答案:

1).while(n<=7)或while(n<8)

2).while(a<1||a>50);或while(a>50||a<1);

3).for(i=1;i<=a;i++)

【程序改错】

功能:

给一个不多于5位的正整数,要求:

一、求它是几位数,

二、逆序打印出各位数字。

答案:

1).longa,b,c,d,e,x;

2).b=x%10000/1000;

3).if(a!

=0)或if(!

a)

【程序改错】

功能:

一个偶数总能表示为两个素数之和。

答案:

1).scanf("%d",&a);

2).d=a-b;

3).if(d%c==0)

【程序改错】

功能:

求0-7这8个数字所能组成的奇数个数。

答案:

1).longsum=4,s=4;

2).printf("\n%ld",sum);

3).if(j<=2)或if(j<3)

【程序改错】

功能:

809*?

?

=800*?

?

+9*?

?

+1其中?

?

代表的两位数,8*?

?

的结果

为两位数,9*?

?

的结果为3位数。

求?

?

代表的两位数,及809*?

?

后的结果。

答案:

1).long★int★a★,★b★,★i★;

2).for(i=10;i<100;i++)或for(i=10;i<=99;i++)

3).b=★i*a★+★1★;或b=★a*i★+★1★;

【程序改错】

功能:

编写一个程序计算某年某月有几天。

(注意要区分闰年)

答案:

1).switch(mm)

2).break;

3).default:

【程序改错】

功能:

以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的

最大的n。

答案:

1).s=n=0;

2).while(s<=1000)

3).printf("n=%d\n",n-1);

【程序改错】

功能:

输入n,计算s=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n

答案:

1).inti,s,p,n;

2).scanf("%d",&n);

3).for(s=p=0,i=1;i<=n;i++)

【程序改错】

功能:

编制统计营业员一天的营业额的程序,设程序采用一个循环

实现,每次循环输入一笔交易金额并累计营业额。

由于营

业员一天完成的交易次数是不确定的,为此以最后附加输

入一笔0或负数交易额作为交易金额已全部输入结束的标志。

有以下统计营业员一天营业额的算法:

统计营业员一天营业额

{

营业额清0;

输入第一笔交易额;

while(交易额>0.0)

{

累计营业额;

输入下一笔交易额;

}

输出营业额;

}

记一笔交易额为变量sale,营业额为sigma。

答案:

1).floatsale,sigma;

2).scanf("%f",&sale);

3).sigma+=sale;或sigma=sigma+sale;

【程序改错】

功能:

编写函数fun,求两个整数的最小公倍数,然后用主

函数main()调用这个函数并输出结果,两个整数由

键盘输入。

答案:

1).q=fun(m,n);

2).if(m

3).if(i%n==0)

【程序改错】

功能:

求100以内(包括100)的偶数之和.

答案:

1).inti,sum=0;

2).for(i=2;i<=100;i+=2)

3).printf("Sum=%d\n",sum);

【程序改错】

功能:

企业发放的奖金根据利润提成。

利润(I)低于或等于10万元

时,奖金可提10%;利润高于10万元,低于20万元时,低于

10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;

20万到40万之间时,高于20万元的部分,可提成5%;40万

到60万之间时高于40万元的部分,可提成3%;60万到100万

之间时,高于60万元的部分,可提成1.5%,高于100万元时,

超过100万元的部分按1%提成,从键盘输入当月利润I,求

应发放奖金总数?

答案:

1).scanf("%ld",&i);

2).if(i<=100000)

3).printf("bonus=%d",bonus);

【程序改错】

功能:

用起泡法对10个整数从小到大排序。

答案:

1).voidsort(int*x,intn)或voidsort(intx[],intn)

2).for(j=0;j<★n★-1★-i★;j++)或for(j=0;★n★-1★-i★>j;j++)或for(j=0;jj;j++)或for(j=0;j<=★n★-2★-i★;j++)

3).if(x[j]>x[★j★+★1★])或if(x[★j★+★1]★

4).sort(a,n);

【程序改错】

功能:

求如下表达式:

111

S=1+——+———+......+———————

1+21+2+31+2+3+......+n

答案:

1).scanf("%d",&n);

2).floatfun(intn)

3).for(i=1;i<=n;i++)或for(i=1;n>=i;i++)或for(i=1;ii;i++)

4).s+=1.0/t;或s=★s★+★1.0★/(float)t;或s=★s★+★1.0★/t;或s+=1.0/(float)t;

【程序改错】

功能:

判断m是否为素数,若是返回1,否则返回0。

答案:

1).intfun(intm)或fun(intm)

2).for(i=2;ii;i++)或for(i=2;i<=m-1;i++)或for(i=2;m-1=>i;i++)

3).if(★m%i★==★0★)k=0;

4).returnk;

【程序改错】

功能:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值

小于等于0.0001。

π111

—=1-—+—-—+...

4357

答案:

1).#include"math.h"或#include

2).floats=0,t=1,p=1;或floats=0,p=1,t=1;或floatp=1,s=0,t=1;或floatp=1,t=1,s=0;或floatt=1,p=1,s=0;或floatt=1,s=0,p=1;

3).while(fabs(t)>1e-4)或while(0.00010.0001)

4).printf("pi=%f\n",★s★*★4★);

【程序改错】

功能:

求1到10的阶乘的和。

答案:

1).for(i=1;i<=10;i++)或for(i=1;10>=i;i++)或for(i=1;i<11;i++)或for(i=1;11>i;i++)

2).s=★s★+★fac(i)★;或s+=fac(i);或s=fac(i)+s;

3).floaty=1.0;或floaty=1;

4).returny;或return(y);或return(y);

【程序改错】

功能:

输出Fabonacci数列的前20项,要求变量类型定义成浮点型,

输出时只输出整数部分,输出项数不得多于或少于20。

答案:

1).printf("%8.0f",f1);或printf("%f",f1);或printf("%8f",f1);

2).for(i=1;i<20;i++)或for(i=1;20>i;i++)或for(i=2;i<=20;i++)或for(i=2;20>=i;i++)或for(i=1;i<=19;i++)或for(i=1;19>=i;i++)

3).f1=f2;

4).f2=f3;

【程序改错】

功能:

根据整型形参m的值,计算如下公式的值。

111

t=1-——-——-...-——

2x23x3mxm

例如:

若m=5,则应输出:

0.536389

答案:

1).for(i=2;i<=m;i++)或for(i=2;m>=i;i++)或for(i=2;ii;i++)或for(i=2;1+m>i;i++)

2).y-=1.0/(i*i);或y=y-1.0/(i*i);或y-=1.0/(float)(i*i);或y=y-1.0/(float)(i*i);或y=y-1.0/i/i;或y=y-1.0/(float)i/(float)i;或y=y-1/(double)(i*i);或y-=1/(double)(i*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1