程序改错完整版C语言.docx

上传人:b****6 文档编号:16309222 上传时间:2023-07-12 格式:DOCX 页数:49 大小:23.94KB
下载 相关 举报
程序改错完整版C语言.docx_第1页
第1页 / 共49页
程序改错完整版C语言.docx_第2页
第2页 / 共49页
程序改错完整版C语言.docx_第3页
第3页 / 共49页
程序改错完整版C语言.docx_第4页
第4页 / 共49页
程序改错完整版C语言.docx_第5页
第5页 / 共49页
程序改错完整版C语言.docx_第6页
第6页 / 共49页
程序改错完整版C语言.docx_第7页
第7页 / 共49页
程序改错完整版C语言.docx_第8页
第8页 / 共49页
程序改错完整版C语言.docx_第9页
第9页 / 共49页
程序改错完整版C语言.docx_第10页
第10页 / 共49页
程序改错完整版C语言.docx_第11页
第11页 / 共49页
程序改错完整版C语言.docx_第12页
第12页 / 共49页
程序改错完整版C语言.docx_第13页
第13页 / 共49页
程序改错完整版C语言.docx_第14页
第14页 / 共49页
程序改错完整版C语言.docx_第15页
第15页 / 共49页
程序改错完整版C语言.docx_第16页
第16页 / 共49页
程序改错完整版C语言.docx_第17页
第17页 / 共49页
程序改错完整版C语言.docx_第18页
第18页 / 共49页
程序改错完整版C语言.docx_第19页
第19页 / 共49页
程序改错完整版C语言.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序改错完整版C语言.docx

《程序改错完整版C语言.docx》由会员分享,可在线阅读,更多相关《程序改错完整版C语言.docx(49页珍藏版)》请在冰点文库上搜索。

程序改错完整版C语言.docx

程序改错完整版C语言

(一)功能:

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

#include"stdio.h"

#defineN20

voidfun(inta[],intn)

