计算机二级C语言最新编程题考试完美版.pdf
1.学生的记录有学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函
数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学
生人数通过形参n传回,平均分通过函数值返回。
#include
#define N 12
typedef struct
{char num[10];
double s;
}STREC;
double fun(STREC *a,STREC *b,int *n)
{
int i,j;
double ave,sum=0.0;
*n=0;
for(i=0;i
{
sum+=a[i].s;
}
ave=sum/N;
for(i=0,j=0;i
{
if(a[i].s>=ave)
{
b[j]=a[i];
j++;
(*n)++;
}
i++;
}
returnave;
}
2.例如,若s 所指字符串中的内容为:“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,
但所在元素的下标为偶数,因此必需删除;而字符1的ASCII 码值为奇数,所在数组中的下标
也为奇数,因此不应当删除,其它依此类推。最后t所指的数组中的内容应是:“135”。
#include
#include
voidfun( char *s,chart[])
{int i=0,j=0;
while(s[i])
{if((i%2!=0)&&(s[i]%2!=0))
{ t[j]=s[i];
j++;
}
i++;
}
t[j]=0;
}
3.例如,输入一个字符串:World,然后输入3,则调用该函数后的结果为:Word。
#include
#include
#define LEN 20
voidfun(chara[],charb[],int n)
{int i=0,j=0;
while(a[i])
{if(i!=n)
{ b[j]=a[i];
j++;
}
i++;
}
b[j]='\0';
}
4.学生的记录有学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函
数fun,它的功能是:按分数的高低排列学生的记录,高分在前。
#include
#define N 16
typedef struct
{char num[10];
int s;
}STREC;
voidfun(STREC a[])
{int i,j;
STREC b;
for(i=0;i
for(j=i+1;j
if(a[i].s
{ b=a[i];a[i]=a[j];a[j]=b;}
}
5.例如,若输入:17,则应输出:4689101214 1516。
#include
voidfun( int m,int *k,int xx[])
{
int i,j,c=0;
for(i=2;i<=m;i++)
{
for(j=2;j
if(i%j==0)
{
xx[c]=i;
c++;
break;
}
}
*k=c;
}
6.学生的记录有学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函
数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能
不止一个,函数返回分数最高的学生的人数。
#include
#define N 16
typedef struct
{char num[10];
int s;
}STREC;
int fun( STREC *a,strec *b)
{int i,j=0,s=a[0].s;
for(i=1;i