1、二级机试题a与b合并成c1填空 STYPE FILE fp 改错 for(i=0;i=sl;i+) tsl*2=0;将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。4152*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;2填空 *fw str str改错 void fun(long s,long *t) sl=sl*10;将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。1524*c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;3填空 fp
2、 fclose(fp) fname改错 for(i=j+1;iscorei a改错 char* fun(char (*sq)M) return sp;将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。2415*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;整除7填空 q next next改错 p=j; p=i;求出1到m之内(含m)能被7或11整除的所有整数放在数组a中。int i,j=0; *n=0;for(i=1;i=m;i+)if(i%7=0|i%11=0) aj+=i;(*n)+;24填空 si 9 *t=
3、n改错 t=*x; *x=y; return(t);求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数并将它们放在a所指的数组中。int i,j=0;for(i=1;i=1000;i+)if(i%7=0|i%11=0) & i%77!=0) aj+=i;*n=j; 48填空 ai ai 0改错 y=1; d=a-i;计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。int i; double s=0.0;for(i=1;i=n;i+)if(i%5=0|i%9=0) s+=1.0/i;return s;78填空 0 s+ sum改错 if(k%13=0)|(k
4、%17=0) 求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s。double s=0.0; int i;for(i=0;idata t改错 void fun(char *a) printf(%c,*a);比较两个字符串的长度,函数返回较长的字符串。char *p,*t1=t,*s1=s;int n=0,m=0;while(*s1+) n+;while(*t1+) m+;if(n=m) p=s;else p=t;return p;54填空 0 10*x n/0改错 *t=0 if(d%2!=0)实现两个字符串的连接。char *p=p1;while(*p)p+;while(*p2
5、) *p+=*p2+;*p=0;69填空 N i i+1改错 aai=m%k; printf(%d,aai-1);从传入的num个字符串中找出最长的一个字符串。int i;max=a0;for(i=0;inum;i+)if(strlen(max)strlen(ai) max=ai;return max;96填空 double f1 f2改错 char* fun(char *s,char *t) ss+; tt+;移动字符串中的内容,把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。char bN; int i,j=0;for(i=0;im;i+) bj+=wi;f
6、or(i=0;istrlen(w)-m;i+) wi=wi+m;for(j=0;jm;j+) wi+=bj;wi=0;17填空 i+1 k=j t改错 void fun(char *str,char ch) if(*str!=ch) str1=0;字符串中的内容逆置。char t; int i,n;n=strlen(s)-1;for(i=0;inext; p=p-next;判断字符串是否为回文。int i,n=0,flag=1;char *p=str;while(*p+) n+;for(i=0;in/2;i+)if(stri=strn-1-i) continue;else flag=0;bre
7、ak;return flag;19填空 ssi n+j 1改错 if(*p= ) *(p-1)=toupper(*(p-1);对长度为7个字符的字符串,除首,尾字符外,将其余5个字符按ASCII码降序排列。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;8在带有头结点的单向链表中,查找数据域中值为ch的结点,找到后通过函数值返回该结点在链表中所处的顺序号。填空 NULL n head,ch改错 for(i=0,t=0;pi;i+) ct=0;将字符串ss中所有下标为奇数位置上的字母转换
8、为大写。int i,n=0; char *p=ss;while(*p+) n+; for(i=0;i=a&ssitj+1)将字符串ss中所有下标为奇数位置上的字母转换为大写。int i,n=0; char *p=ss;while(*p+) n+; for(i=0;i=a&ssi=num) t=s/n;删除一个字符串中指定下标的字符。int i,j=0;for(i=0;iLEN;i+)if(i!=n) bj+=ai;bj=0;10填空 data next head改错 while(*r) *a=*r;a+;r+;将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。int
9、 i,j=0,n=strlen(s);for(i=0;in;i+)if(i%2!=0) tj+=si;tj=0;11填空 STU stdi.num stdi改错 r+; p+; if(*r=0)将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。int i,j=0,n=strlen(s);for(i=0;in;i+)if(si%2!=0) tj+=si;tj=0;60填空 si k 0改错 while(*w) if(*r=*p)将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。int i,j=0,n=strlen(s
10、);for(i=0;in;i+)if(si%2=0) tj+=si;tj=0;61填空 j k p改错 while(ij) if(*a)将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。int i,j=0,n=strlen(s);for(i=0;in;i+)if(!(i%2=0 & si%2!=0) tj+=si; tj=0;9填空 *n next head改错 a=NULL; if(*r=*p)将s所指字符串中除了下标为偶数,同时ASCII值也为偶数的字符外,其余的全都删除。int i,j=0,n=strlen(s);for(i=0;in
11、;i+)if(i%2=0&si%2=0) tj+=si;tj=0;59填空 0 i+ 2.0*i改错 void fun(char *s,char *t) t2*d=0;将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除。int i,j=0,n=strlen(s);for(i=0;in;i+)if(i%2!=0 & si%2!=0) tj+=si;tj=0;22填空 j+ si=t1i j改错for(j=i+1;j6;j+) *(pstr+i)=*(pstr+j);求出ss所指字符串中指定字符的个数。int n=0;while(*ss)if(*ss=c) n
12、+;ss+;return n;20填空 N len *n=len改错 t+=1.0/i; return t;统计一个长度为2的字符串在另一个字符串中出现的次数。int n=0;char *p,*r;while(*str)p=str;r=substr;while(*r)if(*r=*p)r+;p+; else break;if(*r=0) n+;str+;return n;25填空 1 sk c改错 long s=0,t=0; t=t/10;统计在字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。int i;for(i=0;i=a& *tt=z) pp*tt-a+;tt+;100
13、填空 filename fp fp改错 p=(NODE*)malloc(sizeof(NODE); return h;统计一行字符串中单词的个数。int i,n=0;for(i=0;i=a&si=z&si+1=|si+1=0) n+; return n;平均分和结构体5填空 x p s改错 long k=1; num/=10;计算n门课程的平均分。float aver=0.0; int i;for(i=0;in;i+) aver+=ai; aver/=n;return aver;73填空 j 0 i+改错 for(i=2;i=m;i+) y-=1.0/(i*i);m个人成绩存放在score数组
14、中,将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。int i,k=0,aver=0;for(i=0;im;i+) aver+=scorei; aver/=m; for(i=0;im;i+)if(scoreiaver) belowk+=scorei; return k; 40填空 char chs;h=h-next;return aver/N;90填空 fp = fp改错 n=strlen(aa); ch=aai;N名学生的成绩已放入一个带头节点的链表结构中,h指向链表的头结点,找出学生的最高分。double max=h-s;for(h=h-next;h-nex
15、t!=NULL;h=h-next)if(h-smax) max=h-s;return max;36填空 ai aj aj改错 switch(g) case 1: case 2: return 1;某学生的记录由学号,8门课程成绩和平均分组成,求出该学生的平均分放在记录的ave成员中。double av=0.0; int i;for(i=0;isi; av/=N;a-ave=av;37填空 *a 2 i+1改错 sum=0.0; if(i+1)%5=0)学生的记录由学号和成绩组成,把低于平均分的学生数据放在b所指的数组中。double aver=0.0; int i,j=0;for(i=0;iN
16、;i+) aver+=ai.s; aver/=N;for(i=0;iN;i+)if(ai.ssno -name &t改错 double fun(double a,double x0)if(fabs(x1-x0)0.00001)学生的记录由学号和成绩组成,把高于等于平均分的学生数据放在b所指的数组中。int i,j=0; double aver=0.0;for(i=0;iN;i+) aver+=ai.s;aver/=N;for(i=0;i=aver) bj+=ai; *n=j;return aver;12填空 stdi.year stdi n改错 IsPrime(int n) if(!(n%i)
17、已知学生的记录由学号和学习成绩构成,找出成绩最高的学生记录(规定只有一个最高分)。int i,max=a0.s;for(i=0;imax)max=ai.s;*s=ai; 62填空 0.0 xi/N j+改错 double fun(int m) for(i=100;i=m;i+=100)已知学生的记录由学号和学习成绩构成,找出成绩最低的学生记录(规定只有一个最低分)。int i,min=a0.s;for(i=0;iN;i+)if(ai.smin)min=ai.s;*s=ai; 38填空 1 i ap+i改错 float k; if(*a*c)学生的记录由学号和成绩组成,把分数最高的学生数据放在b
18、所指的数组中,注意:分数最高的学生可能不止一个。int i,j=0,n=0,max=a0.s;for(i=0;imax) max=ai.s;for(i=0;iN;i+)if(ai.s=max) bj+=ai;n+;return n;87填空 struct student a.name a.scorei改错 if(p=n) return -1; ai=ai+1;学生的记录由学号和成绩组成,把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个。int i,j=0,n=0,min=a0.s;for(i=0;iN;i+)if(ai.smin) min=ai.s;for(i=0;iN
19、;i+)if(ai.s=min) bj+=ai;n+;return n;39填空 n/2 i an-1-i改错 n=*p-0; n=n*8+*p-0;学生的记录由学号和成绩组成,函数返回指定学号的学生数据,若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1。int i; STREC h;for(i=0;i0)学生记录由学号和成绩组成,按分数高低排列学生的记录,高分在前。int i,j; STREC t;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(ai.sp)学生的记录由学号和成绩组成,把指定分数范围内的学生数据放在b所指的数组中,学生人数由函数值返回。int
20、i,j=0;for(i=0;i=l&ai.s=h) bj+=ai;return j;二维数组14填空 *std PERSON std改错 int k,q,i; pti=strki;使数组左下半三角元素中的值全部置成0。int i,j;for(i=0;iN;i+)for(j=0;j0) else if(k=0)使数组左下半三角元素中的值乘以n。int i,j;for(i=0;iN;i+)for(j=0;j=i;j+) aij=aij*n;63填空 *av i xj改错 float fun(int n) for(i=2;i=n;i+)使数组右上半三角元素中的值乘以m。int i,j;for(j=0
21、;jN;j+)for(i=0;i=j;i+) aij=aij*m;67填空 N break n改错 sum=0; scanf(%d,&aij);实现矩阵(3行3列)的转置。int i,j,t;for(i=0;i3;i+)for(j=0;j=i;j+)t=arrayji;arrayji=arrayij;arrayij=t; 23填空 & 0 sj改错 for(i=2;i=m;i+) y+=1.0/(i*i);实现B=A+A,即把矩阵A加上矩阵A的转置,存放在矩阵B中。int i,j,t,at33;for(i=0;i=2;i+)for(j=0;j=2;j+) atij=aji;for(i=0;i3;i+)for(j=0;j3;j+) bij=aij+atij;65填空 xi/N j+ i+改错 numk=0; switch(*s)求出二维数组周边元素之和。int i,j,s=0;for(j=0;jN;j+) s+=a0j+aM-1j;for(i=1;i=M-2;i+) s+=ai0+aiN-1;return s;64填空 s/N j+ -1改错 #include void upfst(char *p)求出数组周边元素的平均值。int i,j,k=0;double s=0.0;for(j=0;jN;j+) s+=w0j+wN-1j;k+=2;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1