无纸化计算机二级C语言程序设计题库答案程序题.doc

上传人:土8路 文档编号:10500562 上传时间:2021-05-20 格式:DOC 页数:30 大小:81KB
返回 下载 相关 举报
无纸化计算机二级C语言程序设计题库答案程序题.doc_第1页
第1页 / 共30页
无纸化计算机二级C语言程序设计题库答案程序题.doc_第2页
第2页 / 共30页
无纸化计算机二级C语言程序设计题库答案程序题.doc_第3页
第3页 / 共30页
无纸化计算机二级C语言程序设计题库答案程序题.doc_第4页
第4页 / 共30页
无纸化计算机二级C语言程序设计题库答案程序题.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《无纸化计算机二级C语言程序设计题库答案程序题.doc》由会员分享,可在线阅读,更多相关《无纸化计算机二级C语言程序设计题库答案程序题.doc(30页珍藏版)》请在三一文库上搜索。

1、无纸化计算机二级C语言程序设计题库答案程序题1.(1)3.0或(double)3 (2)> (3) (t+1)(1)double fun(int n)(2)s=s+(double)a/b;1 int fun (int aM)int i,j,max=a00;for(i=0;i<2;i+)for(j=0;j<M;j+)if(max<aij)max=aij;return max;2(1) 0 (2) n (3) (t*t)(1)for(i=0;stri;i+)(2)if(substrk+1= 0)2 double fun ( double eps)double s=1.0,s

2、1=1.0;int n=1;while(s1>=eps)s1=s1*n/(2*n+1);s=s+s1;n+;return 2*s;3 (1) si (2) 9 (3)*t=n(1)t = *x ; *x = y ;(2)return(t) ;或return t;3 void fun (int *a, int *n)int i,j=0;for(i=1;i<=1000;i+) /*求1到1000之 if(i%7=0|i%11=0)&&i%77!=0)aj+=i;*n=j;4. (1)1 (2) j+ (3)j(1)t=a;a=b;b=t;(2)return(b);或re

3、turn b;4 void fun( char *a )int i,j=0;for(i=0;ai!=0;i+)if(ai!=*)aj+=ai; /*若不是要删除的字符*则留下*/ aj=0;5.(1)0 (2) 10*x (3)n/10(1)*t=0;(2)if(d%2!=0)或if(d%2=1)5 void fun(char p1, char p2)int i,j;for(i=0;p1i!=0;i+) ;for(j=0;p2j!=0;j+)p1i+=p2j;p1i=0;6. (1) ai (2) aj (3) aj(1)去掉分号(2)case 1:case 2:return 1;6 void

4、 fun(STREC *a)int i;a->ave=0.0;for(i=0;i<N;i+)a->ave=a->ave+a->si; /*求各门成绩的总和*/ a->ave/=N; /*求平均分*/7(1)char (2) ch<=9 (3)0(1)bk=*p;(2)bk= ;k+;7 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 (2) < (3)

5、 k(1)if( tti>=a)&&( tti <= z)(2)tti-=32;8 void fun( int m, int *k, int xx ) int i,j,n=0; for(i=4;i<m;i+) /*找出大于1小于整数m的非素数*/ for(j=2;j<i;j+) if(i%j=0) break; if(j<i) xxn+=i; *k=n; /*返回非素数的个数*/9. (1)j+或j+=1或+j或j=j+1(2)si=t1i (3) j(1)for (j = i + 1; j < 6; j+)(2)*(pstr + i) =

6、*(pstr + j) 9 int fun(char *ss, char c)int i=0;for(;*ss!=0;ss+)if(*ss=c)i+;/*求出ss所指字符串中指定字符的个数*/ return i;10. (1)x (2)p (3)s(1)long k=1; (2)num /=10;10 float fun ( float *a , int n )int i;float av=0.0;for(i=0; i<n;i+) /*求分数的总和*/av=av+ai;return(av/n); /*返回平均值*/11. (1)1 (2) i (3) ap+i或*(a+p+i)(1)fl

