- 相關推薦
2014年計算機等級考試C語言沖刺題(程序改錯題)
試題一
下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進行排序。
例如,排序前的數(shù)據(jù)為:11 32 -5 2 14則排序后的數(shù)據(jù)為:-5 2 11 14 32
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#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(”排序前的數(shù)據(jù):”);
for(i=0;i printf(”%d”,arr[i]):
printf(”\n”);
proc(arr,m):
printf(”排序后的順序:”);
for(i=0;i printf(”%d”,arr[i]);
printf(”\n”);
}
}
試題二
下列給定程序中,函數(shù)proe()的功能是:對M名學生的學習成績,按從高到低的順序找出前m(m<10)名學生來,并將這些學生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#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].num=b[j].num;
t[k].s=b[j].S;
b[j].s=0;
}
return t:
}
void outresuh(STU a[],F(xiàn)ILE *pf)
f
int i;
for(i=0;i fprintf(pf,”No=%s Mark=%d\n”,
a[i] mum,a[i].s);
fprintf(pf,”\n\n”);
)
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%d\n”,pOrder[i].hum,
pOrder[i].s);
free(pOrder);
)
試題三
下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n的值,計算如下公式的值。
t=i-1/(2*2)-1/(3*3)-…-1/(n*n)
例如.當n=7時。t=0.188203。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#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%lf\n”,proe(n))。
}
試題四
下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構成一個新數(shù)放在t中。例如,當s中的數(shù)為123456789時,t中的數(shù)為2468。請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#include
#include
#include
//****found****
void proc(1ong s,long t)
{long s1=10;
s/=10:
*t=s;
//****found****
while(s<0)
{ s=s/100;
*t=s*s1+*t;
s1=s1*10:
}
void main()
{long S,t;
system(”CLs”);
printf(”\nPlease enter s:”);
scanf(”%ld”,&s);
proc(s,&t):
printf(”The result is:%ld\\n”,t);
}
試題五
給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值縮小5倍。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#include
#include
#include
float m[10];
f f****found****
int proc(void)
{
int J;
printf(”In subfunc after calling\n”);
for(j=0;j<10;j++)
{
|f****found****
printf(”%f”,m[j]%5);
}
}
void main()
{
int i;
printf(”In main before calling\n”);
for(i=0;i<10;i++)
{
m[i]=i+20:
printf(”%f”,m[i]);
}
proc();
printf(”\nIn main after calling\n”):
for(i=0;i<10;i++)
printf(”%f”,m[i]/S):
【計算機等級考試C語言沖刺題程序改錯題】相關文章:
C語言程序改錯題練習03-27
計算機等級考試二級C語言真題09-26
2016年計算機等級C語言考試真題及答案03-17
C語言考前沖刺題03-28
2017計算機二級考試C語言考前沖刺題12-04
全國計算機等級考試二級C語言03-29
計算機考試C語言預習自測題03-20
C語言程序的實現(xiàn)09-27