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

上传人:坚持 文档编号:4256523 上传时间:2019-10-08 格式:DOC 页数:16 大小:2.09MB
下载 相关 举报
全国计算机二级C考试题库程序设计部分.doc_第1页
第1页 / 共16页
全国计算机二级C考试题库程序设计部分.doc_第2页
第2页 / 共16页
全国计算机二级C考试题库程序设计部分.doc_第3页
第3页 / 共16页
全国计算机二级C考试题库程序设计部分.doc_第4页
第4页 / 共16页
全国计算机二级C考试题库程序设计部分.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、.1、找出 2xM 整型二维数组中最大元素的值,并将此值返回 a-ave/=N; 调用函数。 7、n 名学生的成绩已在主函数中放入一个带头结点的链表结int fun (int aM) 构中, h 指向链表的头结点。求出平均分,并由函数值返回 double fun( STREC *h )int i,j,max=a00; double ave=0.0;for(i=0;inext;for(j=0;jM;j+) while(p!=NULL)if(maxs;max=aij; p=p-next;return max; 2、根据以下公式求 值。 return ave/N;8、将所有大于 1 小于整数 m的非

2、素数存入 xx 所指数组中,非素数的个数通过 K 返回。 void fun( int m, int *k, int xx )double fun ( double eps) int i,j,n=0; double s=0.0,s1=1.0; for(i=4;im;i+)int n=0; for(j=2;j=eps) if(i%j=0) break; s=s+s1; if(ji) xxn+=i;s1=s1*n/(2*n+1);n+; *k=n;return 2*s;9、求 ss 所指字符串中指定字符的个数,并返回此值。int fun(char *ss, char c)3、求出 11000 之间能

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

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

5、int i,j=0,max=a0.s;for(i=0;iN;i+) if(maxai.s) max=ai.s;int i,j;for(i=0;iave=0.0;i+;for(i=0;iave=a-ave+a-si;1. 18、利用下面的简单迭代方法求方程 cos(x)-x=0 的一个实while(*p) 根 s。 if(*p!=*)ai=*p;i+; double fun()p+; double x0,x1; x1=0.0;ai=0; do 13、统计在 tt 所指的字符串中 a到 z26 个小写字母x0=x1;给出现的次数,并依次放在 pp 所指数组中。x1=cos(x0); void fu

6、n(char *tt, int pp)while( fabs(x0-x1)=1e-6 ); int i;return x1;for(i=0;i=a&*tt=z) int i=0,n=0;pp*tt-a+; char *p;p=a;14、将字符串尾部的 * 号全部删除,前面和中间的 *号不动。 while (*p=*) /* 判断*p 是否是 * 号,并统计 *号的void fun( char *a )个数*/ while(*a!=0) a+;n+;p+;a-; while(*a=*)while(*p) /* 将前导 * 号后的字符传递给 a*/a-; *(a+1)=0; ai=*p;i+;p+

7、; 15、比较字符串的长度, 函数返回较长的字符串, 如果相同,则返回第一个字符串。 while(n!=0)char *fun ( char *s, char *t) int i,j;ai=*;i+;n-;for(i=0;si!= 0;i+); for(j=0;tj!= 0;j+); ai=0;if(i=j)20、N 名学生的数据已放入主函数中的结构体数组中,把分 return t;数最低的学生数据放入 b 所指的数组中。 elseint fun( STREC *a, STREC *b ) return s;int i,j=0,min=a0.s; 16、学生的记录由学号成绩组成, N 名学生的

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

9、除下标为偶数同时 ASCII 码值也为偶数的字符外,其余的全部删除字符串中剩余的字符所形成的double fun( int m ) 新串放在 t 数组中。 void fun(char *s, char t) int i; double s=0.0; int i,j=0;for(i=1;i=m;i+)for(i=0;si!=0;i+) s=s+log(i);if(i%2=0 & si%2=0) return sqrt(s);tj+=si; tj=0;22、只删除字符前导和尾部的 *号,串中字母间的 *号都不删 除。2void fun( char *a, int n,int h,int e ) v

10、oid fun ( int m, int *a , int *n ) int i,j=0; int i,j=0;for(i=h;in-e;i+) for(i=1;i=m;i+)aj+=ai; if(i%7=0|i%11=0)aj=0; aj+=i;23、将 s 所指字符串中下标为偶数的字符删除,剩余字符形 *n=j; 成的新串放在 t 所指数组中 29、将字符串中的前导 *号全部删除,中间和尾部的 *号不删void fun(char *s, char t)除。 int i,j=0,k=strlen(s); void fun( char *a )for(i=1;is;*c=a%10+(b/10)

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

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

13、成的一个新串放在 t 所指的数组中。if(aj.saj+1.s) void fun(char *s, char t)t=aj;aj=aj+1;aj+1=t; int i,j=0,n; n=strlen(s);27、N名学生的数据已放入主函数中的结构体数组中,把高 for(i=0;in;i+)于等于平均分的学生数据放在 b 所指的数组中,高于等于平 if(i%2!=0&si%2!=0)均分的学生人数通过形参 n 传回,平均分通过函数值返回。 tj=si;double fun( STREC *a, STREC *b, int *n ) j+; int i; tj=0; double av=0.0;

14、 32、实现 B=A+A, 即将矩阵 A 加上 A 的转置,存放在矩阵*n=0; B 中。for(i=0;iN;i+) void fun ( int a33, int b33)av=av+ai.s; int i,j;av=av/N; for(i=0;i3;i+)for(i=0;iN;i+) for(j=0;j3;j+)if(av=ai.s) bij=aij+aji; b*n=ai;*n=*n+1; 33、将 M行 N列的二维数组中的数据,按列的顺序依次放到return av; 一维数组中。28、将 1m之间(含 m)能被 7 或 11 整除的所有整数放在数 void fun(int (*s)1

15、0,int *b,int *n,int mm,int nn)组 a 中,并通过 n 返回这些数的个数。3 int i,j;for(j=0;jnn;j+)for(i=0;imm;i+)b*n=*(*(s+i)+j);*n=*n+1;34、将两个两位数的正整数 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;for(i=0;iM;i+)for(j

16、=0;aij!=0;j+)bk+=aij;bk=0;for(i=0;ai!=0;i+)if(i!=n)bk+=ai;bk=0;for(x=0;x=p;x+) ch=w0;wj-1=wj;wn-1=ch;for(i=0;iN;i+)for(j=0;jM;j+)bk+=sji;bk=0;35、将放在字符串数组中的 M个字符串(每串的长度不超过N),按顺序合并成一个新的字符串。void fun(char aMN,char *b) int i,j,k=0;36、删除一个字符串中指定下标的字符。 a 指向原字符后的字符串存放在 b 所指的数组中, n 中存指定的下标。void fun (char a,

17、char b, int n) int i,k=0;37、移动一维数组中的内容,若数组中有 n 个整数,要求把下标从 0p(含 p,p 小于等于 n-1 )的数组元素平移到数组的最后。void fun(int *w, int p, int n) int x,j,ch;for(j=1;jn;j+)38、将 M行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。void fun(char (*s)N,char *b) int i,j,k=0;39、计算float fun(int n) int i,s1=0;float s=0.0;for(i=1;i=n;i+)s1=s1+i;s=s+1

18、.0/s1;return s;40、将 s 所指字符串中 ASCCII 值为奇数的字符删除,剩余字符形成的新串放在 t 所指数组中void fun(char *s, char t) int i,j=0,n;n=strlen(s);for(i=0;in;i+)if(si%2=0) tj=si;j+;tj=0;42、删除一维数组中所有相同的数使之只剩一个。数组中的数已按由小到大的顺序排列函数返回删除后数组的数据。int fun(int a, int n) int i,j=1;for(i=1;in;i+)if(aj-1!=ai)aj+=ai;return j;43、除了字符串前导和尾部的 *号外,将

19、串中其他的 *号全部删除。void fun( char *a, char *h,char *p ) int i=0;char *q=a;while(qh) ai=*q; q+;i+;while(qp) if(*q!=*) ai=*q;i+;q+;while(*q) ai=*q; i+; q+;ai=0;44、将 a,b 的两个两位正整数合并成一个新的整数放在 c中,合并方式是 : 将 a 中的十位和个位数依次放在变量 c 的百位和个位上, b 中的十位和个位数依次放在变量 c 的千位和十位上。void fun(int a, int b, long *c)*c=a%10+(b%10)*10+(a

20、/10)*100+(b/10)*1000;4 av=av+ai.s;45、使字符串的前导 * 号不得多于 n 个,若多于 n 个,则删 av=av/N;除多余的 *号,若少于或等于 n 个,则不做处理,字符串中 for(i=0;iN;i+)间和尾部的 *号不删除。 if(ai.sn) for(i=0;ssi!=0;i+) while(*p) if(i%2=1&ssi=a&ssin)p+; while(*p&pt+n+1)while(*p!=0) ai=*p;n=n*10+*p-0; i+;p+;p+; ai=0;return n*flag; 48、求 Fibonacc 数列中大于 t 的最小的

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

22、 ; 方式:将 a 中的十位和个位数依次放在变量 c 的千位和十位 while(f t) ; 上,b 中的十位和个位数依次放在变量 c 的十位和个位上。return f ; void fun(int a, int b, long *c) 49、把低于平均分的学生数据放入 b所指的数组中低于平均 *c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;分的学生人数通过形参 n 返回,平均分通过函数值返回 double fun( STREC *a, STREC *b, int *n ) 55、把指定分数范围内的学生数据放在 b 所指的数组中,分 int i,j=0;数范围

23、内的学生人数由函数值返回。double av=0.0; int fun( STREC *a,STREC *b,int l, int h )for(i=0;iN;i+) int i,j=0;5for(i=0;i=l&ai.s=10)bj+=ai; return j; t=t/10; n+;56、将 s 所指字符串中 ASCII 码值为偶数的字符删除,串中 剩余字符形成一个新串放在 t 所指的数组中。 for(j=1;jn;j+)void fun(char *s, char t) s=s*10; int i=0;for(;*s!=0;s+) return w%s;if(*s%2=1) ti+=*s

24、; 62、请编一个函数 fun(char*s) ,该函数的功能是 : 把字符串ti=0;中的内容逆置。 void fun(char*s)57、找出成绩最高的学生记录,通过形参返回主函数(规定 char ch;只有一个最高分) int i,m,n;fun(STU a, STU *s) i=0; int i; m=n=strlen(s)-1;*s=a0; while(i(n+1)/2)for(i=0;isai.s) si=sm;*s=ai; sm=ch; i+; m-;58、定义了 N x N 的二维数组,使数组左下办三角元素中的 值乘以 n。 void fun(int a N, int n) 6

25、3、从字符串中删除指定的字符。同字母的大、小写按不同 int i,j;字符处理for(i=0;iN;i+) void fun( char s,int c)for(j=0;j=i;j+) int i=0;aij=aij*n; char *p; p=s;59、定义了 N x N 的二维数组,使数组左下办三角元素中的 while(*p)值全部置成 0. void fun (int aN) if(*p!=c) int i,j; for(i=0;iN;i+) si=*p;for(j=0;j=i;j+) i+;aij=0; p+;60、请编一个函数 void fun(int ttMN),tt 指向一个 M

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

27、*(s + j)61、w是一个大于 10 的无符号整数,若 w是 n(n2)位的整数,则函数求出 w的后 n-1 位的数作为函数值返回unsigned fun(unsigned w) int n=1,j,s=1;unsigned t;ch = *(s + j) ;*(s + j) = *(s +i) ;*(s + i) = ch ;6 s=s+(xi-x1)*(xi-x1);65、统计一个长度为 2的字符串在另一个字符串中出现的次 return sqrt(s/10);数。 int fun(char *str, char *substr) 70、计算并输出给定数组(长度为 9)中相邻两个元素的平

28、 int i,j=0;均值的平方根之和。for(i=0;stri!=0;i+) double fun(double x9)if(stri=substr0&stri+1=substr1) double sum=0.0;j+; int i,j=1;return j; for(i=0;i9;i+)66、计算并输出给定整数 n 的所有因子(不包括 1 与自身) if(j=8)之和。规定 n 的值不大于 1000. int fun(int n) sum+=sqrt(xi+xi+1)/2.0);j+; int s=0,i; for(i=2;i=n-1;i+) return sum;if(n%i=0) s+

29、=i; 71、计算并输出下列多项式值return s;67、计算double fun(int n) int i;double fun(int n)double s=0.0;for(i=1;i=n;i+) double t,sn=1.0;s=s+(1.0/(2*i-1)-1.0/(2*i); int i,j;return s; for(i=1;i=n;i+)72、计算并输出多项式值 t=1.0;for(j=1;j=i;j+)t*=j;double fun(int n) sn+=1.0/t; double sum=0,tmp=1; int i; return sn; for(i=1;i=n;i+)

30、 68、计 算 并 输 出 x0.97 时 ,如 下 多 项 式的 值 , 直 到 为止。tmp=tmp*i;sum+=1.0/tmp;return sum;73、计算并输出 n(包括 n)以内所有能够被 5 或 9 整除的double fun(double x)自然数的倒数之和。 double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; double fun(int n) int i; int n=1;do double sum=0.0; s0=s1; for(i=1;i=1e-6); double fun(int n)return sum; int m,k,i; doub

31、le s=0.0;69、计算并输出给定 10 个数的方差 , 其中 for(m=3;m=n;m+)double fun(double x10) k=sqrt(m); double x1=0.0,s=0.0;int i;for(i=0;i10;i+)x1=x1+xi;x1=x1/10;for(i=2;i=k;i+) for(i=0;i=k+1) return sum; s+=sqrt(m); 81、使变量 h 中的值保留两位小数,并对第三位进行四舍五 入(规定 h 中的值为正数)return s; float fun (float h )75、计算并输出 long t;t=(h*1000+5)/

32、10;double fun(int n)return (float)t/100; 82、实现矩阵( 3 行、3 列)的转置(即行列互换) int i;void fun (int array33)double s=0.0,s1=0.0; int i,j,t;for(i=1;i=n;i+) for(i=0;i3;i+)s1=s1+pow(i,0.5); for(j=i+1;j3;j+)s=s+s1;t=arrayij; arrayij=arrayji; return s;arrayji=t; 76、统计一行字符串中单词个数,作为函数值返回。字符串 在主函数中输入,规定所有单词有小写字母组成,单词之

33、间83、int fun(int lim,int aaMAX) 求出小于或等于 lim 的 有若干个空格隔开,一行的开始没有空格。所有素数并放在 aa 数组中,并返回所求出的素数的个数。 int fun(char *s)int fun(int lim, int aaMAX) int i,j=0; int i,j,k=0;for(i=0;si!=0;i+) for(i=2;i=lim;i+)if(si!= &(si+1= |si+1=0) for(j=2;j=i)77、找出成绩最低的学生记录,通过形参返回主函数(规定aak+=i; 只有一个最低分) 。fun(STU a, STU *s) retu

34、rn k; int i;*s=a0;84、从传入的 num个字符中找出最长的一个字符串,通过形参指针 max传回该串地址 (用* 作为结束输入的标识 )for(i=0;isai.s) int i=0;*s=ai;max=a0; 78、定义 N x N 二维数组,并在主函数中自动赋值。使数组for(i=0;inum;i+) 右上办三角元素中的值乘以 m。if(strlen(max)strlen(ai)void fun(int aN, int m) max=ai; int i,j;return max; for(j=0;jN;j+)85、删除字符串中的所有空格。 for(i=0;i=j;i+)void fun (char *str)aij=aij*m; int i=0;79、定义 N x N 二维数组,并在主函数中自动赋值。求出数char *p=str; 组周边元素的平均值并作为函数值返回主函数的 swhile(*p)double fun (int wN) int i,j,k=0; if(*p!= )double av=0.0; for(i=0;iN;i+) stri=*p;for(j=0;jN;j+) i+;if(i=0|i=N-1|j=0|j=N-1) av=av+wij;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。