{

inti,j,t,k;

for(j=0;j

{

/**********ERROR**********/

k=j

for(i=j+1;i

/**********ERROR**********/

if(a[i]>a[k])

/**********ERROR**********/

k=j;

t=a[k];

a[k]=a[j];

a[j]=t;

}

}

main()

{

inta[N]={9,6,8,3,-1},i,m=5;

printf("排序前的数据:

");

for(i=0;i

printf("%d",a[i]);

printf("\n");

fun(a,m);

printf("排序后的数据:

");

for(i=0;i

printf("%d",a[i]);

printf("\n");

}

 

【参考答案】

k=j;

【参考答案】

if(a[i]

if(a[k]>a[i])

【参考答案】

k=i;

(二)功能:

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

广义菲玻那契级数的前n

项为:

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

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

例如:

若n=15,则应输出:

Thevalueis:

2209。

#include"conio.h"

#include"stdio.h"

longfun(intn)

{

longa=1,b=1,c=1,d=1,k;

/**********ERROR**********/

for(k=4;k

{

d=a+b+c;

/**********ERROR**********/

a=b

b=c;

c=d;

}

/**********ERROR**********/

returnk;

}

main()

{

intn=15;

printf("Thevalueis:

%ld\n",fun(n));

}

【参考答案】

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

【参考答案】

a=b;

【参考答案】

returnd;

(三)功能:

利用递归函数调用方式,将所输入的5个字符,以相反顺序

打印出来。

#include"stdio.h"

main()

{

inti=5;

voidpalin(intn);

printf("\40:

");

palin(i);

printf("\n");

}

voidpalin(n)

intn;

{

/**********ERROR**********/

charnext

if(n<=1)

{

/**********ERROR**********/

next!

=getchar();

printf("\n\0:

");

putchar(next);

}

else

{

next=getchar();

/**********ERROR**********/

palin(n);

putchar(next);

}

}

【参考答案】

charnext;

【参考答案】

next=getchar();

【参考答案】

palin(n-1);

(四)

功能:

计算级数ex=1+x+x2/2!

+x3/3!

+...+xn/n!

的值。

其中xn代表x的n次方。

include"stdio.h"

main()

{

intm,n;

floatx,term,ex1,ex2;

printf("x,m=");

scanf("%f%d",&x,&m);

/**********ERROR**********/

ex1==ex2=1;

term=1;

for(n=1;n<=m;n++)

{

/**********ERROR**********/

term*=x%n;

ex1+=term;

}

ex2=term;

/**********ERROR**********/

for(n=m;n>1;n--)

{

term*=n/x;

ex2+=term;

}

printf("exforward=%fexbackrard=%f\n",ex1,ex2);

}

【参考答案】

ex1=ex2=1;

【参考答案】

term*=x/n;

【参考答案】

for(n=m;n>=1;n--)

(五)功能:

用"冒泡法"对连续输入的十个字符排序后按从小到大的次序

输出.

defineN10

#include"stdio.h"

#include"string.h"

voidsort(charstr[N]);

main()

{

inti;

charstr[N];

/***********ERROR***********/

for(i=0;i

/***********ERROR***********/

sort(str[N]);

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

voidsort(charstr[N])

{

inti,j;chart;

for(j=1;j

/***********ERROR***********/

for(i=0;i

/***********ERROR***********/

if(str[i]

{

t=str[i];

str[i]=str[i+1];

str[i+1]=t;

}

}

【参考答案】

for(i=0;i

【参考答案】

sort(str);

【参考答案】

for(i=0;i

【参考答案】

if(str[i]>str[i+1])

if(str[i+1]

(六)【

功能:

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

出该值个数的*。

#include"stdio.h"

main()

{

inti,a,n=1;

/**********ERROR**********/

while(n<7)

{

do

{

scanf("%d",&a);

}

/**********ERROR**********/

while(a<1&&a>50);

/**********ERROR**********/

for(i=0;i<=a;i++)

printf("*");

printf("\n");

n++;

}

}

【参考答案】

while(n<=7)

【参考答案】

while(a<1||a>50);

【参考答案】

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

(六)功能:

生成一个周边元素为5,其它元素为1的3*3的二维数组。

#include"stdio.h"

voidfun(intarr[][3])

{

/**********ERROR**********/

inti,j

/**********ERROR**********/

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

for(j=0;j<3;j++)

/**********ERROR**********/

if(i==0&&j==0||i==2||j==2)

arr[i][j]=5;

else

arr[i][j]=1;

}

main()

{

inta[3][3],i,j;

fun(a);

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%d",a[i][j]);

printf("\n");

}

}

【参考答案】

inti,j;

【参考答案】

for(i=0;i<3;i++)

【参考答案】

if(i==0||j==0||i==2||j==2)

(七)功能:

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

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

#include"stdio.h"

doublefun(intm)

{

/**********ERROR**********/

doubley=0.0

inti;

/**********ERROR**********/

for(i=1;i

{

/**********ERROR**********/

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

}

return(y);

}

main()

{

intn;

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

}

【参考答案】

doubley=0.0;

【参考答案】

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

【参考答案】

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

(八)题目:

求两个整数的最小公倍数。

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

#include"stdio.h"

main()

{

inta,b,i,j,t;

scanf("%d,%d",&a,&b);

if(a>b)t=a;

elset=b;

/**********ERROR**********/

for(i=t;i<=a;i++)

{

if(i%a==0&&i%b==0)

/**********ERROR**********/

j=i;break;

}

printf("最小公倍数为:

%d\n",j);

}

【参考答案】

for(i=t;;i++)

for(i=t;i<=a*b;i++)

【参考答案】

{j=i;break;}

(九)功能:

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

#include"stdio.h"

#include"math.h"

main()

{

inta,b,c,d;

/**********ERROR**********/

scanf("%d",a);

for(b=3;b<=a/2;b+=2)

{

for(c=2;c<=sqrt(b);c++)

if(b%c==0)

break;

if(c>sqrt(b))

/**********ERROR**********/

d=a+b;

else

break;

for(c=2;c<=sqrt(d);c++)

/**********ERROR**********/

if(d%c=0)

break;

if(c>sqrt(d))

printf("%d=%d+%d\n",a,b,d);

}

}

【参考答案】

scanf("%d",&a);

【参考答案】

d=a-b;

【参考答案】

if(d%c==0)

(十)功能:

编写函数fun求1000以内所有8的倍数之和。

#include"stdio.h"

#defineN1000

intfun(intm)

{

/**********ERROR**********/

ints=0;i;

/**********ERROR**********/

for(i=1;i>N;i++)

/**********ERROR**********/

if(i/m==0)

s+=i;

returns;

}

main()

{

intsum;

sum=fun(8);

printf("%d以内所有%d的倍数之和为:

%d\n",N,8,sum);

}

【参考答案】

ints=0,i;

ints=0;inti;

【参考答案】

for(i=1;i

【参考答案】

if(i%m==0)

(十一)功能:

求1到10的阶乘的和。

#include"stdio.h"

main()

{

inti;

floatt,s=0;

floatfac(intn);

/**********ERROR**********/

for(i=1;i<10;i++)

/**********ERROR**********/

s=fac(i);

printf("%f\n",s);

}

floatfac(intn)

{

/**********ERROR**********/

inty=1;

inti;

for(i=1;i<=n;i++)

y=y*i;

/**********ERROR**********/

return;

}

【参考答案】

for(i=1;i<=10;i++)

for(i=1;10>=i;i++)

for(i=1;i<11;i++)

for(i=1;11>i;i++)

【参考答案】

s=s+fac(i);

s+=fac(i);

s=fac(i)+s;

【参考答案】

floaty=1.0;

floaty=1;

(十二)

功能:

打印出杨辉三角形(要求打印出10行).

#include"stdio.h"

main()

{

inti,j;

inta[10][10];

printf("\n");

/**********ERROR**********/

for(i=1;i<10;i++)

{

a[i][0]=1;

a[i][i]=1;

}

for(i=1;i<10;i++)

/**********ERROR**********/

for(j=1;j<10;j++)

/**********ERROR**********/

a[i][i]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<10;i++)

{

for(j=0;j<=i;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

【参考答案】

for(i=0;i<10;i++)

for(i=0;i<=9;i++)

【参考答案】

for(j=1;j

【参考答案】

a[i][j]=a[i-1][j-1]+a[i-1][j];

(十三)功能:

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

#defineN20

#include"stdio.h"

main()

{

intsum;

sum=fun(5);

printf("%d以内所有%d的倍数之积为:

%d\n",N,5,sum);

}

intfun(intm)

{

/**********ERROR**********/

ints=0,i;

for(i=1;i

/**********ERROR**********/

if(i%m=0)

/**********ERROR**********/

s=*i;

returns;

}

【参考答案】

ints=1,i;

【参考答案】

if(i%m==0)

【参考答案】

s=s*i

s=i*s

s*=i

(十四)功能:

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

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

#include"stdio.h"

main()

{

inti;

/***********ERROR***********/

floata[8],min,max,avg;

printf("input10score:

");

for(i=0;i<=9;i++)

{

printf("inputascoreofstudent:

");

/***********ERROR***********/

scanf("%f",a);

}

/***********ERROR***********/

max=min=avg=a[1];

for(i=1;i<=9;i++)

{

/***********ERROR***********/

if(min

min=a[i];

if(max

max=a[i];

avg=avg+a[i];

}

avg=avg/10;

printf("max:

%f\nmin:

%f\navg:

%f\n",max,min,avg);

}

【参考答案】

floata[10],min,max,avg;

【参考答案】

scanf("%f",&a[i]);

scanf("%f",a+i);

【参考答案】

max=min=avg=a[0];

【参考答案】

if(min>a[i])

if(a[i]

(十五)功能:

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

x*20x<0且x≠-3

f(x)=sin(x)0≤x<10且x≠2及x≠3

x*x+x-1其它

#include"math.h"

#include"stdio.h"

floatfun(floatx)

{

/**********ERROR**********/

floaty

/**********ERROR**********/

if(x<0||x!

=-3.0)

y=x*20;

elseif(x>=0&&x<10.0&&x!

=2.0&&x!

=3.0)

y=sin(x);

elsey=x*x+x-1;

/**********ERROR**********/

returnx;

}

main()

{

floatx,f;

printf("Inputx=");

scanf("%f",&x);

f=fun(x);

printf("x=%f,f(x)=%f\n",x,f);

}

【参考答案】

floaty;

【参考答案】

if(x<0&&x!

=-3.0)

【参考答案】

returny;

(十六)功能:

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

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

#include"stdio.h"

voidfun()

{

inti;

floatf1=1,f2=1,f3;

/**********ERROR**********/

printf("%8d",f1);

/**********ERROR**********/

for(i=1;i<=20;i++)

{

f3=f1+f2;

/**********ERROR**********/

f2=f1;

/**********ERROR**********/

f3=f2;

printf("%8.0f",f1);

}

printf("\n");

}

main()

{

fun();

}

【参考答案】

printf("%8.0f",f1);

【参考答案】

for(i=1;i<20;i++)

【参考答案】

f1=f2;

【参考答案】

f2=f3;

(十七)

功能:

利用二维数组输出如图所示的图形。

*******

*****

***

*

***

*****

*******

#include"stdio.h"

#include

/**********ERROR**********/

#defineN=7

main()

{

chara[N][N];

inti,j,z;

for(i=0;i

for(j=0;j

/**********ERROR**********/

a[i][j]=;

z=0;

for(i=0;i<(N+1)/2;i++)

{

for(j=z;j

a[i][j]='*';

z=z+1;

}

/**********ERROR**********/

z=0;

for(i=(N+1)/2;i

{

z=z-1;

for(j=z;j

a[i][j]='*';

}

for(i=0;i

{

for(j=0;j

/**********ERROR**********/

printf("%d",a[i][j]);

printf("\n");

}

}【参考答案】

#defineN7

【参考答案】

a[i][j]='';

【参考答案】

z=z-1;

【参考答案】

printf("%c",a[i][j]);

(十八)

功能:

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

一、求它是几位数,

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

#include"stdio.h"

main()

{

/**********ERROR**********/

longa,b,c,d,e,x,

scanf("%ld",&x);

a=x/10000;

/**********ERROR**********/

b=x/10000/1000;

c=x%1000/100;

d=x%100/10;

e=x%10;

/**********ERROR**********/

if(a==0)

printf("thereare5,%ld%ld%ld%ld%ld\n",e,d,c,b,a);

elseif(b!

=0)

printf("thereare4,%ld%ld%ld%ld\n",e,d,c,b);

elseif(c!

=0)

printf("thereare3,%ld%ld%ld\n",e,d,c);

elseif(d!

=0)

printf("thereare2,%ld%ld\n",e,d);

elseif(e!

=0)

printf("thereare1,%ld\n",

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2