C语言程序改错答案Word文件下载.docx

上传人:b****6 文档编号:17734632 上传时间:2022-12-09 格式:DOCX 页数:80 大小:37.58KB
下载 相关 举报
C语言程序改错答案Word文件下载.docx_第1页
第1页 / 共80页
C语言程序改错答案Word文件下载.docx_第2页
第2页 / 共80页
C语言程序改错答案Word文件下载.docx_第3页
第3页 / 共80页
C语言程序改错答案Word文件下载.docx_第4页
第4页 / 共80页
C语言程序改错答案Word文件下载.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

C语言程序改错答案Word文件下载.docx

《C语言程序改错答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序改错答案Word文件下载.docx(80页珍藏版)》请在冰豆网上搜索。

C语言程序改错答案Word文件下载.docx

或return(b);

题目2:

下列给定程序中,函数fun的功能是:

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

主函数的功能是:

按每行5个输出1-100之间的全部素数。

请改正程序中的4个错误,使它能得出正确的结果。

intm,k=0;

for(m=1;

m<

100;

m++)

if(fun(m)==1)

{

%4d"

m);

k++;

if(k%5==0)printf("

\n"

);

return0;

}

voidfun(intn)

inti,k=1;

if(m<

=1)k=0;

for(i=1;

i<

m;

i++)

if(m%i=0)k=0;

returnm;

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

2).for(i=2;

i++)或for(i=2;

m>

i;

=m-1;

m-1=>

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

4).returnk;

题目3:

输出Fabonacci数列的前20项,要求变量类型定义成浮点型,输出时只输出整数部分,输出项数不得多于或少于20。

voidfun(void)

inti;

floatf1=1,f2=1,f3;

%8d"

f1);

for(i=1;

=20;

f3=f1+f2;

f2=f1;

f3=f2;

%8.0f"

printf("

fun();

1).printf("

或printf("

%f"

2).for(i=1;

20;

i++)或for(i=1;

20>

=i;

=19;

19>

3).f1=f2;

4).f2=f3;

题目4:

有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置。

{

inti,a[10],min,k=0;

\npleaseinputarray10elements\n"

for(i=0;

10;

i++)

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

scanf("

%d"

a[i]);

a[i]);

min=a[0];

for(i=3;

if(a[i]>

min)

min=a[i];

k=i;

a[k]=a[i];

a[0]=min;

\naftereschange:

i++)printf("

\nk=%d\nmin=%d\n"

k,min);

1).scanf("

a[i]);

i++)或for(i=0;

=9;

3).if(a[i]<

4).a[k]=a[0];

题目5:

求1到20的阶乘的和。

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

intn,j;

floats=,t=;

for(n=1;

n<

n++)

{

s=1;

for(j=1;

j<

=n;

j++)

t=t*n;

s+t=s;

jiecheng=%d\n"

s);

1).t=1;

或t=;

2).t=t*j;

或t*=j;

3).s=s+t;

或s+=t;

4).printf("

jiecheng=%f\n"

题目6:

fun函数的功能是:

给定n个实数,输出平均值,并统计在平均值以下(含平均值)的实数个数。

例如,n=6时,输入,,,,,所得平均值为,在平均值以下的实数个数应为3。

intfun(floatx[],intn)

intj,c=0;

floatj=0;

for(j=0;

xa+=x[j];

xa=xa/n;

ave=%f\n"

xa);

if(x[j]<

=xa)c++;

returnxa;

floatx[]={,,,,,};

%d\n"

fun(x,6));

1).floatxa=0;

或floatxa=;

2).for(j=0;

n;

j++)或for(j=0;

n>

j;

n-1>

=j;

=n-1;

3).for(j=0;

4).returnc;

或return(c);

题目7:

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

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

longfun(longnum)

longk;

do

k*=num%10;

num\=10;

}while(num);

returnk;

longn;

\nPleaseenteranumber:

"

%ld"

n);

\n%ld\n"

fun(longn));

1).longk=1;

2).num/=10;

或num=num/10;

3).scanf("

n);

fun(n));

题目8:

以下程序输出前六行杨辉三角形,即

1

11

121

1331

14641

…………

staticinta[6][6];

inti,j,k;

=6;

for(k=0;

k<

5+i;

k++)

"

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

if(j==0&

&

j==i)

a[i][j]=1;

else

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

%-3d"

a[i][j]);

1).for(i=0;

6;

=5;

2).for(k=0;

5-i;

k++)

3).if(j==0||j==i)

4).elsea[i][j]=a[i-1][j-1]+a[i-1][j];

题目9:

