横排2012年计算机二级C语言上机题库必备(精选100道程序设计题).doc
文本预览下载声明
第一套
3程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h)
{int i,j=0;
for(i=0;iN;i++)
if((a[i].s=1a[i].s=h)
b[j++]=a[i];
return j;
}
第二套
3. 程序设计
请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
void fun(int m,int *a,int *n)
{
int i;
*n=0;
for(i=7;i=m;i++)
if((i%7==0)||(i%11==0))
a[(*n)++]=i;
}
第三套
3. 程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。
STREC fun(STREC*a,char *b)
{
STREC c;
Int i;
c.num[0]=’\0’;
c.s=-1;
for(i=0;iN;i++)
if(strcmp(a[i].num,b)==0)
{strcpy(c.num,a[i].num);
c.s=a[i].s;break;}
return c;
}
第四套
3. 程序设计
请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
void fun(char *ss)
{
int i;
for(i=1;istrlen(ss);i+=2)
{if(ss[i]=’a’ss[i]=’z’)
ss[i]-=32;
}
}
第五套
3. 程序设计
请编写一个函数fun,它的功能是:根据以下公式求JI的值(要求满足精度0.0005,即某项小于0.0005时停止送代):程序运行后,如果输入精度为0.0005,则程序输出为3.14…。
double fun(double eps)
{ double s=1,t=1./3;
int n=1;
while(t=eps)
{s+=t;n++;t=t*n/(2.0*n+1)
;}
return(s*2.0);
}
第六套
3. 程序设计
函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组中。
void fun(char *s,char t[])
{ int i,j=0;
for(i=0;istrlen(s);i++)
if(s[i]%2==0)t[j++]=s[i];
t[j]=0;
}
第七套
3. 程序设计
函数fun的功能是:将a、b中的两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
#include stdio.h
void fun(int a,int b,long *c)
{ *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;
}
第八套
3. 程序设计
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
int fun(STREC *a,STREC *b)
{
int i,max=a[0].s,n=0;
for(i=1;iN;i++)
if(maxa[i].s)max=a[i].s;
for(i=0;iN;i++)
if(max==a[i].s)b[n++]=a[i];
return n;
}
第九套
3. 程序设计
请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
int fun(int a [M][N])
{
int tot=0,i,j;
for(i=0;iN;i++)
{
tot +=a[0][i];
tot +=a[M-1][i];
}
for(i=1;iM-1;i++){
tot +=a[i][0];
tot +=a[i][N-1];
}
ret
显示全部