当前位置:文档之家› 全国计算机二级C考试题库(程序设计部分)

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

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

int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])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<N;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<m;i++){ for(j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*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<n;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<N;i++)if(max<a[i].s) max=a[i].s;for(i=0;i<N;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;elsereturn s;}16、学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,函数返回该学生的学生数据,指定的学号在主函数中输入。

若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数数值返回。

STREC fun( STREC *a, char *b ){int i;STREC str={"\0",-1};for(i=0;i<N;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<N;i++)if(min>a[i].s)min=a[i].s; /*找出最小值*/for(i=0;i<N;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<n-e;i++)a[j++]=a[i];a[j]='\0'; }23、将s所指字符串中下标为偶数的字符删除,剩余字符形成的新串放在t所指数组中void fun(char *s, char t[]){ int i,j=0,k=strlen(s);for(i=1;i<k;i=i+2)t[j++]=s[i];t[j]='\0';}24、将a,b中的两位正整数合并成一个新的整数放在c 中。

合并方式是:将a中的十位和个位依次放在变量c的百位和个位上,B中的十位和个位数依次放在变量c的十位和千位上。

void fun(int a, int b, long *c){*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;}25、除了尾部的*号之外,将字符中的其他的*号全部删除。

形参p已指向字符串最后的一个字母。

void fun( char *a, char *p ){ char *t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0';}26、N名学生的数据已放入主函数中的结构体数组中,按分数降序排列学生的记录,高分在前,低分在后。

void fun( STREC a[] ){ int i,j;STREC t;for(i=1;i<N;i++)for(j=0;j<N-1;j++)if(a[j].s<a[j+1].s){t=a[j];a[j]=a[j+1];a[j+1]=t;}}27、N名学生的数据已放入主函数中的结构体数组中,把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。

相关主题