将字符串s中最后一次出现的子字符串t1替换成字符串t2,所形成的新串放在w所指的数组中,在此处,要求t1和t2所指字符串的长度相同。

例如,当s所指字符串中的内容为"

abcdabfabc"

,t1中的内容为"

ab"

,t2中的内容为"

99"

时,结果w所指数组中的内容应为"

abcdabf99c"

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

#include<

>

intfun(char*s,char*t1,char*t2,char*w)

char*p,*r,*a;

strcpy(w,s);

while(w)

p=w;

r=t1;

while(*r)

if(*r=*p){r++;

p++;

elsebreak;

if(*r=='

/0'

)a=w;

w++;

r=t2;

a=*r;

a++;

r++;

chars[100],t1[100],t2[100],w[100];

clrscr();

\nPleaseenterstringS:

%s"

s);

\nPleaseentersubstringt1:

t1);

\nPleaseentersubstringt2:

t2);

if(strlen(t1)==strlen(t2))

fun(s,t1,t2,w);

\nTheresultis:

%s\n"

w);

elseprintf("

\nError:

strlen(t1)!

=strlen(t2)\n"

1).while(*w)或while(*w!

=0)或while(*w!

='

\0'

)或for(;

*w;

*w!

;

2).if(*r==*p){r++;

3).if(*r=='

或if(*r==0)a=w;

4).*a=*r;

题目10:

以下程序的功能是求如下表达式:

请改正程序中的错误,使程序能得到正确的运行结果。

intn;

floatfun();

Pleaseinputanumber:

print("

n);

%10.6f\n"

fun(intn)

inti,j,t;

floats;

s=0;

while(i=1;

i++);

t=0;

t=t+j;

=s+1/t;

}

returns;

2).floatfun(intn)

3).for(i=1;

n+1;

n+1>

4).s+=t或s=s+(float)t;

或s=s+t;

或s+=(float)t

题目11:

找出大于m的最小素数,并将其作为函数值返回。

intfun(intm)

inti,k;

for(i=m+1;

for(k=1;

if(i%k!

=0)break;

if(k<

i)

1).for(k=2;

k++)或for(k=2;

i>

k;

2).if(i%k==0)break;

3).if(i<

=k)或if(k>

=i)或if(k==i)

4).returni;

或return(i);

题目12:

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

程序中共有4条错误语句,请改正错误。

voidsort(intx,intn)

inti,j,k,t;

for(i=0;

n-1;

for(j=0;

n-i;

if(x[i]>

x[i+1])

{t=x[j];

x[j]=x[j+1];

x[j+1]=t;

inti,n,a[100];

pleaseinputthelengthofthearray:

sort(n,a);

outputthesortedarray:

%5d"

1).voidsort(int*x,intn)

n-1-i;

n-1-i>

n-(1+i);

n-(1+i)>

3).if(x[j]>

x[j+1])或if(x[j+1]<

x[j])

4).sort(a,n);

题目13:

以下程序把两个数按由大到小的顺序输出来.

swap(int*p1,*p2)

intp;

p=*p1;

*p1=*p2;

*p2=p;

inta,b,*p1,*p2;

printf("

inputa,b:

scanf("

a,b);

*p1=&

a;

*p2=&

b;

if(a<

b)swap(p1,p2);

a=%d,b=%d\n"

max=%d,min=%d\n"

p1,p2);

1).swap(int*p1,int*p2)

2).scanf("

a,&

b);

3).p1=&

p2=&

*p1,*p2);

题目14:

有一数组内放10个整数,要求找出最小数和它的下标,然后把它和数组中最前面的元素即第一个数对换位置.

floataverage(floatarray[10])

floataver,sum=array[0];

sum=sum+array[i];

aver=sum/;

return(aver);

intscore[10],aver;

input10scores:

for(i=0;

score);

aver=average(score[10]);

averagescoreis%5.2f"

aver);

1).for(i=1;

2).floatscore[10],aver;

&

score[i]);

4).aver=average(score);

题目15:

为一维数组输入10个整数;

将其中最小的数与第一个数对换,将最大的数与最后一个数对换;

输出数组元素。

inta[10];

voidinput();

voidoutput();

voidmax_min();

input(a,10);

max_min(a,10);

output(a,10);

voidinput(int*arr,intn)

int*p,i;

p=arr;

pleaseenter10integers:

p);

voidmax_min(int*arr,intn)

int*min,*max,*p,t;

min=max=arr;

for(p=arr+1;

p<

arr+n;

p++)

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

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

当前位置:首页 > 幼儿教育 > 唐诗宋词

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

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