7、oat k; (2)if(*a< *c)11 int fun( STREC *a, STREC *b )int i,j=0,max=a0.s;/*找出最大值*/for(i=0;i<N;i+)if(max<ai.s) max=ai.s;for(i=0;i<N;i+)if(max=ai.s)bj+=ai; /*找出成绩与max相等的学生的记录,存入结构体b中*/return j; /*返回最高成绩的学生人数*/12. (1) N (2) k (3) ssi(1) int k=0; (2)while (*p|*q)12 void fun( char *a )int i=0;c

8、har *p=a;while(*p&&*p=*)ai=*p;i+;p+;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0;13. (1) 1 (2) sk或*(s+k) (3) c(1)long s=0, t=0;(2)t=t/10;13 void fun(char *tt, int pp)int i;for(i=0;i<26;i+)ppi=0; /*初始化pp数组各元素为0*/ for(;*tt!=0;tt+)if(*tt>=a&&*tt<=z)pp*tt-a+;14. (1)N (2)i (3) -1(1)a2=k/10

9、;(2)return i;14 void fun( char *a )while(*a!=0)a+;a-; /*指针a指向字符串的尾部*/while(*a=*)a-; /*指针a指向最后一个字母*/*(a+1)=0; /*在字符串最后加上结束标志符*/15.(1)next (2) t->data (3) t(1)void fun(char *a) (2)printf("%c" ,*a) ;15 char *fun ( char *s, char *t)int i,j;for(i=0;si!= 0;i+); /*求字符串的长度*/for(j=0;tj!= 0;j+);i

10、f(i<=j) /*比较两个字符串的长度*/return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/elsereturn s;16. (1) n/2 (2) i (3) an-i-1或an-1-i(1)n= *p-0; (2)n=n*8+*p-0;16 STREC fun( STREC *a, char *b )int i;STREC str="0",-1; /*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置1*/for(i=0;i<N;i+)if(strcmp(ai.num,b)=0) /*找到指定学号的学生数据*/

11、str=ai;return str; /*返回学生记录*/17(1) "r" (2) fs (3) ft(1)if(d%2=0)(2)s/=10;17 void fun(char *s, char t)int i,j=0;for(i=0;si!=0;i+)if(i%2=0 && si%2=0) /*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/ tj+=si;tj=0; /*在字符串最后加上结束标识*/18. (1)i+ (2)m (3)m(1)while(high>=2) && (n<10)(2)yes=0;

12、 break;18 double fun()double x0,x1;x1=0.0;dox0=x1;x1=cos(x0);while(fabs(x0-x1)>=1e-6);return x1;19. (1) a (2) b.name (3) scorei(1)sj+=si;或sj=si;j+;(2)sj= 0;(1)while(high>=2) && (n<10)(2)yes=0; break; 19 void fun( char *a )int i=0,n=0;char *p;p=a;while (*p=*) /*判断*p是否是*号,并统计*号的个数*/ n

13、+;p+;while(*p) /*将前导*号后的字符传递给a*/ ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0;20(1) *fw (2) str (3) str(1)void fun(long s,long *t)(2)sl=sl*10;20 int fun( STREC *a, STREC *b ) int i,j=0,min=a0.s;for(i=0;i<N;i+)if(min>ai.s)min=ai.s; /*找出最小值*/ for(i=0;i<N;i+)if(min=ai.s)bj+=ai; /*找出成绩与min相等的学生的记录,存入

14、结构体b中*/ return j;21. (1)0 (2)j- (3)j(1)double f(double x) (2)return s ;21 double fun( int m )int i;double s=0.0;for(i=1;i<=m;i+)s=s+log(i); /*计算sln(1)ln(2)ln(3)ln(m)*/return sqrt(s); /*对s求平方根并返回*/22. (1) N (2) substr (3) 0(1)fun(int x,int y, int z)或int fun(int x,int y,int z)(2)return j;22 void fu

15、n( char *a, int n,int h,int e )int i,j=0;for(i=h;i<n-e;i+) /*第一个字母和最后一个字母之间的字符全不删除*/aj+=ai;aj=0; /*在字符串最后加上结束标识*/23.(1)data (2) next (3) head(1)while( *r) (2)*a=*r;a+;r+;23 void fun(char *s, char t)int i,j=0,k=strlen(s); /*k为字符串的长度*/for(i=1;i<k;i=i+2) /*将s所指字符串中下标为奇数的字符存入t所指字符串中*/ tj+=si;tj=0;

