全国计算机二级C考试题库 程序设计部分_第1页
全国计算机二级C考试题库 程序设计部分_第2页
全国计算机二级C考试题库 程序设计部分_第3页
全国计算机二级C考试题库 程序设计部分_第4页
全国计算机二级C考试题库 程序设计部分_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 指向链表的头结点。求出平均分,并由函数值返回整型二维数组中最大元素的值,并将此值返回构中,h1、找出2xMdouble fun( STREC *h ) 调用函数。 double ave=0.0; int fun (int aM) STREC *p=h-next; while(p!=NULL) int i,j,max=a00; ave=ave+p-s; for(i=0;inext; for(j=0;jM;j+) if(maxaij) return ave/N; max=aij; 所指数组中,m的非素数存入xx8 return max; 、将所有大于1小于整数 非素数的个数通过K2、根据以下公式

2、求值。 返回。 void fun( int m, int *k, int xx ) int i,j,n=0; for(i=4;im;i+) double fun ( double eps) for(j=2;ji;j+) double s=0.0,s1=1.0; if(i%j=0) break; int n=0; if(j=eps) s=s+s1; *k=n; s1=s1*n/(2*n+1); n+; 所指字符串中指定字符的个数,并返回此值。9、求ss int fun(char *ss, char c) return 2*s; int i=0; for(;*ss!=0;ss+) 1177和或11

3、整除但不能同时被、求出311000之间能被 if(*ss=c) 返回n所指的数组中,通过整除的所有整数,并将其放在a i+; 这些数的个数。 return i; void fun (int *a, int *n) int i,j=0; 、计算n门课程的平均分,结果作为函数值返回。10 for(i=1;i=1000;i+) float fun ( float *a , int n ) if(i%7=0|i=0)&iw!=0) int i; aj+=i; float av=0.0; *n=j; for(i=0; in;i+) av=av+ai; 4、删除字符串中所有号。* return(av/n)

4、; void fun( char *a ) int i,j=0; 名学生的数据已放入、学生的记录由学号和成绩组成,N11 for(i=0;ai!=0;i+) 所指b主函数中的结构体数组s中,求最高的学生数据放在 if(ai!=*) 的数组中。注意:分数最高的学生可能不止一个,函数返回 aj+=ai; 分数最高的学生的人数。 aj=0; int fun( STREC *a, STREC *b ) int i,j=0,max=a0.s; p2实现两个字符串的连接5、(不要同时使用库函数),即把 for(i=0;iN;i+) 所指的字符串连接到p1所指的字符串的后面。 if(maxai.s) max

