考试一观 程序改错.docx

上传人:b****5 文档编号:3230241 上传时间:2022-11-20 格式:DOCX 页数:20 大小:18.31KB
下载 相关 举报
考试一观 程序改错.docx_第1页
第1页 / 共20页
考试一观 程序改错.docx_第2页
第2页 / 共20页
考试一观 程序改错.docx_第3页
第3页 / 共20页
考试一观 程序改错.docx_第4页
第4页 / 共20页
考试一观 程序改错.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

考试一观 程序改错.docx

《考试一观 程序改错.docx》由会员分享,可在线阅读,更多相关《考试一观 程序改错.docx(20页珍藏版)》请在冰豆网上搜索。

考试一观 程序改错.docx

考试一观程序改错

程序改错

==================================================

平时练习题

实验二

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

【程序改错】

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

功能:

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

例如:

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

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

#include

longfun(longnum)

{

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

longk;

do

{

k*=num%10;

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

num\=10;

}while(num);

returnk;

}

main()

{

longn;

printf("\nPleaseenteranumber:

");

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

scanf("%ld",n);

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

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

}

答案:

位置1:

longk=1;

位置2:

num/=10;【或】num=num/10;

位置3:

scanf("%ld",&n);

位置4:

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

实验三

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

【程序改错】

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

功能:

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

组元素仍按升序排列。

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

#include

#defineN11

main()

{

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

printf("pleaseenteranintegertoinsertinthearray:

\n");

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

scanf("%d",&number)

printf("Theoriginalarray:

\n");

for(i=0;i

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

printf("\n");

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

for(i=N-1;i>=0;i--)

if(number<=a[i])

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

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

else

{

a[i+1]=number;

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

exit;

}

if(number

printf("Theresultarray:

\n");

for(i=0;i

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

printf("\n");

}

答案:

位置1:

scanf("%d",&number);

位置2:

for(i=N-2;i>=0;i--)【或】for(i=N-2;0<=i;i--)

位置3:

a[i+1]=a[i];【或】a[1+i]=a[i];

位置4:

break;

综合一

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

【程序改错】

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

题目:

假定输入的字符串中只包含字母和*号。

编写程序只删除字符串的前面*号。

例如,******ACF*F*G****,删除后,字符串中的字符为ACF*F*G****

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

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

注意:

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

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

#include

#include

voidfun(chara[]);

main()

{chara[80];

gets(a);

fun(a);

puts(a);

}

voidfun(chara[])

{

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

inti=0,j;

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

while(a[i]!

='*')i++;

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

while(a[i]=='\0')a[j++]=a[i++];

a[j]='\0';

}

答案:

位置1:

inti=0,j=0;

位置2:

while(a[i]=='*')i++;

位置3:

while(a[i])a[j++]=a[i++];【或】while(a[i]!

='\0')a[j++]=a[i++];【或】while(a[i]!

=0)a[j++]=a[i++];

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

【程序改错】

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

功能:

编程序求一维数组中的最大和最小的元素值.

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

#include

#defineN10

intmax;

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

intmaxmin(intarr[],n)

{

inti,min;

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

max=min=0;

for(i=1;i

{

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

if(arr[i]

if(arr[i]

}

returnmin;

}

main()

{

intarray[N]={10,7,19,29,4,0,7,35,-16,21},min;

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

min=maxmin(intarray,intN);

printf("max=%d,min=%d",max,min);

}

答案:

位置1:

intmaxmin(intarr[],intn)【或】maxmin(intarr[],intn)

位置2:

max=min=arr[0];【或】max=arr[0],min=arr[0];【或】max=arr[0];min=arr[0];

位置3:

if(arr[i]>max)max=arr[i];【或】if(max

位置4:

min=maxmin(array,N);

综合二

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

【程序改错】

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

功能:

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

直到最后一项的绝对值

小于等于0.0001。

π111

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

4357

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

#include"stdio.h"

#include"math.h"

fun()

{

inti=1;

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

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

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

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

{

s=s+t;

p=-p;

i=i+2;

t=p/i;

}

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

printf("pi=%d\n",s*4);

}

main()

{

fun();

}

答案:

位置1:

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;

位置2:

while(fabs(t)>1e-4)【或】while(0.00010.0001)

位置3:

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

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

【程序改错】

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

题目:

定义一个4×4的二维数组a,数组元素的值由键盘输入,

输出主对角线元素的最大值。

如:

输入2357

6673

3757

1357

输出:

主对角线元素的最大值是7

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

注意:

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

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

#include"stdio.h"

#defineN4

intfun(inta[N][N])

{inti,max;

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

max==a[0][0];

for(i=0;i

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

if(a[i][i]

max=a[i][i];

returnmax;

}

main()

{inta[N][N],i,j;

printf(

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

当前位置:首页 > 小学教育 > 英语

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

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