16、24. (1) struct student * (2) a->scorei(3) a(1)char *fun(char (*sq)M)(2)return sp;24 void fun(int a, int b, long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;25. (1) tN (2) i=0;i<N (3) s(1)int fun(int a,int m)或fun(int a,int m)(2)else if(m>amid)25 void fun( char *a, char *p )char *t=a;for(;t&l

17、t;=p;t+)if(*t!=*)*(a+)=*t;for(;*t!=0;t+)*(a+)=*t;*a=0;/*在字符串最后加上字符串结束标识*/26,。(1) 999 (2) t/10 (3) x(1)void fun(long s,long *t)(2)while(s>0)26 void fun( STREC a )int i,j;STREC t;for(i=1;i<N;i+) /*用冒泡法进行排序,进行N1次比较*/for(j=0;j<N-1;j+) /*在每一次比较中要进行N1次两两比较*/if(aj.s<aj+1.s)t=aj;aj=aj+1;aj+1=t;

18、/*按分数的高低排列学生的记录,高分在前*/27. (1) ->sno (2) ->name (3) &t(1)double fun(double a,double x0)(2)if(fabs(x1-x0)>=0.00001)27 double fun( STREC *a, STREC *b, int *n )int i;double av=0.0;*n=0;for(i=0;i<N;i+)av=av+ai.s;av=av/N; /*求平均值*/ for(i=0;i<N;i+)if(av<=ai.s) b*n=ai;*n=*n+1; /*将高于等于平均

19、分的学生存入b所指存储单元中,并统计人数*/return av; /*返回平均分*/28. (1) q (2) next (3) next(1)p=j ;(2)p=i;28 void fun ( int m, int *a , int *n )int i,j=0;for(i=1;i<=m;i+)if(i%7=0|i%11=0) /*求出1到m(含m)之 /*返回这些数的个数*/29. (1) N (2) tij (3) tji(1)#define FU(m,n) (m)/(n)(2)return (value);29 void fun( char *a )char *p=a;while(

20、*p=*) p+; /*指针p指向字符串第一个字母*/for(;*p!=0;p+,a+)*a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/*a=0; /*在字符串最后加上字符串结束标识*/30. (1)fp (2) = (3) fp(1)n=strlen( aa ) ; (2)ch=aai;30 double fun( STREC *h )double max=h->s;while(h!=NULL) /*通过循环找到最高分数*/if(max<h->s) max=h->s;h=h->next;return max;31.(1) 1 (2)

21、2*i (3) (-1)(1)k+;(2)if(m=k)31 void fun(int a,int n, int *max, int *d)int i;*max=a0;*d=0;for(i=0;i<n;i+) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*max<ai)*max=ai;*d=i;32(1) 1 (2) 2*i (3) (-1)(1)k+;(2)if(m=k)32 void fun(char *s, char t)int i,j=0,n;n=strlen(s);for(i=0;i<n;i+)if(i%2!=0&

22、&si%2!=0)tj=si; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j+;tj=0; /*最后加上结束标识符*/33. (1) && (2) 0或0 (3) sj或*(s+j)(1)for(i=2;i<=m;i+)(2)y+=1.0/(i*i);或y+=(double)1.0/(i*i)33 void fun ( int a33, int b33)int i,j;for(i=0;i<3;i+)for(j=0;j<3;j+)bij=aij+aji;/*把矩阵a加上a的转置,存放在矩阵b中*/34.(1)NODE(2)next

23、(3)r(1)if(i%2|si%2=0) 或if(i%2 !=0 | si%2=0)(2)tj=0; 或 tj=0;34void fun(int (*s)10,int *b,int *n,int mm,int nn)int i,j;for(j=0;j<nn;j+) /*将二维数组中的数据按列的顺序依次放入一维数组中*/ for(i=0;i<mm;i+)b*n=*(*(s+i)+j);*n=*n+1; /*通过指针返回元素个数*/35. (1) struct student (2) a.name(3) a.scorei(1)if(p=n) return -1;(2)ai=ai+1;

