更多"改错题
下列给定程序中,函数fun( )的功能是:从n个学生的成绩中"的相关试题:
[多项选择]改错题
下列给定程序中,函数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
[简答题]改错题
下列给定程序中,函数fun( )的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码降序排序后输出。
例如:输入dafhc,则应输出hfdca。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
/**********************found***********************/
int fun(char t[ ])
{
char c;
int i,j;
for(i=0;i
[简答题]改错题
下列给定程序中,函数fun( )的功能是计算并输出high以内的素数之和。high由主函数传给fun( )函数。若high的值为100,则函数的值为1060。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
int fun(int high)
{
int sum=0,n=0, j, yes;
while(high>=2)
{
yes = 1;
for(j=2; j<=high/2; j++)
/**********************found***********************/
ifhigh%j==0
{
yes=0;
break;
}
/**********************found***********************/
if(yes==0)
{
sum+=high;
n++;
}
high--;
}
return sum;
}
main( )
{
clrscr( );
printf("%d/n",fun(100));
}
[简答题]改错题
下列给定程序中,函数fun( )的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
void fun(char *p,char *q,char *c)
{ int k=0;
while(*p||*q)
/**********************found***********************/
{ if (*p<=*q)
c[k]=*q;
else c[k]=*p;
if(*p) p++;
if(*q) q++ ;
/**********************found***********************/
k++
}
}
main( )
{ char a[10]="fshADfg",b[10]="sdAEdi",c[80]={’’/0’’};
fun(a,b,c);
printf("The string a:"); puts(a);
printf("The string b:"); puts(b);
printf("The result :"); puts(c);
}
[简答题]改错题
下列给定程序中,函数fun( )的功能是根据整型形参m,计算如下公式的值。
y=1-1/(2×2)+1/(3×3)-1/(4×4)+…+(-1)(m+1)/(m×m)
例如:m中的值为5,则应输出0.838611。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
double fun(int m)
{ double y=1.0;
/**********************found***********************/
int j=1;
int i;
for(i=2; i<=m; i++)
{
j=-1*j;
/**********************found***********************/
y+=1/(i * i);
}
return(y);
}
main( )
{
int n=5;
clrscr( );
printf("/nThe result is %lf/n" ,fun(n));
}
[简答题]改错题
下列给定程序中,函数fun( )的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
void fun(char *s)
{
int i,j;
for(i=0,j=0; s[i]!= ’’/0’’; i++)
/**********************found***********************/
if((s[i]>= ’’A’’&&s[i]<= ’’Z’’)&&(s[i]>= ’’a’’&&s[i]<= ’’z’’))
s[j++]=s[i];
/**********************found***********************/
s[j]= "/0";
}
main( )
{
char item[80];
clrscr( );
printf("/nEnter a string: ");
gets(item);
printf("/n/nThe string is:/%s/n",item);
fun(item);
printf("/n/nThe string of changing is :/%s/n",item);
}
[简答题]改错题
下列给定的程序中,函数fun( )的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#define N 20
void fun(int a[],int n)
{
int i,j,t,p;
/**********************found***********************/
for(j=0;ja[p])
p=i;
t=a[p];
a[p]=a[j];
/**********************found***********************/
a[p]=t;
}
}
main( )
{
int a[N]={11,32,-5,2,14},i,m=5;
printf("排序前的数据:");
for(i=0;i
[简答题]改错题【程序功能】 函数fun的功能是将str所指向的一行包含若干单词的文本(单词之间用空格隔开)依次拆分成长度不超过20个字符的若干文本行,单词不跨行,且使拆分出的行数最少,再将拆分出的每行字符以字符串的形式存储到page指向的二维数组的一行中,函数返回拆分出的行数 【测试数据与运行结果】 测试数据:A great discovery solves a greate problem. 屏幕输出: A great disconvery solves a great problem【含有错误的源程序】以下源程序已保存在T盘myf1.c文件内,考生可直接打开该文件调试程序#include #include #include int fun(char str[],char pag[][]){int i,k=0,j,flag=1; while(*str && flag) {if(strlen(str)<20) {pag[k]=str; flag=0; } else {i=20; while(str[i]!=’ ’) i--; for(j=0;j
[简答题]
改错题
【题目】
以下程序中,函数fun(int m, int fac[], int &p)的功能是:计算参数m(m>2)的所有因子,将这些因子按从小到大的顺序依次存放在数组fac中,将因子个数存放在参数p中,并返回所有因子之和。
正确程序的输入/输出结果如下(下划线部分为键盘输入):
输入一个整数:24
24的所有因子之和为:60
24的各因子为:1 2 3 4 6 8 12 24
含有错误的源程序如下:
1 #include
2 #include
3 int fun(int,int[],int);
4 void main(void)
5 {
6 int n,f[100],p;
7 cout<<"输入一个整数:";
8 cin>>n;
9 cout< 10 cout< 11 for(int i=0;i 12 cout< 13 cout< 14 }
15 int fun(int m,int fac[],int &p)
16 {
17 int i,s;
18 fac[0]=p=1;
19 for(s=1,i=2;i<=sqrt(m);i++){
20 if(m%i=0){
21 fac[p++]=i;
22 s+=i;
23 }
24 }
25 fac[p]=m;
26 s+=m;
27 return fac;
28 }
【要求】
1.打开T盘中myfa.txt文件,将其文本拷贝到文件myfa.cpp中(或将上述程序录入到文件myfa.cpp中),根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。程序中的注解可以不输入
[填空题]下列给定程序中,函数proc( )的功能是:从m个学生的成绩中统计出低于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
60 70 80 90 65 75 85 95
则低于平均分的学生人数为4(平均分为77.5)。实际输入时学生数以回车键作为结束,成绩与成绩之间也与回车键作为分隔。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#inelude<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 20
int proc (float *s, int n, float * aver)
//************found*************
int ave, t=0;
int count=0, k, i;
for(k=0; k<n; k++)
t+=s[k];
ave=t/n;
for(i=0; i<n; i++)
//************found************
if(s[i]>ave)
count++;
//************found*************
aver=ave;
return count;
void main( )
float stu[30], aver;
int m, i;
system("CLS");
printf("/nPlease enter m: ");
scanf("%d", &m);
printf("/nPlease enter%d mark: /n", m);
for(i=0; i<m; i++)
scanf("%f", stu+i);
printf("/nThe number of students: %d/n",
proc(stu,
[填空题]下列给定程序中,函数fun( )的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为4(平均分为75.5625)。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#define N 20
int fun(float *s, iht n,float *aver)
float ave ,t=0.0;
int count=0,k,i;
for(k=0;k<n;k++)
/*************found**************/
t=s[k];
ave=t/n;
for(i=0;i<n;i++)
if(s[i]<ave) 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 printf("/nThe number of students :
%d/n",fun(s,m,&aver));
printf("Ave=%f/n",aver);
[填空题]由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中,直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/**********found**********/
void fun(int a[],int m)
int low=0,high=N-1,mid;
while(low<=high)
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/********found**********/
else if(m>a[mid])
low=mid+1;
else return(mid);
return(-1);
void main( )
int i,a[N]=(-3,4,7,9,13,45,67,89,100,180),
k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found /n");
[填空题]下列给定程序中,函数fun( )的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
85 65.5 69 95.5 87 55 62.5 75
则高于平均分的学生人数为4(平均分为74.312500)。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#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<n;k++)
t+=s[k];
ave=t/n;
for(i=0;i<n;i++)
/*************found***************/
if(s[i]<ave)
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<m;i++)
scanf("%f",s+i);
printf("/nThe number of students:%d/n",
fun(s,m,&aver));
printf("Ave=%f/n",aver);
}
[填空题]给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在数组sfname中,目标文件名放在数组tfname中。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
int fun(char *source,char *target)
FILE *fs,*ft;
char ch;
/**********found**********/
if((fs=fopen(source, (1) ))==NULL)return 0;
if((ft=fopen(target,"w"))==NULL)return 0;
printf("/nThe data in file: /n");
eh=fgetc(fs);
/**********found**********/
while(!feof( (2) ))
putehar(ch);
/**********found**********/
fpute(ch, (3) );
ch=fgetc(fs);
fclose(fs);
fclose(ft);
printf("/n/n");
return 1;
void main( )
char sfname[20]="myfile1",tfname[20]="myfile2";
FILE *myf;
int i;
char c;
myf=fopen(sfname,"w");
printf("/nThe original data: /n");
for(i=1;i<30;i