国家二级机试49套题库真题答案.doc_第1页
国家二级机试49套题库真题答案.doc_第2页
国家二级机试49套题库真题答案.doc_第3页
国家二级机试49套题库真题答案.doc_第4页
国家二级机试49套题库真题答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

光华教育1: 给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asd123fgh5#43df,处理后新字符串为:123543asdfgh#df。填空:j n-j p 改错:(1)while ( i i) (2)if(*a)编程:int i, j=0;for(i=0; i 0) (2)else if (k=0)编程:int i, j; for(i=0 ;iN ;i+)for(j=0 ; j=i;j+)aij*= n ;3: 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:30 6 17 15 26 46 32 40 45 48填空:(1)0 (2)xi (3)i改错:(1)double fun ( int m )(2)for( i = 100;i = m;i += 100 )编程:int i,min=a0.s, j=0;for(i=1;iN;i+)if(ai.smin) j=i;min=ai.s; *s=aj ;4: 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:46 32 40 45 48 30 6 17 15 26填空:(1)s/N (2)j+ (3)-1改错:(1)#include(2)upfst ( char *p )编程:int i,j,n=0;double sum=0;for(j=0;jN;j+)sum+=w0i+wN-1i;n+=2;for(i=0;iN-1;i+)sum+= wi0+wi N-1;n+=2;return sum/n;5: 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。填空:(1)STYPE (2)FILE (3)fp改错:(1)for( i=0; i=sl; i+) (2)t2*sl = 0;编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);6: 给定程序中,函数fun的功能是:统计整形变量m中各数字出现的次数,并存放到数组a中,其中,a0存放0出现的次数,a1存放1出现的次数, a9存放9出现的次数。例如,若m为14579233,则输出的结果应为:0,1,1,2,1,1,0,1,0,1,填空:ai = 0; i =m%10; m = m/10;改错:bi = ai0; for (j=1; j aij )编程:int i,j,k=0;double b8;double sum=0;double ave=0;for(i=0;i9;i+)if(aiai+1)j=ai;ai=ai+1;ai+1=j;for(i=1;i9;i+)bk+=ai;for(k=0;k2)的素数的个数,素数的个数作为函数值返回。注意:部分源程序如blank.c给出。填空:(1)j=3 (2)i (3)j改错:(1)sum=0;j=0; (2)if(sum%4=2)编程:int i;double sum=0.0; if(n1&n=100)for(i=1;i=n;i+) sum+=1.0/(2*i-1)-1.0/(2*i); return sum;8: 给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。填空:(1)N (2)i (3)-1改错:(1)a2=k%10; (2)return i; 编程:int i=0 ;char *p, *q ;p=q=a;while(*p)p+;p-;while(*p=*)p-;while(q=p)ai=*q;i+;q+;ai=0 ;9: 函数fun的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。填空:(1)a (2)a (3)b改错:(1)c=c+32; (2)c=c+5;编程:int i;double fac=1.0;double sum=1.0;for(i=2;i=n;i+)fac+=sqrt(i);sum+=fac;return sum;10: 函数fun的功能是:计算(x)=1+x-x2/2!+ x3/3! x4/4!+(-1)x-2 xn-1/(n-1)!+ (-1)x-2 xn/n!的前n项之和。若x=2.5,n=15时,函数值为:1.917914。填空:(1)1 (2)-1 (3)t改错:(1) for(i=1; i=0 & k=6)编程:double m=1.0;int i;double p=1.0;for(i=1;i=n;i+)p=p*i;m=m+1.0/p;return (m);11: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。例如:传给形参a的数据中学号、姓名、和三门课的成绩依次是:10001、 ZhangSan 、95、80、88,修改后输出t中的数据应该为:10002、 LiSi、96、81、89。填空:1. struct student 2. 3. a.scorei 改错: if(p=n) return -1; ai+1=ai;编程:*c=(b/10)*1000+(a%10)*100+(b%10)*10+( a/10) ; 12: 给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M份字符串,且串长N。填空:(1)N (2)len (3)*n=len改错:(1)t+=1.0/i; (2)return t;编程: int cnt=0;char *p =str, *q;while ( *p ) q=strstr(p,substr); if(q=NULL) break; p=q+strlen(substr); cnt+; return cnt;13: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名和三门课的成绩依次是:10001、ZhangSan、95、80、88,则修改后输出b中的数据应为:10002、LiSi、95、80、88。填空:(1)a (2) (3)scorei改错:(1)sj+=si; (2)sj=0;编程:int i=0,n=0; /*号统计器n赋初始值0*/char *p ;p=a;/* 工作指针p指向字符串s */while (*p=*)/*循环统计前导*号数目n*/n+ ;p+;while (*p)/*截取*号字符*/ai= *p ;i+;p+ ;while(n!=0)/*在串尾开始添加n个*号*/ai=* ;i+ ;n- ;ai=0 ;14:给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。例如,由10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000主函数中输出:46 32 40 45 48填空:0 xi/N j+改错:(1)double fun ( int m )(2)for( i = 100;i = m;i += 100 )编程:int i,min=a0.s, j=0;for(i=1;iN;i+)if(ai.smin) j=i; min=ai.s; *s=aj ;15:给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*号补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长scorei (3)a改错:(1)char * fun(char (*sq)M) (2)return sp;编程: *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10 ; 17:函数fun的功能是:计算,直到。若x=2.5,函数值为12.182494填空:(1)x (2)n (3)t改错:(1)d=1; s=0; (2)d=d/10;编程:int i;double avg=0.0,sum=0.0;for(i=0;i8;i+) avg= (xi+xi+1)/2;sum+=sqrt(avg);return sum;18: 给定程序的功能是:从键盘输入若干文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。填空:(1)*fw (2)str (3)str改错:(1)void fun(long s, long *t) (2)s1 = s1*10;编程: int i, n=0, max=a0.s;for (i=1; iN ; i+)if(max ai.s)max=ai.s; /* 找出最高成绩 */for (i=0 ; iN; i+)if(max=ai.s)bn+=ai; /* 找相等的最高成绩并存入数组b */return n;19:函数fun的功能是进行字母转换。若形参ch中是小写字母,则转换成对应的大写英文字母;若ch是大写英文字母,在转换成对应的小写英文字母;若是其它字符则保持不变;并将转换后的结果作为函数值返回。填空:& A ch改错:void fun(int *a) aj=aj-1;编程:int i,sum;sum=0; for(i=2;idata (3)t改错:(1)void fun(char *a) (2)printf(%c,*a);编程int i;char *p=s,*q=t;int n=0,m=0;while(*p) /*计算串s的长度n,其中p为临时指针*/n+;p+;while(*q) /*计算串t的长度m,其中q为临时指针*/m+;q+;if(n=m) /*比较m和n的值,设置p指向较大的指针 */p=s;else p=t;return p;21:给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指字符串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2字串,若没有。函数值为0,若有,为非0。填空:N-1 substr 0改错:int fun(int x, int y, int z ) j编程:int i=0 ; char *p; for (p=a+h; pa+n-e; p+) *(a+i) = *p; i+; *(a+i) = 0;22: 函数fun的功能是:计算的前n项。若x=2.5,函数值为:12.182340。填空:(1)1 (2)1 (3)i改错:(1)k=i; (2)c=k%10;编程:int i;double avg=0.0, sum=0.0,abs=0.0,fc;for(i=0;i10;i+) sum+=xi;avg=sum/10; /*计算平均值*/for(i=0;i10;i+) abs+=(xj-avg)*(xi-avg);fc=sqrt(abc/10);return fc;23函数fun的功能是:计算,直到。若x=2.5,函数值为:1.917915。填空:(1)1 (2)-1 (3)t改错:(1)for(i=1; i=1e-6);xn=xn*x*(0.5-n+1)/n; n+=1;sn+=xn; return (sn);24: 给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,将其余字符串右边用字符*补齐,使其与最长的字符串等长。Ss所指字符串数组中共有M个字符串,且长度N。填空:改错:if(* p = ) * (p-1) = toupper( *( p - 1 ) );编程: char t; int i,j; for (i=1;inum-2;i+) for (j=i+1;jnum-1;j+) if(sisj) t=si; si=sj; sj=t; 25: 给定程序中,函数fun的功能是:计算形参x所指数组中个数的平均值(规定所有数均为正数),将所指数组中小于平均只的数据移至数组的前部,大于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:30 6 17 15 26 46 32 40 45 48填空:(1)xi/N (2)j+或j=j+1 (3)i+或i=i+1改错:(1)numk=0; (2)switch (*s )编程: int tot=0,i,j;for(i=0;iN;i+)tot+=a0i;tot+=aM-1i;for(i=1;i=M-1;i+)tot+=ai0;tot+=aiN-1;return tot;26: 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。填空:(1)STU (2)stdi.num (3)stdi改错:(1)r+;p+; (2)if(*r=0)编程:int i,j=0;for(i=0;istrlen(s);i+)if(si%2)tj+=si;tj=0;27:给定程序中,函数fun的功能是:找出NN矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一唯数组中。填空:(1)a0i (2)lim;i+)for(j=2;j(i/2)aak+=i;return k;28:给定程序中,函数fun的功能是:将形参s所指字符串的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。例如,s所指字符串为:asd123fgh5#43df,处理后新字符串为:123543asdfgh#df.填空:j n-j p 改错:(1)while ( i i) (2)if(*a)编程: int i, j=0;for(i=0; istrlen(s); i+)if(!(i%2)=0&(si%2)tj+=si ;tj=0 ;29: 函数fun的功能是:统计长整形n的各个位上出现1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。例如:当n=123114350时,结果应该为:c1=3 c2=1 c3=2。填空:(1)n%10 (2)break (3)break改错:(1)if(t=0) (2)*zero=count;编程:double s=0,t=1;int i;for(i=1;i=n;i+) t*=i; s+=1./t;return s;30: 给定程序中,函数fun的功能是:判定形参a所指的NN(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上的元素之和都相等。例如,以下33的矩阵就是一个“幻方”:4 9 23 5 78 1 6填空:(1)0 (2)| (3)1改错:(1)t-=1.0/i; (2)return t;编程:char *p=str;int i=0;while(*p)if(*p!= )stri+=*p;p+; stri=0;31: 人员的记录由编号和出生年、月、日组成,N名人员数据已在主函数中存入机构体数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。填空:(1)stdi.year (2)stdi (3)n改错:(1)IsPrime(int n) (2)if(!(n%i)编程: int i,max=a0.s, j=0;for(i=0;imax)j=i;max=ai.s;*s=aj ;32: 围绕山顶一圈有N个山洞,编号为0、1、2、3、N-1,有一只狐狸和一只兔子在洞里居住。狐狸总想找兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;。若狐狸找一圈,请为兔子找出所有不安全的洞号。程序中用a数组元素模拟一个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。若形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。填空: ai=0 t=1;i=t+i;改错: bi = 0; bai - a+; if (bmax bi)编程: long num=0; int n=1; if (*s=-) n=-1; s+; while (*s!=0) num=num*10+(*s-0); s+; return(n*num);33: 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各方n次。函数fun的功能是根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时炸响,只算一次响声,第一次响声是在第0秒。例如,若t1=7,t2=5,t3=6,t4=4,n-10.则总共可听到28次鞭炮声。填空: i t+ count;改错: int fun(int a,int b,int c) else return 1;编程: int i,j=0; double s=0.0;for(i=3;i=n;i+) for(j=2;ji;j+)if(i%j=0) break;if(j=i) s=s+sqrt(i);return s;34: 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。Ss所指字符串数组中共有N个字符串,且串长小于M。填空:(1)N (2)i (3)-1改错:(1)int k=0; (2)while(*p | *q)编程: int i=0;char *p=a ;while(*p&*p=*)ai=*p;i+;p+;while(*p)if(*p!=*) ai=*p; i+;p+;ai=0;35: 用筛选法可得到2-n(n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的陪数的数从数表中删除去(把数表中相应位置的位置成0);接着从数 表中找下一个非0数,并从数表中删除去该数的所有倍数:依此类推,直到所找的下一个数等于n为止。这样会得到一个序列: 2, 3.,5, 7, 11 , 13, 17, 19, 23,函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。填空:(1)ai (2)ai (3)0改错:(1)y=1; (2)d=a-i;编程: int i;double sum=0.0;for(i=1;i=n;i+)if(i%5=0|i%9=0)/* 被5或9整除 */sum+=1.0/i;return sum;36:给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1(独立一行)作为字符串输入结束的标志,然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WritText实现。填空:*fw str *fr改错:(1)void fun(long s, long *t)(2)s1 = s1*10;编程:int i, j=0, min=a0.s;for (i=0 ; iN ; i+) if( ai.ssno (2)-name (3)&t改错:(1)double fun(double a, double x0)(2)if(fabs(x1-x0)0.00001)编程:double t=0;int i;*n=0;for (i=0 ; iN; i+) t+=ai.s;t/=N;for ( i=0 ; it)b(*n)+=ai;return t ;38: 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。填空: free(q); q=p-next; q=q-next;改错: p = j; p = i;编程: int i; *n=0; for(i=1;i=m;i+) if(i%7=0|i%11=0) a(*n)+=i;39:给定程序中,函数fun的功能是:计算出带有头结点的单向链表中各结点数据域中值之和作为函数值返回。填空:(1)data (2)next (3)head改错:(1)while(*r) (2)*a=*r;a+;r+;编程:int i, j=0;for(i=0; iam)m=k;编程: unsigned t,s=0,s1=1,p=0;t=w;while(t10)if(t/10)p=t%10; s=s+p*s1; s1=s1*10; t=t/10; return s;41: 给定程序中,函数fun的功能是建立一个的矩阵。矩阵元素的构成规律是:最外层元素的值全部为;从外向内第层元素的值全部为;第层元素的值全部为,依次类推。例如,若,生成的矩阵为:1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 1 1 1 1填空:(*a)N j=i i+1;改错:aai = m%k; for(i=2 ; i=0; i- )编程:int i,j,k=strlen(a0); *max=a0;for(i=1;inum;i+) j=strlen(ai); if(kj) k=j; *max=ai; 42: 给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30,500000 主函数中输出:m=30填空:(1)*av (2)i或 xi (3)xj或j改错:(1)float fun(int n) (2)for(i=2;i=n;i+)编程: int i, j;for(i=0 ;iN ;i+)for(j=1 ; jn)t=a+k-n ;while ( *t )ai = *t ;i+;t+ ;ai = 0 ;44: 给定程序中,函数fun的功能是:找出NN矩阵中每列元素中的最大值

温馨提示

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

评论

0/150

提交评论