24、35 void fun(int a, int b, long *c) *c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;36. (1)next(2)NULL(3)r(1)r=t;(2)应填:r=t;或r=&t0;36 void fun(char aMN,char *b)int i,j,k=0;for(i=0;i<M;i+) /*将字符串数组中的M个字符串,按顺序存入一个新的字符串*/ for(j=0;aij!=0;j+)bk+=aij;bk=0; /*在字符串最后加上字符串结束标记符*/37. (1)t=i (2) i (3) 0或0(1)whil

25、e(fabs(t)>=num) (2)t=s/n;37 void fun (char a, char b, int n)int i,k=0;for(i=0;ai!=0;i+)if(i!=n) /*将不是指定下标的字符存入数组b中*/bk+=ai;bk=0; /*在字符串最后加上结束标识*/38. (1)p->next (2)q(3)p->nex(1)while(*s)或while(*s!=0)(2)s+;38 void fun(int *w, int p, int n) int x,j,ch;for(x=0;x<=p;x+) ch=w0;for(j=1;j<n;j

26、+) /*通过for循环语句,将p+1到n-1(菏n-1)之间的数组元素依次向前移动p+1个存储单元*/wj-1=wj;wn-1=ch; /*将0到p个数组元素逐一赋给数组wn-1*/ 39. (1)FILE*(2)fp(3)ch(1)sj+=si; (2)sj= 0;39 void fun(char (*s)N,char *b)int i,j,k=0;for(i=0;i<N;i+) /*按列的顺序依次放到一个字符串中*/ for(j=0;j<M;j+)bk+=sji;bk=0;40. (1) 0 (2) 0 (3) c(1)double sum=0.0;(2)sum/=c;40

27、float fun(int n)int i,s1=0;float s=0.0;for(i=1;i<=n;i+)s1=s1+i; /*求每一项的分母*/s=s+1.0/s1; /*求多项式的值*/return s;41.(1) si (2) k (3) 0或0(1)while (*w) (2)if ( *r =*p )41 void fun(char *s, char t)int i,j=0,n;n=strlen(s);for(i=0;i<n;i+) /*找出ASCII码值为偶数的字符依次存入数组中*/ if(si%2=0) tj=si;j+;tj=0;42.(1)FILE*(2)f

28、close(fp)(3)fp(1)t=calloc(m,sizeof(STU);(2)tk=bj;42 int fun(int a, int n)int i,j=1;for(i=1;i<n;i+)if(aj-1!=ai) /*若该数与前一个数不相同,则要保留*/ aj+=ai;return j; /*返回不相同数的个数*/ 43(1) sum=0 (2) tii (3) 1(1)double r ;(2)while (fabs(n-m) >0.001)43 void fun( char *a, char *h,char *p ) int i=0;char *q=a;while(q&

29、lt;h) ai=*q; q+;i+;while(q<p) if(*q!=*) ai=*q;i+;q+;while(*q) ai=*q; i+; q+;ai=0;44. (1) 0 (2) x (3) t+(1)int i, sl;(2)ti=ssl-i-1;44 void fun(int a, int b, long *c)*c=a%10+(b%10)*10+(a/10)*100+(b/10)*1000;45. (1) M (2) N (3)0(1)t=1.0; (2)return(s*2);45 void fun( char *a, int n )int i=0;int k=0;ch

30、ar *p,*t;p=t=a; /*开始时,p与t同时指向数组的首地址*/while(*t=*) /*用k来统计前部星号的个数*/k+;t+;if(k>n) /*如果k大于n,则使p的前部保留n个星号,其后的字符依次存入数组a中*/ while(*p) ai=*(p+k-n);i+;p+;ai=0; /*在字符串最后加上结束标识位*/46. (1) fp (2) fclose(fp) (3) fname(1)for(i=j+1;i<n;i+) (2)p=i;46 void fun(int a, int b, long *c)*c=a/10+(b/10)*10+(a%10)*100+

31、(b%10)*1000;47(1) 10 (2) 0 (3) x(1)if( n=0)(2)result *=n-;或result *=n; n-;47 long fun ( char *p)long n=0;int flag=1;if(*p=-) /*负数时置flag为1*/p+;flag= -1;else if(*p=+) /*正数时置flag为1*/p+;while(*p!=0)n=n*10+*p-0; /*将字符串转成相应的整数*/p+;return n*flag;48. (1) N (2) N-1 (3) 0(1)s=s +(double)(n+1)/n;(2)return t;48

32、 int fun( int t)int f0 = 0, f1 = 1, f ;do f = f0 + f1 ;f0 = f1 ;f1 = f ; while(f < t) ;return f ;49. (1) a (2) 2 (3) i+1(1)sum=0.0;(2)if(i+1)%5=0)49 double fun( STREC *a, STREC *b, int *n )int i,j=0;double av=0.0;for(i=0;i<N;i+)av=av+ai.s;av=av/N; /*求平均值*/for(i=0;i<N;i+)if(ai.s<av) bj+=a

