改错题_改错字题

2020-02-27 其他范文 下载本文

改错题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“改错字题”。

改错题

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取余则可得到由十位数和个位数组成的新数。

《改错题.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
改错题
点击下载文档
相关专题 改错字题 改错题 改错字题 改错题
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文