改错题_改错字题
改错题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“改错字题”。
改错题
1、下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩: 85 65.5 69 95.5 87 55 62.5 75 则高于平均分的学生人数为4(平均分为74.312500)。请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
#include #include #define N 20 int fun(float *s, int n,float *aver){
/**************found**********************/
int ave ,t=0;
int count=0,k,i;
for(k=0;k
t+=s[k];
ave=t/n;
for(i=0;i
/***************found***********************/
if(s[i]
count++;
/************found***********************/
aver=ave;
return count;} main(){
float s[30],aver;
int m,i;
clrscr();
printf(“nPlease enter m: ”);
scanf(“%d”,&m);
printf(“nPlease enter %d mark :n”,m);
for(i=0;i
scanf(“%f”,s+i);
printf(“nThe number of students :%dn”,fun(s,m,&aver));
printf(“Ave=%fn”,aver);}
(1)错误:int ave ,t=0;
正确:float ave ,t=0.0;(2)错误:if(s[i]
正确:if(s[i]>ave)(3)错误:aver=ave;
正确:*aver=ave;
【解析】错误1:ave和t分别用来存放成绩的平均值和总分,应为实型数。
错误2:根据题意,找出高于平均分的数,所以此处的关系运算符应为“>” 错误3:aver是指针,而ave是一个数,不能将一个数赋值给一个指针,而要用符号'*'。
2、下列给定的程序中,函数fun()的功能是:计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include #include int fun(int k){ int m=0,mc=0, j;/**********************found***********************/ while(k>=2)&&(mc
(1)错误:while(k>=2)&&(mc=2)&&(mc
错误2:if语句的判断条件应用关系运算符,而不是赋值运算符。错误3:根据题意,将满足条件的数求累加和。
3、下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入“edS,dAd”,则输出“EDS,DAD”。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:
#include #include #include
/*************found***********************/ char fun(char tt[]){ int i;for(i=0;tt[i];i++)
{
/**********************found***********************/
if((tt[i]>='A')&&(tt[i]
tt[i]-=32;
} return(tt);} main(){ int i;char tt[81];clrscr();printf(“nPlease enter a string: ”);gets(tt);printf(“nThe result string is: n%s”,fun(tt));}
(1)错误:char fun(char tt[])
正确:char *fun(char tt[])
(2)错误:if((tt[i]>='A')&&(tt[i]
正确:if((tt[i]>='a')&&(tt[i]
【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。
错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。
4、下列给定程序中函数fun()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为4576235时,t中的数为4725。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: #include #include /**********************found***********************/ int fun(long s,long *t){
long s1=10;
*t=s%10;
while(s>0)
{
/**********************found***********************/
s=s%100;
*t=s%10*s1+*t;
s1=s1*10;
} } main(){
long s, t;
clrscr();
printf(“nPlease enter s: ”);
scanf(“%ld”,&s);
fun(s,&t);
printf(“The result is: %ldn ”,t);}
答案及评析:
(1)错误:int fun(long s,long *t)正确:void fun(long s,long *t)(2)错误:s=s%100;正确:s=s/100;【解析】错误1:函数由指针来完成参数的传递,所以没有返回值,应定义函数的类型为void。错误2:此处要注意特殊运算符号“%”--取余和“/”--整除的区别。将一个数整除100则可得到由其百位数以上的数组成的新数字,将一个数整除100取余则可得到由十位数和个位数组成的新数。