5、=ai.s; void fun(char p1, char p2) for(i=0;iave=0.0; for(i=0;iave=a-ave+a-si; if(*p!=*) a-ave/=N; ai=*p;i+; 名学生的成绩已在主函数中放入一个带头结点的链表结n、7 p+; x0=x1; x1=cos(x0); ai=0; while(fabs(x0-x1)=1e-6 ); return x1; 个小写字母z2613、统计在tt所指的字符串中a到 pp所指数组中。 给出现的次数,并依次放在19、将字符串中的前导void fun(char *tt, int pp) *号全部移到字符串尾部。 v

6、oid fun( char *a ) int i; int i=0,n=0; for(i=0;i=a&*tt=z) 号,并统计*号的个数*/ pp*tt-a+; n+;p+; *号不动。 14、将字符串尾部的*号全部删除,前面和中间的 void fun( char *a ) while(*p) /*将前导 while(*a!=0) *号后的字符传递给a*/ a+; ai=*p;i+;p+; a-; while(*a=*) while(n!=0) a-; *(a+1)=0; ai=*;i+;n-; 、比较字符串的长度,15函数返回较长的字符串,如果相同, 则返回第一个字符串。ai=0; char

7、 *fun ( char *s, char *t) 20 int i,j; 、N名学生的数据已放入主函数中的结构体数组中,把分数最低的学生数据放入b for(i=0;si!= 0;i+); 所指的数组中。 int fun( STREC *a, STREC *b ) for(j=0;tj!= 0;j+); int i,j=0,min=a0.s; if(i=j) for(i=0;iai.s) else min=ai.s; /*找出最小值 return s; */ for(i=0;iN;i+) 名学生的数据已放入主、学生的记录由学号成绩组成,16N if(min=ai.s) 中,函数返回该学生的学生

8、数据,指函数中的结构体数组s bj+=ai; /*找出成绩与min定的学号在主函数中输入。若没找到指定学号,在结构体变相等的学生的记录,存入结构体 -1量中给学号置空串,给成绩置,作为函数数值返回。b中*/ return j; STREC fun( STREC *a, char *b ) int i; 21、计算 STREC str=double fun( int m ) for(i=0;iN;i+) int i; if(strcmp(ai.num,b)=0) double s=0.0; str=ai; for(i=1;i=m;i+) return str; 码值也为偶所指字符串中除下标为偶数

9、同时sASCII、将17数的字符外,其余的全部删除字符串中剩余的字符所形成的 s=s+log(i); void fun(char *s, char t) 数组中。t新串放在 return sqrt(s); int i,j=0; 22、只删除字符前导和尾部的*号,串中字母间的*号都不删 for(i=0;si!=0;i+) 除。 if(i%2=0 & si%2=0) void fun( char *a, int n,int h,int e ) tj+=si; int i,j=0; tj=0; for(i=h;in-e;i+) aj+=ai; 的一个实cos(x)-x=0、利用下面的简单迭代方法求方

10、程18 aj=0; s根。 double fun() double x0,x1; 23、将s所指字符串中下标为偶数的字符删除,剩余字符形x1=0.0; 成的新串放在t所指数组中 do void fun(char *s, char t) while(*p=*) p+; int i,j=0,k=strlen(s); for(;*p!=0;p+,a+) for(i=1;is; 上。 while(h!=NULL) void fun(int a, int b, long *c) if(maxs) max=h-s; h=h-next; *c=a_x0010_+(b/10)*10+(a/10)*100+(b

11、_x0010_)*1000; return max; 25、除了尾部的*号之外,将字符中的其他的*号全部删除。 已指向字符串最后的一个字母。 形参p30、找出一维整型数组元素最大的值及其所在的下标,并通void fun( char *a, char *p ) 过形参传回。主函数中x是数组名, char *t=a; n是x数据个数,max存放最大值,index存放最大值所在元素的下标。 for(;t=p;t+) void fun(int a,int n, int *max, int *d) if(*t!=*) int i; *(a+)=*t; *max=a0; for(;*t!=0;t+) *d

12、=0; *(a+)=*t; for(i=0;in;i+) *a=0; if(*maxai) *max=ai;*d=i; 26N名学生的数据已放入主函数中的结构体数组中,按分、 数降序排列学生的记录,高分在前,低分在后。31、将svoid fun( STREC a ) 所指字符串中除了下标为奇数同时ASCII值也为奇数的字符之外,其余的所有字符全部删除,串在剩余字符所 int i,j; 形成的一个新串放在 STREC t; t所指的数组中。 void fun(char *s, char t) for(i=1;iN;i+) int i,j=0,n; for(j=0;jN-1;j+) n=strle

13、n(s); if(aj.saj+1.s) for(i=0;in;i+) t=aj;aj=aj+1;aj+1=t; if(i%2!=0&si%2!=0) tj=si; N名学生的数据已放入主函数中的结构体数组中,把高27、 j+; 于等于平均分的学生数据放在b所指的数组中,高于等于平 均分的学生人数通过形参n传回,平均分通过函数值返回。 tj=0; double fun( STREC *a, STREC *b, int *n ) 32、实现B=A+A,即将矩阵 A加上A的转置,存放在矩阵B中。 int i; void fun ( int a33, int b33) double av=0.0;

14、int i,j; *n=0; for(i=0;i3;i+) for(i=0;iN;i+) for(j=0;j3;j+) av=av+ai.s; bij=aij+aji; av=av/N; 33、将M for(i=0;iN;i+) 行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 if(av=ai.s) void fun(int (*s)10,int *b,int *n,int mm,int nn) b*n=ai;*n=*n+1; return av; 整除的所有整数放在数28、将)m(含之间能被117或1m a组返回这些数的个数。中,并通过n int i,j; void fun ( i

15、nt m, int *a , int *n ) for(j=0;jnn;j+) int i,j=0; for(i=0;imm;i+) for(i=1;i=m;i+) if(i%7=0|i=0) b*n=*(*(s+i)+j); aj+=i; *n=*n+1; *n=j; 号不删、将字符串中的前导29*号全部删除,中间和尾部的 除。34、将两个两位数的正整数a,b合并成一个整数放在c中。void fun( char *a ) 合并的方式是:将a数的十位和个位数依次放在c数的个位 char *p=a; 数的千位和十位c数的十位和个位数依次放在b和百位上, n=strlen(s); 上。 for(i

16、=0;in;i+) void fun(int a, int b, long *c) if(si%2=0) tj=si; *c=a/10+(b_x0010_)*10+(a_x0010_)*100+(b/10)*1000; j+; 35、将放在字符串数组中的M个字符串(每串的长度不超过 tj=0; N),按顺序合并成一个新的字符串。 void fun(char aMN,char *b) 、删除一维数组中所有相同的数使之只剩一个。数组中的 int i,j,k=0; 42 for(i=0;iM;i+) 数已按由小到大的顺序排列函数返回删除后数组的数据。int fun(int a, int n) for

17、(j=0;aij!=0;j+) int i,j=1; bk+=aij; for(i=1;in;i+) bk=0; if(aj-1!=ai) aj+=ai; a指向原字符后的36、删除一个字符串中指定下标的字符。 return j; n中存指定的下标。 字符串存放在b所指的数组中, void fun (char a, char b, int n) 号全部 int i,k=0; *号外,将串中其他的43、除了字符串前导和尾部的 删除。 for(i=0;ai!=0;i+) void fun( char *a, char *h,char *p ) if(i!=n) int i=0; bk+=ai; c

18、har *q=a; bk=0; while(qh) ai=*q; q+;i+; 、移动一维数组中的内容,若数组中有n个整数,要求把37 while(qp) ,p)的数组元素平移到数组小于等于n-1(含下标从0pp if(*q!=*) 的最后。 ai=*q; void fun(int *w, int p, int n) i+; int x,j,ch; for(x=0;x=p;x+) q+; ch=w0; for(j=1;jn;j+) while(*q) ai=*q; i+; q+; wj-1=wj; ai=0; wn-1=ch; ca,b的两个两位正整数合并成一个新的整数放在 44、将的c将 a

19、中的十位和个位数依次放在变量:中,合并方式是的千位NM38、将行列的二维数组中的字符数据,按列的顺序依次c百位和个位上,b中的十位和个位数依次放在变量 和十位上。放到一个字符串中。 void fun(int a, int b, long *c) void fun(char (*s)N,char *b) int i,j,k=0; *c=a_x0010_+(b_x0010_)*10+(a/10)*100+(b/10)*1000; for(i=0;iN;i+) for(j=0;jM;j+) 个,则删个,若多于 bk+=sji; n、使字符串的前导*号不得多于n45个,则不做处理,字符串中n bk=0

20、; 除多余的*号,若少于或等于 号不删除。间和尾部的 *void fun( char *a, int n ) 、计算39 int i=0; float fun(int n) int k=0; int i,s1=0; char *p,*t; float s=0.0; p=t=a; for(i=1;in) while(*p) return s; ai=*(p+k-n); i+; 40所指字符串中s、将ASCCII值为奇数的字符删除,剩余 p+; 字符形成的新串放在 所指数组中t void fun(char *s, char t) ai=0; int i,j=0,n; 个,则删个,若多于n、使字符串

21、中尾部的*号不多于 n52个,则不做任何操作,字符号,若少于或等于n除多余的*46、将两个两位数的正整数a,b合并成一个整数放在c中, *c数的个位和百不删除。中间的:合并方式是将a数的十位和个位数依次在void fun( char *a,int n ) 数的十位和个位数依次放在位上,bc数的十位和千位上。 int i=0,k=0; void fun(int a, int b, long *c) char *p, *t; p=t=a; *c=a/10+(b/10)*10+(a_x0010_)*100+(b_x0010_)*1000; while(*t) t+; 47、将一个数字字符串转换为一个

22、整数。 t-; 答案:ong fun ( char *p) while(*t=*) long n=0; k+;t-; int flag=1; if(kn) if(*p=-) while(*p&pt+n+1) p+;flag= -1; ai=*p; else if(*p=+) i+;p+; p+; while(*p!=0) ai=0; n=n*10+*p-0; p+; 中。合并 return n*flag; c、将a,b两个正整数合并成一个新的整数放在53的十位和千位ca 中的十位和个位数依次放在变量方式:将 的百位和个位上。中的十位和个位数依次放在变量c数列中大于、求48Fibonacct的最

23、小的数,结果由函数返上,bvoid fun(int a, int b, long *c) )定义为nFibonacc回。数列F( *c=b_x0010_+(a/10)*10+(b/10)*100+(a_x0010_)*1000; int fun( int t) int f0 = 0, f1 = 1, f ; 中。合并两个正整数合并成一个新的整数放在c do 54、将a,b的千位和十位中的十位和个位数依次放在变量c f = f0 + f1 ; 方式:将a 的十位和个位上。 f0 = f1 ; c上,b中的十位和个位数依次放在变量void fun(int a, int b, long *c) f1

24、 = f ; while(f t) ; *c=b_x0010_+(a_x0010_)*10+(b/10)*100+(a/10)*1000; return f ; 所指的数组中,分b所指的数组中低于平均b55、把指定分数范围内的学生数据放在、把低于平均分的学生数据放入49 分的学生人数通过形参 n返回,平均分通过函数值返回数范围内的学生人数由函数值返回。int fun( STREC *a,STREC *b,int l, int h ) double fun( STREC *a, STREC *b, int *n ) int i,j=0; int i,j=0; for(i=0;i=l&ai.s=h

25、) for(i=0;iN;i+) bj+=ai; av=av+ai.s; return j; av=av/N; for(i=0;iN;i+) 码值为偶数的字符删除,串中ASCII所指字符串中56 if(ai.s=a&ssi=z) ssi=ssi-32; 只有一个最高分)fun(STU a, STU *s) int i; 中。合并c两个正整数合并成一个新的整数放在a,b、将51 *s=a0; c中的十位和个位数依次放在变量方式:将a的千位和十位 for(i=0;isai.s) void fun(int a, int b, long *c) *s=ai; *c=b/10+(a_x0010_)*10

26、+(b_x0010_)*100+(a/10)*1000; 、从字符串中删除指定的字符。同字母的大、小写按不同N x N的二维数组,使数组左下办三角元素中的6358、定义了 字符处理值乘以n。 void fun( char s,int c) void fun(int a N, int n) int i=0; int i,j; char *p; for(i=0;iN;i+) p=s; for(j=0;j=i;j+) while(*p) aij=aij*n; if(*p!=c) N x N的二维数组,使数组左下办三角元素中的59、定义了 0. 值全部置成 si=*p; void fun (int a

27、N) i+; int i,j; for(i=0;iN;i+) p+; for(j=0;j=i;j+) aij=0; si=0; Mvoid fun(int ttMN),tt60、请编一个函数指向一个个字符的字符串,除首、尾字符外,将其余行N列的二维数组,求出二维数组每列中最大元素,并依次7、对长度为64 所指的一维数组中。pp 码降序排列。5个字符安ASCII放入void fun(char *s,int num) void fun(int ttMN,int ppN) char ch ; int i,j,max; int i, j ; for(j=0;jN;j+) for(i = 1 ; i 6

28、 ; i+) for(j = i + 1 ; j 6 ; j+) max=tt0j; for(i=0;imax) max=ttij; ppj=max; if(*(s + i) =10) int fun(char *str, char *substr) int i,j=0; t=t/10; for(i=0;stri!=0;i+) n+; if(stri=substr0&stri+1=substr1) j+; for(j=1;jn;j+) return j; s=s*10; 与自身)、计算并输出给定整数n的所有因子(不包括166return w%s; 1000. 之和。规定n的值不大于 int f

29、un(int n) 把字符串该函数的功能是,:fun(char*s)62、请编一个函数 int s=0,i; 中的内容逆置。 for(i=2;i=n-1;i+) void fun(char*s) if(n%i=0) char ch; s+=i; int i,m,n; return s; i=0; 67、计算double fun(int n) m=n=strlen(s)-1; double t,sn=1.0; while(i(n+1)/2) int i,j; ch=si; for(i=1;i=n;i+) si=sm; sm=ch; t=1.0; i+; m-; for(j=1;j=i;j+) r

30、eturn sum; t*=j; 整除的或9(包括n)以内所有能够被573、计算并输出n sn+=1.0/t; 自然数的倒数之和。double fun(int n) return sn; int i; 值项式的,直到时68、计算并输出x0.97,如下多 double sum=0.0; 为止。 for(i=1;i=n;i+) double fun(double x) if(i%5=0|i%9=0) double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; sum+=1.0/i; int n=1; return sum; do s0=s1; 之间所有素数的平方根之和。74 sum

31、+=s0; 、计算并输出3n double fun(int n) t*=n; int m,k,i; p*=(0.5-n+1)*x; double s=0.0; s1=p/t; for(m=3;m=1e-6); k=sqrt(m); return sum; for(i=2;i=k+1) double fun(double x10) s+=sqrt(m); double x1=0.0,s=0.0; int i; for(i=0;i10;i+) x1=x1+xi; return s; x1=x1/10; 、计算并输出75 for(i=0;i10;i+) double fun(int n) s=s+(

32、xi-x1)*(xi-x1); int i; return sqrt(s/10); double s=0.0,s1=0.0; for(i=1;i=n;i+) )中相邻两个元素的平、计算并输出给定数组(长度为970 s1=s1+pow(i,0.5); 均值的平方根之和。 s=s+s1; double fun(double x9) double sum=0.0; return s; int i,j=1; 、统计一行字符串中单词个数,作为函数值返回。字符串76for(i=0;i9;i+) 在主函数中输入,规定所有单词有小写字母组成,单词之间if(j=8) 有若干个空格隔开,一行的开始没有空格。 in

33、t fun(char *s) sum+=sqrt(xi+xi+1)/2.0);j+; int i,j=0; for(i=0;si!=0;i+) return sum; if(si!= &(si+1= |si+1=0) j+; 、计算并输出下列多项式值71 double fun(int n) int i; return j; double s=0.0; 、找出成绩最低的学生记录,通过形参返回主函数(规定77 for(i=1;i=n;i+) 只有一个最低分)。 s=s+(1.0/(2*i-1)-1.0/(2*i); fun(STU a, STU *s) return s; int i; 72、计算

34、并输出多项式值 *s=a0; double fun(int n) double sum=0,tmp=1; int i; for(i=0;iN;i+) for(i=1;isai.s) *s=ai; tmp=tmp*i; 二维数组,并在主函数中自动赋值。使数组78、定义N x Nsum+=1.0/tmp; 右上办三角元素中的值乘以m。 void fun(int aN, int m) void fun (char *str) int i,j; int i=0; for(j=0;jN;j+) char *p=str; for(i=0;i=j;i+) while(*p) aij=aij*m; 二维数组,

35、并在主函数中自动赋值。求出数79、定义N x N if(*p!= ) 组周边元素的平均值并作为函数值返回主函数的s double fun (int wN) stri=*p; int i,j,k=0; i+; double av=0.0; for(i=0;iN;i+) p+; for(j=0;jN;j+) if(i=0|i=N-1|j=0|j=N-1) stri=0; av=av+wij; ,主函数、判断字符串是否为回文,若是,则函数返回1 k+; 86 ”。0,主函数输出”NO中输出”YES” ,否则返回int fun(char *str) return av/k; int i,n=0,fg=

36、1; 80、求出二维数组周边元素之和,作为函数值返回。 char *p=str; int fun( int a MN) while (*p) int i,j,sum=0; for(i=0;iM;i+) n+; for(j=0;jN;j+) p+; if(i=0|i=M-1|j=0|j=N-1) sum=sum+aij; for(i=0;in/2;i+) return sum; if(stri=strn-1-i) ; 中的值保留两位小数,并对第三位进行四舍五81、使变量h else 中的值为正数) h入(规定 float fun (float h ) fg=0; long t; break; t

37、=(h*1000+5)/10; return (float)t/100; return fg; 列)的转置(即行列互换)、实现矩阵(823行、3 列的二维数组中的数据,按行的顺序依次放到N、将M行void fun (int array33) 87所指的存n int i,j,t; 一维数组中,一维数组中数据的个数存放在形参 for(i=0;i3;i+) 储单元中。int mm, *n, int (*s)10, int *b, int (int void for(j=i+1;j3;j+) fun nn) t=arrayij; int i,j,k=0; arrayij=arrayji; for(i=0;imm;i+) arrayji=t; for(j=0;jnn;j+) bk+=sij; limint fun(int lim,int aaMAX)83、求出小于或等于的 *n=k; aa数组中,并返回所求出的素数的个数。 所有素数并放在值为奇数的字所指字符串中下标为偶数同时int fun(int lim, int aaMAX) ASCII88、将s所指的数 int i,j,k=0; 所指串中剩余的字符形成的新串放在t符删除,s for(i=2;i=lim;i+) 组中。void fun(char *s, char t) for(j=2;ji;j+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论