全国计算机二级C考试题库(程序设计部分)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、找出2xM整型二维数组中最大元素的值,并将此值返回

调用函数。int fun (int a[][M])

{

int i,j,max=a[0][0];

for(i=0;i<2;i++)

for(j=0;j

if(max

max=a[i][j];

return max;}

2、根据以下公式求π值。

double fun ( double eps)

{ double s=0.0,s1=1.0;

int n=0;

while(s1>=eps)

{ s=s+s1;

s1=s1*n/(2*n+1);

n++;

}

return 2*s;

}

3、求出1~1000之间能被7或11整除但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

void fun (int *a, int *n)

{ int i,j=0;

for(i=1;i<=1000;i++)

if((i%7==0||i%11==0)&&i%77!=0)

a[j++]=i;

*n=j;

}

4、删除字符串中所有*号。

void fun( char *a )

{ int i,j=0;

for(i=0;a[i]!='\0';i++)

if(a[i]!='*')

a[j++]=a[i];

a[j]='\0';

}

5、实现两个字符串的连接(不要同时使用库函数),即把p2所指的字符串连接到p1所指的字符串的后面。

void fun(char p1[], char p2[])

{

int i,j;

for(i=0;p1[i]!='\0';i++) ;

for(j=0;p2[j]!='\0';j++)

p1[i++]=p2[j];

p1[i]='\0';}

6、某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能:求出平均分,并放入记录的ave成员中。

void fun(STREC *a)

{ int i;

a->ave=0.0;

for(i=0;i

a->ave=a->ave+a->s[i];

a->ave/=N; } 7、n名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的头结点。求出平均分,并由函数值返回double fun( STREC *h )

{ double ave=0.0;

STREC *p=h->next;

while(p!=NULL)

{ ave=ave+p->s;

p=p->next;

}

return ave/N;}

8、将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过K返回。

void fun( int m, int *k, int xx[] )

{ int i,j,n=0;

for(i=4;i

{ for(j=2;j

if(i%j==0) break;

if(j

}

*k=n;

}

9、求ss所指字符串中指定字符的个数,并返回此值。

int fun(char *ss, char c)

{ int i=0;

for(;*ss!='\0';ss++)

if(*ss==c)

i++;

return i;

}

10、计算n门课程的平均分,结果作为函数值返回。

float fun ( float *a , int n )

{ int i;

float av=0.0;

for(i=0; i

av=av+a[i];

return(av/n);

}

11、学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,求最高的学生数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

int fun( STREC *a, STREC *b )

{ int i,j=0,max=a[0].s;

for(i=0;i

if(max

for(i=0;i

if(max==a[i].s)

b[j++]=a[i];

return j; }

12、除了字符串前导的*号之外,将串中其他*号全部删除。void fun( char *a )

{ int i=0;

char *p=a;

while(*p&&*p=='*')

{ a[i]=*p;

i++;

p++;

}

while(*p)

{ if(*p!='*')

{a[i]=*p;i++;}

p++;

}

a[i]='\0';

}

13、统计在tt所指的字符串中’a’到’z’26个小写字母给出现的次数,并依次放在pp所指数组中。

void fun(char *tt, int pp[])

{ int i;

for(i=0;i<26;i++)

pp[i]=0;

for(;*tt!='\0';tt++)

if(*tt>='a'&&*tt<='z')

pp[*tt-'a']++;

}

14、将字符串尾部的*号全部删除,前面和中间的*号不动。void fun( char *a )

{ while(*a!='\0')

a++;

a--;

while(*a=='*')

a--;

*(a+1)='\0'; }

15、比较字符串的长度,函数返回较长的字符串,如果相同,则返回第一个字符串。

char *fun ( char *s, char *t)

{ int i,j;

for(i=0;s[i]!= '\0';i++);

for(j=0;t[j]!= '\0';j++);

if(i<=j)

return t;

else

return s;}

16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。

STREC fun( STREC *a, char *b )

{int i;

STREC str={"\0",-1};

for(i=0;i

if(strcmp(a[i].num,b)==0)

str=a[i];

return str;

}

17、将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的新串放在t数组中。 void fun(char *s, char t[]) {

int i,j=0;

for(i=0;s[i]!='\0';i++)

if(i%2==0 && s[i]%2==0)

t[j++]=s[i];

t[j]='\0';

}

18、利用下面的简单迭代方法求方程cos(x)-x=0的一个实根s。

double fun()

{ double x0,x1;

x1=0.0;

do

{

x0=x1;

x1=cos(x0);

}while(fabs(x0-x1)>=1e-6);

return x1;

}

19、将字符串中的前导*号全部移到字符串尾部。

void fun( char *a )

{ int i=0,n=0;

char *p;

p=a;

while (*p=='*') /*判断*p是否是*号,并统计*号的

个数*/

{

n++;p++;

}

while(*p) /*将前导*号后的字符传递给a*/ {

a[i]=*p;i++;p++;

}

while(n!=0)

{

a[i]='*';i++;n--;

}

a[i]='\0';}

20、N名学生的数据已放入主函数中的结构体数组中,把分

数最低的学生数据放入b所指的数组中。

int fun( STREC *a, STREC *b )

{int i,j=0,min=a[0].s;

for(i=0;i

if(min>a[i].s)

min=a[i].s; /*找出最小值*/

for(i=0;i

if(min==a[i].s)

b[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/

return j;

}

21、计算

double fun( int m )

{ int i;

double s=0.0;

for(i=1;i<=m;i++)

s=s+log(i);

return sqrt(s);

}

22、只删除字符前导和尾部的*号,串中字母间的*号都不删除。

void fun( char *a, int n,int h,int e )

{ int i,j=0;

for(i=h;i

a[j++]=a[i];

a[j]='\0'; }

23、将s所指字符串中下标为偶数的字符删除,剩余字符形

成的新串放在t所指数组中

相关文档
最新文档