試題一
下列給定的程序中,函數proc()的功能是:用選擇法對數組中的m個元素按從小到大的順序進行排序。
例如,排序前的數據爲:11 32 -5 2 14則排序後的數據爲:-5 2 11 14 32
請修改程序中的錯誤,使它能得到正確結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include
#define M 20
void proc(int a[],int n)
{
int i,j,t,P;
//****found****
for(j=0;j {
P=j;
for(i=j;i if(a[i] p=i;
t=a[p]];
a[p]=a[j];
//****found****
a[p]=t:
}
}
void main()
{
int arr[M]={11,32,-5,2,14).i,m=5;
printf(”排序前的數據:”);
for(i=0;i printf(”%d”,arr[i]):
printf(”n”);
proc(arr,m):
printf(”排序後的順序:”);
for(i=0;i printf(”%d”,arr[i]);
printf(”n”);
}
}
試題二
下列給定程序中,函數proe()的功能是:對M名學生的學習成績,按從高到低的順序找出前m(m<10)名學生來,並將這些學生數據存放在一個動態分配的連續存儲區中,此存儲區的首地址作爲函數值返回。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include%stdlib.h>
#include
#include
#include
#include%malloe.h>
#define M 10
typedef struct ss
{
char num[10];
int s;
}
STU;
STU *proc(STU a[],int m)
{
STU b[-M],*t;
int i,j,k;
//****found****
*t=calloc(m,sizeof(STU));
for(i=0;i for(k=0;k {
for(i=j=0;i if(b[i].s>b[j].s)j=i;
//****found****
t[k]=b[j];
t[k].s=b[j].S;
b[j].s=0;
}
return t:
}
void outresuh(STU a[],FILE *pf)
f
int i;
for(i=0;i fprintf(pf,”No=%s Mark=%dn”,
a[i] mum,a[i].s);
fprintf(pf,”nn”);
)
void main()
{STU stu[M]={{¨A01”,81},{¨A02”,89},
{¨A03”,66},{”A04”,87),{”A05”,77),
{”A06”,90),{"A07”,79),{”A08”,61),
{”A09”,80},{”A10”,71));
STU+pOrder;
int i,m;
system(”CLS”);
printf(”****THE RESULT****n”);
outresuh(stu,stdout);
print{(”nGive the number of the students
who have better score:”);
scanf(”%d”,&m);
while(m>10)
printf(”nGive the number of the
students who have better score:”);
scanf(”%d”,&m);
}
p()rder=proc(stu,m);
printf(”****THE RESULT****n”);
printf(”The lop:n”);
for(i=0:i printf(”%s%dn”,pOrder[i],
pOrder[i].s);
free(pOrder);
)
試題三
下列給定程序中,函數proc()的功能是:根據整型形參n的值,計算如下公式的值。
t=i-1/(2*2)-1/(3*3)-…-1/(n*n)
例如.當n=7時。t=0.188203。
請修改函數proc()中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include
#include
#include
double proc(int n)
{double y=1.0;
inl i;
//****found****
for(i=2;i //****found****
y-=1/(i*i):
telurn(y);
}
void main()
{ int n=7:
system(”CLS”):
print[(”nThe result is%lfn”,proe(n))。
}
試題四
下列給定程序中函數proc的功能是:取出長整型變量s中偶數位上的'數,依次構成一個新數放在t中。例如,當s中的數爲123456789時,t中的數爲2468。請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include
#include