c语言程序改错题Word格式.docx

上传人:b****6 文档编号:16691413 上传时间:2022-11-25 格式:DOCX 页数:37 大小:23.58KB
下载 相关 举报
c语言程序改错题Word格式.docx_第1页
第1页 / 共37页
c语言程序改错题Word格式.docx_第2页
第2页 / 共37页
c语言程序改错题Word格式.docx_第3页
第3页 / 共37页
c语言程序改错题Word格式.docx_第4页
第4页 / 共37页
c语言程序改错题Word格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

c语言程序改错题Word格式.docx

《c语言程序改错题Word格式.docx》由会员分享,可在线阅读,更多相关《c语言程序改错题Word格式.docx(37页珍藏版)》请在冰豆网上搜索。

c语言程序改错题Word格式.docx

a[i]);

4max=fun(a,&

p,N);

/*-----------------------------------

2题目:

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

voidsort(intx,intn)

inti,j,k,t;

n-1;

for(j=0;

j<

n-i;

j++)

if(x[i]>

x[i+1])

{t=x[j];

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

x[j+1]=t;

inti,n,a[100];

pleaseinputthelengthofthearray:

n);

n;

sort(a,n);

outputthesortedarray:

=n-1;

%5d"

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

『错误答案』:

1voidsort(intx[],intn)

2for(j=0;

n-1-i;

j++)或for(j=0;

n-1-i>

j;

n-(1+i);

n-(1+i)>

3if(x[j]>

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

x[j])

3题目:

在一个已按升序排列的数组中插入一个数,插入后,数

组元素仍按升序排列。

#defineN11

inti,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};

pleaseenteranintegertoinsertinthearray:

%f"

number)

Theoriginalarray:

N-1;

for(i=N-1;

i>

=0;

i--)

if(number<

=a[i])

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

else

{a[i+1]=number;

exit;

a[0])a[0]=number;

Theresultarray:

}

1scanf("

number);

2for(i=N-2;

i--)或for(i=N-2;

0<

=i;

3a[i+1]=a[i];

4break;

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

4【程序改错】

题目:

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

S=1+1/(1+2)+1/(1+2+3)+

1/(1+2+3+4)…

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

#include<

stdio.h>

intn;

floatfun();

Pleaseinputanumber:

"

n);

%10.6f\n"

fun(n));

fun(intn)

inti,j,t;

floats;

s=0;

for(i=1;

=n;

i++);

t=0;

for(j=1;

t=t+j;

s=s+1/t;

}

returns;

2floatfun(intn)

3for(i=1;

i++)或for(i=1;

n>

n+1;

n+1>

i;

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

或s=s+1.0/t;

或s+=1.0/(float)t

/*-----------------------------------

5题目:

输入一行英文文本,将每一个单词的第一个字母变成大写。

例如:

输入"

ThisisaCprogram."

,输出为"

This

IsACProgram."

string.h>

conio.h>

fun(charp)

intk=0;

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

while(*p=='

\0'

if(k==0&

&

*p!

='

'

*p=toupper(*p);

k=0;

elseif(*p!

)k=1;

elsek=0;

*p+;

}

charstr[81];

clrscr();

pleaseinputaEnglishtextline:

gets(str);

Theoriginaltextlineis:

puts(str);

fun(str);

Thenewtextlineis:

1fun(char*p)或fun(charp[])

2while(*p!

)或while(*p)

3k=1;

4p++;

或p=1+p;

或++p;

或p=p+1;

6【程序改错】

将一个字符串中的大写字母转换成小写字母。

例如:

输入aSdFG输出为asdfg。

#include<

charfun(charc)

if(*c<

Z'

*c>

A'

)*c-='

-'

a'

;

fun=c;

chars[81],*p=s;

gets(s);

while(*p)

*p=fun(p);

puts(*p);

p++;

putchar('

\n'

1charfun(char*c)

2return*c;

或return(*c);

或return(*c);

3{chars[81],*p=s;

4putchar(*p);

或printf("

%c"

*p);

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

7【程序改错】

-------------------------------------题目:

下列给定程序中,函数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("

voidfun(intm)

inti,k=1;

if(m<

=1)k=0;

m;

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

returnm;

1intfun(intm)或fun(intm)

2for(i=2;

i++)或for(i=2;

m>

=m-1;

m-1=>

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

4returnk;

8题目:

函数fun的功能是:

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

直到最后一项的绝对值小于等于0.0001。

π111

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

4357

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

#include"

stdio.h"

fun()

inti=1;

ints=0,t=1,p=1;

while(fabs(t)<

=1e-4)

s=s+t;

p=-p;

i=i+2;

t=p/i;

pi=%d\n"

s*4);

main()

fun();

1#include"

math.h"

2floats=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;

3while(fabs(t)>

1e-4)或while(0.0001<

fabs(t))或while(1e-4<

fabs(t))或while(fabs(t)>

0.0001)

4printf("

pi=%f\n"

9题目:

求1到10的阶乘的和。

主函数和fun函数中,各有两个错误,请改正,使其能得到正确的运行结果。

-------------------------------------main()

inti;

floatt,s=0;

floatfac(intn);

10;

s=fac(i);

%f\n"

s);

floatfac(intn)

inty=1;

for(i=1;

y=y*i;

return;

1for(i=1;

=10;

10>

11;

11>

2s=s+fac(i);

或s+=fac(i);

3floaty=1.0;

或floaty=1;

4returny;

或return(y);

或return(y);

10题目:

求1到20的阶乘的和。

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

{

intn,j;

floats=0.0,t;

for(n=1;

n<

=20;

n++)

{

s=1;

t=t*n;

s+t=s;

jiecheng=%d\n"

1t=1;

或t=1.0;

2t=t*j;

或t*=j;

3s=s+t;

或s+=t;

jiecheng=%f\n"

11题目:

-------------------------------『错误答案』:

12【程序改错】

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

111

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

2x23x3mxm

例如,若m=5,则应输出:

0.536389

doublefun(intm)

doubley=1.0;

for(i=2;

y-=1/(i*i);

intn=5;

\ntheresultis%lf\n"

1for(i=2;

=m;

m+1;

1+m;

m+1>

1+m>

2y-=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;

3returny;

【程序改错】

12题目:

实现交换两个整数的值。

例如给a和b

分别输入3和6,输出为a=6b=3

voidfun(inta,b)

intt;

t=a;

a=b;

b=t;

inta,b;

entera,b:

scanf("

%d%d"

a,&

b);

fun(&

a=%db=%d\n"

a,b);

1voidfun(int*a,int*b)或fun(int*a,int*b)

2t=*a;

3*a=*b;

4*b=t;

13【程序改错】

计算并输出k以内最大的10个能被13

或17整除的自然数之和。

k的值由主函数传入,若k的值

为500,则函数值为4622。

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

intfun(intk)

intm=0,mc=0,j;

while((k>

=2)||(mc<

10))

if((k%13=0)||(k%17=0))

{m=m+k;

mc++;

k++;

return;

%d\n"

fun(500));

1while((2<

=k)&

(mc<

10))或while((k>

=2)&

(10<

mc))或while((2<

mc))或while((k>

10))或while((2<

=9))或while((k>

(9<

=mc))或while((2<

=mc))或while((k>

=9))

2if((k%17==0)||(k%13==0))或if!

((k%17!

=0)&

(k%13!

=0))

3k--;

4returnm;

或return(m);

14【

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

当前位置:首页 > 高中教育 > 语文

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

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