33、i;/*将低于平均值的学生记录存入结构体b中*/*n=j; /*指针传回低于平均值的学生人数*/return av; /*返回平均值*/50(1) NULL (2) n (3) head,ch(1) for(i=0,t=0;pi;i+) (2)ct= 0;50 void fun ( char *ss )int i;for(i=0;ssi!=0;i+) /*将ss所指字符串中所有下标为奇数位置的字母转换为大写*/ if(i%2=1&&ssi>=a&&ssi<=z)ssi=ssi-32;51. (1) 1 (2) s>0 (3) i*10(1)in

34、t fun(int n,int xxM)(2)printf("%d",xxij);51 void fun(int a, int b, long *c) /*b%10 获取b的个位,a/10 获取a的十位,a%10 获取a的个位,b/10 获取b的十位*/ *c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;52.(1) ai%2 (2) aj (3) j(1)int fun (int n)(2)if (n=1)52 void fun( char *a,int n )int i=0,k=0;char *p, *t;p=t=a; /*将指针移动到字

35、符串末尾*/while(*t)t+;t-; /*从后往前如果是* 则使k,找到最后一个*所在的位置,并记录*的个数*/ while(*t=*)/*指针t指向前一个,同时标量k增加一*/k+;t-;if(k>n)while(*p&&p<t+n+1) ai=*p;i+;p+;ai=0;53(1) *n (2) next (3) head(1) a=NULL;(2)if(*r=*p)53 void fun(int a, int b, long *c)*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;54. (1) STYPE (2) FIL

36、E (3) fp(1)for ( i=0; i<sl;i+)(2)t2*s1=054 void fun(int a, int b, long *c) /*b%10 获取b的个位,a/10 获取a的十位,a%10 获取a的个位,b/10 获取b的十位*/ *c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;55. (1) struct student (2) n-1(3) ai.name,aj.name(1)q=p+i;(2)while(q>p)55 int fun( STREC *a,STREC *b,int l, int h )int i,j=0;f

37、or(i=0;i<N;i+)if(ai.s>=l&&ai.s<=h)/*将分数高于l,低于h的学生记录存入结构体数组b中*/bj+=ai;return j; /*返回分数范围(2) stdi.num (3) stdi(1)if(*r=*p) r+;p+; (2)if(*r=0)56 void fun(char *s, char t)int i=0;for(;*s!=0;s+) /*找出ASCII值为奇数的字符依次存入数组t中*/ if(*s%2=1)ti+=*s;ti=0; /*在字符串的末尾加上串结束符*/57(1)stdi.year (2)stdi (3)

38、n(1)IsPrime(int n) (2)if(!(n%i)57 fun(STU a, STU *s)int i;*s=a0;for(i=0;i<N;i+) /*找出成绩最高的学生记录*/if(s->s<ai.s)*s=ai;58.(1)STU (2)scorei (3)&stdif(k>1)58 void fun(int a N, int n)int i,j;for(i=0;i<N;i+)for(j=0;j<=i;j+)aij=aij*n;59(1)std (2)PERSON (3)std(1) int k, q, i;(2)pti = strki;59 void fun (int aN)int i,j;for(i=0;i<N;i+)for(j=0;j<=i;j+)aij=0; /*将数组左下半三角元素中的值全部置成0*/60 (1) std0 (2)stdi.age (3)max.name(1)void fun(int *a,int *b)(2)t=*b; *b

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1