if(k!
=a[i])
{
a[j++]=a[i];
k=a[i];
}
a[j]=0;
returnj;
===============
五、程序改错
1./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
函数fun的功能是:
求1到20的阶乘的和。
--------------------------------------*/
#include"stdio.h"
main()
{
intn,j;
floats=0.0,t=1.0;
for(n=1;n<=20;n++)
{
/**********ERROR**********/
s=1;
for(j=1;j<=n;j++)
/**********ERROR**********/
t=t*n;
/**********ERROR**********/
s+t=s;
}
printf("jiecheng=%f\n",s);
}
【改错1】
【学生答案】
s=1;
【参考答案】
t=1;
t=1.0;
============================================================
【改错2】
【学生答案】
t=t*n;
【参考答案】
t=t*j;
t*=j;
t=j*t;
============================================================
【改错3】
【学生答案】
s+t=s;
【参考答案】
s=s+t;
s+=t;
s=t+s;
============================================================
2./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
实现两个字符串的连接。
例如:
输入dfdfqe和12345时,则输出dfdfqe12345.
------------------------------------------------------*/
#include"stdio.h"
main()
{
chars1[80],s2[80];
voidscat(chars1[],chars2[]);
gets(s1);
gets(s2);
scat(s1,s2);
puts(s1);
}
voidscat(chars1[],chars2[])
{
inti=0,j=0;
/**********ERROR**********/
while(s1[i]=='\0')i++;
/**********ERROR**********/
while(s2[j]=='\0')
{
/**********ERROR**********/
s2[j]=s1[i];
i++;
j++;
}
/**********ERROR**********/
s2[j]='\0';
}
【改错1】
【学生答案】
while(s1[i]=='\0')i++;
【参考答案】
while(s1[i]!
='\0')i++;
while(s1[i])i++;
while(s1[i]!
=NULL)i++;
while(s1[i]!
=0)i++;
============================================================
【改错2】
【学生答案】
while(s2[j]=='\0')
【参考答案】
while(s2[j]!
='\0')
while(s2[j])
while(s2[j]!
=NULL)
while(s2[j]!
=0)
============================================================
【改错3】
【学生答案】
s2[j]=s1[i];
【参考答案】
s1[i]=s2[j];
============================================================
【改错4】
【学生答案】
s2[j]='\0';
【参考答案】
s1[i]='\0';
s1[i]=NULL;
*(s1+i)='\0';
s1[i]=0;
============================================================
六、程序填空
1./*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
打印以下图形。
*****
*****
*****
*****
*****
-------------------------------------------------------*/
#include"stdio.h"
main()
{
chara[5][9]={" "};
inti,j;
for(i=0;i<5;i++)
/***********FILL***********/
for(j=i;_____;j++)
a[i][j]='*';
/***********FILL***********/
for(_____;i<5;i++)
{
for(j=0;j<9;j++)
/***********FILL***********/
printf("%c",_____);
/***********FILL***********/
_____;
}
}
【空1】
【学生答案】
for(j=i;_____;j++)
【参考答案】
j
i+5>j
j<=i+4
i+4>j
j<5+i
============================================================
【空2】
【学生答案】
for(_____;i<5;i++)
【参考答案】
i=0
============================================================
【空3】
【学生答案】
printf("%c",_____);
【参考答案】
a[i][j]
============================================================
【空4】
【学生答案】
_____;
【参考答案】
printf("\n")
============================================================
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
计算n门课程的平均分。
例如:
若有5门课程的成绩是:
90.5,72,80,61.5,55
则函数的值为:
71.80。
-------------------------------------------------------*/
#include
floatfun(float*a,intn)
{
inti;
floatave=0.0;
/***********FILL***********/
for(i=0;________;i++)
ave=ave+a[i];
ave=ave/n;
/***********FILL***********/
_________;
}
intmain()
{
floatscore[30]={90.5,72,80,61.5,55},aver;
/***********FILL***********/
aver=fun(_______,5);
printf("\nAveragescoreis:
%5.2f\n",aver);
return0;
}
【空1】
【学生答案】
for(i=0;________;i++)
【参考答案】
in>i
============================================================
【空2】
【学生答案】
_________;
【参考答案】
returnave;
============================================================
【空3】
【学生答案】
aver=fun(_______,5);
【参考答案】
score
============================================================
【第四套】
一单选
1sizeof(float)是()。
A、一个浮点表达式
B、一个不合法的表达式
C、运算结果是一个整型表达式。